diff --git a/Utilities/GDBDebugServer.cpp b/Utilities/GDBDebugServer.cpp index 12878bd4c9..620e9bc1ec 100644 --- a/Utilities/GDBDebugServer.cpp +++ b/Utilities/GDBDebugServer.cpp @@ -13,7 +13,7 @@ #include "Emu/Cell/SPUThread.h" #ifndef _WIN32 -#include"fcntl.h" +#include "fcntl.h" #endif extern void ppu_set_breakpoint(u32 addr); @@ -365,7 +365,7 @@ std::string GDBDebugServer::get_reg(std::shared_ptr thread, u32 rid) return std::string(8, 'x'); default: if (rid > 70) return ""; - return (rid > 31) + return (rid > 31) ? u64_to_padded_hex(reinterpret_cast(thread->fpr[rid - 32])) //fpr : u64_to_padded_hex(thread->gpr[rid]); //gpr } @@ -453,13 +453,12 @@ bool GDBDebugServer::cmd_thread_info(gdb_cmd & cmd) result += u64_to_padded_hex(static_cast(cpu.id)); }; idm::select(on_select); - idm::select(on_select); idm::select(on_select); idm::select(on_select); //todo: this may exceed max command length result = "m" + result + "l"; - + return send_cmd_ack(result);; } @@ -768,7 +767,7 @@ void GDBDebugServer::on_task() } } } - catch (std::runtime_error& e) + catch (std::runtime_error& e) { if (client_socket) { closesocket(client_socket); diff --git a/Utilities/Log.cpp b/Utilities/Log.cpp index e31ed1495f..8fc12391f8 100644 --- a/Utilities/Log.cpp +++ b/Utilities/Log.cpp @@ -177,7 +177,6 @@ namespace logs channel HLE("HLE"); channel PPU("PPU"); channel SPU("SPU"); - channel ARMv7("ARMv7"); // Channel registry mutex semaphore<> g_mutex; diff --git a/Utilities/Log.h b/Utilities/Log.h index 8215067221..40db82ad22 100644 --- a/Utilities/Log.h +++ b/Utilities/Log.h @@ -104,7 +104,6 @@ namespace logs extern channel HLE; extern channel PPU; extern channel SPU; - extern channel ARMv7; // Log level control: set all channels to level::notice void reset(); diff --git a/Utilities/Thread.cpp b/Utilities/Thread.cpp index fceb85f6e9..82f47e0306 100644 --- a/Utilities/Thread.cpp +++ b/Utilities/Thread.cpp @@ -90,7 +90,7 @@ enum x64_reg_t : u32 X64R_XMM13, X64R_XMM14, X64R_XMM15, - + X64R_AL, X64R_CL, X64R_DL, @@ -99,7 +99,7 @@ enum x64_reg_t : u32 X64R_CH, X64R_DH, X64R_BH, - + X64_NOT_SET, X64_IMM8, X64_IMM16, @@ -176,7 +176,7 @@ void decode_x64_reg_op(const u8* code, x64_op_t& out_op, x64_reg_t& out_reg, siz { LOG_ERROR(MEMORY, "decode_x64_reg_op(%016llxh): LOCK prefix found twice", (size_t)code - out_length); } - + lock = true; continue; } @@ -186,7 +186,7 @@ void decode_x64_reg_op(const u8* code, x64_op_t& out_op, x64_reg_t& out_reg, siz { LOG_ERROR(MEMORY, "decode_x64_reg_op(%016llxh): REPNE/REPNZ prefix found twice", (size_t)code - out_length); } - + repne = true; continue; } @@ -196,7 +196,7 @@ void decode_x64_reg_op(const u8* code, x64_op_t& out_op, x64_reg_t& out_reg, siz { LOG_ERROR(MEMORY, "decode_x64_reg_op(%016llxh): REP/REPE/REPZ prefix found twice", (size_t)code - out_length); } - + repe = true; continue; } @@ -225,7 +225,7 @@ void decode_x64_reg_op(const u8* code, x64_op_t& out_op, x64_reg_t& out_reg, siz { LOG_ERROR(MEMORY, "decode_x64_reg_op(%016llxh): operand-size override prefix found twice", (size_t)code - out_length); } - + oso = true; continue; } @@ -917,7 +917,7 @@ bool get_x64_reg_value(x64_context* context, x64_reg_t reg, size_t d_size, size_ else if (reg == X64_IMM32) { const s32 imm_value = *(s32*)(RIP(context) + i_size - 4); - + switch (d_size) { case 4: out_value = (u32)imm_value; return true; @@ -1254,7 +1254,7 @@ bool handle_access_violation(u32 addr, bool is_writing, x64_context* context) } if (entry.start_addr <= addr && addr <= addr + mem->size - 1) { - // Place the page fault event onto table so that other functions [sys_mmapper_free_address and ppu pagefault funcs] + // Place the page fault event onto table so that other functions [sys_mmapper_free_address and ppu pagefault funcs] // know that this thread is page faulted and where. auto pf_entries = fxm::get_always(); @@ -1274,7 +1274,7 @@ bool handle_access_violation(u32 addr, bool is_writing, x64_context* context) addr, data3 == SYS_MEMORY_PAGE_FAULT_CAUSE_READ_ONLY ? "writing read-only" : "using unmapped"); error_code sending_error = sys_event_port_send(entry.port_id, data1, data2, data3); - + // If we fail due to being busy, wait a bit and try again. while (sending_error == CELL_EBUSY) { @@ -1282,7 +1282,7 @@ bool handle_access_violation(u32 addr, bool is_writing, x64_context* context) thread_ctrl::wait_for(1000); sending_error = sys_event_port_send(entry.port_id, data1, data2, data3); } - + if (sending_error) { fmt::throw_exception("Unknown error %x while trying to pass page fault.", sending_error.value); @@ -1707,7 +1707,7 @@ bool thread_ctrl::_wait_for(u64 usec) } } _lock{_this->m_mutex}; - + do { // Mutex is unlocked at the start and after the waiting diff --git a/rpcs3/Emu/Cell/SPUThread.h b/rpcs3/Emu/Cell/SPUThread.h index 1f4cf32035..ac9691db9c 100644 --- a/rpcs3/Emu/Cell/SPUThread.h +++ b/rpcs3/Emu/Cell/SPUThread.h @@ -450,7 +450,7 @@ public: { case 0: return this->_u32[3] >> 8 & 0x3; - + case 1: return this->_u32[3] >> 10 & 0x3; @@ -576,7 +576,7 @@ public: std::array>, 32> spuq; // Event Queue Keys for SPU Thread std::weak_ptr spup[64]; // SPU Ports - u32 pc = 0; // + u32 pc = 0; // const u32 index; // SPU index const u32 offset; // SPU LS offset lv2_spu_group* const group; // SPU Thread Group diff --git a/rpcs3/Emu/Cell/lv2/sys_spu.cpp b/rpcs3/Emu/Cell/lv2/sys_spu.cpp index 7bf7c9f41e..66a48a3e19 100644 --- a/rpcs3/Emu/Cell/lv2/sys_spu.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_spu.cpp @@ -222,7 +222,7 @@ error_code sys_spu_thread_initialize(vm::ptr thread, u32 group_id, u32 spu_ { return CELL_EINVAL; } - + if (group->threads[spu_num] || group->run_state != SPU_THREAD_GROUP_STATUS_NOT_INITIALIZED) { return CELL_EBUSY; @@ -660,7 +660,7 @@ error_code sys_spu_thread_group_join(ppu_thread& ppu, u32 id, vm::ptr cause group->join_state &= ~SPU_TGJSF_IS_JOINING; group->run_state = SPU_THREAD_GROUP_STATUS_INITIALIZED; // hack } - + ppu.test_state(); switch (join_state & ~SPU_TGJSF_IS_JOINING) @@ -690,7 +690,7 @@ error_code sys_spu_thread_group_join(ppu_thread& ppu, u32 id, vm::ptr cause { *status = group->exit_status; } - + return CELL_OK; } @@ -927,7 +927,7 @@ error_code sys_spu_thread_group_connect_event(u32 id, u32 eq, u32 et) { return CELL_EBUSY; } - + group->ep_run = queue; break; } @@ -1376,7 +1376,7 @@ error_code sys_raw_spu_create_interrupt_tag(u32 id, u32 class_id, u32 hwthread, *intrtag = tag; return CELL_OK; } - + return error; } diff --git a/rpcs3/Emu/Memory/vm.cpp b/rpcs3/Emu/Memory/vm.cpp index b83f6d4cae..78d3d92c61 100644 --- a/rpcs3/Emu/Memory/vm.cpp +++ b/rpcs3/Emu/Memory/vm.cpp @@ -130,7 +130,7 @@ namespace vm { cpu = nullptr; } - + g_mutex.lock_shared(); if (cpu) @@ -344,7 +344,7 @@ namespace vm utils::memory_commit(g_exec_addr + addr, size); } - if (g_cfg.core.ppu_debug && g_system == system_type::ps3) + if (g_cfg.core.ppu_debug) { utils::memory_commit(g_stat_addr + addr, size); } @@ -442,7 +442,7 @@ namespace vm utils::memory_decommit(g_base_addr + addr, size); utils::memory_decommit(g_exec_addr + addr, size); - if (g_cfg.core.ppu_debug && g_system == system_type::ps3) + if (g_cfg.core.ppu_debug) { utils::memory_decommit(g_stat_addr + addr, size); } @@ -457,7 +457,7 @@ namespace vm return false; } } - + return true; } @@ -768,7 +768,7 @@ namespace vm return nullptr; } - + // search location by address for (auto& block : g_locations) { @@ -781,7 +781,7 @@ namespace vm return nullptr; } - namespace ps3 + inline namespace ps3 { void init() { @@ -798,37 +798,6 @@ namespace vm } } - namespace psv - { - void init() - { - g_locations = - { - std::make_shared(0x81000000, 0x10000000), // RAM - std::make_shared(0x91000000, 0x2F000000), // user - std::make_shared(0xC0000000, 0x10000000), // video (arbitrarily) - std::make_shared(0xD0000000, 0x10000000), // stack (arbitrarily) - }; - } - } - - namespace psp - { - void init() - { - g_locations = - { - std::make_shared(0x08000000, 0x02000000), // RAM - std::make_shared(0x08800000, 0x01800000), // user - std::make_shared(0x04000000, 0x00200000), // VRAM - nullptr, // stack - - std::make_shared(0x00010000, 0x00004000), // scratchpad - std::make_shared(0x88000000, 0x00800000), // kernel - }; - } - } - void close() { g_locations.clear(); diff --git a/rpcs3/Emu/Memory/vm.h b/rpcs3/Emu/Memory/vm.h index 974180df73..f4435515e0 100644 --- a/rpcs3/Emu/Memory/vm.h +++ b/rpcs3/Emu/Memory/vm.h @@ -19,7 +19,7 @@ namespace vm user_space, video, stack, - + memory_location_max, any = 0xffffffff, }; @@ -268,7 +268,7 @@ namespace vm g_base_addr[addr] = value; } - namespace ps3 + inline namespace ps3 { // Convert specified PS3 address to a pointer of specified (possibly converted to BE) type template inline to_be_t* _ptr(u32 addr) @@ -314,58 +314,6 @@ namespace vm void init(); } - - namespace psv - { - template inline to_le_t* _ptr(u32 addr) - { - return static_cast*>(base(addr)); - } - - template inline to_le_t& _ref(u32 addr) - { - return *_ptr(addr); - } - - inline const le_t& read16(u32 addr) - { - return _ref(addr); - } - - inline void write16(u32 addr, le_t value) - { - _ref(addr) = value; - } - - inline const le_t& read32(u32 addr) - { - return _ref(addr); - } - - inline void write32(u32 addr, le_t value) - { - _ref(addr) = value; - } - - inline const le_t& read64(u32 addr) - { - return _ref(addr); - } - - inline void write64(u32 addr, le_t value) - { - _ref(addr) = value; - } - - void init(); - } - - namespace psp - { - using namespace psv; - - void init(); - } void close(); } diff --git a/rpcs3/Emu/Memory/vm_ptr.h b/rpcs3/Emu/Memory/vm_ptr.h index 2b3403853d..225d6d1819 100644 --- a/rpcs3/Emu/Memory/vm_ptr.h +++ b/rpcs3/Emu/Memory/vm_ptr.h @@ -3,7 +3,6 @@ #include "vm_ref.h" class ppu_thread; -class ARMv7Thread; namespace vm { @@ -260,9 +259,6 @@ namespace vm // Callback; defined in PPUCallback.h, passing context is mandatory RT operator()(ppu_thread& ppu, T... args) const; - - // Callback; defined in ARMv7Callback.h, passing context is mandatory - RT operator()(ARMv7Thread& cpu, T... args) const; }; template @@ -291,7 +287,7 @@ namespace vm // LE pointer to BE data template using lptrb = _ptr_base, to_le_t>; - namespace ps3 + inline namespace ps3 { // Default pointer type for PS3 HLE functions (Native endianness pointer to BE data) template using ptr = ptrb; @@ -324,39 +320,6 @@ namespace vm } } - namespace psv - { - // Default pointer type for PSV HLE functions (Native endianness pointer to LE data) - template using ptr = ptrl; - template using cptr = ptr; - - // Default pointer to pointer type for PSV HLE functions (Native endianness pointer to LE pointer to LE data) - template using pptr = ptr>; - template using cpptr = pptr; - - // Default pointer type for PSV HLE structures (LE pointer to LE data) - template using lptr = lptrl; - template using lcptr = lptr; - - // Default pointer to pointer type for PSV HLE structures (LE pointer to LE pointer to LE data) - template using lpptr = lptr>; - template using lcpptr = lpptr; - - // Perform static_cast (for example, vm::ptr to vm::ptr) - template*>(std::declval()))> - inline _ptr_base> static_ptr_cast(const _ptr_base& other) - { - return vm::cast(other.addr(), HERE); - } - - // Perform const_cast (for example, vm::cptr to vm::ptr) - template*>(std::declval()))> - inline _ptr_base> const_ptr_cast(const _ptr_base& other) - { - return vm::cast(other.addr(), HERE); - } - } - struct null_t { template @@ -400,7 +363,7 @@ namespace vm { return false; } - + template friend bool operator <=(const null_t&, const _ptr_base&) { diff --git a/rpcs3/Emu/Memory/vm_ref.h b/rpcs3/Emu/Memory/vm_ref.h index a46aa2f5ba..02dd5e2aa1 100644 --- a/rpcs3/Emu/Memory/vm_ref.h +++ b/rpcs3/Emu/Memory/vm_ref.h @@ -163,7 +163,7 @@ namespace vm // LE reference to BE data template using lrefb = _ref_base, to_le_t>; - namespace ps3 + inline namespace ps3 { // default reference for PS3 HLE functions (Native endianness reference to BE data) template using ref = refb; @@ -171,15 +171,6 @@ namespace vm // default reference for PS3 HLE structures (BE reference to BE data) template using bref = brefb; } - - namespace psv - { - // default reference for PSV HLE functions (Native endianness reference to LE data) - template using ref = refl; - - // default reference for PSV HLE structures (LE reference to LE data) - template using lref = lrefl; - } } // Change AT endianness to BE/LE diff --git a/rpcs3/Emu/Memory/vm_var.h b/rpcs3/Emu/Memory/vm_var.h index 781e386a11..39346ca6a0 100644 --- a/rpcs3/Emu/Memory/vm_var.h +++ b/rpcs3/Emu/Memory/vm_var.h @@ -114,7 +114,7 @@ namespace vm // BE variable template using varb = _var_base, A>; - namespace ps3 + inline namespace ps3 { // BE variable template> using var = varb; @@ -141,32 +141,4 @@ namespace vm { }; } - - namespace psv - { - // LE variable - template> using var = varl; - - // Make LE variable initialized from value - template> - inline auto make_var(const T& value) - { - return var(value); - } - - // Make char[] variable initialized from std::string - template> - static auto make_str(const std::string& str) - { - var var_(size32(str) + 1); - std::memcpy(var_.get_ptr(), str.c_str(), str.size() + 1); - return var_; - } - - // Global HLE variable - template - struct gvar : ptr - { - }; - } } diff --git a/rpcs3/Emu/PSP2/ARMv7Callback.h b/rpcs3/Emu/PSP2/ARMv7Callback.h deleted file mode 100644 index 001692da69..0000000000 --- a/rpcs3/Emu/PSP2/ARMv7Callback.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include "ARMv7Function.h" - -namespace vm -{ - template - FORCE_INLINE RT _ptr_base::operator()(ARMv7Thread& cpu, T... args) const - { - return arm_func_detail::func_caller::call(cpu, vm::cast(this->addr(), HERE), args...); - } -} - -template inline RT cb_call(ARMv7Thread& cpu, u32 addr, T... args) -{ - return arm_func_detail::func_caller::call(cpu, addr, args...); -} diff --git a/rpcs3/Emu/PSP2/ARMv7DisAsm.cpp b/rpcs3/Emu/PSP2/ARMv7DisAsm.cpp deleted file mode 100644 index f37beda633..0000000000 --- a/rpcs3/Emu/PSP2/ARMv7DisAsm.cpp +++ /dev/null @@ -1,3760 +0,0 @@ -#include "stdafx.h" -#include "ARMv7Opcodes.h" -#include "ARMv7DisAsm.h" - -using namespace arm_code::arm_encoding_alias; - -const arm_decoder s_arm_disasm; - -template -static const char* fmt_encoding() -{ - switch (type) - { - case T1: return "T1"; - case T2: return "T2"; - case T3: return "T3"; - case T4: return "T4"; - case A1: return "A1"; - case A2: return "A2"; - } - - return nullptr; -} - -static const char* fmt_cond(u32 cond) -{ - switch (cond) - { - case 0: return "eq"; - case 1: return "ne"; - case 2: return "cs"; - case 3: return "cc"; - case 4: return "mi"; - case 5: return "pl"; - case 6: return "vs"; - case 7: return "vc"; - case 8: return "hi"; - case 9: return "ls"; - case 10: return "ge"; - case 11: return "lt"; - case 12: return "gt"; - case 13: return "le"; - case 14: return "al"; - case 15: return ""; - default: return "??"; - } -} - -static const char* fmt_it(u32 state) -{ - switch (state & ~0x10) - { - case 0x8: return ""; - - case 0x4: return state & 0x10 ? "e" : "t"; - case 0xc: return state & 0x10 ? "t" : "e"; - - case 0x2: return state & 0x10 ? "ee" : "tt"; - case 0x6: return state & 0x10 ? "et" : "te"; - case 0xa: return state & 0x10 ? "te" : "et"; - case 0xe: return state & 0x10 ? "tt" : "ee"; - - case 0x1: return state & 0x10 ? "eee" : "ttt"; - case 0x3: return state & 0x10 ? "eet" : "tte"; - case 0x5: return state & 0x10 ? "ete" : "tet"; - case 0x7: return state & 0x10 ? "ett" : "tee"; - case 0x9: return state & 0x10 ? "tee" : "ett"; - case 0xb: return state & 0x10 ? "tet" : "ete"; - case 0xd: return state & 0x10 ? "tte" : "eet"; - case 0xf: return state & 0x10 ? "ttt" : "eee"; - - default: return "???"; - } -} - -static const char* fmt_reg(u32 reg) -{ - switch (reg) - { - case 0: return "r0"; - case 1: return "r1"; - case 2: return "r2"; - case 3: return "r3"; - case 4: return "r4"; - case 5: return "r5"; - case 6: return "r6"; - case 7: return "r7"; - case 8: return "r8"; - case 9: return "r9"; - case 10: return "r10"; - case 11: return "r11"; - case 12: return "r12"; - case 13: return "sp"; - case 14: return "lr"; - case 15: return "pc"; - default: return "r???"; - } -} - -static std::string fmt_shift(u32 type, u32 amount) -{ - verify(HERE), type != arm_code::SRType_RRX || amount == 1, amount <= 32; - - if (amount) - { - switch (type) - { - case arm_code::SRType_LSL: return fmt::format(",lsl #%u", amount); - case arm_code::SRType_LSR: return fmt::format(",lsr #%u", amount); - case arm_code::SRType_ASR: return fmt::format(",asr #%u", amount); - case arm_code::SRType_ROR: return fmt::format(",ror #%u", amount); - case arm_code::SRType_RRX: return ",rrx"; - default: return ",?????"; - } - } - - return{}; -} - -static std::string fmt_reg_list(u32 reg_list) -{ - std::vector> lines; - - for (u32 i = 0; i < 13; i++) - { - if (reg_list & (1 << i)) - { - if (lines.size() && lines.rbegin()->second == i - 1) - { - lines.rbegin()->second = i; - } - else - { - lines.push_back({ i, i }); - } - } - } - - if (reg_list & 0x2000) lines.push_back({ 13, 13 }); // sp - if (reg_list & 0x4000) lines.push_back({ 14, 14 }); // lr - if (reg_list & 0x8000) lines.push_back({ 15, 15 }); // pc - - std::string result; - - if (reg_list >> 16) result = "???"; // invalid bits - - for (auto& line : lines) - { - if (!result.empty()) - { - result += ","; - } - - if (line.first == line.second) - { - result += fmt_reg(line.first); - } - else - { - result += fmt_reg(line.first); - result += '-'; - result += fmt_reg(line.second); - } - } - - return result; -} - -static std::string fmt_mem_imm(u32 reg, u32 imm, u32 index, u32 add, u32 wback) -{ - if (index) - { - return fmt::format("[%s,#%s0x%X]%s", fmt_reg(reg), add ? "" : "-", imm, wback ? "!" : ""); - } - else - { - return fmt::format("[%s],#%s0x%X%s", fmt_reg(reg), add ? "" : "-", imm, wback ? "" : "???"); - } -} - -static std::string fmt_mem_reg(u32 n, u32 m, u32 index, u32 add, u32 wback, u32 shift_t = 0, u32 shift_n = 0) -{ - if (index) - { - return fmt::format("[%s,%s%s%s]%s", fmt_reg(n), add ? "" : "-", fmt_reg(m), fmt_shift(shift_t, shift_n), wback ? "!" : ""); - } - else - { - return fmt::format("[%s],%s%s%s%s", fmt_reg(n), add ? "" : "-", fmt_reg(m), fmt_shift(shift_t, shift_n), wback ? "" : "???"); - } -} - -u32 ARMv7DisAsm::disasm(u32 pc) -{ - const u16 op16 = *(le_t*)(offset + pc); - const u32 cond = -1; // TODO - - if (const auto func16 = s_arm_disasm.decode_thumb(op16)) - { - (this->*func16)(op16, cond); - return 2; - } - else - { - const u32 op32 = (op16 << 16) | *(le_t*)(offset + pc + 2); - (this->*s_arm_disasm.decode_thumb(op32))(op32, cond); - return 4; - } -} - -void ARMv7DisAsm::Write(const std::string& value) -{ - switch (m_mode) - { - case CPUDisAsm_DumpMode: - last_opcode = fmt::format("\t%08x:\t", dump_pc); - break; - - case CPUDisAsm_InterpreterMode: - last_opcode = fmt::format("[%08x] ", dump_pc); - break; - - case CPUDisAsm_CompilerElfMode: - last_opcode = value + "\n"; - return; - } - - const u16 op16 = *(le_t*)(offset + dump_pc); - - // TODO: ARM - if (false) - { - const u32 op_arm = *(le_t*)(offset + dump_pc); - - last_opcode += fmt::format("%08x ", op_arm); - } - else if (arm_op_thumb_is_32(op16)) - { - const u16 op_second = *(le_t*)(offset + dump_pc + 2); - - last_opcode += fmt::format("%04x %04x ", op16, op_second); - } - else - { - last_opcode += fmt::format("%04x ", op16); - } - - auto str = value; - const auto found = str.find_first_of(' '); - if (found < 10) str.insert(str.begin() + found, 10 - found, ' '); - - switch (m_mode) - { - case CPUDisAsm_DumpMode: - last_opcode += fmt::format("\t%s\n", str); - break; - - case CPUDisAsm_InterpreterMode: - last_opcode += fmt::format(": %s", str); - break; - case CPUDisAsm_CompilerElfMode: - write("ERROR: Trying to load unimplemented CPU DisAsm mode, CompilerElfMode."); - break; - } -} - -#define ARG(arg, ...) const u32 arg = args::arg::extract(__VA_ARGS__); - -void ARMv7DisAsm::UNK(const u32 op, const u32 cond) -{ - // TODO: ARM - if (false) - { - write("Unknown/Illegal opcode: 0x%08X (ARM)", op); - } - else if (op > 0xffff) - { - write("Unknown/Illegal opcode: 0x%04X 0x%04X (Thumb)", op >> 16, op & 0xffff); - } - else - { - write("Unknown/Illegal opcode: 0x%04X (Thumb)", op); - } - -} - -template -void ARMv7DisAsm::HACK(const u32 op, const u32 cond) -{ - using args = arm_code::hack; - ARG(index, op); - - write("hack%s %d", fmt_cond(cond), index); -} - -template -void ARMv7DisAsm::MRC_(const u32 op, const u32 cond) -{ - using args = arm_code::mrc; - ARG(t, op); - ARG(cp, op); - ARG(opc1, op); - ARG(opc2, op); - ARG(cn, op); - ARG(cm, op); - - write("mrc%s p%d,%d,r%d,c%d,c%d,%d", fmt_cond(cond), cp, opc1, t, cn, cm, opc2); -} - - -template -void ARMv7DisAsm::ADC_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::adc_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - write("adc%s%s %s,%s,#0x%X", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), imm32); -} - -template -void ARMv7DisAsm::ADC_REG(const u32 op, const u32 cond) -{ - using args = arm_code::adc_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - write("adc%s%s %s,%s,%s%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), fmt_reg(m), fmt_shift(shift_t, shift_n)); -} - -template -void ARMv7DisAsm::ADC_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::ADD_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::add_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - write("add%s%s %s,%s,#0x%X", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), imm32); -} - -template -void ARMv7DisAsm::ADD_REG(const u32 op, const u32 cond) -{ - using args = arm_code::add_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - write("add%s%s %s,%s,%s%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), fmt_reg(m), fmt_shift(shift_t, shift_n)); -} - -template -void ARMv7DisAsm::ADD_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::ADD_SPI(const u32 op, const u32 cond) -{ - using args = arm_code::add_spi; - ARG(d, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - write("add%s%s %s,sp,#0x%X", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), imm32); -} - -template -void ARMv7DisAsm::ADD_SPR(const u32 op, const u32 cond) -{ - using args = arm_code::add_spr; - ARG(d, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - write("add%s%s %s,sp,%s%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(m), fmt_shift(shift_t, shift_n)); -} - - -template -void ARMv7DisAsm::ADR(const u32 op, const u32 cond) -{ - using args = arm_code::adr; - ARG(d, op); - ARG(i, op); - - write("adr%s r%d, 0x%08X", fmt_cond(cond), d, (DisAsmBranchTarget(0) & ~3) + i); -} - - -template -void ARMv7DisAsm::AND_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::and_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - write("and%s%s %s,%s,#0x%X", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), imm32); -} - -template -void ARMv7DisAsm::AND_REG(const u32 op, const u32 cond) -{ - using args = arm_code::and_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - write("and%s%s %s,%s,%s%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), fmt_reg(m), fmt_shift(shift_t, shift_n)); -} - -template -void ARMv7DisAsm::AND_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::ASR_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::ASR_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::B(const u32 op, const u32 cond) -{ - using args = arm_code::b; - ARG(imm32, op); - - write("b%s 0x%08X", fmt_cond(cond), DisAsmBranchTarget(imm32)); -} - - -template -void ARMv7DisAsm::BFC(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::BFI(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::BIC_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::bic_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - write("bic%s%s %s,%s,#0x%X", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), imm32); -} - -template -void ARMv7DisAsm::BIC_REG(const u32 op, const u32 cond) -{ - using args = arm_code::bic_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - write("bic%s%s %s,%s,%s%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), fmt_reg(m), fmt_shift(shift_t, shift_n)); -} - -template -void ARMv7DisAsm::BIC_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::BKPT(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::BL(const u32 op, const u32 cond) -{ - using args = arm_code::bl; - ARG(imm32, op); - ARG(to_arm); - - write("bl%s%s 0x%08X", (to_arm != 0) != (type >= A1) ? "x" : "", fmt_cond(cond), DisAsmBranchTarget(imm32)); -} - -template -void ARMv7DisAsm::BLX(const u32 op, const u32 cond) -{ - using args = arm_code::blx; - ARG(m, op); - - write("blx%s %s", fmt_cond(cond), fmt_reg(m)); -} - -template -void ARMv7DisAsm::BX(const u32 op, const u32 cond) -{ - using args = arm_code::bx; - ARG(m, op); - - write("bx%s %s", fmt_cond(cond), fmt_reg(m)); -} - - -template -void ARMv7DisAsm::CB_Z(const u32 op, const u32 cond) -{ - using args = arm_code::cb_z; - ARG(n, op); - ARG(imm32, op); - ARG(nonzero, op); - - write("cb%sz 0x%08X", nonzero ? "n" : "", DisAsmBranchTarget(imm32)); -} - - -template -void ARMv7DisAsm::CLZ(const u32 op, const u32 cond) -{ - using args = arm_code::clz; - ARG(d, op); - ARG(m, op); - - write("clz%s %s,%s", fmt_cond(cond), fmt_reg(d), fmt_reg(m)); -} - - -template -void ARMv7DisAsm::CMN_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::CMN_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::CMN_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::CMP_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::cmp_imm; - ARG(n, op); - ARG(imm32, op); - - write("cmp%s %s,#0x%X", fmt_cond(cond), fmt_reg(n), imm32); -} - -template -void ARMv7DisAsm::CMP_REG(const u32 op, const u32 cond) -{ - using args = arm_code::cmp_reg; - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - - write("cmp%s %s,%s%s", fmt_cond(cond), fmt_reg(n), fmt_reg(m), fmt_shift(shift_t, shift_n)); -} - -template -void ARMv7DisAsm::CMP_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::DBG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::DMB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::DSB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::EOR_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::eor_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - write("eor%s%s %s,%s,#0x%X", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), imm32); -} - -template -void ARMv7DisAsm::EOR_REG(const u32 op, const u32 cond) -{ - using args = arm_code::eor_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - write("eor%s%s %s,%s,%s%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), fmt_reg(m), fmt_shift(shift_t, shift_n)); -} - -template -void ARMv7DisAsm::EOR_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::IT(const u32 op, const u32 cond) -{ - static_assert(type == T1, "IT"); - - const u32 mask = (op & 0xf); - const u32 first = (op & 0xf0) >> 4; - - write("IT%s %s", fmt_it(mask), fmt_cond(first)); -} - - -template -void ARMv7DisAsm::LDM(const u32 op, const u32 cond) -{ - using args = arm_code::ldm; - ARG(n, op); - ARG(registers, op); - ARG(wback, op); - - write("ldm%s %s%s,{%s}", fmt_cond(cond), fmt_reg(n), wback ? "!" : "", fmt_reg_list(registers)); -} - -template -void ARMv7DisAsm::LDMDA(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::LDMDB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::LDMIB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::LDR_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::ldr_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("ldr%s %s,%s", fmt_cond(cond), fmt_reg(t), fmt_mem_imm(n, imm32, index, add, wback)); -} - -template -void ARMv7DisAsm::LDR_LIT(const u32 op, const u32 cond) -{ - using args = arm_code::ldr_lit; - ARG(t, op); - ARG(imm32, op); - ARG(add, op); - - const u32 base = DisAsmBranchTarget(0) & ~3; - const u32 addr = add ? base + imm32 : base - imm32; - - write("ldr%s %s,0x%08X", fmt_cond(cond), fmt_reg(t), addr); -} - -template -void ARMv7DisAsm::LDR_REG(const u32 op, const u32 cond) -{ - using args = arm_code::ldr_reg; - ARG(t, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("ldr%s %s,%s", fmt_cond(cond), fmt_reg(t), fmt_mem_reg(n, m, index, add, wback, shift_t, shift_n)); -} - - -template -void ARMv7DisAsm::LDRB_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::ldrb_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("ldrb%s %s,%s", fmt_cond(cond), fmt_reg(t), fmt_mem_imm(n, imm32, index, add, wback)); -} - -template -void ARMv7DisAsm::LDRB_LIT(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::LDRB_REG(const u32 op, const u32 cond) -{ - using args = arm_code::ldrb_reg; - ARG(t, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("ldrb%s %s,%s", fmt_cond(cond), fmt_reg(t), fmt_mem_reg(n, m, index, add, wback, shift_t, shift_n)); -} - - -template -void ARMv7DisAsm::LDRD_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::ldrd_imm; - ARG(t, op); - ARG(t2, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("ldrd%s %s,%s,%s", fmt_cond(cond), fmt_reg(t), fmt_reg(t2), fmt_mem_imm(n, imm32, index, add, wback)); -} - -template -void ARMv7DisAsm::LDRD_LIT(const u32 op, const u32 cond) -{ - using args = arm_code::ldrd_lit; - ARG(t, op); - ARG(t2, op); - ARG(imm32, op); - ARG(add, op); - - const u32 base = DisAsmBranchTarget(0) & ~3; - const u32 addr = add ? base + imm32 : base - imm32; - - write("ldrd%s %s,%s,0x%08X", fmt_cond(cond), fmt_reg(t), fmt_reg(t2), addr); -} - -template -void ARMv7DisAsm::LDRD_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::LDRH_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::ldrh_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("ldrh%s %s,%s", fmt_cond(cond), fmt_reg(t), fmt_mem_imm(n, imm32, index, add, wback)); -} - -template -void ARMv7DisAsm::LDRH_LIT(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::LDRH_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::LDRSB_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::ldrsb_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("ldrsb%s %s,%s", fmt_cond(cond), fmt_reg(t), fmt_mem_imm(n, imm32, index, add, wback)); -} - -template -void ARMv7DisAsm::LDRSB_LIT(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::LDRSB_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::LDRSH_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::LDRSH_LIT(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::LDRSH_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::LDREX(const u32 op, const u32 cond) -{ - using args = arm_code::ldrex; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - - write("ldrex%s %s,[%s,#0x%X]", fmt_cond(cond), fmt_reg(t), fmt_reg(n), imm32); -} - -template -void ARMv7DisAsm::LDREXB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::LDREXD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::LDREXH(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::LSL_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::lsl_imm; - ARG(d, op); - ARG(m, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - write("lsl%s%s %s,%s,#%d", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(m), shift_n); -} - -template -void ARMv7DisAsm::LSL_REG(const u32 op, const u32 cond) -{ - using args = arm_code::lsl_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(set_flags, op, cond); - - write("lsl%s%s %s,%s,%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), fmt_reg(m)); -} - - -template -void ARMv7DisAsm::LSR_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::lsr_imm; - ARG(d, op); - ARG(m, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - write("lsr%s%s %s,%s,#%d", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(m), shift_n); -} - -template -void ARMv7DisAsm::LSR_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::MLA(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::MLS(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::MOV_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::mov_imm; - ARG(d, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - //switch (type) - //{ - //case T3: - //case A2: write("movw%s%s %s,#0x%04X", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), imm32); break; - //default: write("mov%s%s %s,#0x%X", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), imm32); - //} -} - -template -void ARMv7DisAsm::MOV_REG(const u32 op, const u32 cond) -{ - using args = arm_code::mov_reg; - ARG(d, op); - ARG(m, op); - ARG(set_flags, op, cond); - - write("mov%s%s %s,%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(m)); -} - -template -void ARMv7DisAsm::MOVT(const u32 op, const u32 cond) -{ - using args = arm_code::movt; - ARG(d, op); - ARG(imm16, op); - - write("movt%s %s,#0x%04X", fmt_cond(cond), fmt_reg(d), imm16); -} - - -template -void ARMv7DisAsm::MRS(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::MSR_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::MSR_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::MUL(const u32 op, const u32 cond) -{ - using args = arm_code::mul; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(set_flags, op, cond); - - write("mul%s%s %s,%s,%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), fmt_reg(m)); -} - - -template -void ARMv7DisAsm::MVN_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::mvn_imm; - ARG(d, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - write("mvn%s%s %s,#0x%X", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), imm32); -} - -template -void ARMv7DisAsm::MVN_REG(const u32 op, const u32 cond) -{ - using args = arm_code::mvn_reg; - ARG(d, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - write("mvn%s%s %s,%s%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(m), fmt_shift(shift_t, shift_n)); -} - -template -void ARMv7DisAsm::MVN_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::NOP(const u32 op, const u32 cond) -{ - write("nop%s", fmt_cond(cond)); -} - - -template -void ARMv7DisAsm::ORN_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::ORN_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::ORR_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::orr_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - write("orr%s%s %s,%s,#0x%X", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), imm32); -} - -template -void ARMv7DisAsm::ORR_REG(const u32 op, const u32 cond) -{ - using args = arm_code::orr_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - write("orr%s%s %s,%s,%s%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), fmt_reg(m), fmt_shift(shift_t, shift_n)); -} - -template -void ARMv7DisAsm::ORR_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::PKH(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::POP(const u32 op, const u32 cond) -{ - const u32 registers = arm_code::pop::registers::extract(op); - - write("pop%s {%s}", fmt_cond(cond), fmt_reg_list(registers)); -} - -template -void ARMv7DisAsm::PUSH(const u32 op, const u32 cond) -{ - const u32 registers = arm_code::push::registers::extract(op); - - write("push%s {%s}", fmt_cond(cond), fmt_reg_list(registers)); -} - - -template -void ARMv7DisAsm::QADD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::QADD16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::QADD8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::QASX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::QDADD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::QDSUB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::QSAX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::QSUB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::QSUB16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::QSUB8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::RBIT(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::REV(const u32 op, const u32 cond) -{ - using args = arm_code::rev; - ARG(d, op); - ARG(m, op); - - write("rev%s %s,%s", fmt_cond(cond), fmt_reg(d), fmt_reg(m)); -} - -template -void ARMv7DisAsm::REV16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::REVSH(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::ROR_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::ror_imm; - ARG(d, op); - ARG(m, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - write("ror%s%s %s,%s,#%d", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(m), shift_n); -} - -template -void ARMv7DisAsm::ROR_REG(const u32 op, const u32 cond) -{ - using args = arm_code::ror_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(set_flags, op, cond); - - write("ror%s%s %s,%s,%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), fmt_reg(m)); -} - - -template -void ARMv7DisAsm::RRX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::RSB_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::rsb_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - write("rsb%s%s %s,%s,#0x%X", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), imm32); -} - -template -void ARMv7DisAsm::RSB_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::RSB_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::RSC_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::RSC_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::RSC_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::SADD16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SADD8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SASX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::SBC_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SBC_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SBC_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::SBFX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::SDIV(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::SEL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::SHADD16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SHADD8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SHASX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SHSAX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SHSUB16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SHSUB8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::SMLA__(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMLAD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMLAL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMLAL__(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMLALD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMLAW_(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMLSD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMLSLD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMMLA(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMMLS(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMMUL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMUAD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMUL__(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMULL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMULW_(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SMUSD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::SSAT(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SSAT16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SSAX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SSUB16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SSUB8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::STM(const u32 op, const u32 cond) -{ - using args = arm_code::stm; - ARG(n, op); - ARG(registers, op); - ARG(wback, op); - - write("stm%s %s%s,{%s}", fmt_cond(cond), fmt_reg(n), wback ? "!" : "", fmt_reg_list(registers)); -} - -template -void ARMv7DisAsm::STMDA(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::STMDB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::STMIB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::STR_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::str_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("str%s %s,%s", fmt_cond(cond), fmt_reg(t), fmt_mem_imm(n, imm32, index, add, wback)); -} - -template -void ARMv7DisAsm::STR_REG(const u32 op, const u32 cond) -{ - using args = arm_code::str_reg; - ARG(t, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("str%s %s,%s", fmt_cond(cond), fmt_reg(t), fmt_mem_reg(n, m, index, add, wback, shift_t, shift_n)); -} - - -template -void ARMv7DisAsm::STRB_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::strb_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("strb%s %s,%s", fmt_cond(cond), fmt_reg(t), fmt_mem_imm(n, imm32, index, add, wback)); -} - -template -void ARMv7DisAsm::STRB_REG(const u32 op, const u32 cond) -{ - using args = arm_code::strb_reg; - ARG(t, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("strb%s %s,%s", fmt_cond(cond), fmt_reg(t), fmt_mem_reg(n, m, index, add, wback, shift_t, shift_n)); -} - - -template -void ARMv7DisAsm::STRD_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::strd_imm; - ARG(t, op); - ARG(t2, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("strd%s %s,%s,%s", fmt_cond(cond), fmt_reg(t), fmt_reg(t2), fmt_mem_imm(n, imm32, index, add, wback)); -} - -template -void ARMv7DisAsm::STRD_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::STRH_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::strh_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("strh%s %s,%s", fmt_cond(cond), fmt_reg(t), fmt_mem_imm(n, imm32, index, add, wback)); -} - -template -void ARMv7DisAsm::STRH_REG(const u32 op, const u32 cond) -{ - using args = arm_code::strh_reg; - ARG(t, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - write("strh%s %s,%s", fmt_cond(cond), fmt_reg(t), fmt_mem_reg(n, m, index, add, wback, shift_t, shift_n)); -} - - -template -void ARMv7DisAsm::STREX(const u32 op, const u32 cond) -{ - using args = arm_code::strex; - ARG(d, op); - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - - write("strex%s %s,%s,[%s,#0x%x]", fmt_cond(cond), fmt_reg(d), fmt_reg(t), fmt_reg(n), imm32); -} - -template -void ARMv7DisAsm::STREXB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::STREXD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::STREXH(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::SUB_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::sub_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - write("sub%s%s %s,%s,#0x%X", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), imm32); -} - -template -void ARMv7DisAsm::SUB_REG(const u32 op, const u32 cond) -{ - using args = arm_code::sub_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - write("sub%s%s %s,%s,%s%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), fmt_reg(n), fmt_reg(m), fmt_shift(shift_t, shift_n)); -} - -template -void ARMv7DisAsm::SUB_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SUB_SPI(const u32 op, const u32 cond) -{ - using args = arm_code::sub_spi; - ARG(d, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - write("sub%s%s %s,sp,#0x%X", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d), imm32); -} - -template -void ARMv7DisAsm::SUB_SPR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::SVC(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::SXTAB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SXTAB16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SXTAH(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SXTB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SXTB16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::SXTH(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::TB_(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::TEQ_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::TEQ_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::TEQ_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::TST_IMM(const u32 op, const u32 cond) -{ - using args = arm_code::tst_imm; - ARG(n, op); - ARG(imm32, op); - - write("tst%s %s,#0x%X", fmt_cond(cond), fmt_reg(n), imm32); -} - -template -void ARMv7DisAsm::TST_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::TST_RSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::UADD16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UADD8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UASX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UBFX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UDIV(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UHADD16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UHADD8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UHASX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UHSAX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UHSUB16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UHSUB8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UMAAL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UMLAL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UMULL(const u32 op, const u32 cond) -{ - using args = arm_code::umull; - ARG(d0, op); - ARG(d1, op); - ARG(n, op); - ARG(m, op); - ARG(set_flags, op, cond); - - write("umull%s%s %s,%s,%s,%s", set_flags ? "s" : "", fmt_cond(cond), fmt_reg(d0), fmt_reg(d1), fmt_reg(n), fmt_reg(m)); -} - -template -void ARMv7DisAsm::UQADD16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UQADD8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UQASX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UQSAX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UQSUB16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UQSUB8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::USAD8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::USADA8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::USAT(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::USAT16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::USAX(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::USUB16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::USUB8(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UXTAB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UXTAB16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UXTAH(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UXTB(const u32 op, const u32 cond) -{ - using args = arm_code::uxtb; - ARG(d, op); - ARG(m, op); - ARG(rotation, op); - - write("uxtb%s %s,%s%s", fmt_cond(cond), fmt_reg(d), fmt_reg(m), fmt_shift(arm_code::SRType_ROR, rotation)); -} - -template -void ARMv7DisAsm::UXTB16(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::UXTH(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::VABA_(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VABD_(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VABD_FP(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VABS(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VAC__(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VADD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VADD_FP(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VADDHN(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VADD_(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VAND(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VBIC_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VBIC_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VB__(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCEQ_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCEQ_ZERO(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCGE_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCGE_ZERO(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCGT_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCGT_ZERO(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCLE_ZERO(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCLS(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCLT_ZERO(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCLZ(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCMP_(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCNT(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCVT_FIA(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCVT_FIF(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCVT_FFA(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCVT_FFF(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCVT_DF(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCVT_HFA(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VCVT_HFF(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VDIV(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VDUP_S(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VDUP_R(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VEOR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VEXT(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VHADDSUB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VLD__MS(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VLD1_SL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VLD1_SAL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VLD2_SL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VLD2_SAL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VLD3_SL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VLD3_SAL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VLD4_SL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VLD4_SAL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VLDM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VLDR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMAXMIN(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMAXMIN_FP(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VML__(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VML__FP(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VML__S(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMOV_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMOV_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMOV_RS(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMOV_SR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMOV_RF(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMOV_2RF(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMOV_2RD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMOVL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMOVN(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMRS(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMSR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMUL_(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMUL_FP(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMUL_S(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMVN_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VMVN_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VNEG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VNM__(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VORN_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VORR_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VORR_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VPADAL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VPADD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VPADD_FP(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VPADDL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VPMAXMIN(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VPMAXMIN_FP(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VPOP(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VPUSH(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQABS(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQADD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQDML_L(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQDMULH(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQDMULL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQMOV_N(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQNEG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQRDMULH(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQRSHL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQRSHR_N(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQSHL_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQSHL_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQSHR_N(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VQSUB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VRADDHN(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VRECPE(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VRECPS(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VREV__(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VRHADD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VRSHL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VRSHR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VRSHRN(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VRSQRTE(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VRSQRTS(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VRSRA(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VRSUBHN(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSHL_IMM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSHL_REG(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSHLL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSHR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSHRN(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSLI(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSQRT(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSRA(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSRI(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VST__MS(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VST1_SL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VST2_SL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VST3_SL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VST4_SL(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSTM(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSTR(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSUB(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSUB_FP(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSUBHN(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSUB_(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VSWP(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VTB_(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VTRN(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VTST(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VUZP(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::VZIP(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template -void ARMv7DisAsm::WFE(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::WFI(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - -template -void ARMv7DisAsm::YIELD(const u32 op, const u32 cond) -{ - write("%s<%s>", __func__, fmt_encoding()); -} - - -template void ARMv7DisAsm::HACK(const u32, const u32); -template void ARMv7DisAsm::HACK(const u32, const u32); -template void ARMv7DisAsm::ADC_IMM(const u32, const u32); -template void ARMv7DisAsm::ADC_IMM(const u32, const u32); -template void ARMv7DisAsm::ADC_REG(const u32, const u32); -template void ARMv7DisAsm::ADC_REG(const u32, const u32); -template void ARMv7DisAsm::ADC_REG(const u32, const u32); -template void ARMv7DisAsm::ADC_RSR(const u32, const u32); -template void ARMv7DisAsm::ADD_IMM(const u32, const u32); -template void ARMv7DisAsm::ADD_IMM(const u32, const u32); -template void ARMv7DisAsm::ADD_IMM(const u32, const u32); -template void ARMv7DisAsm::ADD_IMM(const u32, const u32); -template void ARMv7DisAsm::ADD_IMM(const u32, const u32); -template void ARMv7DisAsm::ADD_REG(const u32, const u32); -template void ARMv7DisAsm::ADD_REG(const u32, const u32); -template void ARMv7DisAsm::ADD_REG(const u32, const u32); -template void ARMv7DisAsm::ADD_REG(const u32, const u32); -template void ARMv7DisAsm::ADD_RSR(const u32, const u32); -template void ARMv7DisAsm::ADD_SPI(const u32, const u32); -template void ARMv7DisAsm::ADD_SPI(const u32, const u32); -template void ARMv7DisAsm::ADD_SPI(const u32, const u32); -template void ARMv7DisAsm::ADD_SPI(const u32, const u32); -template void ARMv7DisAsm::ADD_SPI(const u32, const u32); -template void ARMv7DisAsm::ADD_SPR(const u32, const u32); -template void ARMv7DisAsm::ADD_SPR(const u32, const u32); -template void ARMv7DisAsm::ADD_SPR(const u32, const u32); -template void ARMv7DisAsm::ADD_SPR(const u32, const u32); -template void ARMv7DisAsm::ADR(const u32, const u32); -template void ARMv7DisAsm::ADR(const u32, const u32); -template void ARMv7DisAsm::ADR(const u32, const u32); -template void ARMv7DisAsm::ADR(const u32, const u32); -template void ARMv7DisAsm::ADR(const u32, const u32); -template void ARMv7DisAsm::AND_IMM(const u32, const u32); -template void ARMv7DisAsm::AND_IMM(const u32, const u32); -template void ARMv7DisAsm::AND_REG(const u32, const u32); -template void ARMv7DisAsm::AND_REG(const u32, const u32); -template void ARMv7DisAsm::AND_REG(const u32, const u32); -template void ARMv7DisAsm::AND_RSR(const u32, const u32); -template void ARMv7DisAsm::ASR_IMM(const u32, const u32); -template void ARMv7DisAsm::ASR_IMM(const u32, const u32); -template void ARMv7DisAsm::ASR_IMM(const u32, const u32); -template void ARMv7DisAsm::ASR_REG(const u32, const u32); -template void ARMv7DisAsm::ASR_REG(const u32, const u32); -template void ARMv7DisAsm::ASR_REG(const u32, const u32); -template void ARMv7DisAsm::B(const u32, const u32); -template void ARMv7DisAsm::B(const u32, const u32); -template void ARMv7DisAsm::B(const u32, const u32); -template void ARMv7DisAsm::B(const u32, const u32); -template void ARMv7DisAsm::B(const u32, const u32); -template void ARMv7DisAsm::BFC(const u32, const u32); -template void ARMv7DisAsm::BFC(const u32, const u32); -template void ARMv7DisAsm::BFI(const u32, const u32); -template void ARMv7DisAsm::BFI(const u32, const u32); -template void ARMv7DisAsm::BIC_IMM(const u32, const u32); -template void ARMv7DisAsm::BIC_IMM(const u32, const u32); -template void ARMv7DisAsm::BIC_REG(const u32, const u32); -template void ARMv7DisAsm::BIC_REG(const u32, const u32); -template void ARMv7DisAsm::BIC_REG(const u32, const u32); -template void ARMv7DisAsm::BIC_RSR(const u32, const u32); -template void ARMv7DisAsm::BKPT(const u32, const u32); -template void ARMv7DisAsm::BKPT(const u32, const u32); -template void ARMv7DisAsm::BL(const u32, const u32); -template void ARMv7DisAsm::BL(const u32, const u32); -template void ARMv7DisAsm::BL(const u32, const u32); -template void ARMv7DisAsm::BL(const u32, const u32); -template void ARMv7DisAsm::BLX(const u32, const u32); -template void ARMv7DisAsm::BLX(const u32, const u32); -template void ARMv7DisAsm::BX(const u32, const u32); -template void ARMv7DisAsm::BX(const u32, const u32); -template void ARMv7DisAsm::CB_Z(const u32, const u32); -template void ARMv7DisAsm::CLZ(const u32, const u32); -template void ARMv7DisAsm::CLZ(const u32, const u32); -template void ARMv7DisAsm::CMN_IMM(const u32, const u32); -template void ARMv7DisAsm::CMN_IMM(const u32, const u32); -template void ARMv7DisAsm::CMN_REG(const u32, const u32); -template void ARMv7DisAsm::CMN_REG(const u32, const u32); -template void ARMv7DisAsm::CMN_REG(const u32, const u32); -template void ARMv7DisAsm::CMN_RSR(const u32, const u32); -template void ARMv7DisAsm::CMP_IMM(const u32, const u32); -template void ARMv7DisAsm::CMP_IMM(const u32, const u32); -template void ARMv7DisAsm::CMP_IMM(const u32, const u32); -template void ARMv7DisAsm::CMP_REG(const u32, const u32); -template void ARMv7DisAsm::CMP_REG(const u32, const u32); -template void ARMv7DisAsm::CMP_REG(const u32, const u32); -template void ARMv7DisAsm::CMP_REG(const u32, const u32); -template void ARMv7DisAsm::CMP_RSR(const u32, const u32); -template void ARMv7DisAsm::DBG(const u32, const u32); -template void ARMv7DisAsm::DBG(const u32, const u32); -template void ARMv7DisAsm::DMB(const u32, const u32); -template void ARMv7DisAsm::DMB(const u32, const u32); -template void ARMv7DisAsm::DSB(const u32, const u32); -template void ARMv7DisAsm::DSB(const u32, const u32); -template void ARMv7DisAsm::EOR_IMM(const u32, const u32); -template void ARMv7DisAsm::EOR_IMM(const u32, const u32); -template void ARMv7DisAsm::EOR_REG(const u32, const u32); -template void ARMv7DisAsm::EOR_REG(const u32, const u32); -template void ARMv7DisAsm::EOR_REG(const u32, const u32); -template void ARMv7DisAsm::EOR_RSR(const u32, const u32); -template void ARMv7DisAsm::IT(const u32, const u32); -template void ARMv7DisAsm::LDM(const u32, const u32); -template void ARMv7DisAsm::LDM(const u32, const u32); -template void ARMv7DisAsm::LDM(const u32, const u32); -template void ARMv7DisAsm::LDMDA(const u32, const u32); -template void ARMv7DisAsm::LDMDB(const u32, const u32); -template void ARMv7DisAsm::LDMDB(const u32, const u32); -template void ARMv7DisAsm::LDMIB(const u32, const u32); -template void ARMv7DisAsm::LDR_IMM(const u32, const u32); -template void ARMv7DisAsm::LDR_IMM(const u32, const u32); -template void ARMv7DisAsm::LDR_IMM(const u32, const u32); -template void ARMv7DisAsm::LDR_IMM(const u32, const u32); -template void ARMv7DisAsm::LDR_IMM(const u32, const u32); -template void ARMv7DisAsm::LDR_LIT(const u32, const u32); -template void ARMv7DisAsm::LDR_LIT(const u32, const u32); -template void ARMv7DisAsm::LDR_LIT(const u32, const u32); -template void ARMv7DisAsm::LDR_REG(const u32, const u32); -template void ARMv7DisAsm::LDR_REG(const u32, const u32); -template void ARMv7DisAsm::LDR_REG(const u32, const u32); -template void ARMv7DisAsm::LDRB_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRB_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRB_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRB_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRB_LIT(const u32, const u32); -template void ARMv7DisAsm::LDRB_LIT(const u32, const u32); -template void ARMv7DisAsm::LDRB_REG(const u32, const u32); -template void ARMv7DisAsm::LDRB_REG(const u32, const u32); -template void ARMv7DisAsm::LDRB_REG(const u32, const u32); -template void ARMv7DisAsm::LDRD_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRD_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRD_LIT(const u32, const u32); -template void ARMv7DisAsm::LDRD_LIT(const u32, const u32); -template void ARMv7DisAsm::LDRD_REG(const u32, const u32); -template void ARMv7DisAsm::LDREX(const u32, const u32); -template void ARMv7DisAsm::LDREX(const u32, const u32); -template void ARMv7DisAsm::LDREXB(const u32, const u32); -template void ARMv7DisAsm::LDREXB(const u32, const u32); -template void ARMv7DisAsm::LDREXD(const u32, const u32); -template void ARMv7DisAsm::LDREXD(const u32, const u32); -template void ARMv7DisAsm::LDREXH(const u32, const u32); -template void ARMv7DisAsm::LDREXH(const u32, const u32); -template void ARMv7DisAsm::LDRH_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRH_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRH_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRH_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRH_LIT(const u32, const u32); -template void ARMv7DisAsm::LDRH_LIT(const u32, const u32); -template void ARMv7DisAsm::LDRH_REG(const u32, const u32); -template void ARMv7DisAsm::LDRH_REG(const u32, const u32); -template void ARMv7DisAsm::LDRH_REG(const u32, const u32); -template void ARMv7DisAsm::LDRSB_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRSB_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRSB_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRSB_LIT(const u32, const u32); -template void ARMv7DisAsm::LDRSB_LIT(const u32, const u32); -template void ARMv7DisAsm::LDRSB_REG(const u32, const u32); -template void ARMv7DisAsm::LDRSB_REG(const u32, const u32); -template void ARMv7DisAsm::LDRSB_REG(const u32, const u32); -template void ARMv7DisAsm::LDRSH_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRSH_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRSH_IMM(const u32, const u32); -template void ARMv7DisAsm::LDRSH_LIT(const u32, const u32); -template void ARMv7DisAsm::LDRSH_LIT(const u32, const u32); -template void ARMv7DisAsm::LDRSH_REG(const u32, const u32); -template void ARMv7DisAsm::LDRSH_REG(const u32, const u32); -template void ARMv7DisAsm::LDRSH_REG(const u32, const u32); -template void ARMv7DisAsm::LSL_IMM(const u32, const u32); -template void ARMv7DisAsm::LSL_IMM(const u32, const u32); -template void ARMv7DisAsm::LSL_IMM(const u32, const u32); -template void ARMv7DisAsm::LSL_REG(const u32, const u32); -template void ARMv7DisAsm::LSL_REG(const u32, const u32); -template void ARMv7DisAsm::LSL_REG(const u32, const u32); -template void ARMv7DisAsm::LSR_IMM(const u32, const u32); -template void ARMv7DisAsm::LSR_IMM(const u32, const u32); -template void ARMv7DisAsm::LSR_IMM(const u32, const u32); -template void ARMv7DisAsm::LSR_REG(const u32, const u32); -template void ARMv7DisAsm::LSR_REG(const u32, const u32); -template void ARMv7DisAsm::LSR_REG(const u32, const u32); -template void ARMv7DisAsm::MLA(const u32, const u32); -template void ARMv7DisAsm::MLA(const u32, const u32); -template void ARMv7DisAsm::MLS(const u32, const u32); -template void ARMv7DisAsm::MLS(const u32, const u32); -template void ARMv7DisAsm::MOV_IMM(const u32, const u32); -template void ARMv7DisAsm::MOV_IMM(const u32, const u32); -template void ARMv7DisAsm::MOV_IMM(const u32, const u32); -template void ARMv7DisAsm::MOV_IMM(const u32, const u32); -template void ARMv7DisAsm::MOV_IMM(const u32, const u32); -template void ARMv7DisAsm::MOV_REG(const u32, const u32); -template void ARMv7DisAsm::MOV_REG(const u32, const u32); -template void ARMv7DisAsm::MOV_REG(const u32, const u32); -template void ARMv7DisAsm::MOV_REG(const u32, const u32); -template void ARMv7DisAsm::MOVT(const u32, const u32); -template void ARMv7DisAsm::MOVT(const u32, const u32); -template void ARMv7DisAsm::MRC_(const u32, const u32); -template void ARMv7DisAsm::MRC_(const u32, const u32); -template void ARMv7DisAsm::MRC_(const u32, const u32); -template void ARMv7DisAsm::MRC_(const u32, const u32); -template void ARMv7DisAsm::MRS(const u32, const u32); -template void ARMv7DisAsm::MRS(const u32, const u32); -template void ARMv7DisAsm::MSR_IMM(const u32, const u32); -template void ARMv7DisAsm::MSR_REG(const u32, const u32); -template void ARMv7DisAsm::MSR_REG(const u32, const u32); -template void ARMv7DisAsm::MUL(const u32, const u32); -template void ARMv7DisAsm::MUL(const u32, const u32); -template void ARMv7DisAsm::MUL(const u32, const u32); -template void ARMv7DisAsm::MVN_IMM(const u32, const u32); -template void ARMv7DisAsm::MVN_IMM(const u32, const u32); -template void ARMv7DisAsm::MVN_REG(const u32, const u32); -template void ARMv7DisAsm::MVN_REG(const u32, const u32); -template void ARMv7DisAsm::MVN_REG(const u32, const u32); -template void ARMv7DisAsm::MVN_RSR(const u32, const u32); -template void ARMv7DisAsm::NOP(const u32, const u32); -template void ARMv7DisAsm::NOP(const u32, const u32); -template void ARMv7DisAsm::NOP(const u32, const u32); -template void ARMv7DisAsm::ORN_IMM(const u32, const u32); -template void ARMv7DisAsm::ORN_REG(const u32, const u32); -template void ARMv7DisAsm::ORR_IMM(const u32, const u32); -template void ARMv7DisAsm::ORR_IMM(const u32, const u32); -template void ARMv7DisAsm::ORR_REG(const u32, const u32); -template void ARMv7DisAsm::ORR_REG(const u32, const u32); -template void ARMv7DisAsm::ORR_REG(const u32, const u32); -template void ARMv7DisAsm::ORR_RSR(const u32, const u32); -template void ARMv7DisAsm::PKH(const u32, const u32); -template void ARMv7DisAsm::PKH(const u32, const u32); -template void ARMv7DisAsm::POP(const u32, const u32); -template void ARMv7DisAsm::POP(const u32, const u32); -template void ARMv7DisAsm::POP(const u32, const u32); -template void ARMv7DisAsm::POP(const u32, const u32); -template void ARMv7DisAsm::POP(const u32, const u32); -template void ARMv7DisAsm::PUSH(const u32, const u32); -template void ARMv7DisAsm::PUSH(const u32, const u32); -template void ARMv7DisAsm::PUSH(const u32, const u32); -template void ARMv7DisAsm::PUSH(const u32, const u32); -template void ARMv7DisAsm::PUSH(const u32, const u32); -template void ARMv7DisAsm::QADD(const u32, const u32); -template void ARMv7DisAsm::QADD(const u32, const u32); -template void ARMv7DisAsm::QADD16(const u32, const u32); -template void ARMv7DisAsm::QADD16(const u32, const u32); -template void ARMv7DisAsm::QADD8(const u32, const u32); -template void ARMv7DisAsm::QADD8(const u32, const u32); -template void ARMv7DisAsm::QASX(const u32, const u32); -template void ARMv7DisAsm::QASX(const u32, const u32); -template void ARMv7DisAsm::QDADD(const u32, const u32); -template void ARMv7DisAsm::QDADD(const u32, const u32); -template void ARMv7DisAsm::QDSUB(const u32, const u32); -template void ARMv7DisAsm::QDSUB(const u32, const u32); -template void ARMv7DisAsm::QSAX(const u32, const u32); -template void ARMv7DisAsm::QSAX(const u32, const u32); -template void ARMv7DisAsm::QSUB(const u32, const u32); -template void ARMv7DisAsm::QSUB(const u32, const u32); -template void ARMv7DisAsm::QSUB16(const u32, const u32); -template void ARMv7DisAsm::QSUB16(const u32, const u32); -template void ARMv7DisAsm::QSUB8(const u32, const u32); -template void ARMv7DisAsm::QSUB8(const u32, const u32); -template void ARMv7DisAsm::RBIT(const u32, const u32); -template void ARMv7DisAsm::RBIT(const u32, const u32); -template void ARMv7DisAsm::REV(const u32, const u32); -template void ARMv7DisAsm::REV(const u32, const u32); -template void ARMv7DisAsm::REV(const u32, const u32); -template void ARMv7DisAsm::REV16(const u32, const u32); -template void ARMv7DisAsm::REV16(const u32, const u32); -template void ARMv7DisAsm::REV16(const u32, const u32); -template void ARMv7DisAsm::REVSH(const u32, const u32); -template void ARMv7DisAsm::REVSH(const u32, const u32); -template void ARMv7DisAsm::REVSH(const u32, const u32); -template void ARMv7DisAsm::ROR_IMM(const u32, const u32); -template void ARMv7DisAsm::ROR_IMM(const u32, const u32); -template void ARMv7DisAsm::ROR_REG(const u32, const u32); -template void ARMv7DisAsm::ROR_REG(const u32, const u32); -template void ARMv7DisAsm::ROR_REG(const u32, const u32); -template void ARMv7DisAsm::RRX(const u32, const u32); -template void ARMv7DisAsm::RRX(const u32, const u32); -template void ARMv7DisAsm::RSB_IMM(const u32, const u32); -template void ARMv7DisAsm::RSB_IMM(const u32, const u32); -template void ARMv7DisAsm::RSB_IMM(const u32, const u32); -template void ARMv7DisAsm::RSB_REG(const u32, const u32); -template void ARMv7DisAsm::RSB_REG(const u32, const u32); -template void ARMv7DisAsm::RSB_RSR(const u32, const u32); -template void ARMv7DisAsm::RSC_IMM(const u32, const u32); -template void ARMv7DisAsm::RSC_REG(const u32, const u32); -template void ARMv7DisAsm::RSC_RSR(const u32, const u32); -template void ARMv7DisAsm::SADD16(const u32, const u32); -template void ARMv7DisAsm::SADD16(const u32, const u32); -template void ARMv7DisAsm::SADD8(const u32, const u32); -template void ARMv7DisAsm::SADD8(const u32, const u32); -template void ARMv7DisAsm::SASX(const u32, const u32); -template void ARMv7DisAsm::SASX(const u32, const u32); -template void ARMv7DisAsm::SBC_IMM(const u32, const u32); -template void ARMv7DisAsm::SBC_IMM(const u32, const u32); -template void ARMv7DisAsm::SBC_REG(const u32, const u32); -template void ARMv7DisAsm::SBC_REG(const u32, const u32); -template void ARMv7DisAsm::SBC_REG(const u32, const u32); -template void ARMv7DisAsm::SBC_RSR(const u32, const u32); -template void ARMv7DisAsm::SBFX(const u32, const u32); -template void ARMv7DisAsm::SBFX(const u32, const u32); -template void ARMv7DisAsm::SDIV(const u32, const u32); -template void ARMv7DisAsm::SEL(const u32, const u32); -template void ARMv7DisAsm::SEL(const u32, const u32); -template void ARMv7DisAsm::SHADD16(const u32, const u32); -template void ARMv7DisAsm::SHADD16(const u32, const u32); -template void ARMv7DisAsm::SHADD8(const u32, const u32); -template void ARMv7DisAsm::SHADD8(const u32, const u32); -template void ARMv7DisAsm::SHASX(const u32, const u32); -template void ARMv7DisAsm::SHASX(const u32, const u32); -template void ARMv7DisAsm::SHSAX(const u32, const u32); -template void ARMv7DisAsm::SHSAX(const u32, const u32); -template void ARMv7DisAsm::SHSUB16(const u32, const u32); -template void ARMv7DisAsm::SHSUB16(const u32, const u32); -template void ARMv7DisAsm::SHSUB8(const u32, const u32); -template void ARMv7DisAsm::SHSUB8(const u32, const u32); -template void ARMv7DisAsm::SMLA__(const u32, const u32); -template void ARMv7DisAsm::SMLA__(const u32, const u32); -template void ARMv7DisAsm::SMLAD(const u32, const u32); -template void ARMv7DisAsm::SMLAD(const u32, const u32); -template void ARMv7DisAsm::SMLAL(const u32, const u32); -template void ARMv7DisAsm::SMLAL(const u32, const u32); -template void ARMv7DisAsm::SMLAL__(const u32, const u32); -template void ARMv7DisAsm::SMLAL__(const u32, const u32); -template void ARMv7DisAsm::SMLALD(const u32, const u32); -template void ARMv7DisAsm::SMLALD(const u32, const u32); -template void ARMv7DisAsm::SMLAW_(const u32, const u32); -template void ARMv7DisAsm::SMLAW_(const u32, const u32); -template void ARMv7DisAsm::SMLSD(const u32, const u32); -template void ARMv7DisAsm::SMLSD(const u32, const u32); -template void ARMv7DisAsm::SMLSLD(const u32, const u32); -template void ARMv7DisAsm::SMLSLD(const u32, const u32); -template void ARMv7DisAsm::SMMLA(const u32, const u32); -template void ARMv7DisAsm::SMMLA(const u32, const u32); -template void ARMv7DisAsm::SMMLS(const u32, const u32); -template void ARMv7DisAsm::SMMLS(const u32, const u32); -template void ARMv7DisAsm::SMMUL(const u32, const u32); -template void ARMv7DisAsm::SMMUL(const u32, const u32); -template void ARMv7DisAsm::SMUAD(const u32, const u32); -template void ARMv7DisAsm::SMUAD(const u32, const u32); -template void ARMv7DisAsm::SMUL__(const u32, const u32); -template void ARMv7DisAsm::SMUL__(const u32, const u32); -template void ARMv7DisAsm::SMULL(const u32, const u32); -template void ARMv7DisAsm::SMULL(const u32, const u32); -template void ARMv7DisAsm::SMULW_(const u32, const u32); -template void ARMv7DisAsm::SMULW_(const u32, const u32); -template void ARMv7DisAsm::SMUSD(const u32, const u32); -template void ARMv7DisAsm::SMUSD(const u32, const u32); -template void ARMv7DisAsm::SSAT(const u32, const u32); -template void ARMv7DisAsm::SSAT(const u32, const u32); -template void ARMv7DisAsm::SSAT16(const u32, const u32); -template void ARMv7DisAsm::SSAT16(const u32, const u32); -template void ARMv7DisAsm::SSAX(const u32, const u32); -template void ARMv7DisAsm::SSAX(const u32, const u32); -template void ARMv7DisAsm::SSUB16(const u32, const u32); -template void ARMv7DisAsm::SSUB16(const u32, const u32); -template void ARMv7DisAsm::SSUB8(const u32, const u32); -template void ARMv7DisAsm::SSUB8(const u32, const u32); -template void ARMv7DisAsm::STM(const u32, const u32); -template void ARMv7DisAsm::STM(const u32, const u32); -template void ARMv7DisAsm::STM(const u32, const u32); -template void ARMv7DisAsm::STMDA(const u32, const u32); -template void ARMv7DisAsm::STMDB(const u32, const u32); -template void ARMv7DisAsm::STMDB(const u32, const u32); -template void ARMv7DisAsm::STMIB(const u32, const u32); -template void ARMv7DisAsm::STR_IMM(const u32, const u32); -template void ARMv7DisAsm::STR_IMM(const u32, const u32); -template void ARMv7DisAsm::STR_IMM(const u32, const u32); -template void ARMv7DisAsm::STR_IMM(const u32, const u32); -template void ARMv7DisAsm::STR_IMM(const u32, const u32); -template void ARMv7DisAsm::STR_REG(const u32, const u32); -template void ARMv7DisAsm::STR_REG(const u32, const u32); -template void ARMv7DisAsm::STR_REG(const u32, const u32); -template void ARMv7DisAsm::STRB_IMM(const u32, const u32); -template void ARMv7DisAsm::STRB_IMM(const u32, const u32); -template void ARMv7DisAsm::STRB_IMM(const u32, const u32); -template void ARMv7DisAsm::STRB_IMM(const u32, const u32); -template void ARMv7DisAsm::STRB_REG(const u32, const u32); -template void ARMv7DisAsm::STRB_REG(const u32, const u32); -template void ARMv7DisAsm::STRB_REG(const u32, const u32); -template void ARMv7DisAsm::STRD_IMM(const u32, const u32); -template void ARMv7DisAsm::STRD_IMM(const u32, const u32); -template void ARMv7DisAsm::STRD_REG(const u32, const u32); -template void ARMv7DisAsm::STREX(const u32, const u32); -template void ARMv7DisAsm::STREX(const u32, const u32); -template void ARMv7DisAsm::STREXB(const u32, const u32); -template void ARMv7DisAsm::STREXB(const u32, const u32); -template void ARMv7DisAsm::STREXD(const u32, const u32); -template void ARMv7DisAsm::STREXD(const u32, const u32); -template void ARMv7DisAsm::STREXH(const u32, const u32); -template void ARMv7DisAsm::STREXH(const u32, const u32); -template void ARMv7DisAsm::STRH_IMM(const u32, const u32); -template void ARMv7DisAsm::STRH_IMM(const u32, const u32); -template void ARMv7DisAsm::STRH_IMM(const u32, const u32); -template void ARMv7DisAsm::STRH_IMM(const u32, const u32); -template void ARMv7DisAsm::STRH_REG(const u32, const u32); -template void ARMv7DisAsm::STRH_REG(const u32, const u32); -template void ARMv7DisAsm::STRH_REG(const u32, const u32); -template void ARMv7DisAsm::SUB_IMM(const u32, const u32); -template void ARMv7DisAsm::SUB_IMM(const u32, const u32); -template void ARMv7DisAsm::SUB_IMM(const u32, const u32); -template void ARMv7DisAsm::SUB_IMM(const u32, const u32); -template void ARMv7DisAsm::SUB_IMM(const u32, const u32); -template void ARMv7DisAsm::SUB_REG(const u32, const u32); -template void ARMv7DisAsm::SUB_REG(const u32, const u32); -template void ARMv7DisAsm::SUB_REG(const u32, const u32); -template void ARMv7DisAsm::SUB_RSR(const u32, const u32); -template void ARMv7DisAsm::SUB_SPI(const u32, const u32); -template void ARMv7DisAsm::SUB_SPI(const u32, const u32); -template void ARMv7DisAsm::SUB_SPI(const u32, const u32); -template void ARMv7DisAsm::SUB_SPI(const u32, const u32); -template void ARMv7DisAsm::SUB_SPR(const u32, const u32); -template void ARMv7DisAsm::SUB_SPR(const u32, const u32); -template void ARMv7DisAsm::SVC(const u32, const u32); -template void ARMv7DisAsm::SVC(const u32, const u32); -template void ARMv7DisAsm::SXTAB(const u32, const u32); -template void ARMv7DisAsm::SXTAB(const u32, const u32); -template void ARMv7DisAsm::SXTAB16(const u32, const u32); -template void ARMv7DisAsm::SXTAB16(const u32, const u32); -template void ARMv7DisAsm::SXTAH(const u32, const u32); -template void ARMv7DisAsm::SXTAH(const u32, const u32); -template void ARMv7DisAsm::SXTB(const u32, const u32); -template void ARMv7DisAsm::SXTB(const u32, const u32); -template void ARMv7DisAsm::SXTB(const u32, const u32); -template void ARMv7DisAsm::SXTB16(const u32, const u32); -template void ARMv7DisAsm::SXTB16(const u32, const u32); -template void ARMv7DisAsm::SXTH(const u32, const u32); -template void ARMv7DisAsm::SXTH(const u32, const u32); -template void ARMv7DisAsm::SXTH(const u32, const u32); -template void ARMv7DisAsm::TB_(const u32, const u32); -template void ARMv7DisAsm::TEQ_IMM(const u32, const u32); -template void ARMv7DisAsm::TEQ_IMM(const u32, const u32); -template void ARMv7DisAsm::TEQ_REG(const u32, const u32); -template void ARMv7DisAsm::TEQ_REG(const u32, const u32); -template void ARMv7DisAsm::TEQ_RSR(const u32, const u32); -template void ARMv7DisAsm::TST_IMM(const u32, const u32); -template void ARMv7DisAsm::TST_IMM(const u32, const u32); -template void ARMv7DisAsm::TST_REG(const u32, const u32); -template void ARMv7DisAsm::TST_REG(const u32, const u32); -template void ARMv7DisAsm::TST_REG(const u32, const u32); -template void ARMv7DisAsm::TST_RSR(const u32, const u32); -template void ARMv7DisAsm::UADD16(const u32, const u32); -template void ARMv7DisAsm::UADD16(const u32, const u32); -template void ARMv7DisAsm::UADD8(const u32, const u32); -template void ARMv7DisAsm::UADD8(const u32, const u32); -template void ARMv7DisAsm::UASX(const u32, const u32); -template void ARMv7DisAsm::UASX(const u32, const u32); -template void ARMv7DisAsm::UBFX(const u32, const u32); -template void ARMv7DisAsm::UBFX(const u32, const u32); -template void ARMv7DisAsm::UDIV(const u32, const u32); -template void ARMv7DisAsm::UHADD16(const u32, const u32); -template void ARMv7DisAsm::UHADD16(const u32, const u32); -template void ARMv7DisAsm::UHADD8(const u32, const u32); -template void ARMv7DisAsm::UHADD8(const u32, const u32); -template void ARMv7DisAsm::UHASX(const u32, const u32); -template void ARMv7DisAsm::UHASX(const u32, const u32); -template void ARMv7DisAsm::UHSAX(const u32, const u32); -template void ARMv7DisAsm::UHSAX(const u32, const u32); -template void ARMv7DisAsm::UHSUB16(const u32, const u32); -template void ARMv7DisAsm::UHSUB16(const u32, const u32); -template void ARMv7DisAsm::UHSUB8(const u32, const u32); -template void ARMv7DisAsm::UHSUB8(const u32, const u32); -template void ARMv7DisAsm::UMAAL(const u32, const u32); -template void ARMv7DisAsm::UMAAL(const u32, const u32); -template void ARMv7DisAsm::UMLAL(const u32, const u32); -template void ARMv7DisAsm::UMLAL(const u32, const u32); -template void ARMv7DisAsm::UMULL(const u32, const u32); -template void ARMv7DisAsm::UMULL(const u32, const u32); -template void ARMv7DisAsm::UQADD16(const u32, const u32); -template void ARMv7DisAsm::UQADD16(const u32, const u32); -template void ARMv7DisAsm::UQADD8(const u32, const u32); -template void ARMv7DisAsm::UQADD8(const u32, const u32); -template void ARMv7DisAsm::UQASX(const u32, const u32); -template void ARMv7DisAsm::UQASX(const u32, const u32); -template void ARMv7DisAsm::UQSAX(const u32, const u32); -template void ARMv7DisAsm::UQSAX(const u32, const u32); -template void ARMv7DisAsm::UQSUB16(const u32, const u32); -template void ARMv7DisAsm::UQSUB16(const u32, const u32); -template void ARMv7DisAsm::UQSUB8(const u32, const u32); -template void ARMv7DisAsm::UQSUB8(const u32, const u32); -template void ARMv7DisAsm::USAD8(const u32, const u32); -template void ARMv7DisAsm::USAD8(const u32, const u32); -template void ARMv7DisAsm::USADA8(const u32, const u32); -template void ARMv7DisAsm::USADA8(const u32, const u32); -template void ARMv7DisAsm::USAT(const u32, const u32); -template void ARMv7DisAsm::USAT(const u32, const u32); -template void ARMv7DisAsm::USAT16(const u32, const u32); -template void ARMv7DisAsm::USAT16(const u32, const u32); -template void ARMv7DisAsm::USAX(const u32, const u32); -template void ARMv7DisAsm::USAX(const u32, const u32); -template void ARMv7DisAsm::USUB16(const u32, const u32); -template void ARMv7DisAsm::USUB16(const u32, const u32); -template void ARMv7DisAsm::USUB8(const u32, const u32); -template void ARMv7DisAsm::USUB8(const u32, const u32); -template void ARMv7DisAsm::UXTAB(const u32, const u32); -template void ARMv7DisAsm::UXTAB(const u32, const u32); -template void ARMv7DisAsm::UXTAB16(const u32, const u32); -template void ARMv7DisAsm::UXTAB16(const u32, const u32); -template void ARMv7DisAsm::UXTAH(const u32, const u32); -template void ARMv7DisAsm::UXTAH(const u32, const u32); -template void ARMv7DisAsm::UXTB(const u32, const u32); -template void ARMv7DisAsm::UXTB(const u32, const u32); -template void ARMv7DisAsm::UXTB(const u32, const u32); -template void ARMv7DisAsm::UXTB16(const u32, const u32); -template void ARMv7DisAsm::UXTB16(const u32, const u32); -template void ARMv7DisAsm::UXTH(const u32, const u32); -template void ARMv7DisAsm::UXTH(const u32, const u32); -template void ARMv7DisAsm::UXTH(const u32, const u32); -template void ARMv7DisAsm::VABA_(const u32, const u32); -template void ARMv7DisAsm::VABA_(const u32, const u32); -template void ARMv7DisAsm::VABA_(const u32, const u32); -template void ARMv7DisAsm::VABA_(const u32, const u32); -template void ARMv7DisAsm::VABD_(const u32, const u32); -template void ARMv7DisAsm::VABD_(const u32, const u32); -template void ARMv7DisAsm::VABD_(const u32, const u32); -template void ARMv7DisAsm::VABD_(const u32, const u32); -template void ARMv7DisAsm::VABD_FP(const u32, const u32); -template void ARMv7DisAsm::VABD_FP(const u32, const u32); -template void ARMv7DisAsm::VABS(const u32, const u32); -template void ARMv7DisAsm::VABS(const u32, const u32); -template void ARMv7DisAsm::VABS(const u32, const u32); -template void ARMv7DisAsm::VABS(const u32, const u32); -template void ARMv7DisAsm::VAC__(const u32, const u32); -template void ARMv7DisAsm::VAC__(const u32, const u32); -template void ARMv7DisAsm::VADD(const u32, const u32); -template void ARMv7DisAsm::VADD(const u32, const u32); -template void ARMv7DisAsm::VADD_FP(const u32, const u32); -template void ARMv7DisAsm::VADD_FP(const u32, const u32); -template void ARMv7DisAsm::VADD_FP(const u32, const u32); -template void ARMv7DisAsm::VADD_FP(const u32, const u32); -template void ARMv7DisAsm::VADDHN(const u32, const u32); -template void ARMv7DisAsm::VADDHN(const u32, const u32); -template void ARMv7DisAsm::VADD_(const u32, const u32); -template void ARMv7DisAsm::VADD_(const u32, const u32); -template void ARMv7DisAsm::VAND(const u32, const u32); -template void ARMv7DisAsm::VAND(const u32, const u32); -template void ARMv7DisAsm::VBIC_IMM(const u32, const u32); -template void ARMv7DisAsm::VBIC_IMM(const u32, const u32); -template void ARMv7DisAsm::VBIC_REG(const u32, const u32); -template void ARMv7DisAsm::VBIC_REG(const u32, const u32); -template void ARMv7DisAsm::VB__(const u32, const u32); -template void ARMv7DisAsm::VB__(const u32, const u32); -template void ARMv7DisAsm::VCEQ_REG(const u32, const u32); -template void ARMv7DisAsm::VCEQ_REG(const u32, const u32); -template void ARMv7DisAsm::VCEQ_REG(const u32, const u32); -template void ARMv7DisAsm::VCEQ_REG(const u32, const u32); -template void ARMv7DisAsm::VCEQ_ZERO(const u32, const u32); -template void ARMv7DisAsm::VCEQ_ZERO(const u32, const u32); -template void ARMv7DisAsm::VCGE_REG(const u32, const u32); -template void ARMv7DisAsm::VCGE_REG(const u32, const u32); -template void ARMv7DisAsm::VCGE_REG(const u32, const u32); -template void ARMv7DisAsm::VCGE_REG(const u32, const u32); -template void ARMv7DisAsm::VCGE_ZERO(const u32, const u32); -template void ARMv7DisAsm::VCGE_ZERO(const u32, const u32); -template void ARMv7DisAsm::VCGT_REG(const u32, const u32); -template void ARMv7DisAsm::VCGT_REG(const u32, const u32); -template void ARMv7DisAsm::VCGT_REG(const u32, const u32); -template void ARMv7DisAsm::VCGT_REG(const u32, const u32); -template void ARMv7DisAsm::VCGT_ZERO(const u32, const u32); -template void ARMv7DisAsm::VCGT_ZERO(const u32, const u32); -template void ARMv7DisAsm::VCLE_ZERO(const u32, const u32); -template void ARMv7DisAsm::VCLE_ZERO(const u32, const u32); -template void ARMv7DisAsm::VCLS(const u32, const u32); -template void ARMv7DisAsm::VCLS(const u32, const u32); -template void ARMv7DisAsm::VCLT_ZERO(const u32, const u32); -template void ARMv7DisAsm::VCLT_ZERO(const u32, const u32); -template void ARMv7DisAsm::VCLZ(const u32, const u32); -template void ARMv7DisAsm::VCLZ(const u32, const u32); -template void ARMv7DisAsm::VCMP_(const u32, const u32); -template void ARMv7DisAsm::VCMP_(const u32, const u32); -template void ARMv7DisAsm::VCMP_(const u32, const u32); -template void ARMv7DisAsm::VCMP_(const u32, const u32); -template void ARMv7DisAsm::VCNT(const u32, const u32); -template void ARMv7DisAsm::VCNT(const u32, const u32); -template void ARMv7DisAsm::VCVT_FIA(const u32, const u32); -template void ARMv7DisAsm::VCVT_FIA(const u32, const u32); -template void ARMv7DisAsm::VCVT_FIF(const u32, const u32); -template void ARMv7DisAsm::VCVT_FIF(const u32, const u32); -template void ARMv7DisAsm::VCVT_FFA(const u32, const u32); -template void ARMv7DisAsm::VCVT_FFA(const u32, const u32); -template void ARMv7DisAsm::VCVT_FFF(const u32, const u32); -template void ARMv7DisAsm::VCVT_FFF(const u32, const u32); -template void ARMv7DisAsm::VCVT_DF(const u32, const u32); -template void ARMv7DisAsm::VCVT_DF(const u32, const u32); -template void ARMv7DisAsm::VCVT_HFA(const u32, const u32); -template void ARMv7DisAsm::VCVT_HFA(const u32, const u32); -template void ARMv7DisAsm::VCVT_HFF(const u32, const u32); -template void ARMv7DisAsm::VCVT_HFF(const u32, const u32); -template void ARMv7DisAsm::VDIV(const u32, const u32); -template void ARMv7DisAsm::VDIV(const u32, const u32); -template void ARMv7DisAsm::VDUP_S(const u32, const u32); -template void ARMv7DisAsm::VDUP_S(const u32, const u32); -template void ARMv7DisAsm::VDUP_R(const u32, const u32); -template void ARMv7DisAsm::VDUP_R(const u32, const u32); -template void ARMv7DisAsm::VEOR(const u32, const u32); -template void ARMv7DisAsm::VEOR(const u32, const u32); -template void ARMv7DisAsm::VEXT(const u32, const u32); -template void ARMv7DisAsm::VEXT(const u32, const u32); -template void ARMv7DisAsm::VHADDSUB(const u32, const u32); -template void ARMv7DisAsm::VHADDSUB(const u32, const u32); -template void ARMv7DisAsm::VLD__MS(const u32, const u32); -template void ARMv7DisAsm::VLD__MS(const u32, const u32); -template void ARMv7DisAsm::VLD1_SAL(const u32, const u32); -template void ARMv7DisAsm::VLD1_SAL(const u32, const u32); -template void ARMv7DisAsm::VLD1_SL(const u32, const u32); -template void ARMv7DisAsm::VLD1_SL(const u32, const u32); -template void ARMv7DisAsm::VLD2_SAL(const u32, const u32); -template void ARMv7DisAsm::VLD2_SAL(const u32, const u32); -template void ARMv7DisAsm::VLD2_SL(const u32, const u32); -template void ARMv7DisAsm::VLD2_SL(const u32, const u32); -template void ARMv7DisAsm::VLD3_SAL(const u32, const u32); -template void ARMv7DisAsm::VLD3_SAL(const u32, const u32); -template void ARMv7DisAsm::VLD3_SL(const u32, const u32); -template void ARMv7DisAsm::VLD3_SL(const u32, const u32); -template void ARMv7DisAsm::VLD4_SAL(const u32, const u32); -template void ARMv7DisAsm::VLD4_SAL(const u32, const u32); -template void ARMv7DisAsm::VLD4_SL(const u32, const u32); -template void ARMv7DisAsm::VLD4_SL(const u32, const u32); -template void ARMv7DisAsm::VLDM(const u32, const u32); -template void ARMv7DisAsm::VLDM(const u32, const u32); -template void ARMv7DisAsm::VLDM(const u32, const u32); -template void ARMv7DisAsm::VLDM(const u32, const u32); -template void ARMv7DisAsm::VLDR(const u32, const u32); -template void ARMv7DisAsm::VLDR(const u32, const u32); -template void ARMv7DisAsm::VLDR(const u32, const u32); -template void ARMv7DisAsm::VLDR(const u32, const u32); -template void ARMv7DisAsm::VMAXMIN(const u32, const u32); -template void ARMv7DisAsm::VMAXMIN(const u32, const u32); -template void ARMv7DisAsm::VMAXMIN_FP(const u32, const u32); -template void ARMv7DisAsm::VMAXMIN_FP(const u32, const u32); -template void ARMv7DisAsm::VML__(const u32, const u32); -template void ARMv7DisAsm::VML__(const u32, const u32); -template void ARMv7DisAsm::VML__(const u32, const u32); -template void ARMv7DisAsm::VML__(const u32, const u32); -template void ARMv7DisAsm::VML__FP(const u32, const u32); -template void ARMv7DisAsm::VML__FP(const u32, const u32); -template void ARMv7DisAsm::VML__FP(const u32, const u32); -template void ARMv7DisAsm::VML__FP(const u32, const u32); -template void ARMv7DisAsm::VML__S(const u32, const u32); -template void ARMv7DisAsm::VML__S(const u32, const u32); -template void ARMv7DisAsm::VML__S(const u32, const u32); -template void ARMv7DisAsm::VML__S(const u32, const u32); -template void ARMv7DisAsm::VMOV_IMM(const u32, const u32); -template void ARMv7DisAsm::VMOV_IMM(const u32, const u32); -template void ARMv7DisAsm::VMOV_IMM(const u32, const u32); -template void ARMv7DisAsm::VMOV_IMM(const u32, const u32); -template void ARMv7DisAsm::VMOV_REG(const u32, const u32); -template void ARMv7DisAsm::VMOV_REG(const u32, const u32); -template void ARMv7DisAsm::VMOV_REG(const u32, const u32); -template void ARMv7DisAsm::VMOV_REG(const u32, const u32); -template void ARMv7DisAsm::VMOV_RS(const u32, const u32); -template void ARMv7DisAsm::VMOV_RS(const u32, const u32); -template void ARMv7DisAsm::VMOV_SR(const u32, const u32); -template void ARMv7DisAsm::VMOV_SR(const u32, const u32); -template void ARMv7DisAsm::VMOV_RF(const u32, const u32); -template void ARMv7DisAsm::VMOV_RF(const u32, const u32); -template void ARMv7DisAsm::VMOV_2RF(const u32, const u32); -template void ARMv7DisAsm::VMOV_2RF(const u32, const u32); -template void ARMv7DisAsm::VMOV_2RD(const u32, const u32); -template void ARMv7DisAsm::VMOV_2RD(const u32, const u32); -template void ARMv7DisAsm::VMOVL(const u32, const u32); -template void ARMv7DisAsm::VMOVL(const u32, const u32); -template void ARMv7DisAsm::VMOVN(const u32, const u32); -template void ARMv7DisAsm::VMOVN(const u32, const u32); -template void ARMv7DisAsm::VMRS(const u32, const u32); -template void ARMv7DisAsm::VMRS(const u32, const u32); -template void ARMv7DisAsm::VMSR(const u32, const u32); -template void ARMv7DisAsm::VMSR(const u32, const u32); -template void ARMv7DisAsm::VMUL_(const u32, const u32); -template void ARMv7DisAsm::VMUL_(const u32, const u32); -template void ARMv7DisAsm::VMUL_(const u32, const u32); -template void ARMv7DisAsm::VMUL_(const u32, const u32); -template void ARMv7DisAsm::VMUL_FP(const u32, const u32); -template void ARMv7DisAsm::VMUL_FP(const u32, const u32); -template void ARMv7DisAsm::VMUL_FP(const u32, const u32); -template void ARMv7DisAsm::VMUL_FP(const u32, const u32); -template void ARMv7DisAsm::VMUL_S(const u32, const u32); -template void ARMv7DisAsm::VMUL_S(const u32, const u32); -template void ARMv7DisAsm::VMUL_S(const u32, const u32); -template void ARMv7DisAsm::VMUL_S(const u32, const u32); -template void ARMv7DisAsm::VMVN_IMM(const u32, const u32); -template void ARMv7DisAsm::VMVN_IMM(const u32, const u32); -template void ARMv7DisAsm::VMVN_REG(const u32, const u32); -template void ARMv7DisAsm::VMVN_REG(const u32, const u32); -template void ARMv7DisAsm::VNEG(const u32, const u32); -template void ARMv7DisAsm::VNEG(const u32, const u32); -template void ARMv7DisAsm::VNEG(const u32, const u32); -template void ARMv7DisAsm::VNEG(const u32, const u32); -template void ARMv7DisAsm::VNM__(const u32, const u32); -template void ARMv7DisAsm::VNM__(const u32, const u32); -template void ARMv7DisAsm::VNM__(const u32, const u32); -template void ARMv7DisAsm::VNM__(const u32, const u32); -template void ARMv7DisAsm::VORN_REG(const u32, const u32); -template void ARMv7DisAsm::VORN_REG(const u32, const u32); -template void ARMv7DisAsm::VORR_IMM(const u32, const u32); -template void ARMv7DisAsm::VORR_IMM(const u32, const u32); -template void ARMv7DisAsm::VORR_REG(const u32, const u32); -template void ARMv7DisAsm::VORR_REG(const u32, const u32); -template void ARMv7DisAsm::VPADAL(const u32, const u32); -template void ARMv7DisAsm::VPADAL(const u32, const u32); -template void ARMv7DisAsm::VPADD(const u32, const u32); -template void ARMv7DisAsm::VPADD(const u32, const u32); -template void ARMv7DisAsm::VPADD_FP(const u32, const u32); -template void ARMv7DisAsm::VPADD_FP(const u32, const u32); -template void ARMv7DisAsm::VPADDL(const u32, const u32); -template void ARMv7DisAsm::VPADDL(const u32, const u32); -template void ARMv7DisAsm::VPMAXMIN(const u32, const u32); -template void ARMv7DisAsm::VPMAXMIN(const u32, const u32); -template void ARMv7DisAsm::VPMAXMIN_FP(const u32, const u32); -template void ARMv7DisAsm::VPMAXMIN_FP(const u32, const u32); -template void ARMv7DisAsm::VPOP(const u32, const u32); -template void ARMv7DisAsm::VPOP(const u32, const u32); -template void ARMv7DisAsm::VPOP(const u32, const u32); -template void ARMv7DisAsm::VPOP(const u32, const u32); -template void ARMv7DisAsm::VPUSH(const u32, const u32); -template void ARMv7DisAsm::VPUSH(const u32, const u32); -template void ARMv7DisAsm::VPUSH(const u32, const u32); -template void ARMv7DisAsm::VPUSH(const u32, const u32); -template void ARMv7DisAsm::VQABS(const u32, const u32); -template void ARMv7DisAsm::VQABS(const u32, const u32); -template void ARMv7DisAsm::VQADD(const u32, const u32); -template void ARMv7DisAsm::VQADD(const u32, const u32); -template void ARMv7DisAsm::VQDML_L(const u32, const u32); -template void ARMv7DisAsm::VQDML_L(const u32, const u32); -template void ARMv7DisAsm::VQDML_L(const u32, const u32); -template void ARMv7DisAsm::VQDML_L(const u32, const u32); -template void ARMv7DisAsm::VQDMULH(const u32, const u32); -template void ARMv7DisAsm::VQDMULH(const u32, const u32); -template void ARMv7DisAsm::VQDMULH(const u32, const u32); -template void ARMv7DisAsm::VQDMULH(const u32, const u32); -template void ARMv7DisAsm::VQDMULL(const u32, const u32); -template void ARMv7DisAsm::VQDMULL(const u32, const u32); -template void ARMv7DisAsm::VQDMULL(const u32, const u32); -template void ARMv7DisAsm::VQDMULL(const u32, const u32); -template void ARMv7DisAsm::VQMOV_N(const u32, const u32); -template void ARMv7DisAsm::VQMOV_N(const u32, const u32); -template void ARMv7DisAsm::VQNEG(const u32, const u32); -template void ARMv7DisAsm::VQNEG(const u32, const u32); -template void ARMv7DisAsm::VQRDMULH(const u32, const u32); -template void ARMv7DisAsm::VQRDMULH(const u32, const u32); -template void ARMv7DisAsm::VQRDMULH(const u32, const u32); -template void ARMv7DisAsm::VQRDMULH(const u32, const u32); -template void ARMv7DisAsm::VQRSHL(const u32, const u32); -template void ARMv7DisAsm::VQRSHL(const u32, const u32); -template void ARMv7DisAsm::VQRSHR_N(const u32, const u32); -template void ARMv7DisAsm::VQRSHR_N(const u32, const u32); -template void ARMv7DisAsm::VQSHL_REG(const u32, const u32); -template void ARMv7DisAsm::VQSHL_REG(const u32, const u32); -template void ARMv7DisAsm::VQSHL_IMM(const u32, const u32); -template void ARMv7DisAsm::VQSHL_IMM(const u32, const u32); -template void ARMv7DisAsm::VQSHR_N(const u32, const u32); -template void ARMv7DisAsm::VQSHR_N(const u32, const u32); -template void ARMv7DisAsm::VQSUB(const u32, const u32); -template void ARMv7DisAsm::VQSUB(const u32, const u32); -template void ARMv7DisAsm::VRADDHN(const u32, const u32); -template void ARMv7DisAsm::VRADDHN(const u32, const u32); -template void ARMv7DisAsm::VRECPE(const u32, const u32); -template void ARMv7DisAsm::VRECPE(const u32, const u32); -template void ARMv7DisAsm::VRECPS(const u32, const u32); -template void ARMv7DisAsm::VRECPS(const u32, const u32); -template void ARMv7DisAsm::VREV__(const u32, const u32); -template void ARMv7DisAsm::VREV__(const u32, const u32); -template void ARMv7DisAsm::VRHADD(const u32, const u32); -template void ARMv7DisAsm::VRHADD(const u32, const u32); -template void ARMv7DisAsm::VRSHL(const u32, const u32); -template void ARMv7DisAsm::VRSHL(const u32, const u32); -template void ARMv7DisAsm::VRSHR(const u32, const u32); -template void ARMv7DisAsm::VRSHR(const u32, const u32); -template void ARMv7DisAsm::VRSHRN(const u32, const u32); -template void ARMv7DisAsm::VRSHRN(const u32, const u32); -template void ARMv7DisAsm::VRSQRTE(const u32, const u32); -template void ARMv7DisAsm::VRSQRTE(const u32, const u32); -template void ARMv7DisAsm::VRSQRTS(const u32, const u32); -template void ARMv7DisAsm::VRSQRTS(const u32, const u32); -template void ARMv7DisAsm::VRSRA(const u32, const u32); -template void ARMv7DisAsm::VRSRA(const u32, const u32); -template void ARMv7DisAsm::VRSUBHN(const u32, const u32); -template void ARMv7DisAsm::VRSUBHN(const u32, const u32); -template void ARMv7DisAsm::VSHL_IMM(const u32, const u32); -template void ARMv7DisAsm::VSHL_IMM(const u32, const u32); -template void ARMv7DisAsm::VSHL_REG(const u32, const u32); -template void ARMv7DisAsm::VSHL_REG(const u32, const u32); -template void ARMv7DisAsm::VSHLL(const u32, const u32); -template void ARMv7DisAsm::VSHLL(const u32, const u32); -template void ARMv7DisAsm::VSHLL(const u32, const u32); -template void ARMv7DisAsm::VSHLL(const u32, const u32); -template void ARMv7DisAsm::VSHR(const u32, const u32); -template void ARMv7DisAsm::VSHR(const u32, const u32); -template void ARMv7DisAsm::VSHRN(const u32, const u32); -template void ARMv7DisAsm::VSHRN(const u32, const u32); -template void ARMv7DisAsm::VSLI(const u32, const u32); -template void ARMv7DisAsm::VSLI(const u32, const u32); -template void ARMv7DisAsm::VSQRT(const u32, const u32); -template void ARMv7DisAsm::VSQRT(const u32, const u32); -template void ARMv7DisAsm::VSRA(const u32, const u32); -template void ARMv7DisAsm::VSRA(const u32, const u32); -template void ARMv7DisAsm::VSRI(const u32, const u32); -template void ARMv7DisAsm::VSRI(const u32, const u32); -template void ARMv7DisAsm::VST__MS(const u32, const u32); -template void ARMv7DisAsm::VST__MS(const u32, const u32); -template void ARMv7DisAsm::VST1_SL(const u32, const u32); -template void ARMv7DisAsm::VST1_SL(const u32, const u32); -template void ARMv7DisAsm::VST2_SL(const u32, const u32); -template void ARMv7DisAsm::VST2_SL(const u32, const u32); -template void ARMv7DisAsm::VST3_SL(const u32, const u32); -template void ARMv7DisAsm::VST3_SL(const u32, const u32); -template void ARMv7DisAsm::VST4_SL(const u32, const u32); -template void ARMv7DisAsm::VST4_SL(const u32, const u32); -template void ARMv7DisAsm::VSTM(const u32, const u32); -template void ARMv7DisAsm::VSTM(const u32, const u32); -template void ARMv7DisAsm::VSTM(const u32, const u32); -template void ARMv7DisAsm::VSTM(const u32, const u32); -template void ARMv7DisAsm::VSTR(const u32, const u32); -template void ARMv7DisAsm::VSTR(const u32, const u32); -template void ARMv7DisAsm::VSTR(const u32, const u32); -template void ARMv7DisAsm::VSTR(const u32, const u32); -template void ARMv7DisAsm::VSUB(const u32, const u32); -template void ARMv7DisAsm::VSUB(const u32, const u32); -template void ARMv7DisAsm::VSUB_FP(const u32, const u32); -template void ARMv7DisAsm::VSUB_FP(const u32, const u32); -template void ARMv7DisAsm::VSUB_FP(const u32, const u32); -template void ARMv7DisAsm::VSUB_FP(const u32, const u32); -template void ARMv7DisAsm::VSUBHN(const u32, const u32); -template void ARMv7DisAsm::VSUBHN(const u32, const u32); -template void ARMv7DisAsm::VSUB_(const u32, const u32); -template void ARMv7DisAsm::VSUB_(const u32, const u32); -template void ARMv7DisAsm::VSWP(const u32, const u32); -template void ARMv7DisAsm::VSWP(const u32, const u32); -template void ARMv7DisAsm::VTB_(const u32, const u32); -template void ARMv7DisAsm::VTB_(const u32, const u32); -template void ARMv7DisAsm::VTRN(const u32, const u32); -template void ARMv7DisAsm::VTRN(const u32, const u32); -template void ARMv7DisAsm::VTST(const u32, const u32); -template void ARMv7DisAsm::VTST(const u32, const u32); -template void ARMv7DisAsm::VUZP(const u32, const u32); -template void ARMv7DisAsm::VUZP(const u32, const u32); -template void ARMv7DisAsm::VZIP(const u32, const u32); -template void ARMv7DisAsm::VZIP(const u32, const u32); -template void ARMv7DisAsm::WFE(const u32, const u32); -template void ARMv7DisAsm::WFE(const u32, const u32); -template void ARMv7DisAsm::WFE(const u32, const u32); -template void ARMv7DisAsm::WFI(const u32, const u32); -template void ARMv7DisAsm::WFI(const u32, const u32); -template void ARMv7DisAsm::WFI(const u32, const u32); -template void ARMv7DisAsm::YIELD(const u32, const u32); -template void ARMv7DisAsm::YIELD(const u32, const u32); -template void ARMv7DisAsm::YIELD(const u32, const u32); diff --git a/rpcs3/Emu/PSP2/ARMv7DisAsm.h b/rpcs3/Emu/PSP2/ARMv7DisAsm.h deleted file mode 100644 index 68b60dc20f..0000000000 --- a/rpcs3/Emu/PSP2/ARMv7DisAsm.h +++ /dev/null @@ -1,459 +0,0 @@ -#pragma once - -#include "Emu/CPU/CPUDisAsm.h" - -enum class arm_encoding; - -class ARMv7DisAsm final : public CPUDisAsm -{ -public: - ARMv7DisAsm(CPUDisAsmMode mode) : CPUDisAsm(mode) - { - } - -protected: - virtual u32 DisAsmBranchTarget(const s32 imm) override - { - // TODO: ARM - return dump_pc + (true ? 4 : 8) + imm; - } - - virtual void Write(const std::string& value) override; - -private: - template - void write(const char* fmt, const Args&... args) - { - Write(fmt::format(fmt, args...)); - } - -public: - void UNK(const u32 op, const u32 cond); - - template void HACK(const u32, const u32); - template void MRC_(const u32, const u32); - - template void ADC_IMM(const u32, const u32); - template void ADC_REG(const u32, const u32); - template void ADC_RSR(const u32, const u32); - - template void ADD_IMM(const u32, const u32); - template void ADD_REG(const u32, const u32); - template void ADD_RSR(const u32, const u32); - template void ADD_SPI(const u32, const u32); - template void ADD_SPR(const u32, const u32); - - template void ADR(const u32, const u32); - - template void AND_IMM(const u32, const u32); - template void AND_REG(const u32, const u32); - template void AND_RSR(const u32, const u32); - - template void ASR_IMM(const u32, const u32); - template void ASR_REG(const u32, const u32); - - template void B(const u32, const u32); - - template void BFC(const u32, const u32); - template void BFI(const u32, const u32); - - template void BIC_IMM(const u32, const u32); - template void BIC_REG(const u32, const u32); - template void BIC_RSR(const u32, const u32); - - template void BKPT(const u32, const u32); - - template void BL(const u32, const u32); - template void BLX(const u32, const u32); - template void BX(const u32, const u32); - - template void CB_Z(const u32, const u32); - - template void CLZ(const u32, const u32); - - template void CMN_IMM(const u32, const u32); - template void CMN_REG(const u32, const u32); - template void CMN_RSR(const u32, const u32); - - template void CMP_IMM(const u32, const u32); - template void CMP_REG(const u32, const u32); - template void CMP_RSR(const u32, const u32); - - template void DBG(const u32, const u32); - template void DMB(const u32, const u32); - template void DSB(const u32, const u32); - - template void EOR_IMM(const u32, const u32); - template void EOR_REG(const u32, const u32); - template void EOR_RSR(const u32, const u32); - - template void IT(const u32, const u32); - - template void LDM(const u32, const u32); - template void LDMDA(const u32, const u32); - template void LDMDB(const u32, const u32); - template void LDMIB(const u32, const u32); - - template void LDR_IMM(const u32, const u32); - template void LDR_LIT(const u32, const u32); - template void LDR_REG(const u32, const u32); - - template void LDRB_IMM(const u32, const u32); - template void LDRB_LIT(const u32, const u32); - template void LDRB_REG(const u32, const u32); - - template void LDRD_IMM(const u32, const u32); - template void LDRD_LIT(const u32, const u32); - template void LDRD_REG(const u32, const u32); - - template void LDRH_IMM(const u32, const u32); - template void LDRH_LIT(const u32, const u32); - template void LDRH_REG(const u32, const u32); - - template void LDRSB_IMM(const u32, const u32); - template void LDRSB_LIT(const u32, const u32); - template void LDRSB_REG(const u32, const u32); - - template void LDRSH_IMM(const u32, const u32); - template void LDRSH_LIT(const u32, const u32); - template void LDRSH_REG(const u32, const u32); - - template void LDREX(const u32, const u32); - template void LDREXB(const u32, const u32); - template void LDREXD(const u32, const u32); - template void LDREXH(const u32, const u32); - - template void LSL_IMM(const u32, const u32); - template void LSL_REG(const u32, const u32); - - template void LSR_IMM(const u32, const u32); - template void LSR_REG(const u32, const u32); - - template void MLA(const u32, const u32); - template void MLS(const u32, const u32); - - template void MOV_IMM(const u32, const u32); - template void MOV_REG(const u32, const u32); - template void MOVT(const u32, const u32); - - template void MRS(const u32, const u32); - template void MSR_IMM(const u32, const u32); - template void MSR_REG(const u32, const u32); - - template void MUL(const u32, const u32); - - template void MVN_IMM(const u32, const u32); - template void MVN_REG(const u32, const u32); - template void MVN_RSR(const u32, const u32); - - template void NOP(const u32, const u32); - - template void ORN_IMM(const u32, const u32); - template void ORN_REG(const u32, const u32); - - template void ORR_IMM(const u32, const u32); - template void ORR_REG(const u32, const u32); - template void ORR_RSR(const u32, const u32); - - template void PKH(const u32, const u32); - - template void POP(const u32, const u32); - template void PUSH(const u32, const u32); - - template void QADD(const u32, const u32); - template void QADD16(const u32, const u32); - template void QADD8(const u32, const u32); - template void QASX(const u32, const u32); - template void QDADD(const u32, const u32); - template void QDSUB(const u32, const u32); - template void QSAX(const u32, const u32); - template void QSUB(const u32, const u32); - template void QSUB16(const u32, const u32); - template void QSUB8(const u32, const u32); - - template void RBIT(const u32, const u32); - template void REV(const u32, const u32); - template void REV16(const u32, const u32); - template void REVSH(const u32, const u32); - - template void ROR_IMM(const u32, const u32); - template void ROR_REG(const u32, const u32); - - template void RRX(const u32, const u32); - - template void RSB_IMM(const u32, const u32); - template void RSB_REG(const u32, const u32); - template void RSB_RSR(const u32, const u32); - - template void RSC_IMM(const u32, const u32); - template void RSC_REG(const u32, const u32); - template void RSC_RSR(const u32, const u32); - - template void SADD16(const u32, const u32); - template void SADD8(const u32, const u32); - template void SASX(const u32, const u32); - - template void SBC_IMM(const u32, const u32); - template void SBC_REG(const u32, const u32); - template void SBC_RSR(const u32, const u32); - - template void SBFX(const u32, const u32); - - template void SDIV(const u32, const u32); - - template void SEL(const u32, const u32); - - template void SHADD16(const u32, const u32); - template void SHADD8(const u32, const u32); - template void SHASX(const u32, const u32); - template void SHSAX(const u32, const u32); - template void SHSUB16(const u32, const u32); - template void SHSUB8(const u32, const u32); - - template void SMLA__(const u32, const u32); - template void SMLAD(const u32, const u32); - template void SMLAL(const u32, const u32); - template void SMLAL__(const u32, const u32); - template void SMLALD(const u32, const u32); - template void SMLAW_(const u32, const u32); - template void SMLSD(const u32, const u32); - template void SMLSLD(const u32, const u32); - template void SMMLA(const u32, const u32); - template void SMMLS(const u32, const u32); - template void SMMUL(const u32, const u32); - template void SMUAD(const u32, const u32); - template void SMUL__(const u32, const u32); - template void SMULL(const u32, const u32); - template void SMULW_(const u32, const u32); - template void SMUSD(const u32, const u32); - - template void SSAT(const u32, const u32); - template void SSAT16(const u32, const u32); - template void SSAX(const u32, const u32); - template void SSUB16(const u32, const u32); - template void SSUB8(const u32, const u32); - - template void STM(const u32, const u32); - template void STMDA(const u32, const u32); - template void STMDB(const u32, const u32); - template void STMIB(const u32, const u32); - - template void STR_IMM(const u32, const u32); - template void STR_REG(const u32, const u32); - - template void STRB_IMM(const u32, const u32); - template void STRB_REG(const u32, const u32); - - template void STRD_IMM(const u32, const u32); - template void STRD_REG(const u32, const u32); - - template void STRH_IMM(const u32, const u32); - template void STRH_REG(const u32, const u32); - - template void STREX(const u32, const u32); - template void STREXB(const u32, const u32); - template void STREXD(const u32, const u32); - template void STREXH(const u32, const u32); - - template void SUB_IMM(const u32, const u32); - template void SUB_REG(const u32, const u32); - template void SUB_RSR(const u32, const u32); - template void SUB_SPI(const u32, const u32); - template void SUB_SPR(const u32, const u32); - - template void SVC(const u32, const u32); - - template void SXTAB(const u32, const u32); - template void SXTAB16(const u32, const u32); - template void SXTAH(const u32, const u32); - template void SXTB(const u32, const u32); - template void SXTB16(const u32, const u32); - template void SXTH(const u32, const u32); - - template void TB_(const u32, const u32); - - template void TEQ_IMM(const u32, const u32); - template void TEQ_REG(const u32, const u32); - template void TEQ_RSR(const u32, const u32); - - template void TST_IMM(const u32, const u32); - template void TST_REG(const u32, const u32); - template void TST_RSR(const u32, const u32); - - template void UADD16(const u32, const u32); - template void UADD8(const u32, const u32); - template void UASX(const u32, const u32); - template void UBFX(const u32, const u32); - template void UDIV(const u32, const u32); - template void UHADD16(const u32, const u32); - template void UHADD8(const u32, const u32); - template void UHASX(const u32, const u32); - template void UHSAX(const u32, const u32); - template void UHSUB16(const u32, const u32); - template void UHSUB8(const u32, const u32); - template void UMAAL(const u32, const u32); - template void UMLAL(const u32, const u32); - template void UMULL(const u32, const u32); - template void UQADD16(const u32, const u32); - template void UQADD8(const u32, const u32); - template void UQASX(const u32, const u32); - template void UQSAX(const u32, const u32); - template void UQSUB16(const u32, const u32); - template void UQSUB8(const u32, const u32); - template void USAD8(const u32, const u32); - template void USADA8(const u32, const u32); - template void USAT(const u32, const u32); - template void USAT16(const u32, const u32); - template void USAX(const u32, const u32); - template void USUB16(const u32, const u32); - template void USUB8(const u32, const u32); - template void UXTAB(const u32, const u32); - template void UXTAB16(const u32, const u32); - template void UXTAH(const u32, const u32); - template void UXTB(const u32, const u32); - template void UXTB16(const u32, const u32); - template void UXTH(const u32, const u32); - - template void VABA_(const u32, const u32); - template void VABD_(const u32, const u32); - template void VABD_FP(const u32, const u32); - template void VABS(const u32, const u32); - template void VAC__(const u32, const u32); - template void VADD(const u32, const u32); - template void VADD_FP(const u32, const u32); - template void VADDHN(const u32, const u32); - template void VADD_(const u32, const u32); - template void VAND(const u32, const u32); - template void VBIC_IMM(const u32, const u32); - template void VBIC_REG(const u32, const u32); - template void VB__(const u32, const u32); - template void VCEQ_REG(const u32, const u32); - template void VCEQ_ZERO(const u32, const u32); - template void VCGE_REG(const u32, const u32); - template void VCGE_ZERO(const u32, const u32); - template void VCGT_REG(const u32, const u32); - template void VCGT_ZERO(const u32, const u32); - template void VCLE_ZERO(const u32, const u32); - template void VCLS(const u32, const u32); - template void VCLT_ZERO(const u32, const u32); - template void VCLZ(const u32, const u32); - template void VCMP_(const u32, const u32); - template void VCNT(const u32, const u32); - template void VCVT_FIA(const u32, const u32); - template void VCVT_FIF(const u32, const u32); - template void VCVT_FFA(const u32, const u32); - template void VCVT_FFF(const u32, const u32); - template void VCVT_DF(const u32, const u32); - template void VCVT_HFA(const u32, const u32); - template void VCVT_HFF(const u32, const u32); - template void VDIV(const u32, const u32); - template void VDUP_S(const u32, const u32); - template void VDUP_R(const u32, const u32); - template void VEOR(const u32, const u32); - template void VEXT(const u32, const u32); - template void VHADDSUB(const u32, const u32); - template void VLD__MS(const u32, const u32); - template void VLD1_SL(const u32, const u32); - template void VLD1_SAL(const u32, const u32); - template void VLD2_SL(const u32, const u32); - template void VLD2_SAL(const u32, const u32); - template void VLD3_SL(const u32, const u32); - template void VLD3_SAL(const u32, const u32); - template void VLD4_SL(const u32, const u32); - template void VLD4_SAL(const u32, const u32); - template void VLDM(const u32, const u32); - template void VLDR(const u32, const u32); - template void VMAXMIN(const u32, const u32); - template void VMAXMIN_FP(const u32, const u32); - template void VML__(const u32, const u32); - template void VML__FP(const u32, const u32); - template void VML__S(const u32, const u32); - template void VMOV_IMM(const u32, const u32); - template void VMOV_REG(const u32, const u32); - template void VMOV_RS(const u32, const u32); - template void VMOV_SR(const u32, const u32); - template void VMOV_RF(const u32, const u32); - template void VMOV_2RF(const u32, const u32); - template void VMOV_2RD(const u32, const u32); - template void VMOVL(const u32, const u32); - template void VMOVN(const u32, const u32); - template void VMRS(const u32, const u32); - template void VMSR(const u32, const u32); - template void VMUL_(const u32, const u32); - template void VMUL_FP(const u32, const u32); - template void VMUL_S(const u32, const u32); - template void VMVN_IMM(const u32, const u32); - template void VMVN_REG(const u32, const u32); - template void VNEG(const u32, const u32); - template void VNM__(const u32, const u32); - template void VORN_REG(const u32, const u32); - template void VORR_IMM(const u32, const u32); - template void VORR_REG(const u32, const u32); - template void VPADAL(const u32, const u32); - template void VPADD(const u32, const u32); - template void VPADD_FP(const u32, const u32); - template void VPADDL(const u32, const u32); - template void VPMAXMIN(const u32, const u32); - template void VPMAXMIN_FP(const u32, const u32); - template void VPOP(const u32, const u32); - template void VPUSH(const u32, const u32); - template void VQABS(const u32, const u32); - template void VQADD(const u32, const u32); - template void VQDML_L(const u32, const u32); - template void VQDMULH(const u32, const u32); - template void VQDMULL(const u32, const u32); - template void VQMOV_N(const u32, const u32); - template void VQNEG(const u32, const u32); - template void VQRDMULH(const u32, const u32); - template void VQRSHL(const u32, const u32); - template void VQRSHR_N(const u32, const u32); - template void VQSHL_REG(const u32, const u32); - template void VQSHL_IMM(const u32, const u32); - template void VQSHR_N(const u32, const u32); - template void VQSUB(const u32, const u32); - template void VRADDHN(const u32, const u32); - template void VRECPE(const u32, const u32); - template void VRECPS(const u32, const u32); - template void VREV__(const u32, const u32); - template void VRHADD(const u32, const u32); - template void VRSHL(const u32, const u32); - template void VRSHR(const u32, const u32); - template void VRSHRN(const u32, const u32); - template void VRSQRTE(const u32, const u32); - template void VRSQRTS(const u32, const u32); - template void VRSRA(const u32, const u32); - template void VRSUBHN(const u32, const u32); - template void VSHL_IMM(const u32, const u32); - template void VSHL_REG(const u32, const u32); - template void VSHLL(const u32, const u32); - template void VSHR(const u32, const u32); - template void VSHRN(const u32, const u32); - template void VSLI(const u32, const u32); - template void VSQRT(const u32, const u32); - template void VSRA(const u32, const u32); - template void VSRI(const u32, const u32); - template void VST__MS(const u32, const u32); - template void VST1_SL(const u32, const u32); - template void VST2_SL(const u32, const u32); - template void VST3_SL(const u32, const u32); - template void VST4_SL(const u32, const u32); - template void VSTM(const u32, const u32); - template void VSTR(const u32, const u32); - template void VSUB(const u32, const u32); - template void VSUB_FP(const u32, const u32); - template void VSUBHN(const u32, const u32); - template void VSUB_(const u32, const u32); - template void VSWP(const u32, const u32); - template void VTB_(const u32, const u32); - template void VTRN(const u32, const u32); - template void VTST(const u32, const u32); - template void VUZP(const u32, const u32); - template void VZIP(const u32, const u32); - - template void WFE(const u32, const u32); - template void WFI(const u32, const u32); - template void YIELD(const u32, const u32); - -public: - u32 disasm(u32 pc) override; -}; diff --git a/rpcs3/Emu/PSP2/ARMv7Function.cpp b/rpcs3/Emu/PSP2/ARMv7Function.cpp deleted file mode 100644 index 1f25c085e5..0000000000 --- a/rpcs3/Emu/PSP2/ARMv7Function.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include "stdafx.h" -#include "ARMv7Module.h" - -// Get function name by FNID -extern std::string arm_get_function_name(const std::string& module, u32 fnid) -{ - // Check registered functions - if (const auto sm = arm_module_manager::get_module(module)) - { - const auto found = sm->functions.find(fnid); - - if (found != sm->functions.end()) - { - return found->second.name; - } - } - - return fmt::format("0x%08X", fnid); -} - -// Get variable name by VNID -extern std::string arm_get_variable_name(const std::string& module, u32 vnid) -{ - // Check registered variables - if (const auto sm = arm_module_manager::get_module(module)) - { - const auto found = sm->variables.find(vnid); - - if (found != sm->variables.end()) - { - return found->second.name; - } - } - - return fmt::format("0x%08X", vnid); -} - -std::vector& arm_function_manager::access() -{ - static std::vector list - { - nullptr, - [](ARMv7Thread& cpu) { cpu.state += cpu_flag::ret; }, - }; - - return list; -} - -u32 arm_function_manager::add_function(arm_function_t function) -{ - auto& list = access(); - - list.push_back(function); - - return ::size32(list) - 1; -} - -DECLARE(arm_function_manager::addr); diff --git a/rpcs3/Emu/PSP2/ARMv7Function.h b/rpcs3/Emu/PSP2/ARMv7Function.h deleted file mode 100644 index e395ea0dcb..0000000000 --- a/rpcs3/Emu/PSP2/ARMv7Function.h +++ /dev/null @@ -1,479 +0,0 @@ -#pragma once - -#include "ARMv7Thread.h" - -using arm_function_t = void(*)(ARMv7Thread&); - -#define BIND_FUNC(func) static_cast([](ARMv7Thread& cpu){\ - const auto old_f = cpu.last_function;\ - cpu.last_function = #func;\ - arm_func_detail::do_call(cpu, func);\ - cpu.last_function = old_f;\ -}) - -struct arm_va_args_t -{ - u32 count; // Number of 32-bit args passed -}; - -namespace arm_func_detail -{ - enum arg_class : u32 - { - ARG_GENERAL, - ARG_FLOAT, - ARG_VECTOR, - ARG_STACK, - ARG_CONTEXT, - ARG_VARIADIC, - ARG_UNKNOWN, - }; - - static const auto FIXED_STACK_FRAME_SIZE = 0x80; - - template - struct bind_arg - { - static_assert(type == ARG_GENERAL, "Unknown function argument type"); - static_assert(!std::is_pointer::value, "Invalid function argument type (pointer)"); - static_assert(!std::is_reference::value, "Invalid function argument type (reference)"); - static_assert(sizeof(T) <= 4, "Invalid function argument type for ARG_GENERAL"); - - FORCE_INLINE static T get_arg(ARMv7Thread& cpu) - { - return arm_gpr_cast(cpu.GPR[g_count - 1]); - } - - FORCE_INLINE static void put_arg(ARMv7Thread& cpu, const T& arg) - { - cpu.GPR[g_count - 1] = arm_gpr_cast(arg); - } - }; - - template - struct bind_arg - { - // first u64 argument is passed in r0-r1, second one is passed in r2-r3 (if g_count = 3) - static_assert(g_count == 2 || g_count == 4, "Wrong u64 argument position"); - - FORCE_INLINE static u64 get_arg(ARMv7Thread& cpu) - { - return cpu.GPR_D[(g_count - 1) >> 1]; - } - - FORCE_INLINE static void put_arg(ARMv7Thread& cpu, u64 arg) - { - cpu.GPR_D[(g_count - 1) >> 1] = arg; - } - }; - - template - struct bind_arg - { - static_assert(g_count == 2 || g_count == 4, "Wrong s64 argument position"); - - FORCE_INLINE static s64 get_arg(ARMv7Thread& cpu) - { - return cpu.GPR_D[(g_count - 1) >> 1]; - } - - FORCE_INLINE static void put_arg(ARMv7Thread& cpu, s64 arg) - { - cpu.GPR_D[(g_count - 1) >> 1] = arg; - } - }; - - template - struct bind_arg - { - static_assert(f_count <= 0, "TODO: Unsupported argument type (float)"); - static_assert(sizeof(T) <= 8, "Invalid function argument type for ARG_FLOAT"); - - FORCE_INLINE static T get_arg(ARMv7Thread& cpu) - { - } - - FORCE_INLINE static void put_arg(ARMv7Thread& cpu, const T& arg) - { - } - }; - - template - struct bind_arg - { - static_assert(v_count <= 0, "TODO: Unsupported argument type (vector)"); - static_assert(std::is_same, v128>::value, "Invalid function argument type for ARG_VECTOR"); - - FORCE_INLINE static T get_arg(ARMv7Thread& cpu) - { - } - - FORCE_INLINE static void put_arg(ARMv7Thread& cpu, const T& arg) - { - } - }; - - template - struct bind_arg - { - static_assert(f_count <= 0, "TODO: Unsupported stack argument type (float)"); - static_assert(v_count <= 0, "TODO: Unsupported stack argument type (vector)"); - static_assert(sizeof(T) <= 4, "Invalid function argument type for ARG_STACK"); - - FORCE_INLINE static T get_arg(ARMv7Thread& cpu) - { - // TODO: check - return arm_gpr_cast(vm::psv::read32(cpu.SP + sizeof(u32) * (g_count - 5))); - } - - FORCE_INLINE static void put_arg(ARMv7Thread& cpu, const T& arg) - { - // TODO: check - const int stack_pos = (g_count - 5) * 4 - FIXED_STACK_FRAME_SIZE; - static_assert(stack_pos < 0, "TODO: Increase fixed stack frame size (arg count limit broken)"); - - vm::psv::write32(cpu.SP + stack_pos, arm_gpr_cast(arg)); - } - }; - - template - struct bind_arg - { - FORCE_INLINE static u64 get_arg(ARMv7Thread& cpu) - { - // TODO: check - return vm::psv::read64(cpu.SP + sizeof(u32) * (g_count - 6)); - } - - FORCE_INLINE static void put_arg(ARMv7Thread& cpu, u64 arg) - { - // TODO: check - const int stack_pos = (g_count - 6) * 4 - FIXED_STACK_FRAME_SIZE; - static_assert(stack_pos < -4, "TODO: Increase fixed stack frame size (arg count limit broken)"); - - vm::psv::write64(cpu.SP + stack_pos, arg); - } - }; - - template - struct bind_arg - { - FORCE_INLINE static s64 get_arg(ARMv7Thread& cpu) - { - // TODO: check - return vm::psv::read64(cpu.SP + sizeof(u32) * (g_count - 6)); - } - - FORCE_INLINE static void put_arg(ARMv7Thread& cpu, s64 arg) - { - // TODO: check - const int stack_pos = (g_count - 6) * 4 - FIXED_STACK_FRAME_SIZE; - static_assert(stack_pos < -4, "TODO: Increase fixed stack frame size (arg count limit broken)"); - - vm::psv::write64(cpu.SP + stack_pos, arg); - } - }; - - template - struct bind_arg - { - static_assert(std::is_same, ARMv7Thread>::value, "Invalid function argument type for ARG_CONTEXT"); - - FORCE_INLINE static ARMv7Thread& get_arg(ARMv7Thread& cpu) - { - return cpu; - } - - FORCE_INLINE static void put_arg(ARMv7Thread& cpu, ARMv7Thread& arg) - { - } - }; - - template - struct bind_arg - { - static_assert(std::is_same, arm_va_args_t>::value, "Invalid function argument type for ARG_VARIADIC"); - - FORCE_INLINE static arm_va_args_t get_arg(ARMv7Thread& cpu) - { - return{ g_count }; - } - }; - - template - struct bind_result - { - static_assert(type != ARG_FLOAT, "TODO: Unsupported funcion result type (float)"); - static_assert(type != ARG_VECTOR, "TODO: Unsupported funcion result type (vector)"); - static_assert(type == ARG_GENERAL, "Wrong use of bind_result template"); - static_assert(sizeof(T) <= 4, "Invalid function result type for ARG_GENERAL"); - - FORCE_INLINE static T get_result(ARMv7Thread& cpu) - { - return arm_gpr_cast(cpu.GPR[0]); - } - - FORCE_INLINE static void put_result(ARMv7Thread& cpu, const T& result) - { - cpu.GPR[0] = arm_gpr_cast(result); - } - }; - - template<> - struct bind_result - { - FORCE_INLINE static u64 get_result(ARMv7Thread& cpu) - { - return cpu.GPR_D[0]; - } - - FORCE_INLINE static void put_result(ARMv7Thread& cpu, u64 result) - { - cpu.GPR_D[0] = result; - } - }; - - template<> - struct bind_result - { - FORCE_INLINE static s64 get_result(ARMv7Thread& cpu) - { - return cpu.GPR_D[0]; - } - - FORCE_INLINE static void put_result(ARMv7Thread& cpu, s64 result) - { - cpu.GPR_D[0] = result; - } - }; - - //template - //struct bind_result - //{ - // static_assert(sizeof(T) <= 8, "Invalid function result type for ARG_FLOAT"); - - // static FORCE_INLINE void put_result(ARMv7Thread& cpu, const T& result) - // { - // } - //}; - - //template - //struct bind_result - //{ - // static_assert(std::is_same, v128>::value, "Invalid function result type for ARG_VECTOR"); - - // static FORCE_INLINE void put_result(ARMv7Thread& cpu, const T& result) - // { - // } - //}; - - template - struct result_type - { - static_assert(!std::is_pointer::value, "Invalid function result type (pointer)"); - static_assert(!std::is_reference::value, "Invalid function result type (reference)"); - static const bool is_float = std::is_floating_point::value; - static const bool is_vector = std::is_same, v128>::value; - static const arg_class value = is_float ? ARG_FLOAT : (is_vector ? ARG_VECTOR : ARG_GENERAL); - }; - - template - struct arg_type - { - // TODO: check calculations - static const bool is_float = std::is_floating_point::value; - static const bool is_vector = std::is_same, v128>::value; - static const bool is_context = std::is_same, ARMv7Thread>::value; - static const bool is_variadic = std::is_same, arm_va_args_t>::value; - static const bool is_general = !is_float && !is_vector && !is_context && !is_variadic; - - static const u32 g_align = ALIGN_32(T) > 4 ? ALIGN_32(T) >> 2 : 1; - static const u32 g_value = is_general ? ((g_count + (g_align - 1)) & ~(g_align - 1)) + (g_align) : g_count; - static const u32 f_value = f_count + is_float; - static const u32 v_value = v_count + is_vector; - - static const arg_class value = - is_general ? (g_value > 4 ? ARG_STACK : ARG_GENERAL) : - is_float ? (f_value > 9000 ? ARG_STACK : ARG_FLOAT) : - is_vector ? (v_value > 9000 ? ARG_STACK : ARG_VECTOR) : - is_context ? ARG_CONTEXT : - is_variadic ? ARG_VARIADIC : - ARG_UNKNOWN; - }; - - // wrapper for variadic argument info list, each value contains packed argument type and counts of GENERAL, FLOAT and VECTOR arguments - template struct arg_info_pack_t; - - template struct arg_info_pack_t - { - static const u32 last_value = arg_info_pack_t::last_value; - }; - - template struct arg_info_pack_t - { - static const u32 last_value = First; - }; - - template<> struct arg_info_pack_t<> - { - static const u32 last_value = 0; - }; - - // argument type + g/f/v_count unpacker - template struct bind_arg_packed - { - FORCE_INLINE static T get_arg(ARMv7Thread& cpu) - { - return bind_arg(type_pack & 0xff), (type_pack >> 8) & 0xff, (type_pack >> 16) & 0xff, (type_pack >> 24)>::get_arg(cpu); - } - }; - - template - FORCE_INLINE RT call(ARMv7Thread& cpu, RT(*func)(Args...), arg_info_pack_t info) - { - // do the actual function call when all arguments are prepared (simultaneous unpacking of Args... and Info...) - return func(bind_arg_packed::get_arg(cpu)...); - } - - template - FORCE_INLINE RT call(ARMv7Thread& cpu, RT(*func)(Args...), arg_info_pack_t info) - { - // unpack previous type counts (0/0/0 for the first time) - const u32 g_count = (info.last_value >> 8) & 0xff; - const u32 f_count = (info.last_value >> 16) & 0xff; - const u32 v_count = (info.last_value >> 24); - - using type = arg_type; - const arg_class t = type::value; - const u32 g = type::g_value; - const u32 f = type::f_value; - const u32 v = type::v_value; - - return call(cpu, func, arg_info_pack_t{}); - } - - template - FORCE_INLINE static bool put_func_args(ARMv7Thread& cpu) - { - // terminator - return false; - } - - template - FORCE_INLINE static bool put_func_args(ARMv7Thread& cpu, T1 arg, T... args) - { - using type = arg_type; - const arg_class t = type::value; - const u32 g = type::g_value; - const u32 f = type::f_value; - const u32 v = type::v_value; - - bind_arg::put_arg(cpu, arg); - - // return true if stack was used - return put_func_args(cpu, args...) || (t == ARG_STACK); - } - - template - struct func_binder; - - template - struct func_binder - { - using func_t = void(*)(T...); - - static void do_call(ARMv7Thread& cpu, func_t func) - { - call(cpu, func, arg_info_pack_t<>{}); - } - }; - - template - struct func_binder - { - using func_t = RT(*)(T...); - - static void do_call(ARMv7Thread& cpu, func_t func) - { - bind_result::value>::put_result(cpu, call(cpu, func, arg_info_pack_t<>{})); - } - }; - - template - struct func_caller - { - FORCE_INLINE static RT call(ARMv7Thread& cpu, u32 addr, T... args) - { - func_caller::call(cpu, addr, args...); - - return bind_result::value>::get_result(cpu); - } - }; - - template - struct func_caller - { - FORCE_INLINE static void call(ARMv7Thread& cpu, u32 addr, T... args) - { - if (put_func_args<0, 0, 0, T...>(cpu, args...)) - { - cpu.SP -= FIXED_STACK_FRAME_SIZE; - cpu.fast_call(addr); - cpu.SP += FIXED_STACK_FRAME_SIZE; - } - else - { - cpu.fast_call(addr); - } - } - }; - - template FORCE_INLINE void do_call(ARMv7Thread& cpu, RT(*func)(T...)) - { - func_binder::do_call(cpu, func); - } -} - -class arm_function_manager -{ - // Global variable for each registered function - template - struct registered - { - static u32 index; - }; - - // Access global function list - static std::vector& access(); - - static u32 add_function(arm_function_t function); - -public: - // Register function (shall only be called during global initialization) - template - static inline u32 register_function(arm_function_t func) - { - return registered::index = add_function(func); - } - - // Get function index - template - static inline u32 get_index() - { - return registered::index; - } - - // Read all registered functions - static inline const auto& get() - { - return access(); - } - - // Allocation address - static u32 addr; -}; - -template -u32 arm_function_manager::registered::index = 0; - -#define FIND_FUNC(func) arm_function_manager::get_index() diff --git a/rpcs3/Emu/PSP2/ARMv7Interpreter.cpp b/rpcs3/Emu/PSP2/ARMv7Interpreter.cpp deleted file mode 100644 index 5b11b76f12..0000000000 --- a/rpcs3/Emu/PSP2/ARMv7Interpreter.cpp +++ /dev/null @@ -1,4232 +0,0 @@ -#include "stdafx.h" -#include "Utilities/sysinfo.h" -#include "Emu/Memory/Memory.h" -#include "Emu/System.h" - -#include "ARMv7Thread.h" -#include "ARMv7Interpreter.h" - -const bool s_use_rtm = utils::has_rtm(); - -using namespace arm_code::arm_encoding_alias; - -#define ARG(arg, ...) const u32 arg = args::arg::extract(__VA_ARGS__); - -extern void arm_execute_function(ARMv7Thread& cpu, u32 index); - -namespace vm { using namespace psv; } - -void arm_interpreter::UNK(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - if (cpu.ISET == Thumb) - { - if (op > 0xffff) - { - fmt::throw_exception("Unknown/Illegal opcode: 0x%04X 0x%04X (cond=0x%x)", op >> 16, op & 0xffff, cond); - } - else - { - fmt::throw_exception("Unknown/Illegal opcode: 0x%04X (cond=0x%x)", op, cond); - } - } - else - { - fmt::throw_exception("Unknown/Illegal opcode: 0x%08X", op); - } -} - -template -void arm_interpreter::HACK(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::hack; - ARG(index, op); - - if (ConditionPassed(cpu, cond)) - { - arm_execute_function(cpu, index); - } -} - - -template -void arm_interpreter::MRC_(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::mrc; - ARG(t, op); - ARG(cp, op); - ARG(opc1, op); - ARG(opc2, op); - ARG(cn, op); - ARG(cm, op); - - if (ConditionPassed(cpu, cond)) - { - // APSR flags are written if t = 15 - - if (t < 15 && cp == 15 && opc1 == 0 && cn == 13 && cm == 0 && opc2 == 3) - { - // Read CP15 User Read-only Thread ID Register (seems used as TLS address) - - if (!cpu.TLS) - { - fmt::throw_exception("TLS not initialized" HERE); - } - - cpu.GPR[t] = cpu.TLS; - return; - } - - fmt::throw_exception("mrc?? p%d,%d,r%d,c%d,c%d,%d" HERE, cp, opc1, t, cn, cm, opc2); - } -} - -template -void arm_interpreter::ADC_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::adc_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry, overflow; - const u32 result = AddWithCarry(cpu.read_gpr(n), imm32, cpu.APSR.C, carry, overflow); - cpu.write_gpr(d, result, 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - cpu.APSR.V = overflow; - } - } -} - -template -void arm_interpreter::ADC_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::adc_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry, overflow; - const u32 shifted = Shift(cpu.read_gpr(m), shift_t, shift_n, cpu.APSR.C); - const u32 result = AddWithCarry(cpu.read_gpr(n), shifted, cpu.APSR.C, carry, overflow); - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - cpu.APSR.V = overflow; - } - } -} - -template -void arm_interpreter::ADC_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::ADD_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::add_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry, overflow; - const u32 result = AddWithCarry(cpu.read_gpr(n), imm32, false, carry, overflow); - cpu.write_gpr(d, result, type < T3 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - cpu.APSR.V = overflow; - } - } -} - -template -void arm_interpreter::ADD_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::add_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry, overflow; - const u32 shifted = Shift(cpu.read_gpr(m), shift_t, shift_n, true); - const u32 result = AddWithCarry(cpu.read_gpr(n), shifted, false, carry, overflow); - cpu.write_gpr(d, result, type < T3 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - cpu.APSR.V = overflow; - } - } -} - -template -void arm_interpreter::ADD_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::ADD_SPI(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::add_spi; - ARG(d, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry, overflow; - const u32 result = AddWithCarry(cpu.SP, imm32, false, carry, overflow); - cpu.write_gpr(d, result, type < T3 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - cpu.APSR.V = overflow; - } - } -} - -template -void arm_interpreter::ADD_SPR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::add_spr; - ARG(d, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry, overflow; - const u32 shifted = Shift(cpu.read_gpr(m), shift_t, shift_n, cpu.APSR.C); - const u32 result = AddWithCarry(cpu.SP, shifted, false, carry, overflow); - cpu.write_gpr(d, result, type < T3 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - cpu.APSR.V = overflow; - } - } -} - - -template -void arm_interpreter::ADR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::adr; - ARG(d, op); - ARG(i, op); - - if (ConditionPassed(cpu, cond)) - { - cpu.write_gpr(d, (cpu.read_pc() & ~3) + i, type == T1 ? 2 : 4); - } -} - - -template -void arm_interpreter::AND_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::and_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - const u32 result = cpu.read_gpr(n) & imm32; - cpu.write_gpr(d, result, 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = args::carry::extract(op, cpu.APSR.C); - } - } -} - -template -void arm_interpreter::AND_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::and_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry; - const u32 shifted = Shift_C(cpu.read_gpr(m), shift_t, shift_n, cpu.APSR.C, carry); - const u32 result = cpu.read_gpr(n) & shifted; - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - } - } -} - -template -void arm_interpreter::AND_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::ASR_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::ASR_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::B(ARMv7Thread& cpu, const u32 op, const u32 _cond) -{ - using args = arm_code::b; - ARG(imm32, op); - - if (ConditionPassed(cpu, args::cond::extract(op, _cond))) - { - cpu.PC = cpu.read_pc() + imm32 - (type < T3 ? 2 : 4); - } -} - - -template -void arm_interpreter::BFC(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::BFI(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::BIC_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::bic_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - const u32 result = cpu.read_gpr(n) & ~imm32; - cpu.write_gpr(d, result, 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = args::carry::extract(op, cpu.APSR.C); - } - } -} - -template -void arm_interpreter::BIC_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::bic_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry; - const u32 shifted = Shift_C(cpu.read_gpr(m), shift_t, shift_n, cpu.APSR.C, carry); - const u32 result = cpu.read_gpr(n) & ~shifted; - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - } - } -} - -template -void arm_interpreter::BIC_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::BKPT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::BL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::bl; - ARG(imm32, op); - ARG(to_arm); - - if (ConditionPassed(cpu, cond)) - { - cpu.LR = (cpu.PC + 4) | (cpu.ISET != ARM); - - // TODO: this is quite a mess - if ((cpu.ISET == ARM) == to_arm) - { - const u32 pc = cpu.ISET == ARM ? (cpu.read_pc() & ~3) + imm32 : cpu.read_pc() + imm32; - - cpu.PC = pc - 4; - } - else - { - const u32 pc = type == T2 ? ~3 & cpu.PC + 4 + imm32 : 1 | cpu.PC + 8 + imm32; - - cpu.write_pc(pc, type == T1 ? 2 : 4); - } - } -} - -template -void arm_interpreter::BLX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::blx; - ARG(m, op); - - if (ConditionPassed(cpu, cond)) - { - cpu.LR = type == T1 ? (cpu.PC + 2) | 1 : cpu.PC + 4; - cpu.write_pc(cpu.read_gpr(m), type == T1 ? 2 : 4); - } -} - -template -void arm_interpreter::BX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::bx; - ARG(m, op); - - if (ConditionPassed(cpu, cond)) - { - cpu.write_pc(cpu.read_gpr(m), type == T1 ? 2 : 4); - } -} - - -template -void arm_interpreter::CB_Z(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::cb_z; - ARG(n, op); - ARG(imm32, op); - ARG(nonzero, op); - - if ((cpu.read_gpr(n) == 0) ^ nonzero) - { - cpu.PC = cpu.read_pc() + imm32 - 2; - } -} - - -template -void arm_interpreter::CLZ(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::clz; - ARG(d, op); - ARG(m, op); - - if (ConditionPassed(cpu, cond)) - { - cpu.write_gpr(d, cntlz32(cpu.read_gpr(m)), 4); - } -} - - -template -void arm_interpreter::CMN_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::CMN_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::CMN_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::CMP_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::cmp_imm; - ARG(n, op); - ARG(imm32, op); - - if (ConditionPassed(cpu, cond)) - { - bool carry, overflow; - const u32 n_value = cpu.read_gpr(n); - const u32 result = AddWithCarry(n_value, ~imm32, true, carry, overflow); - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - cpu.APSR.V = overflow; - - //LOG_NOTICE(ARMv7, "CMP: r%d=0x%08x <> 0x%08x, res=0x%08x", n, n_value, imm32, res); - } -} - -template -void arm_interpreter::CMP_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::cmp_reg; - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - - if (ConditionPassed(cpu, cond)) - { - bool carry, overflow; - const u32 m_value = cpu.read_gpr(m); - const u32 n_value = cpu.read_gpr(n); - const u32 shifted = Shift(m_value, shift_t, shift_n, true); - const u32 result = AddWithCarry(n_value, ~shifted, true, carry, overflow); - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - cpu.APSR.V = overflow; - - //LOG_NOTICE(ARMv7, "CMP: r%d=0x%08x <> r%d=0x%08x, shifted=0x%08x, res=0x%08x", n, n_value, m, m_value, shifted, res); - } -} - -template -void arm_interpreter::CMP_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::DBG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::DMB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::DSB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::EOR_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::eor_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - const u32 result = cpu.read_gpr(n) ^ imm32; - cpu.write_gpr(d, result, 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = args::carry::extract(op, cpu.APSR.C); - } - } -} - -template -void arm_interpreter::EOR_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::eor_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry; - const u32 shifted = Shift_C(cpu.read_gpr(m), shift_t, shift_n, cpu.APSR.C, carry); - const u32 result = cpu.read_gpr(n) ^ shifted; - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - } - } -} - -template -void arm_interpreter::EOR_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::IT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - cpu.ITSTATE.IT = op & 0xff; -} - - -template -void arm_interpreter::LDM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::ldm; - ARG(n, op); - ARG(registers, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - vm::ptr memory(vm::cast(cpu.read_gpr(n))); - - for (u32 i = 0; i < 16; i++) - { - if (registers & (1 << i)) - { - cpu.write_gpr(i, *memory++, type == T1 ? 2 : 4); - } - } - - // Warning: wback set true for T1 - if (wback && ~registers & (1 << n)) - { - cpu.write_gpr(n, memory.addr(), type == T1 ? 2 : 4); - } - } -} - -template -void arm_interpreter::LDMDA(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::LDMDB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::LDMIB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::LDR_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::ldr_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 offset_addr = add ? cpu.read_gpr(n) + imm32 : cpu.read_gpr(n) - imm32; - const u32 addr = index ? offset_addr : cpu.read_gpr(n); - cpu.write_gpr(t, vm::read32(addr), type < T3 ? 2 : 4); - - if (wback) - { - cpu.write_gpr(n, offset_addr, type < T3 ? 2 : 4); - } - } -} - -template -void arm_interpreter::LDR_LIT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::ldr_lit; - ARG(t, op); - ARG(imm32, op); - ARG(add, op); - - const u32 base = cpu.read_pc() & ~3; - const u32 addr = add ? base + imm32 : base - imm32; - - if (ConditionPassed(cpu, cond)) - { - const u32 data = vm::read32(addr); - cpu.write_gpr(t, data, type == T1 ? 2 : 4); - } -} - -template -void arm_interpreter::LDR_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::ldr_reg; - ARG(t, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 offset = Shift(cpu.read_gpr(m), shift_t, shift_n, cpu.APSR.C); - const u32 offset_addr = add ? cpu.read_gpr(n) + offset : cpu.read_gpr(n) - offset; - const u32 addr = index ? offset_addr : cpu.read_gpr(n); - cpu.write_gpr(t, vm::read32(addr), type == T1 ? 2 : 4); - - if (wback) - { - cpu.write_gpr(n, offset_addr, type == T1 ? 2 : 4); - } - } -} - - -template -void arm_interpreter::LDRB_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::ldrb_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 offset_addr = add ? cpu.read_gpr(n) + imm32 : cpu.read_gpr(n) - imm32; - const u32 addr = index ? offset_addr : cpu.read_gpr(n); - cpu.write_gpr(t, vm::read8(addr), type == T1 ? 2 : 4); - - if (wback) - { - cpu.write_gpr(n, offset_addr, type == T1 ? 2 : 4); - } - } -} - -template -void arm_interpreter::LDRB_LIT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::LDRB_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::ldrb_reg; - ARG(t, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 offset = Shift(cpu.read_gpr(m), shift_t, shift_n, cpu.APSR.C); - const u32 offset_addr = add ? cpu.read_gpr(n) + offset : cpu.read_gpr(n) - offset; - const u32 addr = index ? offset_addr : cpu.read_gpr(n); - cpu.write_gpr(t, vm::read8(addr), type == T1 ? 2 : 4); - - if (wback) - { - cpu.write_gpr(n, offset_addr, type == T1 ? 2 : 4); - } - } -} - - -template -void arm_interpreter::LDRD_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::ldrd_imm; - ARG(t, op); - ARG(t2, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 offset_addr = add ? cpu.read_gpr(n) + imm32 : cpu.read_gpr(n) - imm32; - const u32 addr = index ? offset_addr : cpu.read_gpr(n); - const u64 value = vm::read64(addr); - cpu.write_gpr(t, (u32)(value), 4); - cpu.write_gpr(t2, (u32)(value >> 32), 4); - - if (wback) - { - cpu.write_gpr(n, offset_addr, 4); - } - } -} - -template -void arm_interpreter::LDRD_LIT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::ldrd_lit; - ARG(t, op); - ARG(t2, op); - ARG(imm32, op); - ARG(add, op); - - const u32 base = cpu.read_pc() & ~3; - const u32 addr = add ? base + imm32 : base - imm32; - - if (ConditionPassed(cpu, cond)) - { - const u64 value = vm::read64(addr); - cpu.write_gpr(t, (u32)(value), 4); - cpu.write_gpr(t2, (u32)(value >> 32), 4); - } -} - -template -void arm_interpreter::LDRD_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::LDRH_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::ldrh_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 offset_addr = add ? cpu.read_gpr(n) + imm32 : cpu.read_gpr(n) - imm32; - const u32 addr = index ? offset_addr : cpu.read_gpr(n); - cpu.write_gpr(t, vm::read16(addr), type == T1 ? 2 : 4); - - if (wback) - { - cpu.write_gpr(n, offset_addr, type == T1 ? 2 : 4); - } - } -} - -template -void arm_interpreter::LDRH_LIT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::LDRH_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::LDRSB_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::ldrsb_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 offset_addr = add ? cpu.read_gpr(n) + imm32 : cpu.read_gpr(n) - imm32; - const u32 addr = index ? offset_addr : cpu.read_gpr(n); - const s8 value = vm::read8(addr); - cpu.write_gpr(t, value, 4); // sign-extend - - if (wback) - { - cpu.write_gpr(n, offset_addr, 4); - } - } -} - -template -void arm_interpreter::LDRSB_LIT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::LDRSB_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::LDRSH_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::LDRSH_LIT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::LDRSH_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::LDREX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::ldrex; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 addr = cpu.read_gpr(n) + imm32; - - cpu.rtime = vm::reservation_acquire(addr, sizeof(u32)); - _mm_lfence(); - cpu.raddr = addr; - cpu.rdata = vm::_ref>(addr); - - cpu.write_gpr(t, cpu.rdata, 4); - } -} - -template -void arm_interpreter::LDREXB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::LDREXD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::LDREXH(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::LSL_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::lsl_imm; - ARG(d, op); - ARG(m, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry; - const u32 result = Shift_C(cpu.read_gpr(m), arm_code::SRType_LSL, shift_n, cpu.APSR.C, carry); - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - } - } -} - -template -void arm_interpreter::LSL_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::lsl_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry; - const u32 result = Shift_C(cpu.read_gpr(n), arm_code::SRType_LSL, (cpu.read_gpr(m) & 0xff), cpu.APSR.C, carry); - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - } - } -} - - -template -void arm_interpreter::LSR_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::lsr_imm; - ARG(d, op); - ARG(m, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry; - const u32 result = Shift_C(cpu.read_gpr(m), arm_code::SRType_LSR, shift_n, cpu.APSR.C, carry); - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - } - } -} - -template -void arm_interpreter::LSR_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::MLA(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::MLS(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::MOV_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::mov_imm; - ARG(d, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - const u32 result = imm32; - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = args::carry::extract(op, cpu.APSR.C); - } - } -} - -template -void arm_interpreter::MOV_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::mov_reg; - ARG(d, op); - ARG(m, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - const u32 result = cpu.read_gpr(m); - cpu.write_gpr(d, result, type < T3 ? 2 : 4); - - if (set_flags) // cond is not used - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - //cpu.APSR.C = carry; - } - } -} - -template -void arm_interpreter::MOVT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::movt; - ARG(d, op); - ARG(imm16, op); - - if (ConditionPassed(cpu, cond)) - { - cpu.write_gpr(d, (cpu.read_gpr(d) & 0xffff) | (imm16 << 16), 4); - } -} - - -template -void arm_interpreter::MRS(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::MSR_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::MSR_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::MUL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::mul; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - const u32 op1 = cpu.read_gpr(n); - const u32 op2 = cpu.read_gpr(m); - const u32 result = op1 * op2; - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - } - } -} - - -template -void arm_interpreter::MVN_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::mvn_imm; - ARG(d, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - const u32 result = ~imm32; - cpu.write_gpr(d, result, 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = args::carry::extract(op, cpu.APSR.C); - } - } -} - -template -void arm_interpreter::MVN_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::mvn_reg; - ARG(d, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry; - const u32 shifted = Shift_C(cpu.read_gpr(m), shift_t, shift_n, cpu.APSR.C, carry); - const u32 result = ~shifted; - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - } - } -} - -template -void arm_interpreter::MVN_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::NOP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - if (ConditionPassed(cpu, cond)) - { - } -} - - -template -void arm_interpreter::ORN_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::ORN_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::ORR_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::orr_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - const u32 result = cpu.read_gpr(n) | imm32; - cpu.write_gpr(d, result, 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = args::carry::extract(op, cpu.APSR.C); - } - } -} - -template -void arm_interpreter::ORR_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::orr_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry; - const u32 shifted = Shift_C(cpu.read_gpr(m), shift_t, shift_n, cpu.APSR.C, carry); - const u32 result = cpu.read_gpr(n) | shifted; - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - } - } -} - -template -void arm_interpreter::ORR_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::PKH(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::POP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - const u32 registers = arm_code::pop::registers::extract(op); - - if (ConditionPassed(cpu, cond)) - { - auto stack = vm::ptr::make(cpu.SP); - - for (u32 i = 0; i < 16; i++) - { - if (registers & (1 << i)) - { - cpu.write_gpr(i, *stack++, type == T1 ? 2 : 4); - } - } - - cpu.SP = stack.addr(); - } -} - -template -void arm_interpreter::PUSH(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - const u32 registers = arm_code::push::registers::extract(op); - - if (ConditionPassed(cpu, cond)) - { - vm::ptr memory(vm::cast(cpu.SP)); - - for (u32 i = 15; ~i; i--) - { - if (registers & (1 << i)) - { - *--memory = cpu.read_gpr(i); - } - } - - cpu.SP = memory.addr(); - } -} - - -template -void arm_interpreter::QADD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::QADD16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::QADD8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::QASX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::QDADD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::QDSUB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::QSAX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::QSUB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::QSUB16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::QSUB8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::RBIT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::REV(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::rev; - ARG(d, op); - ARG(m, op); - - if (ConditionPassed(cpu, cond)) - { - cpu.write_gpr(d, se_storage::swap(cpu.read_gpr(m)), type == T1 ? 2 : 4); - } -} - -template -void arm_interpreter::REV16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::REVSH(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::ROR_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::ror_imm; - ARG(d, op); - ARG(m, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry; - const u32 result = Shift_C(cpu.read_gpr(m), arm_code::SRType_ROR, shift_n, cpu.APSR.C, carry); - cpu.write_gpr(d, result, 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - } - } -} - -template -void arm_interpreter::ROR_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::ror_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry; - const u32 shift_n = cpu.read_gpr(m) & 0xff; - const u32 result = Shift_C(cpu.read_gpr(n), arm_code::SRType_ROR, shift_n, cpu.APSR.C, carry); - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - } - } -} - - -template -void arm_interpreter::RRX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::RSB_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::rsb_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry, overflow; - const u32 result = AddWithCarry(~cpu.read_gpr(n), imm32, true, carry, overflow); - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - cpu.APSR.V = overflow; - } - } -} - -template -void arm_interpreter::RSB_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::RSB_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::RSC_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::RSC_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::RSC_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::SADD16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SADD8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SASX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::SBC_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SBC_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SBC_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::SBFX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::SDIV(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::SEL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::SHADD16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SHADD8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SHASX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SHSAX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SHSUB16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SHSUB8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::SMLA__(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMLAD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMLAL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMLAL__(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMLALD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMLAW_(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMLSD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMLSLD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMMLA(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMMLS(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMMUL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMUAD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMUL__(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMULL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMULW_(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SMUSD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::SSAT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SSAT16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SSAX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SSUB16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SSUB8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::STM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::stm; - ARG(n, op); - ARG(registers, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - auto memory = vm::ptr::make(cpu.read_gpr(n)); - - for (u32 i = 0; i < 16; i++) - { - if (registers & (1 << i)) - { - *memory++ = cpu.read_gpr(i); - } - } - - if (wback) - { - cpu.write_gpr(n, memory.addr(), type == T1 ? 2 : 4); - } - } -} - -template -void arm_interpreter::STMDA(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::STMDB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::STMIB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::STR_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::str_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 offset_addr = add ? cpu.read_gpr(n) + imm32 : cpu.read_gpr(n) - imm32; - const u32 addr = index ? offset_addr : cpu.read_gpr(n); - vm::write32(addr, cpu.read_gpr(t)); - - if (wback) - { - cpu.write_gpr(n, offset_addr, type < T3 ? 2 : 4); - } - } -} - -template -void arm_interpreter::STR_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::str_reg; - ARG(t, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 offset = Shift(cpu.read_gpr(m), shift_t, shift_n, cpu.APSR.C); - const u32 offset_addr = add ? cpu.read_gpr(n) + offset : cpu.read_gpr(n) - offset; - const u32 addr = index ? offset_addr : cpu.read_gpr(n); - vm::write32(addr, cpu.read_gpr(t)); - - if (wback) - { - cpu.write_gpr(n, offset_addr, type == T1 ? 2 : 4); - } - } -} - - -template -void arm_interpreter::STRB_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::strb_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 offset_addr = add ? cpu.read_gpr(n) + imm32 : cpu.read_gpr(n) - imm32; - const u32 addr = index ? offset_addr : cpu.read_gpr(n); - vm::write8(addr, (u8)cpu.read_gpr(t)); - - if (wback) - { - cpu.write_gpr(n, offset_addr, type == T1 ? 2 : 4); - } - } -} - -template -void arm_interpreter::STRB_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::strb_reg; - ARG(t, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 offset = Shift(cpu.read_gpr(m), shift_t, shift_n, cpu.APSR.C); - const u32 offset_addr = add ? cpu.read_gpr(n) + offset : cpu.read_gpr(n) - offset; - const u32 addr = index ? offset_addr : cpu.read_gpr(n); - vm::write8(addr, (u8)cpu.read_gpr(t)); - - if (wback) - { - cpu.write_gpr(n, offset_addr, type == T1 ? 2 : 4); - } - } -} - - -template -void arm_interpreter::STRD_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::strd_imm; - ARG(t, op); - ARG(t2, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 n_value = cpu.read_gpr(n); - const u32 offset = add ? n_value + imm32 : n_value - imm32; - const u32 addr = index ? offset : n_value; - vm::write64(addr, (u64)cpu.read_gpr(t2) << 32 | (u64)cpu.read_gpr(t)); - - if (wback) - { - cpu.write_gpr(n, offset, 4); - } - } -} - -template -void arm_interpreter::STRD_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::STRH_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::strh_imm; - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 offset_addr = add ? cpu.read_gpr(n) + imm32 : cpu.read_gpr(n) - imm32; - const u32 addr = index ? offset_addr : cpu.read_gpr(n); - vm::write16(addr, (u16)cpu.read_gpr(t)); - - if (wback) - { - cpu.write_gpr(n, offset_addr, type == T1 ? 2 : 4); - } - } -} - -template -void arm_interpreter::STRH_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::strh_reg; - ARG(t, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(index, op); - ARG(add, op); - ARG(wback, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 offset = Shift(cpu.read_gpr(m), shift_t, shift_n, cpu.APSR.C); - const u32 offset_addr = add ? cpu.read_gpr(n) + offset : cpu.read_gpr(n) - offset; - const u32 addr = index ? offset_addr : cpu.read_gpr(n); - vm::write16(addr, (u16)cpu.read_gpr(t)); - - if (wback) - { - cpu.write_gpr(n, offset_addr, type == T1 ? 2 : 4); - } - } -} - - -template -void arm_interpreter::STREX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::strex; - ARG(d, op); - ARG(t, op); - ARG(n, op); - ARG(imm32, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 addr = cpu.read_gpr(n) + imm32; - const u32 value = cpu.read_gpr(t); - - atomic_le_t& data = vm::_ref>(addr); - - if (cpu.raddr != addr || cpu.rdata != data.load()) - { - // Failure - cpu.raddr = 0; - cpu.write_gpr(d, true, 4); - return; - } - - bool result; - - if (s_use_rtm && utils::transaction_enter()) - { - if (!vm::reader_lock{vm::try_to_lock}) - { - _xabort(0); - } - - result = cpu.rtime == vm::reservation_acquire(addr, sizeof(u32)) && data.compare_and_swap_test(cpu.rdata, value); - - if (result) - { - vm::reservation_update(addr, sizeof(u32)); - } - - _xend(); - } - else - { - vm::writer_lock lock(0); - - result = cpu.rtime == vm::reservation_acquire(addr, sizeof(u32)) && data.compare_and_swap_test(cpu.rdata, value); - - if (result) - { - vm::reservation_update(addr, sizeof(u32)); - } - } - - cpu.raddr = 0; - cpu.write_gpr(d, !result, 4); - } -} - -template -void arm_interpreter::STREXB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::STREXD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::STREXH(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::SUB_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::sub_imm; - ARG(d, op); - ARG(n, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry, overflow; - const u32 result = AddWithCarry(cpu.read_gpr(n), ~imm32, true, carry, overflow); - cpu.write_gpr(d, result, type < T3 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - cpu.APSR.V = overflow; - } - } -} - -template -void arm_interpreter::SUB_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::sub_reg; - ARG(d, op); - ARG(n, op); - ARG(m, op); - ARG(shift_t, op); - ARG(shift_n, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry, overflow; - const u32 shifted = Shift(cpu.read_gpr(m), shift_t, shift_n, cpu.APSR.C); - const u32 result = AddWithCarry(cpu.read_gpr(n), ~shifted, true, carry, overflow); - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - cpu.APSR.V = overflow; - } - } -} - -template -void arm_interpreter::SUB_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SUB_SPI(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::sub_spi; - ARG(d, op); - ARG(imm32, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - bool carry, overflow; - const u32 result = AddWithCarry(cpu.SP, ~imm32, true, carry, overflow); - cpu.write_gpr(d, result, type == T1 ? 2 : 4); - - if (set_flags) - { - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = carry; - cpu.APSR.V = overflow; - } - } -} - -template -void arm_interpreter::SUB_SPR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::SVC(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::SXTAB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SXTAB16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SXTAH(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SXTB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SXTB16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::SXTH(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::TB_(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::TEQ_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::TEQ_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::TEQ_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::TST_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::tst_imm; - ARG(n, op); - ARG(imm32, op); - - if (ConditionPassed(cpu, cond)) - { - const u32 result = cpu.read_gpr(n) & imm32; - cpu.APSR.N = result >> 31; - cpu.APSR.Z = result == 0; - cpu.APSR.C = args::carry::extract(op, cpu.APSR.C); - } -} - -template -void arm_interpreter::TST_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::TST_RSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::UADD16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UADD8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UASX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UBFX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UDIV(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UHADD16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UHADD8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UHASX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UHSAX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UHSUB16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UHSUB8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UMAAL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UMLAL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UMULL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::umull; - ARG(d0, op); - ARG(d1, op); - ARG(n, op); - ARG(m, op); - ARG(set_flags, op, cond); - - if (ConditionPassed(cpu, cond)) - { - const u64 result = (u64)cpu.read_gpr(n) * (u64)cpu.read_gpr(m); - cpu.write_gpr(d1, (u32)(result >> 32), 4); - cpu.write_gpr(d0, (u32)(result), 4); - - if (set_flags) - { - cpu.APSR.N = result >> 63 != 0; - cpu.APSR.Z = result == 0; - } - } -} - -template -void arm_interpreter::UQADD16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UQADD8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UQASX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UQSAX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UQSUB16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UQSUB8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::USAD8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::USADA8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::USAT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::USAT16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::USAX(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::USUB16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::USUB8(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UXTAB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UXTAB16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UXTAH(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UXTB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - using args = arm_code::uxtb; - ARG(d, op); - ARG(m, op); - ARG(rotation, op); - - if (ConditionPassed(cpu, cond)) - { - cpu.write_gpr(d, u8(cpu.read_gpr(m) >> rotation), type == T1 ? 2 : 4); - } -} - -template -void arm_interpreter::UXTB16(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::UXTH(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::VABA_(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VABD_(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VABD_FP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VABS(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VAC__(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VADD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VADD_FP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VADDHN(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VADD_(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VAND(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VBIC_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VBIC_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VB__(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCEQ_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCEQ_ZERO(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCGE_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCGE_ZERO(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCGT_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCGT_ZERO(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCLE_ZERO(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCLS(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCLT_ZERO(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCLZ(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCMP_(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCNT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCVT_FIA(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCVT_FIF(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCVT_FFA(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCVT_FFF(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCVT_DF(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCVT_HFA(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VCVT_HFF(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VDIV(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VDUP_S(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VDUP_R(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VEOR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VEXT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VHADDSUB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VLD__MS(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VLD1_SL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VLD1_SAL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VLD2_SL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VLD2_SAL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VLD3_SL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VLD3_SAL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VLD4_SL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VLD4_SAL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VLDM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VLDR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMAXMIN(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMAXMIN_FP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VML__(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VML__FP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VML__S(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMOV_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMOV_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMOV_RS(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMOV_SR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMOV_RF(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMOV_2RF(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMOV_2RD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMOVL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMOVN(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMRS(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMSR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMUL_(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMUL_FP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMUL_S(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMVN_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VMVN_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VNEG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VNM__(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VORN_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VORR_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VORR_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VPADAL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VPADD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VPADD_FP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VPADDL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VPMAXMIN(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VPMAXMIN_FP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VPOP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VPUSH(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQABS(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQADD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQDML_L(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQDMULH(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQDMULL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQMOV_N(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQNEG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQRDMULH(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQRSHL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQRSHR_N(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQSHL_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQSHL_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQSHR_N(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VQSUB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VRADDHN(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VRECPE(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VRECPS(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VREV__(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VRHADD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VRSHL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VRSHR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VRSHRN(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VRSQRTE(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VRSQRTS(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VRSRA(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VRSUBHN(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSHL_IMM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSHL_REG(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSHLL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSHR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSHRN(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSLI(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSQRT(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSRA(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSRI(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VST__MS(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VST1_SL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VST2_SL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VST3_SL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VST4_SL(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSTM(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSTR(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSUB(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSUB_FP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSUBHN(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSUB_(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VSWP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VTB_(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VTRN(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VTST(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VUZP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::VZIP(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - - -template -void arm_interpreter::WFE(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::WFI(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template -void arm_interpreter::YIELD(ARMv7Thread& cpu, const u32 op, const u32 cond) -{ - fmt::throw_exception("TODO" HERE); -} - -template void arm_interpreter::HACK(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::HACK(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADC_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADC_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADC_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADC_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADC_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADC_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_SPI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_SPI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_SPI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_SPI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_SPI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_SPR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_SPR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_SPR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADD_SPR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ADR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::AND_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::AND_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::AND_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::AND_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::AND_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::AND_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ASR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ASR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ASR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ASR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ASR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ASR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::B(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::B(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::B(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::B(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::B(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BFC(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BFC(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BFI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BFI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BIC_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BIC_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BIC_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BIC_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BIC_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BIC_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BKPT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BKPT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BLX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BLX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::BX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CB_Z(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CLZ(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CLZ(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMN_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMN_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMN_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMN_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMN_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMN_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMP_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMP_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMP_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMP_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMP_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMP_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMP_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::CMP_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::DBG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::DBG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::DMB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::DMB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::DSB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::DSB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::EOR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::EOR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::EOR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::EOR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::EOR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::EOR_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::IT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDMDA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDMDB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDMDB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDMIB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDR_LIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDR_LIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDR_LIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRB_LIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRB_LIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRD_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRD_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRD_LIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRD_LIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRD_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDREX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDREX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDREXB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDREXB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDREXD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDREXD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDREXH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDREXH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRH_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRH_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRH_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRH_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRH_LIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRH_LIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRH_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRH_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRH_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSB_LIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSB_LIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSH_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSH_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSH_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSH_LIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSH_LIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSH_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSH_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LDRSH_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LSL_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LSL_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LSL_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LSL_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LSL_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LSL_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LSR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LSR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LSR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LSR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LSR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::LSR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MLA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MLA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MLS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MLS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MOV_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MOV_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MOV_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MOV_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MOV_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MOV_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MOV_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MOV_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MOV_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MOVT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MOVT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MRC_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MRC_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MRC_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MRC_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MRS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MRS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MSR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MSR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MSR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MUL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MUL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MUL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MVN_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MVN_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MVN_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MVN_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MVN_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::MVN_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::NOP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::NOP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::NOP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ORN_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ORN_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ORR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ORR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ORR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ORR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ORR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ORR_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::PKH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::PKH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::POP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::POP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::POP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::POP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::POP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::PUSH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::PUSH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::PUSH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::PUSH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::PUSH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QADD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QADD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QADD16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QADD16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QADD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QADD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QASX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QASX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QDADD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QDADD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QDSUB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QDSUB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QSAX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QSAX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QSUB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QSUB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QSUB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QSUB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QSUB8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::QSUB8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::RBIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::RBIT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::REV(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::REV(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::REV(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::REV16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::REV16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::REV16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::REVSH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::REVSH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::REVSH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ROR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ROR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ROR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ROR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::ROR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::RRX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::RRX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::RSB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::RSB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::RSB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::RSB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::RSB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::RSB_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::RSC_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::RSC_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::RSC_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SADD16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SADD16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SADD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SADD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SASX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SASX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SBC_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SBC_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SBC_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SBC_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SBC_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SBC_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SBFX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SBFX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SDIV(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SEL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SEL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SHADD16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SHADD16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SHADD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SHADD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SHASX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SHASX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SHSAX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SHSAX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SHSUB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SHSUB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SHSUB8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SHSUB8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLA__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLA__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLAD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLAD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLAL__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLAL__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLALD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLALD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLAW_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLAW_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLSD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLSD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLSLD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMLSLD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMMLA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMMLA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMMLS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMMLS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMMUL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMMUL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMUAD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMUAD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMUL__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMUL__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMULL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMULL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMULW_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMULW_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMUSD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SMUSD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SSAT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SSAT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SSAT16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SSAT16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SSAX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SSAX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SSUB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SSUB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SSUB8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SSUB8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STMDA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STMDB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STMDB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STMIB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRD_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRD_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRD_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STREX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STREX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STREXB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STREXB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STREXD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STREXD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STREXH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STREXH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRH_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRH_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRH_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRH_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRH_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRH_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::STRH_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_SPI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_SPI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_SPI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_SPI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_SPR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SUB_SPR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SVC(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SVC(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTAB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTAB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTAB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTAB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTAH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTAH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::SXTH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::TB_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::TEQ_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::TEQ_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::TEQ_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::TEQ_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::TEQ_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::TST_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::TST_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::TST_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::TST_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::TST_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::TST_RSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UADD16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UADD16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UADD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UADD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UASX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UASX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UBFX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UBFX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UDIV(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UHADD16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UHADD16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UHADD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UHADD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UHASX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UHASX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UHSAX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UHSAX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UHSUB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UHSUB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UHSUB8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UHSUB8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UMAAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UMAAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UMLAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UMLAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UMULL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UMULL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UQADD16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UQADD16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UQADD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UQADD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UQASX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UQASX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UQSAX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UQSAX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UQSUB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UQSUB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UQSUB8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UQSUB8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USAD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USAD8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USADA8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USADA8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USAT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USAT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USAT16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USAT16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USAX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USAX(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USUB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USUB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USUB8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::USUB8(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTAB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTAB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTAB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTAB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTAH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTAH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTB16(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::UXTH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABA_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABA_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABA_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABA_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABD_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABD_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABD_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABD_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABD_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABD_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VABS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VAC__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VAC__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VADD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VADD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VADD_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VADD_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VADD_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VADD_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VADDHN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VADDHN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VADD_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VADD_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VAND(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VAND(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VBIC_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VBIC_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VBIC_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VBIC_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VB__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VB__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCEQ_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCEQ_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCEQ_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCEQ_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCEQ_ZERO(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCEQ_ZERO(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCGE_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCGE_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCGE_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCGE_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCGE_ZERO(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCGE_ZERO(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCGT_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCGT_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCGT_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCGT_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCGT_ZERO(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCGT_ZERO(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCLE_ZERO(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCLE_ZERO(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCLS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCLS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCLT_ZERO(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCLT_ZERO(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCLZ(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCLZ(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCMP_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCMP_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCMP_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCMP_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCNT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCNT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_FIA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_FIA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_FIF(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_FIF(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_FFA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_FFA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_FFF(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_FFF(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_DF(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_DF(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_HFA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_HFA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_HFF(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VCVT_HFF(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VDIV(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VDIV(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VDUP_S(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VDUP_S(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VDUP_R(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VDUP_R(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VEOR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VEOR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VEXT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VEXT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VHADDSUB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VHADDSUB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD__MS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD__MS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD1_SAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD1_SAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD1_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD1_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD2_SAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD2_SAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD2_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD2_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD3_SAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD3_SAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD3_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD3_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD4_SAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD4_SAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD4_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLD4_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLDM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLDM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLDM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLDM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLDR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLDR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLDR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VLDR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMAXMIN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMAXMIN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMAXMIN_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMAXMIN_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VML__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VML__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VML__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VML__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VML__FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VML__FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VML__FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VML__FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VML__S(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VML__S(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VML__S(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VML__S(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_RS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_RS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_SR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_SR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_RF(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_RF(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_2RF(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_2RF(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_2RD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOV_2RD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOVL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOVL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOVN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMOVN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMRS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMRS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMSR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMUL_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMUL_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMUL_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMUL_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMUL_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMUL_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMUL_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMUL_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMUL_S(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMUL_S(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMUL_S(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMUL_S(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMVN_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMVN_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMVN_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VMVN_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VNEG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VNEG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VNEG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VNEG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VNM__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VNM__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VNM__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VNM__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VORN_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VORN_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VORR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VORR_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VORR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VORR_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPADAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPADAL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPADD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPADD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPADD_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPADD_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPADDL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPADDL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPMAXMIN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPMAXMIN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPMAXMIN_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPMAXMIN_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPOP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPOP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPOP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPOP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPUSH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPUSH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPUSH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VPUSH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQABS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQABS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQADD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQADD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQDML_L(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQDML_L(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQDML_L(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQDML_L(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQDMULH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQDMULH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQDMULH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQDMULH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQDMULL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQDMULL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQDMULL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQDMULL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQMOV_N(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQMOV_N(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQNEG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQNEG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQRDMULH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQRDMULH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQRDMULH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQRDMULH(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQRSHL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQRSHL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQRSHR_N(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQRSHR_N(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQSHL_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQSHL_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQSHL_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQSHL_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQSHR_N(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQSHR_N(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQSUB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VQSUB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRADDHN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRADDHN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRECPE(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRECPE(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRECPS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRECPS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VREV__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VREV__(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRHADD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRHADD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSHL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSHL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSHR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSHR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSHRN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSHRN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSQRTE(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSQRTE(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSQRTS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSQRTS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSRA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSRA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSUBHN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VRSUBHN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSHL_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSHL_IMM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSHL_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSHL_REG(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSHLL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSHLL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSHLL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSHLL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSHR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSHR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSHRN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSHRN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSLI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSLI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSQRT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSQRT(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSRA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSRA(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSRI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSRI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VST__MS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VST__MS(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VST1_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VST1_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VST2_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VST2_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VST3_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VST3_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VST4_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VST4_SL(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSTM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSTM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSTM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSTM(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSTR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSTR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSTR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSTR(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSUB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSUB(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSUB_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSUB_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSUB_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSUB_FP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSUBHN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSUBHN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSUB_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSUB_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSWP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VSWP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VTB_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VTB_(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VTRN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VTRN(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VTST(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VTST(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VUZP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VUZP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VZIP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::VZIP(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::WFE(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::WFE(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::WFE(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::WFI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::WFI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::WFI(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::YIELD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::YIELD(ARMv7Thread&, const u32, const u32); -template void arm_interpreter::YIELD(ARMv7Thread&, const u32, const u32); diff --git a/rpcs3/Emu/PSP2/ARMv7Interpreter.h b/rpcs3/Emu/PSP2/ARMv7Interpreter.h deleted file mode 100644 index 50ce71d636..0000000000 --- a/rpcs3/Emu/PSP2/ARMv7Interpreter.h +++ /dev/null @@ -1,604 +0,0 @@ -#pragma once - -#include "ARMv7Thread.h" -#include "ARMv7Opcodes.h" - -struct arm_interpreter -{ - template - static u32 BitCount(T x, size_t len) - { - u32 result = 0; - - for (T mask = static_cast(1) << (len - 1); mask; mask >>= 1) - { - if (x & mask) result++; - } - - return result; - } - - static u32 DecodeImmShift(u32 type, u32 imm5, u32* shift_n) - { - using namespace arm_code; - - SRType shift_t; - - switch (type) - { - case 0: shift_t = SRType_LSL; if (shift_n) *shift_n = imm5; break; - case 1: shift_t = SRType_LSR; if (shift_n) *shift_n = imm5 == 0 ? 32 : imm5; break; - case 2: shift_t = SRType_ASR; if (shift_n) *shift_n = imm5 == 0 ? 32 : imm5; break; - case 3: - if (imm5 == 0) - { - shift_t = SRType_RRX; if (shift_n) *shift_n = 1; - } - else - { - shift_t = SRType_ROR; if (shift_n) *shift_n = imm5; - } - break; - - default: fmt::throw_exception("Unimplemented" HERE); - } - - return shift_t; - } - - static u32 LSL_C(u32 x, s32 shift, bool& carry_out) - { - verify(HERE), (shift > 0); - carry_out = shift <= 32 ? (x & (1 << (32 - shift))) != 0 : false; - return shift < 32 ? x << shift : 0; - } - - static u32 LSL_(u32 x, s32 shift) - { - verify(HERE), (shift >= 0); - return shift < 32 ? x << shift : 0; - } - - static u32 LSR_C(u32 x, s32 shift, bool& carry_out) - { - verify(HERE), (shift > 0); - carry_out = shift <= 32 ? (x & (1 << (shift - 1))) != 0 : false; - return shift < 32 ? x >> shift : 0; - } - - static u32 LSR_(u32 x, s32 shift) - { - verify(HERE), (shift >= 0); - return shift < 32 ? x >> shift : 0; - } - - static s32 ASR_C(s32 x, s32 shift, bool& carry_out) - { - verify(HERE), (shift > 0); - carry_out = shift <= 32 ? (x & (1 << (shift - 1))) != 0 : x < 0; - return shift < 32 ? x >> shift : x >> 31; - } - - static s32 ASR_(s32 x, s32 shift) - { - verify(HERE), (shift >= 0); - return shift < 32 ? x >> shift : x >> 31; - } - - static u32 ROR_C(u32 x, s32 shift, bool& carry_out) - { - verify(HERE), (shift); - const u32 result = x >> shift | x << (32 - shift); - carry_out = (result >> 31) != 0; - return result; - } - - static u32 ROR_(u32 x, s32 shift) - { - return x >> shift | x << (32 - shift); - } - - static u32 RRX_C(u32 x, bool carry_in, bool& carry_out) - { - carry_out = x & 0x1; - return ((u32)carry_in << 31) | (x >> 1); - } - - static u32 RRX_(u32 x, bool carry_in) - { - return ((u32)carry_in << 31) | (x >> 1); - } - - static u32 Shift_C(u32 value, u32 type, s32 amount, bool carry_in, bool& carry_out) - { - verify(HERE), (type != arm_code::SRType_RRX || amount == 1); - - if (amount) - { - switch (type) - { - case arm_code::SRType_LSL: return LSL_C(value, amount, carry_out); - case arm_code::SRType_LSR: return LSR_C(value, amount, carry_out); - case arm_code::SRType_ASR: return ASR_C(value, amount, carry_out); - case arm_code::SRType_ROR: return ROR_C(value, amount, carry_out); - case arm_code::SRType_RRX: return RRX_C(value, carry_in, carry_out); - default: fmt::throw_exception("Unimplemented" HERE); - } - } - - carry_out = carry_in; - return value; - } - - static u32 Shift(u32 value, u32 type, s32 amount, bool carry_in) - { - bool carry_out; - return Shift_C(value, type, amount, carry_in, carry_out); - } - - template static T AddWithCarry(T x, T y, bool carry_in, bool& carry_out, bool& overflow) - { - const T sign_mask = (T)1 << (sizeof(T) * 8 - 1); - - T result = x + y; - carry_out = (((x & y) | ((x ^ y) & ~result)) & sign_mask) != 0; - overflow = ((x ^ result) & (y ^ result) & sign_mask) != 0; - if (carry_in) - { - result += 1; - carry_out ^= (result == 0); - overflow ^= (result == sign_mask); - } - return result; - } - - static bool ConditionPassed(ARMv7Thread& cpu, u32 cond) - { - bool result = false; - - switch (cond >> 1) - { - case 0: result = (cpu.APSR.Z == 1); break; - case 1: result = (cpu.APSR.C == 1); break; - case 2: result = (cpu.APSR.N == 1); break; - case 3: result = (cpu.APSR.V == 1); break; - case 4: result = (cpu.APSR.C == 1) && (cpu.APSR.Z == 0); break; - case 5: result = (cpu.APSR.N == cpu.APSR.V); break; - case 6: result = (cpu.APSR.N == cpu.APSR.V) && (cpu.APSR.Z == 0); break; - case 7: return true; - } - - if (cond & 0x1) - { - return !result; - } - - return result; - } - - static void UNK(ARMv7Thread&, const u32 op, const u32 cond); - - template static void HACK(ARMv7Thread&, const u32, const u32); - template static void MRC_(ARMv7Thread&, const u32, const u32); - - template static void ADC_IMM(ARMv7Thread&, const u32, const u32); - template static void ADC_REG(ARMv7Thread&, const u32, const u32); - template static void ADC_RSR(ARMv7Thread&, const u32, const u32); - - template static void ADD_IMM(ARMv7Thread&, const u32, const u32); - template static void ADD_REG(ARMv7Thread&, const u32, const u32); - template static void ADD_RSR(ARMv7Thread&, const u32, const u32); - template static void ADD_SPI(ARMv7Thread&, const u32, const u32); - template static void ADD_SPR(ARMv7Thread&, const u32, const u32); - - template static void ADR(ARMv7Thread&, const u32, const u32); - - template static void AND_IMM(ARMv7Thread&, const u32, const u32); - template static void AND_REG(ARMv7Thread&, const u32, const u32); - template static void AND_RSR(ARMv7Thread&, const u32, const u32); - - template static void ASR_IMM(ARMv7Thread&, const u32, const u32); - template static void ASR_REG(ARMv7Thread&, const u32, const u32); - - template static void B(ARMv7Thread&, const u32, const u32); - - template static void BFC(ARMv7Thread&, const u32, const u32); - template static void BFI(ARMv7Thread&, const u32, const u32); - - template static void BIC_IMM(ARMv7Thread&, const u32, const u32); - template static void BIC_REG(ARMv7Thread&, const u32, const u32); - template static void BIC_RSR(ARMv7Thread&, const u32, const u32); - - template static void BKPT(ARMv7Thread&, const u32, const u32); - - template static void BL(ARMv7Thread&, const u32, const u32); - template static void BLX(ARMv7Thread&, const u32, const u32); - template static void BX(ARMv7Thread&, const u32, const u32); - - template static void CB_Z(ARMv7Thread&, const u32, const u32); - - template static void CLZ(ARMv7Thread&, const u32, const u32); - - template static void CMN_IMM(ARMv7Thread&, const u32, const u32); - template static void CMN_REG(ARMv7Thread&, const u32, const u32); - template static void CMN_RSR(ARMv7Thread&, const u32, const u32); - - template static void CMP_IMM(ARMv7Thread&, const u32, const u32); - template static void CMP_REG(ARMv7Thread&, const u32, const u32); - template static void CMP_RSR(ARMv7Thread&, const u32, const u32); - - template static void DBG(ARMv7Thread&, const u32, const u32); - template static void DMB(ARMv7Thread&, const u32, const u32); - template static void DSB(ARMv7Thread&, const u32, const u32); - - template static void EOR_IMM(ARMv7Thread&, const u32, const u32); - template static void EOR_REG(ARMv7Thread&, const u32, const u32); - template static void EOR_RSR(ARMv7Thread&, const u32, const u32); - - template static void IT(ARMv7Thread&, const u32, const u32); - - template static void LDM(ARMv7Thread&, const u32, const u32); - template static void LDMDA(ARMv7Thread&, const u32, const u32); - template static void LDMDB(ARMv7Thread&, const u32, const u32); - template static void LDMIB(ARMv7Thread&, const u32, const u32); - - template static void LDR_IMM(ARMv7Thread&, const u32, const u32); - template static void LDR_LIT(ARMv7Thread&, const u32, const u32); - template static void LDR_REG(ARMv7Thread&, const u32, const u32); - - template static void LDRB_IMM(ARMv7Thread&, const u32, const u32); - template static void LDRB_LIT(ARMv7Thread&, const u32, const u32); - template static void LDRB_REG(ARMv7Thread&, const u32, const u32); - - template static void LDRD_IMM(ARMv7Thread&, const u32, const u32); - template static void LDRD_LIT(ARMv7Thread&, const u32, const u32); - template static void LDRD_REG(ARMv7Thread&, const u32, const u32); - - template static void LDRH_IMM(ARMv7Thread&, const u32, const u32); - template static void LDRH_LIT(ARMv7Thread&, const u32, const u32); - template static void LDRH_REG(ARMv7Thread&, const u32, const u32); - - template static void LDRSB_IMM(ARMv7Thread&, const u32, const u32); - template static void LDRSB_LIT(ARMv7Thread&, const u32, const u32); - template static void LDRSB_REG(ARMv7Thread&, const u32, const u32); - - template static void LDRSH_IMM(ARMv7Thread&, const u32, const u32); - template static void LDRSH_LIT(ARMv7Thread&, const u32, const u32); - template static void LDRSH_REG(ARMv7Thread&, const u32, const u32); - - template static void LDREX(ARMv7Thread&, const u32, const u32); - template static void LDREXB(ARMv7Thread&, const u32, const u32); - template static void LDREXD(ARMv7Thread&, const u32, const u32); - template static void LDREXH(ARMv7Thread&, const u32, const u32); - - template static void LSL_IMM(ARMv7Thread&, const u32, const u32); - template static void LSL_REG(ARMv7Thread&, const u32, const u32); - - template static void LSR_IMM(ARMv7Thread&, const u32, const u32); - template static void LSR_REG(ARMv7Thread&, const u32, const u32); - - template static void MLA(ARMv7Thread&, const u32, const u32); - template static void MLS(ARMv7Thread&, const u32, const u32); - - template static void MOV_IMM(ARMv7Thread&, const u32, const u32); - template static void MOV_REG(ARMv7Thread&, const u32, const u32); - template static void MOVT(ARMv7Thread&, const u32, const u32); - - template static void MRS(ARMv7Thread&, const u32, const u32); - template static void MSR_IMM(ARMv7Thread&, const u32, const u32); - template static void MSR_REG(ARMv7Thread&, const u32, const u32); - - template static void MUL(ARMv7Thread&, const u32, const u32); - - template static void MVN_IMM(ARMv7Thread&, const u32, const u32); - template static void MVN_REG(ARMv7Thread&, const u32, const u32); - template static void MVN_RSR(ARMv7Thread&, const u32, const u32); - - template static void NOP(ARMv7Thread&, const u32, const u32); - - template static void ORN_IMM(ARMv7Thread&, const u32, const u32); - template static void ORN_REG(ARMv7Thread&, const u32, const u32); - - template static void ORR_IMM(ARMv7Thread&, const u32, const u32); - template static void ORR_REG(ARMv7Thread&, const u32, const u32); - template static void ORR_RSR(ARMv7Thread&, const u32, const u32); - - template static void PKH(ARMv7Thread&, const u32, const u32); - - template static void POP(ARMv7Thread&, const u32, const u32); - template static void PUSH(ARMv7Thread&, const u32, const u32); - - template static void QADD(ARMv7Thread&, const u32, const u32); - template static void QADD16(ARMv7Thread&, const u32, const u32); - template static void QADD8(ARMv7Thread&, const u32, const u32); - template static void QASX(ARMv7Thread&, const u32, const u32); - template static void QDADD(ARMv7Thread&, const u32, const u32); - template static void QDSUB(ARMv7Thread&, const u32, const u32); - template static void QSAX(ARMv7Thread&, const u32, const u32); - template static void QSUB(ARMv7Thread&, const u32, const u32); - template static void QSUB16(ARMv7Thread&, const u32, const u32); - template static void QSUB8(ARMv7Thread&, const u32, const u32); - - template static void RBIT(ARMv7Thread&, const u32, const u32); - template static void REV(ARMv7Thread&, const u32, const u32); - template static void REV16(ARMv7Thread&, const u32, const u32); - template static void REVSH(ARMv7Thread&, const u32, const u32); - - template static void ROR_IMM(ARMv7Thread&, const u32, const u32); - template static void ROR_REG(ARMv7Thread&, const u32, const u32); - - template static void RRX(ARMv7Thread&, const u32, const u32); - - template static void RSB_IMM(ARMv7Thread&, const u32, const u32); - template static void RSB_REG(ARMv7Thread&, const u32, const u32); - template static void RSB_RSR(ARMv7Thread&, const u32, const u32); - - template static void RSC_IMM(ARMv7Thread&, const u32, const u32); - template static void RSC_REG(ARMv7Thread&, const u32, const u32); - template static void RSC_RSR(ARMv7Thread&, const u32, const u32); - - template static void SADD16(ARMv7Thread&, const u32, const u32); - template static void SADD8(ARMv7Thread&, const u32, const u32); - template static void SASX(ARMv7Thread&, const u32, const u32); - - template static void SBC_IMM(ARMv7Thread&, const u32, const u32); - template static void SBC_REG(ARMv7Thread&, const u32, const u32); - template static void SBC_RSR(ARMv7Thread&, const u32, const u32); - - template static void SBFX(ARMv7Thread&, const u32, const u32); - - template static void SDIV(ARMv7Thread&, const u32, const u32); - - template static void SEL(ARMv7Thread&, const u32, const u32); - - template static void SHADD16(ARMv7Thread&, const u32, const u32); - template static void SHADD8(ARMv7Thread&, const u32, const u32); - template static void SHASX(ARMv7Thread&, const u32, const u32); - template static void SHSAX(ARMv7Thread&, const u32, const u32); - template static void SHSUB16(ARMv7Thread&, const u32, const u32); - template static void SHSUB8(ARMv7Thread&, const u32, const u32); - - template static void SMLA__(ARMv7Thread&, const u32, const u32); - template static void SMLAD(ARMv7Thread&, const u32, const u32); - template static void SMLAL(ARMv7Thread&, const u32, const u32); - template static void SMLAL__(ARMv7Thread&, const u32, const u32); - template static void SMLALD(ARMv7Thread&, const u32, const u32); - template static void SMLAW_(ARMv7Thread&, const u32, const u32); - template static void SMLSD(ARMv7Thread&, const u32, const u32); - template static void SMLSLD(ARMv7Thread&, const u32, const u32); - template static void SMMLA(ARMv7Thread&, const u32, const u32); - template static void SMMLS(ARMv7Thread&, const u32, const u32); - template static void SMMUL(ARMv7Thread&, const u32, const u32); - template static void SMUAD(ARMv7Thread&, const u32, const u32); - template static void SMUL__(ARMv7Thread&, const u32, const u32); - template static void SMULL(ARMv7Thread&, const u32, const u32); - template static void SMULW_(ARMv7Thread&, const u32, const u32); - template static void SMUSD(ARMv7Thread&, const u32, const u32); - - template static void SSAT(ARMv7Thread&, const u32, const u32); - template static void SSAT16(ARMv7Thread&, const u32, const u32); - template static void SSAX(ARMv7Thread&, const u32, const u32); - template static void SSUB16(ARMv7Thread&, const u32, const u32); - template static void SSUB8(ARMv7Thread&, const u32, const u32); - - template static void STM(ARMv7Thread&, const u32, const u32); - template static void STMDA(ARMv7Thread&, const u32, const u32); - template static void STMDB(ARMv7Thread&, const u32, const u32); - template static void STMIB(ARMv7Thread&, const u32, const u32); - - template static void STR_IMM(ARMv7Thread&, const u32, const u32); - template static void STR_REG(ARMv7Thread&, const u32, const u32); - - template static void STRB_IMM(ARMv7Thread&, const u32, const u32); - template static void STRB_REG(ARMv7Thread&, const u32, const u32); - - template static void STRD_IMM(ARMv7Thread&, const u32, const u32); - template static void STRD_REG(ARMv7Thread&, const u32, const u32); - - template static void STRH_IMM(ARMv7Thread&, const u32, const u32); - template static void STRH_REG(ARMv7Thread&, const u32, const u32); - - template static void STREX(ARMv7Thread&, const u32, const u32); - template static void STREXB(ARMv7Thread&, const u32, const u32); - template static void STREXD(ARMv7Thread&, const u32, const u32); - template static void STREXH(ARMv7Thread&, const u32, const u32); - - template static void SUB_IMM(ARMv7Thread&, const u32, const u32); - template static void SUB_REG(ARMv7Thread&, const u32, const u32); - template static void SUB_RSR(ARMv7Thread&, const u32, const u32); - template static void SUB_SPI(ARMv7Thread&, const u32, const u32); - template static void SUB_SPR(ARMv7Thread&, const u32, const u32); - - template static void SVC(ARMv7Thread&, const u32, const u32); - - template static void SXTAB(ARMv7Thread&, const u32, const u32); - template static void SXTAB16(ARMv7Thread&, const u32, const u32); - template static void SXTAH(ARMv7Thread&, const u32, const u32); - template static void SXTB(ARMv7Thread&, const u32, const u32); - template static void SXTB16(ARMv7Thread&, const u32, const u32); - template static void SXTH(ARMv7Thread&, const u32, const u32); - - template static void TB_(ARMv7Thread&, const u32, const u32); - - template static void TEQ_IMM(ARMv7Thread&, const u32, const u32); - template static void TEQ_REG(ARMv7Thread&, const u32, const u32); - template static void TEQ_RSR(ARMv7Thread&, const u32, const u32); - - template static void TST_IMM(ARMv7Thread&, const u32, const u32); - template static void TST_REG(ARMv7Thread&, const u32, const u32); - template static void TST_RSR(ARMv7Thread&, const u32, const u32); - - template static void UADD16(ARMv7Thread&, const u32, const u32); - template static void UADD8(ARMv7Thread&, const u32, const u32); - template static void UASX(ARMv7Thread&, const u32, const u32); - template static void UBFX(ARMv7Thread&, const u32, const u32); - template static void UDIV(ARMv7Thread&, const u32, const u32); - template static void UHADD16(ARMv7Thread&, const u32, const u32); - template static void UHADD8(ARMv7Thread&, const u32, const u32); - template static void UHASX(ARMv7Thread&, const u32, const u32); - template static void UHSAX(ARMv7Thread&, const u32, const u32); - template static void UHSUB16(ARMv7Thread&, const u32, const u32); - template static void UHSUB8(ARMv7Thread&, const u32, const u32); - template static void UMAAL(ARMv7Thread&, const u32, const u32); - template static void UMLAL(ARMv7Thread&, const u32, const u32); - template static void UMULL(ARMv7Thread&, const u32, const u32); - template static void UQADD16(ARMv7Thread&, const u32, const u32); - template static void UQADD8(ARMv7Thread&, const u32, const u32); - template static void UQASX(ARMv7Thread&, const u32, const u32); - template static void UQSAX(ARMv7Thread&, const u32, const u32); - template static void UQSUB16(ARMv7Thread&, const u32, const u32); - template static void UQSUB8(ARMv7Thread&, const u32, const u32); - template static void USAD8(ARMv7Thread&, const u32, const u32); - template static void USADA8(ARMv7Thread&, const u32, const u32); - template static void USAT(ARMv7Thread&, const u32, const u32); - template static void USAT16(ARMv7Thread&, const u32, const u32); - template static void USAX(ARMv7Thread&, const u32, const u32); - template static void USUB16(ARMv7Thread&, const u32, const u32); - template static void USUB8(ARMv7Thread&, const u32, const u32); - template static void UXTAB(ARMv7Thread&, const u32, const u32); - template static void UXTAB16(ARMv7Thread&, const u32, const u32); - template static void UXTAH(ARMv7Thread&, const u32, const u32); - template static void UXTB(ARMv7Thread&, const u32, const u32); - template static void UXTB16(ARMv7Thread&, const u32, const u32); - template static void UXTH(ARMv7Thread&, const u32, const u32); - - template static void VABA_(ARMv7Thread&, const u32, const u32); - template static void VABD_(ARMv7Thread&, const u32, const u32); - template static void VABD_FP(ARMv7Thread&, const u32, const u32); - template static void VABS(ARMv7Thread&, const u32, const u32); - template static void VAC__(ARMv7Thread&, const u32, const u32); - template static void VADD(ARMv7Thread&, const u32, const u32); - template static void VADD_FP(ARMv7Thread&, const u32, const u32); - template static void VADDHN(ARMv7Thread&, const u32, const u32); - template static void VADD_(ARMv7Thread&, const u32, const u32); - template static void VAND(ARMv7Thread&, const u32, const u32); - template static void VBIC_IMM(ARMv7Thread&, const u32, const u32); - template static void VBIC_REG(ARMv7Thread&, const u32, const u32); - template static void VB__(ARMv7Thread&, const u32, const u32); - template static void VCEQ_REG(ARMv7Thread&, const u32, const u32); - template static void VCEQ_ZERO(ARMv7Thread&, const u32, const u32); - template static void VCGE_REG(ARMv7Thread&, const u32, const u32); - template static void VCGE_ZERO(ARMv7Thread&, const u32, const u32); - template static void VCGT_REG(ARMv7Thread&, const u32, const u32); - template static void VCGT_ZERO(ARMv7Thread&, const u32, const u32); - template static void VCLE_ZERO(ARMv7Thread&, const u32, const u32); - template static void VCLS(ARMv7Thread&, const u32, const u32); - template static void VCLT_ZERO(ARMv7Thread&, const u32, const u32); - template static void VCLZ(ARMv7Thread&, const u32, const u32); - template static void VCMP_(ARMv7Thread&, const u32, const u32); - template static void VCNT(ARMv7Thread&, const u32, const u32); - template static void VCVT_FIA(ARMv7Thread&, const u32, const u32); - template static void VCVT_FIF(ARMv7Thread&, const u32, const u32); - template static void VCVT_FFA(ARMv7Thread&, const u32, const u32); - template static void VCVT_FFF(ARMv7Thread&, const u32, const u32); - template static void VCVT_DF(ARMv7Thread&, const u32, const u32); - template static void VCVT_HFA(ARMv7Thread&, const u32, const u32); - template static void VCVT_HFF(ARMv7Thread&, const u32, const u32); - template static void VDIV(ARMv7Thread&, const u32, const u32); - template static void VDUP_S(ARMv7Thread&, const u32, const u32); - template static void VDUP_R(ARMv7Thread&, const u32, const u32); - template static void VEOR(ARMv7Thread&, const u32, const u32); - template static void VEXT(ARMv7Thread&, const u32, const u32); - template static void VHADDSUB(ARMv7Thread&, const u32, const u32); - template static void VLD__MS(ARMv7Thread&, const u32, const u32); - template static void VLD1_SL(ARMv7Thread&, const u32, const u32); - template static void VLD1_SAL(ARMv7Thread&, const u32, const u32); - template static void VLD2_SL(ARMv7Thread&, const u32, const u32); - template static void VLD2_SAL(ARMv7Thread&, const u32, const u32); - template static void VLD3_SL(ARMv7Thread&, const u32, const u32); - template static void VLD3_SAL(ARMv7Thread&, const u32, const u32); - template static void VLD4_SL(ARMv7Thread&, const u32, const u32); - template static void VLD4_SAL(ARMv7Thread&, const u32, const u32); - template static void VLDM(ARMv7Thread&, const u32, const u32); - template static void VLDR(ARMv7Thread&, const u32, const u32); - template static void VMAXMIN(ARMv7Thread&, const u32, const u32); - template static void VMAXMIN_FP(ARMv7Thread&, const u32, const u32); - template static void VML__(ARMv7Thread&, const u32, const u32); - template static void VML__FP(ARMv7Thread&, const u32, const u32); - template static void VML__S(ARMv7Thread&, const u32, const u32); - template static void VMOV_IMM(ARMv7Thread&, const u32, const u32); - template static void VMOV_REG(ARMv7Thread&, const u32, const u32); - template static void VMOV_RS(ARMv7Thread&, const u32, const u32); - template static void VMOV_SR(ARMv7Thread&, const u32, const u32); - template static void VMOV_RF(ARMv7Thread&, const u32, const u32); - template static void VMOV_2RF(ARMv7Thread&, const u32, const u32); - template static void VMOV_2RD(ARMv7Thread&, const u32, const u32); - template static void VMOVL(ARMv7Thread&, const u32, const u32); - template static void VMOVN(ARMv7Thread&, const u32, const u32); - template static void VMRS(ARMv7Thread&, const u32, const u32); - template static void VMSR(ARMv7Thread&, const u32, const u32); - template static void VMUL_(ARMv7Thread&, const u32, const u32); - template static void VMUL_FP(ARMv7Thread&, const u32, const u32); - template static void VMUL_S(ARMv7Thread&, const u32, const u32); - template static void VMVN_IMM(ARMv7Thread&, const u32, const u32); - template static void VMVN_REG(ARMv7Thread&, const u32, const u32); - template static void VNEG(ARMv7Thread&, const u32, const u32); - template static void VNM__(ARMv7Thread&, const u32, const u32); - template static void VORN_REG(ARMv7Thread&, const u32, const u32); - template static void VORR_IMM(ARMv7Thread&, const u32, const u32); - template static void VORR_REG(ARMv7Thread&, const u32, const u32); - template static void VPADAL(ARMv7Thread&, const u32, const u32); - template static void VPADD(ARMv7Thread&, const u32, const u32); - template static void VPADD_FP(ARMv7Thread&, const u32, const u32); - template static void VPADDL(ARMv7Thread&, const u32, const u32); - template static void VPMAXMIN(ARMv7Thread&, const u32, const u32); - template static void VPMAXMIN_FP(ARMv7Thread&, const u32, const u32); - template static void VPOP(ARMv7Thread&, const u32, const u32); - template static void VPUSH(ARMv7Thread&, const u32, const u32); - template static void VQABS(ARMv7Thread&, const u32, const u32); - template static void VQADD(ARMv7Thread&, const u32, const u32); - template static void VQDML_L(ARMv7Thread&, const u32, const u32); - template static void VQDMULH(ARMv7Thread&, const u32, const u32); - template static void VQDMULL(ARMv7Thread&, const u32, const u32); - template static void VQMOV_N(ARMv7Thread&, const u32, const u32); - template static void VQNEG(ARMv7Thread&, const u32, const u32); - template static void VQRDMULH(ARMv7Thread&, const u32, const u32); - template static void VQRSHL(ARMv7Thread&, const u32, const u32); - template static void VQRSHR_N(ARMv7Thread&, const u32, const u32); - template static void VQSHL_REG(ARMv7Thread&, const u32, const u32); - template static void VQSHL_IMM(ARMv7Thread&, const u32, const u32); - template static void VQSHR_N(ARMv7Thread&, const u32, const u32); - template static void VQSUB(ARMv7Thread&, const u32, const u32); - template static void VRADDHN(ARMv7Thread&, const u32, const u32); - template static void VRECPE(ARMv7Thread&, const u32, const u32); - template static void VRECPS(ARMv7Thread&, const u32, const u32); - template static void VREV__(ARMv7Thread&, const u32, const u32); - template static void VRHADD(ARMv7Thread&, const u32, const u32); - template static void VRSHL(ARMv7Thread&, const u32, const u32); - template static void VRSHR(ARMv7Thread&, const u32, const u32); - template static void VRSHRN(ARMv7Thread&, const u32, const u32); - template static void VRSQRTE(ARMv7Thread&, const u32, const u32); - template static void VRSQRTS(ARMv7Thread&, const u32, const u32); - template static void VRSRA(ARMv7Thread&, const u32, const u32); - template static void VRSUBHN(ARMv7Thread&, const u32, const u32); - template static void VSHL_IMM(ARMv7Thread&, const u32, const u32); - template static void VSHL_REG(ARMv7Thread&, const u32, const u32); - template static void VSHLL(ARMv7Thread&, const u32, const u32); - template static void VSHR(ARMv7Thread&, const u32, const u32); - template static void VSHRN(ARMv7Thread&, const u32, const u32); - template static void VSLI(ARMv7Thread&, const u32, const u32); - template static void VSQRT(ARMv7Thread&, const u32, const u32); - template static void VSRA(ARMv7Thread&, const u32, const u32); - template static void VSRI(ARMv7Thread&, const u32, const u32); - template static void VST__MS(ARMv7Thread&, const u32, const u32); - template static void VST1_SL(ARMv7Thread&, const u32, const u32); - template static void VST2_SL(ARMv7Thread&, const u32, const u32); - template static void VST3_SL(ARMv7Thread&, const u32, const u32); - template static void VST4_SL(ARMv7Thread&, const u32, const u32); - template static void VSTM(ARMv7Thread&, const u32, const u32); - template static void VSTR(ARMv7Thread&, const u32, const u32); - template static void VSUB(ARMv7Thread&, const u32, const u32); - template static void VSUB_FP(ARMv7Thread&, const u32, const u32); - template static void VSUBHN(ARMv7Thread&, const u32, const u32); - template static void VSUB_(ARMv7Thread&, const u32, const u32); - template static void VSWP(ARMv7Thread&, const u32, const u32); - template static void VTB_(ARMv7Thread&, const u32, const u32); - template static void VTRN(ARMv7Thread&, const u32, const u32); - template static void VTST(ARMv7Thread&, const u32, const u32); - template static void VUZP(ARMv7Thread&, const u32, const u32); - template static void VZIP(ARMv7Thread&, const u32, const u32); - - template static void WFE(ARMv7Thread&, const u32, const u32); - template static void WFI(ARMv7Thread&, const u32, const u32); - template static void YIELD(ARMv7Thread&, const u32, const u32); -}; diff --git a/rpcs3/Emu/PSP2/ARMv7Module.cpp b/rpcs3/Emu/PSP2/ARMv7Module.cpp deleted file mode 100644 index 37de3862e3..0000000000 --- a/rpcs3/Emu/PSP2/ARMv7Module.cpp +++ /dev/null @@ -1,601 +0,0 @@ -#include "stdafx.h" -#include "Loader/ELF.h" -#include "Emu/Memory/Memory.h" -#include "Emu/System.h" -#include "Emu/IdManager.h" - -#include "ARMv7Thread.h" -#include "ARMv7Opcodes.h" -#include "ARMv7Function.h" -#include "ARMv7Module.h" -#include "Modules/sceLibKernel.h" - -extern std::string arm_get_function_name(const std::string& module, u32 fnid); -extern std::string arm_get_variable_name(const std::string& module, u32 vnid); - -// Function lookup table. Not supposed to grow after emulation start. -std::vector g_arm_function_cache; - -std::vector g_arm_function_names; - -extern std::string arm_get_module_function_name(u32 index) -{ - if (index < g_arm_function_names.size()) - { - return g_arm_function_names[index]; - } - - return fmt::format(".%u", index); -} - -extern void arm_execute_function(ARMv7Thread& cpu, u32 index) -{ - if (index < g_arm_function_cache.size()) - { - if (const auto func = g_arm_function_cache[index]) - { - func(cpu); - LOG_TRACE(ARMv7, "Function '%s' finished, r0=0x%x", arm_get_module_function_name(index), cpu.GPR[0]); - return; - } - } - - fmt::throw_exception("Function not registered (%u)" HERE, index); -} - -arm_static_module::arm_static_module(const char* name) - : name(name) -{ - arm_module_manager::register_module(this); -} - -std::unordered_map& arm_module_manager::access() -{ - static std::unordered_map map; - - return map; -} - -void arm_module_manager::register_module(arm_static_module* module) -{ - access().emplace(module->name, module); -} - -arm_static_function& arm_module_manager::access_static_function(const char* module, u32 fnid) -{ - return access().at(module)->functions[fnid]; -} - -arm_static_variable& arm_module_manager::access_static_variable(const char* module, u32 vnid) -{ - return access().at(module)->variables[vnid]; -} - -const arm_static_module* arm_module_manager::get_module(const std::string& name) -{ - const auto& map = access(); - const auto found = map.find(name); - return found != map.end() ? found->second : nullptr; -} - -static void arm_initialize_modules() -{ - const std::initializer_list registered - { - &arm_module_manager::SceAppMgr, - &arm_module_manager::SceAppUtil, - &arm_module_manager::SceAudio, - &arm_module_manager::SceAudiodec, - &arm_module_manager::SceAudioenc, - &arm_module_manager::SceAudioIn, - &arm_module_manager::SceCamera, - &arm_module_manager::SceCodecEngine, - &arm_module_manager::SceCommonDialog, - &arm_module_manager::SceCpu, - &arm_module_manager::SceCtrl, - &arm_module_manager::SceDbg, - &arm_module_manager::SceDebugLed, - &arm_module_manager::SceDeci4p, - &arm_module_manager::SceDeflt, - &arm_module_manager::SceDipsw, - &arm_module_manager::SceDisplay, - &arm_module_manager::SceDisplayUser, - &arm_module_manager::SceFiber, - &arm_module_manager::SceFios, - &arm_module_manager::SceFpu, - &arm_module_manager::SceGxm, - &arm_module_manager::SceHttp, - &arm_module_manager::SceIme, - &arm_module_manager::SceIofilemgr, - &arm_module_manager::SceJpeg, - &arm_module_manager::SceJpegEnc, - &arm_module_manager::SceLibc, - &arm_module_manager::SceLibKernel, - &arm_module_manager::SceLibm, - &arm_module_manager::SceLibstdcxx, - &arm_module_manager::SceLibXml, - &arm_module_manager::SceLiveArea, - &arm_module_manager::SceLocation, - &arm_module_manager::SceMd5, - &arm_module_manager::SceModulemgr, - &arm_module_manager::SceMotion, - &arm_module_manager::SceMt19937, - &arm_module_manager::SceNet, - &arm_module_manager::SceNetCtl, - &arm_module_manager::SceNgs, - &arm_module_manager::SceNpBasic, - &arm_module_manager::SceNpCommon, - &arm_module_manager::SceNpManager, - &arm_module_manager::SceNpMatching, - &arm_module_manager::SceNpScore, - &arm_module_manager::SceNpUtility, - &arm_module_manager::ScePerf, - &arm_module_manager::ScePgf, - &arm_module_manager::ScePhotoExport, - &arm_module_manager::SceProcessmgr, - &arm_module_manager::SceRazorCapture, - &arm_module_manager::SceRtc, - &arm_module_manager::SceSas, - &arm_module_manager::SceScreenShot, - &arm_module_manager::SceSfmt, - &arm_module_manager::SceSha, - &arm_module_manager::SceSqlite, - &arm_module_manager::SceSsl, - &arm_module_manager::SceStdio, - &arm_module_manager::SceSulpha, - &arm_module_manager::SceSysmem, - &arm_module_manager::SceSysmodule, - &arm_module_manager::SceSystemGesture, - &arm_module_manager::SceThreadmgr, - &arm_module_manager::SceTouch, - &arm_module_manager::SceUlt, - &arm_module_manager::SceVideodec, - &arm_module_manager::SceVoice, - &arm_module_manager::SceVoiceQoS, - }; - - // Reinitialize function cache - g_arm_function_cache = arm_function_manager::get(); - g_arm_function_names.clear(); - g_arm_function_names.resize(g_arm_function_cache.size()); - - // "Use" all the modules for correct linkage - for (auto& module : registered) - { - LOG_TRACE(LOADER, "Registered static module: %s", module->name); - } - - for (auto& pair : arm_module_manager::get()) - { - const auto module = pair.second; - - for (auto& function : module->functions) - { - LOG_TRACE(LOADER, "** 0x%08X: %s", function.first, function.second.name); - g_arm_function_names.at(function.second.index) = fmt::format("%s.%s", module->name, function.second.name); - } - - for (auto& variable : module->variables) - { - LOG_TRACE(LOADER, "** &0x%08X: %s (size=0x%x, align=0x%x)", variable.first, variable.second.name, variable.second.size, variable.second.align); - variable.second.var->set(0); - } - } -} - -struct psv_moduleinfo_t -{ - le_t attr; // ??? - u8 major; // ??? - u8 minor; // ??? - char name[24]; // ??? - le_t unk0; - le_t unk1; - le_t libent_top; - le_t libent_end; - le_t libstub_top; - le_t libstub_end; - le_t data[1]; // ... -}; - -struct psv_libent_t -{ - le_t size; // ??? - le_t unk0; - le_t unk1; - le_t fcount; - le_t vcount; - le_t unk2; - le_t unk3; - le_t data[1]; // ... -}; - -struct psv_libstub_t -{ - le_t size; // 0x2C, 0x34 - le_t unk0; // (usually 1, 5 for sceLibKernel) - le_t unk1; // (usually 0) - le_t fcount; - le_t vcount; - le_t unk2; - le_t unk3; - le_t data[1]; // ... -}; - -struct psv_libcparam_t -{ - le_t size; - le_t unk0; - - vm::lcptr sceLibcHeapSize; - vm::lcptr sceLibcHeapSizeDefault; - vm::lcptr sceLibcHeapExtendedAlloc; - vm::lcptr sceLibcHeapDelayedAlloc; - - le_t unk1; - le_t unk2; - - vm::lptr __sce_libcmallocreplace; - vm::lptr __sce_libcnewreplace; -}; - -struct psv_process_param_t -{ - le_t size; // 0x00000030 - nse_t ver; // 'PSP2' - le_t unk0; // 0x00000005 - le_t unk1; - - vm::lcptr sceUserMainThreadName; - vm::lcptr sceUserMainThreadPriority; - vm::lcptr sceUserMainThreadStackSize; - vm::lcptr sceUserMainThreadAttribute; - vm::lcptr sceProcessName; - vm::lcptr sce_process_preload_disabled; - vm::lcptr sceUserMainThreadCpuAffinityMask; - - vm::lcptr sce_libcparam; -}; - -static void arm_patch_refs(u32 refs, u32 addr) -{ - auto ptr = vm::cptr::make(refs); - LOG_NOTICE(LOADER, "**** Processing refs at 0x%x:", ptr); - - if (ptr[0] != 0xff || ptr[1] != addr) - { - LOG_ERROR(LOADER, "**** Unexpected ref format ([0]=0x%x, [1]=0x%x)", ptr[0], ptr[1]); - } - else for (ptr += 2; *ptr; ptr++) - { - switch (u32 code = *ptr) - { - case 0x0000002f: // movw r*,# instruction - { - const u32 raddr = *++ptr; - vm::write16(raddr + 0, vm::read16(raddr + 0) | (addr & 0x800) >> 1 | (addr & 0xf000) >> 12); - vm::write16(raddr + 2, vm::read16(raddr + 2) | (addr & 0x700) << 4 | (addr & 0xff)); - - LOG_NOTICE(LOADER, "**** MOVW written at *0x%x", raddr); - break; - } - case 0x00000030: // movt r*,# instruction - { - const u32 raddr = *++ptr; - vm::write16(raddr + 0, vm::read16(raddr + 0) | (addr & 0x8000000) >> 17 | (addr & 0xf0000000) >> 28); - vm::write16(raddr + 2, vm::read16(raddr + 2) | (addr & 0x7000000) >> 12 | (addr & 0xff0000) >> 16); - - LOG_NOTICE(LOADER, "**** MOVT written at *0x%x", raddr); - break; - } - default: - { - LOG_ERROR(LOADER, "**** Unknown ref code found (0x%08x)", code); - } - } - } - -} - -void arm_load_exec(const arm_exec_object& elf) -{ - arm_initialize_modules(); - - vm::cptr module_info{}; - vm::cptr libent{}; - vm::cptr libstub{}; - vm::cptr proc_param{}; - - u32 entry_point{}; - u32 start_addr{}; - u32 arm_exidx{}; - u32 arm_extab{}; - u32 tls_faddr{}; - u32 tls_fsize{}; - u32 tls_vsize{}; - - for (const auto& prog : elf.progs) - { - if (prog.p_type == 0x1 /* LOAD */ && prog.p_memsz) - { - if (!vm::falloc(prog.p_vaddr & ~0xfff, prog.p_memsz + (prog.p_vaddr & 0xfff), vm::main)) - { - fmt::throw_exception("vm::falloc() failed (addr=0x%x, size=0x%x)", prog.p_vaddr, prog.p_memsz); - } - - if (prog.p_paddr) - { - module_info.set(prog.p_vaddr + (prog.p_paddr - prog.p_offset)); - LOG_NOTICE(LOADER, "Found program with p_paddr=0x%x", prog.p_paddr); - } - - if (!start_addr) - { - start_addr = prog.p_vaddr; - } - - std::memcpy(vm::base(prog.p_vaddr), prog.bin.data(), prog.p_filesz); - } - } - - if (!module_info) module_info.set(start_addr + elf.header.e_entry); - if (!libent) libent.set(start_addr + module_info->libent_top); - if (!libstub) libstub.set(start_addr + module_info->libstub_top); - - LOG_NOTICE(LOADER, "__sce_moduleinfo(*0x%x) analysis...", module_info); - - if (module_info->data[2] == 0xffffffff) - { - arm_exidx = module_info->data[3]; - arm_extab = module_info->data[4]; - tls_faddr = module_info->data[5]; - tls_fsize = module_info->data[6]; - tls_vsize = module_info->data[7]; - } - else if (module_info->data[5] == 0xffffffff) - { - tls_faddr = module_info->data[1]; // Guess - tls_fsize = module_info->data[2]; - tls_vsize = module_info->data[3]; - arm_exidx = module_info->data[6]; - arm_extab = module_info->data[8]; - } - else - { - LOG_ERROR(LOADER, "Failed to recognize __sce_moduleinfo format"); - } - - LOG_NOTICE(LOADER, "** arm_exidx=0x%x", arm_exidx); - LOG_NOTICE(LOADER, "** arm_extab=0x%x", arm_extab); - LOG_NOTICE(LOADER, "** tls_faddr=0x%x", tls_faddr); - LOG_NOTICE(LOADER, "** tls_fsize=0x%x", tls_fsize); - LOG_NOTICE(LOADER, "** tls_vsize=0x%x", tls_vsize); - - // Process exports - while (libent.addr() < start_addr + module_info->libent_end) - { - const u32 size = libent->size; - - // TODO: check addresses - if (size != 0x1c && size != 0x20) - { - LOG_ERROR(LOADER, "Unknown libent size (0x%x) at *0x%x", libent->size, libent); - } - else - { - LOG_NOTICE(LOADER, "Loading libent at *0x%x", libent); - LOG_NOTICE(LOADER, "** 0x%x, 0x%x", libent->unk0, libent->unk1); - LOG_NOTICE(LOADER, "** Functions: %u", libent->fcount); - LOG_NOTICE(LOADER, "** Variables: %u", libent->vcount); - LOG_NOTICE(LOADER, "** 0x%x, 0x%08x", libent->unk2, libent->unk3); - - const auto export_nids = vm::cptr::make(libent->data[size == 0x20 ? 2 : 1]); - const auto export_data = vm::cptr::make(libent->data[size == 0x20 ? 3 : 2]); - - for (u32 i = 0, count = export_data - export_nids; i < count; i++) - { - const u32 nid = export_nids[i]; - const u32 addr = export_data[i]; - - // Known exports - switch (nid) - { - case 0x935cd196: // set entry point - { - entry_point = addr; - break; - } - - case 0x6c2224ba: // __sce_moduleinfo - { - verify(HERE), addr == module_info.addr(); - break; - } - - case 0x70fba1e7: // __sce_process_param - { - proc_param.set(addr); - break; - } - - default: - { - LOG_ERROR(LOADER, "** Unknown export '0x%08X' (*0x%x)", nid, addr); - } - } - } - } - - // Next entry - libent.set(libent.addr() + libent->size); - } - - // Process imports - while (libstub.addr() < start_addr + module_info->libstub_end) - { - const u32 size = libstub->size; - - // TODO: check addresses - if (size != 0x2c && size != 0x34) - { - LOG_ERROR(LOADER, "Unknown libstub size (0x%x) at *0x%x)", libstub->size, libstub); - } - else - { - const std::string module_name(vm::_ptr(libstub->data[size == 0x34 ? 1 : 0])); - - LOG_NOTICE(LOADER, "Loading libstub at 0x%x: %s", libstub, module_name); - - const auto _sm = arm_module_manager::get_module(module_name); - - if (!_sm) - { - LOG_ERROR(LOADER, "** Unknown module '%s'", module_name); - } - else - { - // Allocate HLE variables (TODO) - for (auto& var : _sm->variables) - { - var.second.var->set(vm::alloc(var.second.size, vm::main, std::max(var.second.align, 4096))); - LOG_WARNING(LOADER, "** Allocated variable '%s' in module '%s' at *0x%x", var.second.name, module_name, var.second.var->addr()); - } - - // Initialize HLE variables (TODO) - for (auto& var : _sm->variables) - { - var.second.init(); - } - } - - LOG_NOTICE(LOADER, "** 0x%x, 0x%x", libstub->unk0, libstub->unk1); - LOG_NOTICE(LOADER, "** Functions: %u", libstub->fcount); - LOG_NOTICE(LOADER, "** Variables: %u", libstub->vcount); - LOG_NOTICE(LOADER, "** 0x%x, 0x%08x", libstub->unk2, libstub->unk3); - - const auto fnids = vm::cptr::make(libstub->data[size == 0x34 ? 3 : 1]); - const auto fstubs = vm::cptr::make(libstub->data[size == 0x34 ? 4 : 2]); - - for (u32 j = 0; j < libstub->fcount; j++) - { - const u32 fnid = fnids[j]; - const u32 faddr = fstubs[j]; - - u32 index = 0; - - const auto fstub = vm::ptr::make(faddr); - const auto fname = arm_get_function_name(module_name, fnid); - - if (_sm && _sm->functions.count(fnid)) - { - index = _sm->functions.at(fnid).index; - LOG_NOTICE(LOADER, "** Imported function '%s' in module '%s' (*0x%x)", fname, module_name, faddr); - } - else - { - // TODO - index = ::size32(g_arm_function_cache); - g_arm_function_cache.emplace_back(); - g_arm_function_names.emplace_back(fmt::format("%s.%s", module_name, fname)); - - LOG_ERROR(LOADER, "** Unknown function '%s' in module '%s' (*0x%x) -> index %u", fname, module_name, faddr, index); - } - - // Check import stub - if (fstub[2] != 0xE1A00000) - { - LOG_ERROR(LOADER, "**** Unexpected import function stub (*0x%x, [2]=0x%08x)", faddr, fstub[2]); - } - - // Process refs - if (const u32 refs = fstub[3]) - { - arm_patch_refs(refs, faddr); - } - - // Install HACK instruction (ARM) - fstub[0] = 0xe0700090 | arm_code::hack::index::insert(index); - } - - const auto vnids = vm::cptr::make(libstub->data[size == 0x34 ? 5 : 3]); - const auto vstub = vm::cptr::make(libstub->data[size == 0x34 ? 6 : 4]); - - for (u32 j = 0; j < libstub->vcount; j++) - { - const u32 vnid = vnids[j]; - const u32 refs = vstub[j]; - - // Static variable - if (const auto _sv = _sm && _sm->variables.count(vnid) ? &_sm->variables.at(vnid) : nullptr) - { - LOG_NOTICE(LOADER, "** Imported variable '%s' in module '%s' (refs=*0x%x)", arm_get_variable_name(module_name, vnid), module_name, refs); - arm_patch_refs(refs, _sv->var->addr()); - } - else - { - LOG_FATAL(LOADER, "** Unknown variable '%s' in module '%s' (refs=*0x%x)", arm_get_variable_name(module_name, vnid), module_name, refs); - } - } - } - - // Next lib - libstub.set(libstub.addr() + size); - } - - LOG_NOTICE(LOADER, "__sce_process_param(*0x%x) analysis...", proc_param); - - verify(HERE), proc_param->size >= sizeof(psv_process_param_t); - verify(HERE), proc_param->ver == "PSP2"_u32; - - LOG_NOTICE(LOADER, "*** size=0x%x; 0x%x, 0x%x, 0x%x", proc_param->size, proc_param->ver, proc_param->unk0, proc_param->unk1); - - LOG_NOTICE(LOADER, "*** &sceUserMainThreadName = 0x%x", proc_param->sceUserMainThreadName); - LOG_NOTICE(LOADER, "*** &sceUserMainThreadPriority = 0x%x", proc_param->sceUserMainThreadPriority); - LOG_NOTICE(LOADER, "*** &sceUserMainThreadStackSize = 0x%x", proc_param->sceUserMainThreadStackSize); - LOG_NOTICE(LOADER, "*** &sceUserMainThreadAttribute = 0x%x", proc_param->sceUserMainThreadAttribute); - LOG_NOTICE(LOADER, "*** &sceProcessName = 0x%x", proc_param->sceProcessName); - LOG_NOTICE(LOADER, "*** &sce_process_preload_disabled = 0x%x", proc_param->sce_process_preload_disabled); - LOG_NOTICE(LOADER, "*** &sceUserMainThreadCpuAffinityMask = 0x%x", proc_param->sceUserMainThreadCpuAffinityMask); - - const auto libc_param = proc_param->sce_libcparam; - - LOG_NOTICE(LOADER, "__sce_libcparam(*0x%x) analysis...", libc_param); - - verify(HERE), libc_param->size >= 0x1c; - - LOG_NOTICE(LOADER, "*** size=0x%x; 0x%x, 0x%x, 0x%x", libc_param->size, libc_param->unk0, libc_param->unk1, libc_param->unk2); - - LOG_NOTICE(LOADER, "*** &sceLibcHeapSize = 0x%x", libc_param->sceLibcHeapSize); - LOG_NOTICE(LOADER, "*** &sceLibcHeapSizeDefault = 0x%x", libc_param->sceLibcHeapSizeDefault); - LOG_NOTICE(LOADER, "*** &sceLibcHeapExtendedAlloc = 0x%x", libc_param->sceLibcHeapExtendedAlloc); - LOG_NOTICE(LOADER, "*** &sceLibcHeapDelayedAlloc = 0x%x", libc_param->sceLibcHeapDelayedAlloc); - - const auto stop_code = vm::ptr::make(vm::alloc(3 * 4, vm::main)); - stop_code[0] = 0xf870; // HACK instruction (Thumb) - stop_code[1] = 1; // Predefined function index (HLE return) - arm_function_manager::addr = stop_code.addr(); - - const std::string& thread_name = proc_param->sceUserMainThreadName ? proc_param->sceUserMainThreadName.get_ptr() : "main_thread"; - const u32 stack_size = proc_param->sceUserMainThreadStackSize ? proc_param->sceUserMainThreadStackSize->value() : 256 * 1024; - const u32 priority = proc_param->sceUserMainThreadPriority ? proc_param->sceUserMainThreadPriority->value() : 160; - - auto thread = idm::make_ptr(thread_name, priority, stack_size); - - thread->write_pc(entry_point, 0); - thread->TLS = fxm::make_always(tls_faddr + start_addr, tls_fsize, tls_vsize)->alloc(); - - // Initialize args - std::vector argv_data; - - for (const auto& arg : Emu.argv) - { - argv_data.insert(argv_data.end(), arg.begin(), arg.end()); - argv_data.insert(argv_data.end(), '\0'); - - thread->GPR[0]++; // argc - } - - const u32 argv = vm::alloc(::size32(argv_data), vm::main); - std::memcpy(vm::base(argv), argv_data.data(), argv_data.size()); // copy arg list - thread->GPR[1] = argv; -} diff --git a/rpcs3/Emu/PSP2/ARMv7Module.h b/rpcs3/Emu/PSP2/ARMv7Module.h deleted file mode 100644 index 6cf5e400eb..0000000000 --- a/rpcs3/Emu/PSP2/ARMv7Module.h +++ /dev/null @@ -1,177 +0,0 @@ -#pragma once - -#include "ARMv7Function.h" -#include "ARMv7Callback.h" -#include "ErrorCodes.h" - -namespace vm { using namespace psv; } - -// HLE function information -struct arm_static_function -{ - const char* name; - u32 index; // Index for arm_function_manager - u32 flags; -}; - -// HLE variable information -struct arm_static_variable -{ - const char* name; - vm::gvar* var; // Pointer to variable address storage - void(*init)(); // Variable initialization function - u32 size; - u32 align; -}; - -// HLE module information -class arm_static_module final -{ -public: - const std::string name; - - task_stack on_load; - task_stack on_unload; - - std::unordered_map functions; - std::unordered_map variables; - -public: - arm_static_module(const char* name); - - arm_static_module(const char* name, void(*init)()) - : arm_static_module(name) - { - init(); - } - - arm_static_module(const char* name, void(*init)(arm_static_module* _this)) - : arm_static_module(name) - { - init(this); - } -}; - -class arm_module_manager final -{ - friend class arm_static_module; - - static std::unordered_map& access(); - - static void register_module(arm_static_module* module); - - static arm_static_function& access_static_function(const char* module, u32 fnid); - - static arm_static_variable& access_static_variable(const char* module, u32 vnid); - -public: - static const arm_static_module* get_module(const std::string& name); - - template - static auto& register_static_function(const char* module, const char* name, arm_function_t func, u32 fnid) - { - auto& info = access_static_function(module, fnid); - - info.name = name; - info.index = arm_function_manager::register_function(func); - info.flags = 0; - - return info; - } - - template - static auto& register_static_variable(const char* module, const char* name, u32 vnid) - { - static_assert(std::is_same::value, "Static variable registration: vm::gvar expected"); - - auto& info = access_static_variable(module, vnid); - - info.name = name; - info.var = reinterpret_cast*>(Var); - info.init = [] {}; - info.size = SIZE_32(typename T::type); - info.align = ALIGN_32(typename T::type); - - return info; - } - - static const auto& get() - { - return access(); - } - - static const arm_static_module SceAppMgr; - static const arm_static_module SceAppUtil; - static const arm_static_module SceAudio; - static const arm_static_module SceAudiodec; - static const arm_static_module SceAudioenc; - static const arm_static_module SceAudioIn; - static const arm_static_module SceCamera; - static const arm_static_module SceCodecEngine; - static const arm_static_module SceCommonDialog; - static const arm_static_module SceCpu; - static const arm_static_module SceCtrl; - static const arm_static_module SceDbg; - static const arm_static_module SceDebugLed; - static const arm_static_module SceDeci4p; - static const arm_static_module SceDeflt; - static const arm_static_module SceDipsw; - static const arm_static_module SceDisplay; - static const arm_static_module SceDisplayUser; - static const arm_static_module SceFiber; - static const arm_static_module SceFios; - static const arm_static_module SceFpu; - static const arm_static_module SceGxm; - static const arm_static_module SceHttp; - static const arm_static_module SceIme; - static const arm_static_module SceIofilemgr; - static const arm_static_module SceJpeg; - static const arm_static_module SceJpegEnc; - static const arm_static_module SceLibc; - static const arm_static_module SceLibKernel; - static const arm_static_module SceLibm; - static const arm_static_module SceLibstdcxx; - static const arm_static_module SceLibXml; - static const arm_static_module SceLiveArea; - static const arm_static_module SceLocation; - static const arm_static_module SceMd5; - static const arm_static_module SceModulemgr; - static const arm_static_module SceMotion; - static const arm_static_module SceMt19937; - static const arm_static_module SceNet; - static const arm_static_module SceNetCtl; - static const arm_static_module SceNgs; - static const arm_static_module SceNpBasic; - static const arm_static_module SceNpCommon; - static const arm_static_module SceNpManager; - static const arm_static_module SceNpMatching; - static const arm_static_module SceNpScore; - static const arm_static_module SceNpUtility; - static const arm_static_module ScePerf; - static const arm_static_module ScePgf; - static const arm_static_module ScePhotoExport; - static const arm_static_module SceProcessmgr; - static const arm_static_module SceRazorCapture; - static const arm_static_module SceRtc; - static const arm_static_module SceSas; - static const arm_static_module SceScreenShot; - static const arm_static_module SceSfmt; - static const arm_static_module SceSha; - static const arm_static_module SceSqlite; - static const arm_static_module SceSsl; - static const arm_static_module SceStdio; - static const arm_static_module SceSulpha; - static const arm_static_module SceSysmem; - static const arm_static_module SceSysmodule; - static const arm_static_module SceSystemGesture; - static const arm_static_module SceThreadmgr; - static const arm_static_module SceTouch; - static const arm_static_module SceUlt; - static const arm_static_module SceVideodec; - static const arm_static_module SceVoice; - static const arm_static_module SceVoiceQoS; -}; - -#define REG_FNID(module, nid, func) arm_module_manager::register_static_function(#module, #func, BIND_FUNC(func), nid) - -#define REG_VNID(module, nid, var) arm_module_manager::register_static_variable(#module, #var, nid) diff --git a/rpcs3/Emu/PSP2/ARMv7Opcodes.h b/rpcs3/Emu/PSP2/ARMv7Opcodes.h deleted file mode 100644 index 61f740336e..0000000000 --- a/rpcs3/Emu/PSP2/ARMv7Opcodes.h +++ /dev/null @@ -1,2612 +0,0 @@ -#pragma once - -#include "../../../Utilities/BitField.h" - -#include - -enum class arm_encoding -{ - T1, T2, T3, T4, A1, A2, -}; - -// Get Thumb instruction size -inline bool arm_op_thumb_is_32(u32 op16) -{ - return (op16 >> 11) >= 29; -} - -namespace arm_code -{ - inline namespace arm_encoding_alias - { - constexpr auto T1 = arm_encoding ::T1; - constexpr auto T2 = arm_encoding ::T2; - constexpr auto T3 = arm_encoding ::T3; - constexpr auto T4 = arm_encoding ::T4; - constexpr auto A1 = arm_encoding ::A1; - constexpr auto A2 = arm_encoding ::A2; - } - - // Bitfield aliases (because only u32 base type is used) - template using bf = bf_t; - template using sf = bf_t; - template using ff = ff_t; - - template using cf = cf_t; - - // Nullary op - template - struct nullary - { - static inline u32 extract() - { - return F::extract(0); - } - }; - - // Pair op: first field selection - template - struct from_first - { - static inline u32 extract(u32 first, u32) - { - return F::extract(first); - } - }; - - // Pair op: second field selection - template - struct from_second - { - static inline u32 extract(u32, u32 second) - { - return F::extract(second); - } - }; - - // No operation - struct nopf - { - static inline u32 extract(u32 value) - { - return value; - } - }; - - // Negate unary op - template - struct negatef : bf_base - { - static inline u32 extract(u32 value) - { - return (0u - F::extract(value)) & (~0u >> (32 - N)); - } - }; - - // NOT unary op - template - struct notf : bf_base - { - static inline u32 extract(u32 value) - { - return F::extract(value) ^ (~0u >> (32 - N)); - } - }; - - // XOR binary op - template - struct xorf : bf_base - { - static inline u32 extract(u32 value) - { - return F1::extract(value) ^ F2::extract(value); - } - }; - - // AND binary op - template - struct andf : bf_base - { - static inline u32 extract(u32 value) - { - return F1::extract(value) & F2::extract(value); - } - }; - - // OR binary op - template - struct orf : bf_base - { - static inline u32 extract(u32 value) - { - return F1::extract(value) | F2::extract(value); - } - }; - - // SHL binary op - template - struct shlf : bf_base - { - static inline u32 extract(u32 value) - { - return F1::extract(value) << F2::extract(value); - } - }; - - // EQ with constant binary op - template - struct eqcf : bf_base - { - static inline u32 extract(u32 value) - { - return F1::extract(value) == C; - } - }; - - using imm12i38 = cf, bf<12, 3>, bf<0, 8>>; - - // ThumbExpandImm(...) - struct thumb_expand_imm - { - static constexpr uint bitsize() - { - return 32; - } - - static u32 extract(u32 value) - { - const u32 imm12 = imm12i38::extract(value); - - if ((imm12 & 0xc00) >> 10) - { - const u32 x = (imm12 & 0x7f) | 0x80; - const u32 s = (imm12 & 0xf80) >> 7; - const u32 r = x >> s | x << (32 - s); // Rotate - return r; - } - else - { - const u32 imm8 = imm12 & 0xff; - switch ((imm12 & 0x300) >> 8) - { - case 0: return imm8; - case 1: return imm8 << 16 | imm8; - case 2: return imm8 << 24 | imm8 << 8; - default: return imm8 << 24 | imm8 << 16 | imm8 << 8 | imm8; - } - } - } - }; - - // ThumbExpandImm_C(..., carry) -> carry - struct thumb_expand_imm_c - { - static u32 extract(u32 value, u32 carry_in) - { - const u32 imm12 = imm12i38::extract(value); - - if ((imm12 & 0xc00) >> 10) - { - const u32 x = (imm12 & 0x7f) | 0x80; - const u32 s = (imm12 & 0xf80) >> 7; - const u32 r = x >> s | x << (32 - s); // Rotate - return (s ? r >> 31 : carry_in) & 1; - } - else - { - return carry_in & 1; - } - } - }; - - // ARMExpandImm(...) - struct arm_expand_imm - { - static constexpr uint bitsize() - { - return 32; - } - - static u32 extract(u32 value) - { - const u32 imm12 = bf<0, 12>::extract(value); - - const u32 x = imm12 & 0xff; - const u32 s = (imm12 & 0xf00) >> 7; - const u32 r = x >> s | x << (32 - s); // Rotate - - return r; - } - }; - - // ARMExpandImm_C(..., carry) -> carry - struct arm_expand_imm_c - { - static u32 extract(u32 value, u32 carry_in) - { - const u32 imm12 = bf<0, 12>::extract(value); - - const u32 x = imm12 & 0xff; - const u32 s = (imm12 & 0xf00) >> 7; - const u32 r = x >> s | x << (32 - s); // Rotate - - return (s ? r >> 31 : carry_in) & 1; - } - }; - - // !InITBlock() - struct not_in_it_block - { - static u32 extract(u32 value, u32 cond) - { - return cond != 0xf; - } - }; - - enum SRType : u32 - { - SRType_LSL, - SRType_LSR, - SRType_ASR, - SRType_ROR, - SRType_RRX, - }; - - template - struct decode_imm_shift_type - { - static u32 extract(u32 value) - { - const u32 type = T::extract(value); - const u32 imm5 = N::extract(value); - - return type < SRType_ROR ? type : (imm5 ? SRType_ROR : SRType_RRX); - } - }; - - template - struct decode_imm_shift_num - { - static u32 extract(u32 value) - { - const u32 type = T::extract(value); - const u32 imm5 = N::extract(value); - - return imm5 || type == SRType_LSL ? imm5 : (type < SRType_ROR ? 32 : 1); - } - }; - - using decode_imm_shift_type_thumb = decode_imm_shift_type, cf, bf<6, 2>>>; - using decode_imm_shift_num_thumb = decode_imm_shift_num, cf, bf<6, 2>>>; - using decode_imm_shift_type_arm = decode_imm_shift_type, bf<7, 5>>; - using decode_imm_shift_num_arm = decode_imm_shift_num, bf<7, 5>>; - - template struct it; // - - template<> struct it - { - using mask = bf<0, 4>; - using first = bf<4, 4>; - - using skip_if = eqcf; // Skip if mask==0 - }; - - template struct hack; // - - template<> struct hack - { - using index = bf<0, 16>; - - using skip_if = void; - }; - - template<> struct hack - { - using index = cf, bf<0, 4>>; - - using skip_if = void; - }; - - template struct mrc; // - - template<> struct mrc - { - using t = bf<12, 4>; - using cp = bf<8, 4>; - using opc1 = bf<21, 3>; - using opc2 = bf<5, 3>; - using cn = bf<16, 4>; - using cm = bf<0, 4>; - - using skip_if = eqcf, 5>; - }; - - template<> struct mrc : mrc - { - using skip_if = void; - }; - - template<> struct mrc : mrc - { - using skip_if = eqcf, 5>; - }; - - template<> struct mrc : mrc - { - using skip_if = void; - }; - - template struct add_imm; // - - template<> struct add_imm - { - using d = bf<0, 3>; - using n = bf<3, 3>; - using set_flags = not_in_it_block; - using imm32 = bf<6, 3>; - - using skip_if = void; - }; - - template<> struct add_imm - { - using d = bf<8, 3>; - using n = d; - using set_flags = not_in_it_block; - using imm32 = bf<0, 8>; - - using skip_if = void; - }; - - template<> struct add_imm - { - using d = bf<8, 4>; - using n = bf<16, 4>; - using set_flags = from_first>; - using imm32 = thumb_expand_imm; - - using skip_if = orf, bf<20, 1>>, eqcf>; - }; - - template<> struct add_imm : add_imm - { - using add_imm::n; - using set_flags = from_first>; - using imm32 = imm12i38; - - using skip_if = orf, eqcf>; - }; - - template<> struct add_imm - { - using d = bf<12, 4>; - using n = bf<16, 4>; - using set_flags = from_first>; - using imm32 = arm_expand_imm; - - using skip_if = orf, notf>>, eqcf>, andf, bf<20, 1>>>; - }; - - template struct add_reg; // - - template<> struct add_reg - { - using d = bf<0, 3>; - using n = bf<3, 3>; - using m = bf<6, 3>; - using set_flags = not_in_it_block; - using shift_t = ff; - using shift_n = ff<0u>; - - using skip_if = void; - }; - - template<> struct add_reg - { - using d = cf, bf<0, 3>>; - using n = d; - using m = bf<3, 4>; - using set_flags = from_first>; - using shift_t = ff; - using shift_n = ff<0u>; - - using skip_if = orf, eqcf>; - }; - - template<> struct add_reg - { - using d = bf<8, 4>; - using n = bf<16, 4>; - using m = bf<0, 4>; - using set_flags = from_first>; - using shift_t = decode_imm_shift_type_thumb; - using shift_n = decode_imm_shift_num_thumb; - - using skip_if = orf, bf<20, 1>>, eqcf>; - }; - - template<> struct add_reg : add_reg - { - using d = bf<12, 4>; - using n = bf<16, 4>; - using shift_t = decode_imm_shift_type_arm; - using shift_n = decode_imm_shift_num_arm; - - using skip_if = orf, bf<20, 1>>, eqcf>; - }; - - template struct add_spi; // - - template<> struct add_spi - { - using d = bf<8, 3>; - using set_flags = from_first>; - using imm32 = cf, ff<0u, 2>>; - - using skip_if = void; - }; - - template<> struct add_spi - { - using d = ff<13u>; - using set_flags = from_first>; - using imm32 = cf, ff<0u, 2>>; - - using skip_if = void; - }; - - template<> struct add_spi - { - using d = bf<8, 4>; - using set_flags = from_first>; - using imm32 = thumb_expand_imm; - - using skip_if = andf, bf<20, 1>>; - }; - - template<> struct add_spi - { - using d = bf<8, 4>; - using set_flags = from_first>; - using imm32 = imm12i38; - - using skip_if = void; - }; - - template<> struct add_spi - { - using d = bf<12, 4>; - using set_flags = from_first>; - using imm32 = arm_expand_imm; - - using skip_if = andf, bf<20, 1>>; - }; - - template struct add_spr; // - - template<> struct add_spr - { - using d = cf, bf<0, 3>>; - using m = d; - using set_flags = from_first>; - using shift_t = ff; - using shift_n = ff<0u>; - - using skip_if = void; - }; - - template<> struct add_spr - { - using d = ff<13u>; - using m = bf<3, 4>; - using set_flags = from_first>; - using shift_t = ff; - using shift_n = ff<0u>; - - using skip_if = eqcf; - }; - - template<> struct add_spr - { - using d = bf<8, 4>; - using m = bf<0, 4>; - using set_flags = from_first>; - using shift_t = decode_imm_shift_type_thumb; - using shift_n = decode_imm_shift_num_thumb; - - using skip_if = void; - }; - - template<> struct add_spr - { - using d = bf<12, 4>; - using m = bf<0, 4>; - using set_flags = from_first>; - using shift_t = decode_imm_shift_type_arm; - using shift_n = decode_imm_shift_num_arm; - - using skip_if = andf, bf<20, 1>>; - }; - - template struct adc_imm; // - - template<> struct adc_imm : add_imm - { - using skip_if = void; - }; - - template<> struct adc_imm : add_imm - { - using skip_if = void; - }; - - template struct adc_reg; // - - template<> struct adc_reg - { - using d = bf<0, 3>; - using n = d; - using m = bf<3, 3>; - using set_flags = not_in_it_block; - using shift_t = ff; - using shift_n = ff<0u>; - - using skip_if = void; - }; - - template<> struct adc_reg : add_reg - { - using skip_if = void; - }; - - template<> struct adc_reg : add_reg - { - using add_reg::d; - - using skip_if = andf, bf<20, 1>>; - }; - - template struct adr; // - - template<> struct adr - { - using d = bf<8, 3>; - using i = cf, ff<0u, 2>>; - - using skip_if = void; - }; - - template<> struct adr - { - using d = bf<8, 4>; - using i = negatef; - - using skip_if = void; - }; - - template<> struct adr - { - using d = bf<8, 4>; - using i = imm12i38; - - using skip_if = void; - }; - - template<> struct adr - { - using d = bf<12, 4>; - using i = arm_expand_imm; - - using skip_if = void; - }; - - template<> struct adr - { - using d = bf<12, 4>; - using i = negatef; - - using skip_if = void; - }; - - template struct and_imm; // - - template<> struct and_imm - { - using d = bf<8, 4>; - using n = bf<16, 4>; - using set_flags = from_first>; - using imm32 = thumb_expand_imm; - using carry = thumb_expand_imm_c; - - using skip_if = andf, bf<20, 1>>; - }; - - template<> struct and_imm : and_imm - { - using d = bf<12, 4>; - using imm32 = arm_expand_imm; - using carry = arm_expand_imm_c; - - using skip_if = andf, bf<20, 1>>; - }; - - template struct and_reg; // - - template<> struct and_reg : adc_reg - { - using skip_if = void; - }; - - template<> struct and_reg : adc_reg - { - using adc_reg::d; - - using skip_if = andf, bf<20, 1>>; - }; - - template<> struct and_reg : adc_reg - { - using adc_reg::d; - - using skip_if = andf, bf<20, 1>>; - }; - - template struct b; // - - template<> struct b - { - using imm32 = cf, ff<0u, 1>>; - using cond = from_first>; - - using skip_if = eqcf; - }; - - template<> struct b - { - using imm32 = cf, ff<0u, 1>>; - using cond = from_second<>; - - using skip_if = void; - }; - - template<> struct b - { - using imm32 = cf, bf<11, 1>, bf<13, 1>, bf<16, 6>, bf<0, 11>, ff<0u, 1>>; - using cond = from_first>; - - using skip_if = eqcf, 7>; - }; - - template<> struct b - { - using imm32 = cf, notf, bf<26, 1>>>, notf, bf<26, 1>>>, bf<16, 10>, bf<0, 11>, ff<0u, 1>>; - using cond = from_second<>; - - using skip_if = void; - }; - - template<> struct b - { - using imm32 = cf, ff<0u, 2>>; - using cond = from_second<>; - - using skip_if = void; - }; - - template struct bic_imm; // - - template<> struct bic_imm : and_imm - { - using skip_if = void; - }; - - template<> struct bic_imm : and_imm - { - using and_imm::d; - - using skip_if = andf, bf<20, 1>>; - }; - - template struct bic_reg; // - - template<> struct bic_reg : adc_reg - { - using skip_if = void; - }; - - template<> struct bic_reg : adc_reg - { - using skip_if = void; - }; - - template<> struct bic_reg : adc_reg - { - using adc_reg::d; - - using skip_if = andf, bf<20, 1>>; - }; - - template struct bl; // - - template<> struct bl - { - using imm32 = b::imm32; - using to_arm = nullary>; - - using skip_if = void; - }; - - template<> struct bl - { - using imm32 = cf, notf, bf<26, 1>>>, notf, bf<26, 1>>>, bf<16, 10>, bf<1, 10>, ff<0u, 2>>; - using to_arm = nullary>; - - using skip_if = void; - }; - - template<> struct bl - { - using imm32 = b::imm32; - using to_arm = nullary>; - - using skip_if = void; - }; - - template<> struct bl - { - using imm32 = cf, bf<24, 1>, ff<0u, 1>>; - using to_arm = nullary>; - - using skip_if = void; - }; - - template struct blx; // - - template<> struct blx - { - using m = bf<3, 4>; - - using skip_if = void; - }; - - template<> struct blx - { - using m = bf<0, 4>; - - using skip_if = void; - }; - - template struct bx; // - - template<> struct bx : blx - { - using skip_if = void; - }; - - template<> struct bx : blx - { - using skip_if = void; - }; - - template struct cb_z; // - - template<> struct cb_z - { - using n = bf<0, 3>; - using imm32 = cf, bf<3, 5>, ff<0u, 1>>; - using nonzero = bf<11, 1>; - - using skip_if = void; - }; - - template struct clz; // - - template<> struct clz - { - using d = bf<8, 4>; - using m = bf<0, 4>; - - using skip_if = void; - }; - - template<> struct clz - { - using d = bf<12, 4>; - using m = bf<0, 4>; - - using skip_if = void; - }; - - template struct cmp_imm; // - - template<> struct cmp_imm - { - using n = bf<8, 3>; - using imm32 = bf<0, 8>; - - using skip_if = void; - }; - - template<> struct cmp_imm - { - using n = bf<16, 4>; - using imm32 = thumb_expand_imm; - - using skip_if = void; - }; - - template<> struct cmp_imm - { - using n = bf<16, 4>; - using imm32 = arm_expand_imm; - - using skip_if = void; - }; - - template struct cmp_reg; // - - template<> struct cmp_reg - { - using n = bf<0, 3>; - using m = bf<3, 3>; - using shift_t = ff; - using shift_n = ff<0u>; - - using skip_if = void; - }; - - template<> struct cmp_reg : cmp_reg - { - using n = cf, bf<0, 3>>; - using m = bf<3, 4>; - - using skip_if = void; - }; - - template<> struct cmp_reg - { - using n = bf<16, 4>; - using m = bf<0, 4>; - using shift_t = decode_imm_shift_type_thumb; - using shift_n = decode_imm_shift_num_thumb; - - using skip_if = void; - }; - - template<> struct cmp_reg : cmp_reg - { - using shift_t = decode_imm_shift_type_arm; - using shift_n = decode_imm_shift_num_arm; - - using skip_if = void; - }; - - template struct eor_imm; // - - template<> struct eor_imm : and_imm - { - using and_imm::d; - - using skip_if = andf, bf<20, 1>>; - }; - - template<> struct eor_imm : and_imm - { - using and_imm::d; - - using skip_if = andf, bf<20, 1>>; - }; - - template struct eor_reg; // - - template<> struct eor_reg : adc_reg - { - using skip_if = void; - }; - - template<> struct eor_reg : adc_reg - { - using adc_reg::d; - - using skip_if = andf, bf<20, 1>>; - }; - - template<> struct eor_reg : adc_reg - { - using adc_reg::d; - - using skip_if = andf, bf<20, 1>>; - }; - - template struct ldm; // - - template<> struct ldm - { - using n = bf<8, 3>; - using registers = bf<0, 8>; - using wback = ff; // TODO - - using skip_if = void; - }; - - template<> struct ldm - { - using n = bf<16, 4>; - using registers = andf, ff<0xdfffu, 16>>; // TODO - using wback = bf<21, 1>; - - using skip_if = andf>; - }; - - template<> struct ldm : ldm - { - using registers = bf<0, 16>; - - using skip_if = class TODO; - }; - - template struct ldr_imm; // - - template<> struct ldr_imm - { - using t = bf<0, 3>; - using n = bf<3, 3>; - using imm32 = cf, ff<0u, 2>>; - using index = ff; - using add = ff; - using wback = ff; - - using skip_if = void; - }; - - template<> struct ldr_imm : ldr_imm - { - using t = bf<8, 3>; - using n = ff<13u>; - using imm32 = cf, ff<0u, 2>>; - - using skip_if = void; - }; - - template<> struct ldr_imm : ldr_imm - { - using t = bf<12, 4>; - using n = bf<16, 4>; - using imm32 = bf<0, 12>; - - using skip_if = eqcf; - }; - - template<> struct ldr_imm - { - using t = bf<12, 4>; - using n = bf<16, 4>; - using imm32 = bf<0, 8>; - using index = bf<10, 1>; - using add = bf<9, 1>; - using wback = bf<8, 1>; - - using skip_if = orf, orf, 6>, andf, eqcf, 512 + 256 + 4>>>>; - }; - - template<> struct ldr_imm : ldr_imm - { - using imm32 = bf<0, 12>; - using index = bf<24, 1>; - using add = bf<23, 1>; - using wback = orf>, bf<21, 1>>; - - using skip_if = class TODO; - }; - - template struct ldr_lit; // - - template<> struct ldr_lit - { - using t = bf<8, 3>; - using imm32 = cf, ff<0u, 2>>; - using add = ff; - - using skip_if = void; - }; - - template<> struct ldr_lit - { - using t = bf<12, 4>; - using imm32 = bf<0, 12>; - using add = bf<23, 1>; - - using skip_if = void; - }; - - template<> struct ldr_lit : ldr_lit - { - using skip_if = void; - }; - - template struct ldr_reg; // - - template<> struct ldr_reg - { - using t = bf<0, 3>; - using n = bf<3, 3>; - using m = bf<6, 3>; - using index = ff; - using add = ff; - using wback = ff; - using shift_t = ff; - using shift_n = ff<0u>; - - using skip_if = void; - }; - - template<> struct ldr_reg : ldr_reg - { - using t = bf<12, 4>; - using n = bf<16, 4>; - using m = bf<0, 4>; - using shift_n = bf<4, 2>; - - using skip_if = eqcf; - }; - - template<> struct ldr_reg : ldr_reg - { - using index = bf<24, 1>; - using add = bf<23, 1>; - using wback = orf>, bf<21, 1>>; - using shift_t = decode_imm_shift_type_arm; - using shift_n = decode_imm_shift_num_arm; - - using skip_if = class TODO; - }; - - template struct ldrb_imm; // - - template<> struct ldrb_imm : ldr_imm - { - using imm32 = bf<6, 5>; - - using skip_if = void; - }; - - template<> struct ldrb_imm : ldr_imm - { - using ldr_imm::t; - using ldr_imm::n; - - using skip_if = orf, eqcf>; - }; - - template<> struct ldrb_imm : ldr_imm - { - using ldr_imm::t; - using ldr_imm::n; - - using skip_if = orf, eqcf, 4>>, orf, eqcf, 6>>>; - }; - - template<> struct ldrb_imm : ldr_imm - { - using skip_if = class TODO; - }; - - template struct ldrb_reg; // - - template<> struct ldrb_reg : ldr_reg - { - using skip_if = void; - }; - - template<> struct ldrb_reg : ldr_reg - { - using ldr_reg::t; - using ldr_reg::n; - - using skip_if = orf, eqcf>; - }; - - template<> struct ldrb_reg : ldr_reg - { - using skip_if = class TODO; - }; - - template struct ldrd_imm; // - - template<> struct ldrd_imm - { - using t = bf<12, 4>; - using t2 = bf<8, 4>; - using n = bf<16, 4>; - using imm32 = cf, ff<0u, 2>>; - using index = bf<24, 1>; - using add = bf<23, 1>; - using wback = bf<21, 1>; - }; - - template<> struct ldrd_imm : ldrd_imm - { - using t2 = orf, ff<1u, 4>>; // t+1 for even t - using imm32 = cf, bf<0, 4>>; - using wback = orf>, bf<21, 1>>; - }; - - template struct ldrd_lit; // - - template<> struct ldrd_lit - { - using t = bf<12, 4>; - using t2 = bf<8, 4>; - using imm32 = cf, ff<0u, 2>>; - using add = bf<23, 1>; - }; - - template<> struct ldrd_lit : ldrd_lit - { - using t2 = orf, ff<1u, 4>>; // t+1 for even t - using imm32 = cf, bf<0, 4>>; - }; - - template struct ldrh_imm; // - - template<> struct ldrh_imm : ldr_imm - { - using imm32 = cf, ff<0u, 1>>; - }; - - template<> struct ldrh_imm : ldr_imm {}; - template<> struct ldrh_imm : ldr_imm {}; - - template<> struct ldrh_imm : ldr_imm - { - using imm32 = cf, bf<0, 4>>; - }; - - template struct ldrh_reg; // - - template<> struct ldrh_reg : ldr_reg {}; - template<> struct ldrh_reg : ldr_reg {}; - - template<> struct ldrh_reg : ldr_reg - { - using shift_t = ff; // ??? - using shift_n = ff<0u>; - }; - - template struct ldrsb_imm; // - - template<> struct ldrsb_imm : ldr_imm {}; - template<> struct ldrsb_imm : ldr_imm {}; - template<> struct ldrsb_imm : ldrh_imm {}; - - template struct ldrex; // - - template<> struct ldrex - { - using t = bf<12, 4>; - using n = bf<16, 4>; - using imm32 = cf, ff<0u, 2>>; - }; - - template<> struct ldrex : ldrex - { - using imm32 = ff<0u>; // Zero offset - }; - - template struct _shift_imm; // - - template struct _shift_imm - { - using d = bf<0, 3>; - using m = bf<3, 3>; - using set_flags = not_in_it_block; - using shift_n = decode_imm_shift_num, bf<6, 5>>; - }; - - template struct _shift_imm - { - using d = bf<8, 4>; - using m = bf<0, 4>; - using set_flags = from_first>; - using shift_n = decode_imm_shift_num, cf, bf<6, 2>>>; - }; - - template struct _shift_imm : _shift_imm - { - using d = bf<12, 4>; - using shift_n = decode_imm_shift_num, bf<7, 5>>; - }; - - template struct lsl_imm : _shift_imm {}; // - template struct lsr_imm : _shift_imm {}; // - template struct asr_imm : _shift_imm {}; // - - template struct lsl_reg; // - - template<> struct lsl_reg - { - using d = bf<0, 3>; - using n = d; - using m = bf<3, 3>; - using set_flags = not_in_it_block; - }; - - template<> struct lsl_reg - { - using d = bf<8, 4>; - using n = bf<16, 4>; - using m = bf<0, 4>; - using set_flags = from_first>; - }; - - template<> struct lsl_reg : lsl_reg - { - using d = bf<12, 4>; - using n = bf<0, 4>; - using m = bf<8, 4>; - }; - - template struct lsr_reg; // - - template<> struct lsr_reg : lsl_reg {}; - template<> struct lsr_reg : lsl_reg {}; - template<> struct lsr_reg : lsl_reg {}; - - //template struct asr_reg; // - - //template<> struct asr_reg : lsl_reg {}; - //template<> struct asr_reg : lsl_reg {}; - //template<> struct asr_reg : lsl_reg {}; - - template struct mov_imm; // - - template<> struct mov_imm - { - using d = bf<8, 3>; - using set_flags = not_in_it_block; - using imm32 = bf<0, 8>; - using carry = from_second<>; - }; - - template<> struct mov_imm - { - using d = bf<8, 4>; - using set_flags = from_first>; - using imm32 = thumb_expand_imm; - using carry = thumb_expand_imm_c; - }; - - template<> struct mov_imm - { - using d = bf<8, 4>; - using set_flags = from_first>; - using imm32 = cf, imm12i38>; - using carry = from_second<>; - }; - - template<> struct mov_imm - { - using d = bf<12, 4>; - using set_flags = from_first>; - using imm32 = arm_expand_imm; - using carry = arm_expand_imm_c; - }; - - template<> struct mov_imm - { - using d = bf<12, 4>; - using set_flags = from_first>; - using imm32 = cf, bf<0, 12>>; - using carry = from_second<>; - }; - - template struct mov_reg; // - - template<> struct mov_reg - { - using d = cf, bf<0, 3>>; - using m = bf<3, 4>; - using set_flags = from_first>; - }; - - template<> struct mov_reg - { - using d = bf<0, 3>; - using m = bf<3, 3>; - using set_flags = from_first>; - }; - - template<> struct mov_reg - { - using d = bf<8, 4>; - using m = bf<0, 4>; - using set_flags = from_first>; - }; - - template<> struct mov_reg : mov_reg - { - using d = bf<12, 4>; - }; - - template struct movt; // - - template<> struct movt - { - using d = bf<8, 4>; - using imm16 = cf, imm12i38>; - }; - - template<> struct movt - { - using d = bf<12, 4>; - using imm16 = cf, bf<0, 12>>; - }; - - template struct mul; // - - template<> struct mul - { - using d = bf<0, 3>; - using n = bf<3, 3>; - using m = d; - using set_flags = not_in_it_block; - }; - - template<> struct mul - { - using d = bf<8, 4>; - using n = bf<16, 4>; - using m = bf<0, 4>; - using set_flags = from_first>; - }; - - template<> struct mul - { - using d = bf<16, 4>; - using n = bf<0, 4>; - using m = bf<8, 4>; - using set_flags = from_first>; - }; - - template struct mvn_imm; // - - template<> struct mvn_imm : mov_imm {}; - template<> struct mvn_imm : mov_imm {}; - - template struct mvn_reg; // - - template<> struct mvn_reg - { - using d = bf<0, 3>; - using m = bf<3, 3>; - using set_flags = not_in_it_block; - using shift_t = ff; - using shift_n = ff<0u>; - }; - - template<> struct mvn_reg - { - using d = bf<8, 4>; - using m = bf<0, 4>; - using set_flags = from_first>; - using shift_t = decode_imm_shift_type_thumb; - using shift_n = decode_imm_shift_num_thumb; - }; - - template<> struct mvn_reg : mvn_reg - { - using d = bf<12, 4>; - using shift_t = decode_imm_shift_type_arm; - using shift_n = decode_imm_shift_num_arm; - }; - - template struct orr_imm; // - - template<> struct orr_imm : and_imm {}; - template<> struct orr_imm : and_imm {}; - - template struct orr_reg; // - - template<> struct orr_reg : adc_reg {}; - template<> struct orr_reg : adc_reg {}; - template<> struct orr_reg : adc_reg {}; - - template struct pop; // - - template<> struct pop - { - using registers = cf, ff<0u, 7>, bf<0, 8>>; - }; - - template<> struct pop - { - using registers = andf, ff<0xdfffu, 16>>; - }; - - template<> struct pop - { - using registers = shlf, bf<12, 4>>; // 1 << Rt - }; - - template<> struct pop - { - using registers = bf<0, 16>; - }; - - template<> struct pop : pop - { - }; - - template struct push; // - - template<> struct push - { - using registers = cf, ff<0u, 6>, bf<0, 8>>; - }; - - template<> struct push - { - using registers = andf, ff<0x5fffu, 16>>; - }; - - template<> struct push : pop {}; - template<> struct push : pop {}; - template<> struct push : pop {}; - - template struct rev; // - - template<> struct rev - { - using d = bf<0, 3>; - using m = bf<3, 3>; - }; - - template<> struct rev : clz {}; - template<> struct rev : clz {}; - - template struct ror_imm; // - - template<> struct ror_imm : _shift_imm {}; - template<> struct ror_imm : _shift_imm {}; - - template struct ror_reg; // - - template<> struct ror_reg : lsl_reg {}; - template<> struct ror_reg : lsl_reg {}; - template<> struct ror_reg : lsl_reg {}; - - template struct rsb_imm; // - - template<> struct rsb_imm : add_imm - { - using imm32 = ff<0u>; - }; - - template<> struct rsb_imm : add_imm {}; - template<> struct rsb_imm : add_imm {}; - - template struct stm; // - - template<> struct stm : ldm - { - using wback = ff; - }; - - template<> struct stm : ldm - { - using registers = andf, ff<0x5fffu, 16>>; // TODO - }; - - template<> struct stm : ldm {}; - - template struct str_imm; // - - template<> struct str_imm : ldr_imm {}; - template<> struct str_imm : ldr_imm {}; - template<> struct str_imm : ldr_imm {}; - template<> struct str_imm : ldr_imm {}; - template<> struct str_imm : ldr_imm {}; - - template struct str_reg; // - - template<> struct str_reg : ldr_reg {}; - template<> struct str_reg : ldr_reg {}; - template<> struct str_reg : ldr_reg {}; - - template struct strb_imm; // - - template<> struct strb_imm : ldrb_imm {}; - template<> struct strb_imm : ldrb_imm {}; - template<> struct strb_imm : ldrb_imm {}; - template<> struct strb_imm : ldrb_imm {}; - - template struct strb_reg; // - - template<> struct strb_reg : ldrb_reg {}; - template<> struct strb_reg : ldrb_reg {}; - template<> struct strb_reg : ldrb_reg {}; - - template struct strd_imm; // - - template<> struct strd_imm : ldrd_imm {}; - template<> struct strd_imm : ldrd_imm {}; - - template struct strh_imm; // - - template<> struct strh_imm : ldrh_imm {}; - template<> struct strh_imm : ldrh_imm {}; - template<> struct strh_imm : ldrh_imm {}; - template<> struct strh_imm : ldrh_imm {}; - - template struct strh_reg; // - - template<> struct strh_reg : ldrh_reg {}; - template<> struct strh_reg : ldrh_reg {}; - template<> struct strh_reg : ldrh_reg {}; - - template struct strex; // - - template<> struct strex - { - using d = bf<8, 4>; - using t = bf<12, 4>; - using n = bf<16, 4>; - using imm32 = cf, ff<0u, 2>>; - }; - - template<> struct strex - { - using d = bf<12, 4>; - using t = bf<0, 4>; - using n = bf<16, 4>; - using imm32 = ff<0u>; // Zero offset - }; - - template struct sub_imm; // - - template<> struct sub_imm : add_imm {}; - template<> struct sub_imm : add_imm {}; - template<> struct sub_imm : add_imm {}; - template<> struct sub_imm : add_imm {}; - template<> struct sub_imm : add_imm {}; - - template struct sub_reg; // - - template<> struct sub_reg : add_reg {}; - template<> struct sub_reg : add_reg {}; - template<> struct sub_reg : add_reg {}; - - template struct sub_spi; // - - template<> struct sub_spi : add_spi {}; - template<> struct sub_spi : add_spi {}; - template<> struct sub_spi : add_spi {}; - template<> struct sub_spi : add_spi {}; - - template struct tst_imm; // - - template<> struct tst_imm - { - using n = bf<16, 4>; - using imm32 = thumb_expand_imm; - using carry = thumb_expand_imm_c; - }; - - template<> struct tst_imm - { - using n = bf<16, 4>; - using imm32 = arm_expand_imm; - using carry = arm_expand_imm_c; - }; - - template struct umull; // - - template<> struct umull - { - using d0 = bf<12, 4>; - using d1 = bf<8, 4>; - using n = bf<16, 4>; - using m = bf<0, 4>; - using set_flags = from_first>; - }; - - template<> struct umull - { - using d0 = bf<12, 4>; - using d1 = bf<16, 4>; - using n = bf<0, 4>; - using m = bf<8, 4>; - using set_flags = from_first>; - }; - - template struct uxtb; // - - template<> struct uxtb - { - using d = bf<0, 3>; - using m = bf<3, 3>; - using rotation = ff<0u, 5>; - }; - - template<> struct uxtb - { - using d = bf<8, 4>; - using m = bf<0, 4>; - using rotation = cf, ff<0u, 3>>; - }; - - template<> struct uxtb - { - using d = bf<12, 4>; - using m = bf<0, 4>; - using rotation = cf, ff<0u, 3>>; - }; -} - -// TODO -#define SKIP_IF(cond) [](u32 c) -> bool { return cond; } -#define BF(start, end) ((c << (31 - (end))) >> ((start) + 31 - (end))) -#define BT(pos) ((c >> (pos)) & 1) - -// ARMv7 decoder object. D provides function templates. T is function pointer type returned. -template -class arm_decoder -{ - // Fast lookup table for 2-byte Thumb instructions - std::array m_op16_table{}; - - // Fix for std::initializer_list (???) - static inline T fix(T ptr) - { - return ptr; - } - - struct instruction_info - { - u32 mask; - u32 code; - T pointer; - bool(*skip)(u32 code); // TODO (if not nullptr, must be specified yet) - - bool match(u32 op) const - { - return (op & mask) == code && (!skip || !skip(op)); - } - }; - - // Lookup table for 4-byte Thumb instructions (points to the best appropriate position in sorted vector) - std::array::const_iterator, 0x10000> m_op32_table{}; - - std::vector m_op16_list; - std::vector m_op32_list; - std::vector m_arm_list; - -public: - arm_decoder() - { - using namespace arm_code::arm_encoding_alias; - - m_op16_list.assign( - { - { 0xffc0, 0x4140, fix(&D:: template ADC_REG), nullptr }, - { 0xfe00, 0x1c00, fix(&D:: template ADD_IMM), nullptr }, - { 0xf800, 0x3000, fix(&D:: template ADD_IMM), nullptr }, - { 0xfe00, 0x1800, fix(&D:: template ADD_REG), nullptr }, - { 0xff00, 0x4400, fix(&D:: template ADD_REG), SKIP_IF((c & 0x87) == 0x85 || BF(3, 6) == 13) }, - { 0xf800, 0xa800, fix(&D:: template ADD_SPI), nullptr }, - { 0xff80, 0xb000, fix(&D:: template ADD_SPI), nullptr }, - { 0xff78, 0x4468, fix(&D:: template ADD_SPR), nullptr }, - { 0xff87, 0x4485, fix(&D:: template ADD_SPR), SKIP_IF(BF(3, 6) == 13) }, - { 0xf800, 0xa000, fix(&D:: template ADR), nullptr }, - { 0xffc0, 0x4000, fix(&D:: template AND_REG), nullptr }, - { 0xf800, 0x1000, fix(&D:: template ASR_IMM), nullptr }, - { 0xffc0, 0x4100, fix(&D:: template ASR_REG), nullptr }, - { 0xf000, 0xd000, fix(&D:: template B), SKIP_IF(BF(9, 11) == 0x7) }, - { 0xf800, 0xe000, fix(&D:: template B), nullptr }, - { 0xffc0, 0x4380, fix(&D:: template BIC_REG), nullptr }, - { 0xff00, 0xbe00, fix(&D:: template BKPT), nullptr }, - { 0xff80, 0x4780, fix(&D:: template BLX), nullptr }, - { 0xff87, 0x4700, fix(&D:: template BX), nullptr }, - { 0xf500, 0xb100, fix(&D:: template CB_Z), nullptr }, - { 0xffc0, 0x42c0, fix(&D:: template CMN_REG), nullptr }, - { 0xf800, 0x2800, fix(&D:: template CMP_IMM), nullptr }, - { 0xffc0, 0x4280, fix(&D:: template CMP_REG), nullptr }, - { 0xff00, 0x4500, fix(&D:: template CMP_REG), nullptr }, - { 0xffc0, 0x4040, fix(&D:: template EOR_REG), nullptr }, - { 0xff00, 0xbf00, fix(&D:: template IT), SKIP_IF(BF(0, 3) == 0) }, - { 0xf800, 0xc800, fix(&D:: template LDM), nullptr }, - { 0xf800, 0x6800, fix(&D:: template LDR_IMM), nullptr }, - { 0xf800, 0x9800, fix(&D:: template LDR_IMM), nullptr }, - { 0xf800, 0x4800, fix(&D:: template LDR_LIT), nullptr }, - { 0xfe00, 0x5800, fix(&D:: template LDR_REG), nullptr }, - { 0xf800, 0x7800, fix(&D:: template LDRB_IMM) }, - { 0xfe00, 0x5c00, fix(&D:: template LDRB_REG) }, - { 0xf800, 0x8800, fix(&D:: template LDRH_IMM) }, - { 0xfe00, 0x5a00, fix(&D:: template LDRH_REG) }, - { 0xfe00, 0x5600, fix(&D:: template LDRSB_REG) }, - { 0xfe00, 0x5e00, fix(&D:: template LDRSH_REG) }, - { 0xf800, 0x0000, fix(&D:: template LSL_IMM) }, - { 0xffc0, 0x4080, fix(&D:: template LSL_REG) }, - { 0xf800, 0x0800, fix(&D:: template LSR_IMM) }, - { 0xffc0, 0x40c0, fix(&D:: template LSR_REG) }, - { 0xf800, 0x2000, fix(&D:: template MOV_IMM) }, - { 0xff00, 0x4600, fix(&D:: template MOV_REG) }, - { 0xffc0, 0x0000, fix(&D:: template MOV_REG) }, - { 0xffc0, 0x4340, fix(&D:: template MUL) }, - { 0xffc0, 0x43c0, fix(&D:: template MVN_REG) }, - { 0xffff, 0xbf00, fix(&D:: template NOP) }, - { 0xffc0, 0x4300, fix(&D:: template ORR_REG) }, - { 0xfe00, 0xbc00, fix(&D:: template POP) }, - { 0xfe00, 0xb400, fix(&D:: template PUSH) }, - { 0xffc0, 0xba00, fix(&D:: template REV) }, - { 0xffc0, 0xba40, fix(&D:: template REV16) }, - { 0xffc0, 0xbac0, fix(&D:: template REVSH) }, - { 0xffc0, 0x41c0, fix(&D:: template ROR_REG) }, - { 0xffc0, 0x4240, fix(&D:: template RSB_IMM) }, - { 0xffc0, 0x4180, fix(&D:: template SBC_REG) }, - { 0xf800, 0xc000, fix(&D:: template STM) }, - { 0xf800, 0x6000, fix(&D:: template STR_IMM) }, - { 0xf800, 0x9000, fix(&D:: template STR_IMM) }, - { 0xfe00, 0x5000, fix(&D:: template STR_REG) }, - { 0xf800, 0x7000, fix(&D:: template STRB_IMM) }, - { 0xfe00, 0x5400, fix(&D:: template STRB_REG) }, - { 0xf800, 0x8000, fix(&D:: template STRH_IMM) }, - { 0xfe00, 0x5200, fix(&D:: template STRH_REG) }, - { 0xfe00, 0x1e00, fix(&D:: template SUB_IMM) }, - { 0xf800, 0x3800, fix(&D:: template SUB_IMM) }, - { 0xfe00, 0x1a00, fix(&D:: template SUB_REG) }, - { 0xff80, 0xb080, fix(&D:: template SUB_SPI) }, - { 0xff00, 0xdf00, fix(&D:: template SVC) }, - { 0xffc0, 0xb240, fix(&D:: template SXTB) }, - { 0xffc0, 0xb200, fix(&D:: template SXTH) }, - { 0xffc0, 0x4200, fix(&D:: template TST_REG) }, - { 0xffc0, 0xb2c0, fix(&D:: template UXTB) }, - { 0xffc0, 0xb280, fix(&D:: template UXTH) }, - { 0xffff, 0xbf20, fix(&D:: template WFE) }, - { 0xffff, 0xbf30, fix(&D:: template WFI) }, - { 0xffff, 0xbf10, fix(&D:: template YIELD) }, - }); - - m_op32_list.assign( - { - { 0xffff0000, 0xf8700000, fix(&D:: template HACK), nullptr }, // "Undefined" Thumb opcode used - { 0xfbe08000, 0xf1400000, fix(&D:: template ADC_IMM), nullptr }, - { 0xffe08000, 0xeb400000, fix(&D:: template ADC_REG), nullptr }, - { 0xfbe08000, 0xf1000000, fix(&D:: template ADD_IMM), SKIP_IF((BF(8, 11) == 15 && BT(20)) || BF(16, 19) == 13) }, - { 0xfbf08000, 0xf2000000, fix(&D:: template ADD_IMM), SKIP_IF((BF(16, 19) & 13) == 13) }, - { 0xffe08000, 0xeb000000, fix(&D:: template ADD_REG), SKIP_IF((BF(8, 11) == 15 && BT(20)) || BF(16, 19) == 13) }, - { 0xfbef8000, 0xf10d0000, fix(&D:: template ADD_SPI), SKIP_IF(BF(8, 11) == 15 && BT(20)) }, - { 0xfbff8000, 0xf20d0000, fix(&D:: template ADD_SPI), nullptr }, - { 0xffef8000, 0xeb0d0000, fix(&D:: template ADD_SPR), nullptr }, - { 0xfbff8000, 0xf2af0000, fix(&D:: template ADR), nullptr }, - { 0xfbff8000, 0xf20f0000, fix(&D:: template ADR), nullptr }, - { 0xfbe08000, 0xf0000000, fix(&D:: template AND_IMM), SKIP_IF(BF(8, 11) == 15 && BT(20)) }, - { 0xffe08000, 0xea000000, fix(&D:: template AND_REG), SKIP_IF(BF(8, 11) == 15 && BT(20)) }, - { 0xffef8030, 0xea4f0020, fix(&D:: template ASR_IMM), nullptr }, - { 0xffe0f0f0, 0xfa40f000, fix(&D:: template ASR_REG), nullptr }, - { 0xf800d000, 0xf0008000, fix(&D:: template B), SKIP_IF(BF(23, 25) == 0x7) }, - { 0xf800d000, 0xf0009000, fix(&D:: template B), nullptr }, - { 0xffff8020, 0xf36f0000, fix(&D:: template BFC), nullptr }, - { 0xfff08020, 0xf3600000, fix(&D:: template BFI), SKIP_IF(BF(16, 19) == 15) }, - { 0xfbe08000, 0xf0200000, fix(&D:: template BIC_IMM), nullptr }, - { 0xffe08000, 0xea200000, fix(&D:: template BIC_REG), nullptr }, - { 0xf800d000, 0xf000d000, fix(&D:: template BL), nullptr }, - { 0xf800c001, 0xf000c000, fix(&D:: template BL), nullptr }, - { 0xfff0f0f0, 0xfab0f080, fix(&D:: template CLZ), nullptr }, - { 0xfbf08f00, 0xf1100f00, fix(&D:: template CMN_IMM), nullptr }, - { 0xfff08f00, 0xeb100f00, fix(&D:: template CMN_REG), nullptr }, - { 0xfbf08f00, 0xf1b00f00, fix(&D:: template CMP_IMM), nullptr }, - { 0xfff08f00, 0xebb00f00, fix(&D:: template CMP_REG), nullptr }, - { 0xfffffff0, 0xf3af80f0, fix(&D:: template DBG), nullptr }, - { 0xfffffff0, 0xf3bf8f50, fix(&D:: template DMB), nullptr }, - { 0xfffffff0, 0xf3bf8f40, fix(&D:: template DSB), nullptr }, - { 0xfbe08000, 0xf0800000, fix(&D:: template EOR_IMM), SKIP_IF(BF(8, 11) == 15 && BT(20)) }, - { 0xffe08000, 0xea800000, fix(&D:: template EOR_REG), SKIP_IF(BF(8, 11) == 15 && BT(20)) }, - { 0xffd02000, 0xe8900000, fix(&D:: template LDM), SKIP_IF(BT(21) && BF(16, 19) == 13) }, - { 0xffd02000, 0xe9100000, fix(&D:: template LDMDB), nullptr }, - { 0xfff00000, 0xf8d00000, fix(&D:: template LDR_IMM), SKIP_IF(BF(16, 19) == 15) }, - { 0xfff00800, 0xf8500800, fix(&D:: template LDR_IMM), SKIP_IF(BF(16, 19) == 15 || BF(8, 10) == 6 || (c & 0xf07ff) == 0xd0304 || (c & 0x500) == 0) }, - { 0xff7f0000, 0xf85f0000, fix(&D:: template LDR_LIT), nullptr }, - { 0xfff00fc0, 0xf8500000, fix(&D:: template LDR_REG), SKIP_IF(BF(16, 19) == 15) }, - { 0xfff00000, 0xf8900000, fix(&D:: template LDRB_IMM) }, - { 0xfff00800, 0xf8100800, fix(&D:: template LDRB_IMM) }, - { 0xff7f0000, 0xf81f0000, fix(&D:: template LDRB_LIT) }, - { 0xfff00fc0, 0xf8100000, fix(&D:: template LDRB_REG) }, - { 0xfe500000, 0xe8500000, fix(&D:: template LDRD_IMM), SKIP_IF((!BT(21) && !BT(24)) || BF(16, 19) == 15) }, - { 0xfe7f0000, 0xe85f0000, fix(&D:: template LDRD_LIT) }, - { 0xfff00f00, 0xe8500f00, fix(&D:: template LDREX) }, - { 0xfff00fff, 0xe8d00f4f, fix(&D:: template LDREXB) }, - { 0xfff000ff, 0xe8d0007f, fix(&D:: template LDREXD) }, - { 0xfff00fff, 0xe8d00f5f, fix(&D:: template LDREXH) }, - { 0xfff00000, 0xf8b00000, fix(&D:: template LDRH_IMM) }, - { 0xfff00800, 0xf8300800, fix(&D:: template LDRH_IMM) }, - { 0xff7f0000, 0xf83f0000, fix(&D:: template LDRH_LIT) }, - { 0xfff00fc0, 0xf8300000, fix(&D:: template LDRH_REG) }, - { 0xfff00000, 0xf9900000, fix(&D:: template LDRSB_IMM) }, - { 0xfff00800, 0xf9100800, fix(&D:: template LDRSB_IMM) }, - { 0xff7f0000, 0xf91f0000, fix(&D:: template LDRSB_LIT) }, - { 0xfff00fc0, 0xf9100000, fix(&D:: template LDRSB_REG) }, - { 0xfff00000, 0xf9b00000, fix(&D:: template LDRSH_IMM) }, - { 0xfff00800, 0xf9300800, fix(&D:: template LDRSH_IMM) }, - { 0xff7f0000, 0xf93f0000, fix(&D:: template LDRSH_LIT) }, - { 0xfff00fc0, 0xf9300000, fix(&D:: template LDRSH_REG) }, - { 0xffef8030, 0xea4f0000, fix(&D:: template LSL_IMM) }, - { 0xffe0f0f0, 0xfa00f000, fix(&D:: template LSL_REG) }, - { 0xffef8030, 0xea4f0010, fix(&D:: template LSR_IMM) }, - { 0xffe0f0f0, 0xfa20f000, fix(&D:: template LSR_REG) }, - { 0xfff000f0, 0xfb000000, fix(&D:: template MLA), SKIP_IF(BF(12, 15) == 15) }, - { 0xfff000f0, 0xfb000010, fix(&D:: template MLS) }, - { 0xfbef8000, 0xf04f0000, fix(&D:: template MOV_IMM) }, - { 0xfbf08000, 0xf2400000, fix(&D:: template MOV_IMM) }, - { 0xffeff0f0, 0xea4f0000, fix(&D:: template MOV_REG) }, - { 0xfbf08000, 0xf2c00000, fix(&D:: template MOVT) }, - { 0xff100010, 0xee100010, fix(&D:: template MRC_) }, - { 0xff100010, 0xfe100010, fix(&D:: template MRC_) }, - { 0xfffff0ff, 0xf3ef8000, fix(&D:: template MRS) }, - { 0xfff0f3ff, 0xf3808000, fix(&D:: template MSR_REG) }, - { 0xfff0f0f0, 0xfb00f000, fix(&D:: template MUL) }, - { 0xfbef8000, 0xf06f0000, fix(&D:: template MVN_IMM) }, - { 0xffef8000, 0xea6f0000, fix(&D:: template MVN_REG) }, - { 0xffffffff, 0xf3af8000, fix(&D:: template NOP) }, - { 0xfbe08000, 0xf0600000, fix(&D:: template ORN_IMM) }, - { 0xffe08000, 0xea600000, fix(&D:: template ORN_REG) }, - { 0xfbe08000, 0xf0400000, fix(&D:: template ORR_IMM) }, - { 0xffe08000, 0xea400000, fix(&D:: template ORR_REG), SKIP_IF(BF(16, 19) == 15) }, - { 0xfff08010, 0xeac00000, fix(&D:: template PKH) }, - { 0xffff0000, 0xe8bd0000, fix(&D:: template POP) }, - { 0xffff0fff, 0xf85d0b04, fix(&D:: template POP) }, - { 0xffff0000, 0xe92d0000, fix(&D:: template PUSH) }, // had an error in arch ref - { 0xffff0fff, 0xf84d0d04, fix(&D:: template PUSH) }, - { 0xfff0f0f0, 0xfa80f080, fix(&D:: template QADD) }, - { 0xfff0f0f0, 0xfa90f010, fix(&D:: template QADD16) }, - { 0xfff0f0f0, 0xfa80f010, fix(&D:: template QADD8) }, - { 0xfff0f0f0, 0xfaa0f010, fix(&D:: template QASX) }, - { 0xfff0f0f0, 0xfa80f090, fix(&D:: template QDADD) }, - { 0xfff0f0f0, 0xfa80f0b0, fix(&D:: template QDSUB) }, - { 0xfff0f0f0, 0xfae0f010, fix(&D:: template QSAX) }, - { 0xfff0f0f0, 0xfa80f0a0, fix(&D:: template QSUB) }, - { 0xfff0f0f0, 0xfad0f010, fix(&D:: template QSUB16) }, - { 0xfff0f0f0, 0xfac0f010, fix(&D:: template QSUB8) }, - { 0xfff0f0f0, 0xfa90f0a0, fix(&D:: template RBIT) }, - { 0xfff0f0f0, 0xfa90f080, fix(&D:: template REV) }, - { 0xfff0f0f0, 0xfa90f090, fix(&D:: template REV16) }, - { 0xfff0f0f0, 0xfa90f0b0, fix(&D:: template REVSH) }, - { 0xffef8030, 0xea4f0030, fix(&D:: template ROR_IMM) }, - { 0xffe0f0f0, 0xfa60f000, fix(&D:: template ROR_REG) }, - { 0xffeff0f0, 0xea4f0030, fix(&D:: template RRX) }, - { 0xfbe08000, 0xf1c00000, fix(&D:: template RSB_IMM) }, - { 0xffe08000, 0xebc00000, fix(&D:: template RSB_REG) }, - { 0xfff0f0f0, 0xfa90f000, fix(&D:: template SADD16) }, - { 0xfff0f0f0, 0xfa80f000, fix(&D:: template SADD8) }, - { 0xfff0f0f0, 0xfaa0f000, fix(&D:: template SASX) }, - { 0xfbe08000, 0xf1600000, fix(&D:: template SBC_IMM) }, - { 0xffe08000, 0xeb600000, fix(&D:: template SBC_REG) }, - { 0xfff08020, 0xf3400000, fix(&D:: template SBFX) }, - { 0xfff0f0f0, 0xfb90f0f0, fix(&D:: template SDIV) }, // ??? - { 0xfff0f0f0, 0xfaa0f080, fix(&D:: template SEL) }, - { 0xfff0f0f0, 0xfa90f020, fix(&D:: template SHADD16) }, - { 0xfff0f0f0, 0xfa80f020, fix(&D:: template SHADD8) }, - { 0xfff0f0f0, 0xfaa0f020, fix(&D:: template SHASX) }, - { 0xfff0f0f0, 0xfae0f020, fix(&D:: template SHSAX) }, - { 0xfff0f0f0, 0xfad0f020, fix(&D:: template SHSUB16) }, - { 0xfff0f0f0, 0xfac0f020, fix(&D:: template SHSUB8) }, - { 0xfff000c0, 0xfb100000, fix(&D:: template SMLA__) }, - { 0xfff000e0, 0xfb200000, fix(&D:: template SMLAD) }, - { 0xfff000f0, 0xfbc00000, fix(&D:: template SMLAL) }, - { 0xfff000c0, 0xfbc00080, fix(&D:: template SMLAL__) }, - { 0xfff000e0, 0xfbc000c0, fix(&D:: template SMLALD) }, - { 0xfff000e0, 0xfb300000, fix(&D:: template SMLAW_) }, - { 0xfff000e0, 0xfb400000, fix(&D:: template SMLSD) }, - { 0xfff000e0, 0xfbd000c0, fix(&D:: template SMLSLD) }, - { 0xfff000e0, 0xfb500000, fix(&D:: template SMMLA) }, - { 0xfff000e0, 0xfb600000, fix(&D:: template SMMLS) }, - { 0xfff0f0e0, 0xfb50f000, fix(&D:: template SMMUL) }, - { 0xfff0f0e0, 0xfb20f000, fix(&D:: template SMUAD) }, - { 0xfff0f0c0, 0xfb10f000, fix(&D:: template SMUL__) }, - { 0xfff000f0, 0xfb800000, fix(&D:: template SMULL) }, - { 0xfff0f0e0, 0xfb30f000, fix(&D:: template SMULW_) }, - { 0xfff0f0e0, 0xfb40f000, fix(&D:: template SMUSD) }, - { 0xffd08020, 0xf3000000, fix(&D:: template SSAT) }, - { 0xfff0f0e0, 0xf3200000, fix(&D:: template SSAT16) }, - { 0xfff0f0f0, 0xfae0f000, fix(&D:: template SSAX) }, - { 0xfff0f0f0, 0xfad0f000, fix(&D:: template SSUB16) }, - { 0xfff0f0f0, 0xfac0f000, fix(&D:: template SSUB8) }, - { 0xffd0a000, 0xe8800000, fix(&D:: template STM) }, - { 0xffd0a000, 0xe9000000, fix(&D:: template STMDB) }, - { 0xfff00000, 0xf8c00000, fix(&D:: template STR_IMM) }, - { 0xfff00800, 0xf8400800, fix(&D:: template STR_IMM) }, - { 0xfff00fc0, 0xf8400000, fix(&D:: template STR_REG) }, - { 0xfff00000, 0xf8800000, fix(&D:: template STRB_IMM) }, - { 0xfff00800, 0xf8000800, fix(&D:: template STRB_IMM) }, - { 0xfff00fc0, 0xf8000000, fix(&D:: template STRB_REG) }, - { 0xfe500000, 0xe8400000, fix(&D:: template STRD_IMM), SKIP_IF(!BT(21) && !BT(24)) }, - { 0xfff00000, 0xe8400000, fix(&D:: template STREX) }, - { 0xfff00ff0, 0xe8c00f40, fix(&D:: template STREXB) }, - { 0xfff000f0, 0xe8c00070, fix(&D:: template STREXD) }, - { 0xfff00ff0, 0xe8c00f50, fix(&D:: template STREXH) }, - { 0xfff00000, 0xf8a00000, fix(&D:: template STRH_IMM) }, - { 0xfff00800, 0xf8200800, fix(&D:: template STRH_IMM) }, - { 0xfff00fc0, 0xf8200000, fix(&D:: template STRH_REG) }, - { 0xfbe08000, 0xf1a00000, fix(&D:: template SUB_IMM), SKIP_IF((BF(8, 11) == 15 && BT(20)) || BF(16, 19) == 13) }, - { 0xfbf08000, 0xf2a00000, fix(&D:: template SUB_IMM) }, - { 0xffe08000, 0xeba00000, fix(&D:: template SUB_REG), SKIP_IF((BF(8, 11) == 15 && BT(20)) || BF(16, 19) == 13) }, - { 0xfbef8000, 0xf1ad0000, fix(&D:: template SUB_SPI) }, - { 0xfbff8000, 0xf2ad0000, fix(&D:: template SUB_SPI) }, - { 0xffef8000, 0xebad0000, fix(&D:: template SUB_SPR) }, - { 0xfff0f0c0, 0xfa40f080, fix(&D:: template SXTAB) }, - { 0xfff0f0c0, 0xfa20f080, fix(&D:: template SXTAB16) }, - { 0xfff0f0c0, 0xfa00f080, fix(&D:: template SXTAH) }, - { 0xfffff0c0, 0xfa4ff080, fix(&D:: template SXTB) }, - { 0xfffff0c0, 0xfa2ff080, fix(&D:: template SXTB16) }, - { 0xfffff0c0, 0xfa0ff080, fix(&D:: template SXTH) }, - { 0xfff0ffe0, 0xe8d0f000, fix(&D:: template TB_) }, - { 0xfbf08f00, 0xf0900f00, fix(&D:: template TEQ_IMM) }, - { 0xfff08f00, 0xea900f00, fix(&D:: template TEQ_REG) }, - { 0xfbf08f00, 0xf0100f00, fix(&D:: template TST_IMM) }, - { 0xfff08f00, 0xea100f00, fix(&D:: template TST_REG) }, - { 0xfff0f0f0, 0xfa90f040, fix(&D:: template UADD16) }, - { 0xfff0f0f0, 0xfa80f040, fix(&D:: template UADD8) }, - { 0xfff0f0f0, 0xfaa0f040, fix(&D:: template UASX) }, - { 0xfff08020, 0xf3c00000, fix(&D:: template UBFX) }, - { 0xfff0f0f0, 0xfbb0f0f0, fix(&D:: template UDIV) }, // ??? - { 0xfff0f0f0, 0xfa90f060, fix(&D:: template UHADD16) }, - { 0xfff0f0f0, 0xfa80f060, fix(&D:: template UHADD8) }, - { 0xfff0f0f0, 0xfaa0f060, fix(&D:: template UHASX) }, - { 0xfff0f0f0, 0xfae0f060, fix(&D:: template UHSAX) }, - { 0xfff0f0f0, 0xfad0f060, fix(&D:: template UHSUB16) }, - { 0xfff0f0f0, 0xfac0f060, fix(&D:: template UHSUB8) }, - { 0xfff000f0, 0xfbe00060, fix(&D:: template UMAAL) }, - { 0xfff000f0, 0xfbe00000, fix(&D:: template UMLAL) }, - { 0xfff000f0, 0xfba00000, fix(&D:: template UMULL) }, - { 0xfff0f0f0, 0xfa90f050, fix(&D:: template UQADD16) }, - { 0xfff0f0f0, 0xfa80f050, fix(&D:: template UQADD8) }, - { 0xfff0f0f0, 0xfaa0f050, fix(&D:: template UQASX) }, - { 0xfff0f0f0, 0xfae0f050, fix(&D:: template UQSAX) }, - { 0xfff0f0f0, 0xfad0f050, fix(&D:: template UQSUB16) }, - { 0xfff0f0f0, 0xfac0f050, fix(&D:: template UQSUB8) }, - { 0xfff0f0f0, 0xfb70f000, fix(&D:: template USAD8) }, - { 0xfff000f0, 0xfb700000, fix(&D:: template USADA8) }, - { 0xffd08020, 0xf3800000, fix(&D:: template USAT) }, - { 0xfff0f0e0, 0xf3a00000, fix(&D:: template USAT16) }, - { 0xfff0f0f0, 0xfae0f040, fix(&D:: template USAX) }, - { 0xfff0f0f0, 0xfad0f040, fix(&D:: template USUB16) }, - { 0xfff0f0f0, 0xfac0f040, fix(&D:: template USUB8) }, - { 0xfff0f0c0, 0xfa50f080, fix(&D:: template UXTAB), SKIP_IF(BF(16, 19) == 15) }, - { 0xfff0f0c0, 0xfa30f080, fix(&D:: template UXTAB16) }, - { 0xfff0f0c0, 0xfa10f080, fix(&D:: template UXTAH) }, - { 0xfffff0c0, 0xfa5ff080, fix(&D:: template UXTB) }, - { 0xfffff0c0, 0xfa3ff080, fix(&D:: template UXTB16) }, - { 0xfffff0c0, 0xfa1ff080, fix(&D:: template UXTH) }, - { 0xef800f10, 0xef000710, fix(&D:: template VABA_) }, - { 0xef800f50, 0xef800500, fix(&D:: template VABA_) }, - { 0xef800f10, 0xef000700, fix(&D:: template VABD_) }, - { 0xef800f50, 0xef800700, fix(&D:: template VABD_) }, - { 0xffa00f10, 0xff200d00, fix(&D:: template VABD_FP) }, - { 0xffb30b90, 0xffb10300, fix(&D:: template VABS) }, - { 0xffbf0ed0, 0xeeb00ac0, fix(&D:: template VABS) }, - { 0xff800f10, 0xff000e10, fix(&D:: template VAC__) }, - { 0xff800f10, 0xef000800, fix(&D:: template VADD) }, - { 0xffa00f10, 0xef000d00, fix(&D:: template VADD_FP) }, - { 0xffb00e50, 0xee300a00, fix(&D:: template VADD_FP) }, - { 0xff800f50, 0xef800400, fix(&D:: template VADDHN) }, - { 0xef800e50, 0xef800000, fix(&D:: template VADD_) }, - { 0xffb00f10, 0xef000110, fix(&D:: template VAND) }, - { 0xefb800b0, 0xef800030, fix(&D:: template VBIC_IMM) }, - { 0xffb00f10, 0xef100110, fix(&D:: template VBIC_REG) }, - { 0xff800f10, 0xff000110, fix(&D:: template VB__) }, - { 0xff800f10, 0xff000810, fix(&D:: template VCEQ_REG) }, - { 0xffa00f10, 0xef000e00, fix(&D:: template VCEQ_REG) }, - { 0xffb30b90, 0xffb10100, fix(&D:: template VCEQ_ZERO) }, - { 0xef800f10, 0xef000310, fix(&D:: template VCGE_REG) }, - { 0xffa00f10, 0xff000e00, fix(&D:: template VCGE_REG) }, - { 0xffb30b90, 0xffb10080, fix(&D:: template VCGE_ZERO) }, - { 0xef800f10, 0xef000300, fix(&D:: template VCGT_REG) }, - { 0xffa00f10, 0xff200e00, fix(&D:: template VCGT_REG) }, - { 0xffb30b90, 0xffb10000, fix(&D:: template VCGT_ZERO) }, - { 0xffb30b90, 0xffb10180, fix(&D:: template VCLE_ZERO) }, - { 0xffb30f90, 0xffb00400, fix(&D:: template VCLS) }, - { 0xffb30b90, 0xffb10200, fix(&D:: template VCLT_ZERO) }, - { 0xffb30f90, 0xffb00480, fix(&D:: template VCLZ) }, - { 0xffbf0e50, 0xeeb40a40, fix(&D:: template VCMP_) }, - { 0xffbf0e7f, 0xeeb50a40, fix(&D:: template VCMP_) }, - { 0xffb30f90, 0xffb00500, fix(&D:: template VCNT) }, - { 0xffb30e10, 0xffb30600, fix(&D:: template VCVT_FIA) }, - { 0xffb80e50, 0xeeb80a40, fix(&D:: template VCVT_FIF) }, - { 0xef800e90, 0xef800e10, fix(&D:: template VCVT_FFA) }, - { 0xffba0e50, 0xeeba0a40, fix(&D:: template VCVT_FFF) }, - { 0xffbf0ed0, 0xeeb70ac0, fix(&D:: template VCVT_DF) }, - { 0xffb30ed0, 0xffb20600, fix(&D:: template VCVT_HFA) }, - { 0xffbe0f50, 0xeeb20a40, fix(&D:: template VCVT_HFF) }, - { 0xffb00e50, 0xee800a00, fix(&D:: template VDIV) }, - { 0xffb00f90, 0xffb00c00, fix(&D:: template VDUP_S) }, - { 0xff900f5f, 0xee800b10, fix(&D:: template VDUP_R) }, - { 0xffb00f10, 0xff000110, fix(&D:: template VEOR) }, - { 0xffb00010, 0xefb00000, fix(&D:: template VEXT) }, - { 0xef800b10, 0xef000000, fix(&D:: template VHADDSUB) }, - { 0xffb00000, 0xf9200000, fix(&D:: template VLD__MS) }, // VLD1, VLD2, VLD3, VLD4 - { 0xffb00f00, 0xf9a00c00, fix(&D:: template VLD1_SAL) }, - { 0xffb00300, 0xf9a00000, fix(&D:: template VLD1_SL) }, - { 0xffb00f00, 0xf9a00d00, fix(&D:: template VLD2_SAL) }, - { 0xffb00300, 0xf9a00100, fix(&D:: template VLD2_SL) }, - { 0xffb00f00, 0xf9a00e00, fix(&D:: template VLD3_SAL) }, - { 0xffb00300, 0xf9a00200, fix(&D:: template VLD3_SL) }, - { 0xffb00f00, 0xf9a00f00, fix(&D:: template VLD4_SAL) }, - { 0xffb00300, 0xf9a00300, fix(&D:: template VLD4_SL) }, - { 0xfe100f00, 0xec100b00, fix(&D:: template VLDM) }, - { 0xfe100f00, 0xec100a00, fix(&D:: template VLDM) }, - { 0xff300f00, 0xed100b00, fix(&D:: template VLDR) }, - { 0xff300f00, 0xed100a00, fix(&D:: template VLDR) }, - { 0xef800f00, 0xef000600, fix(&D:: template VMAXMIN) }, - { 0xff800f10, 0xef000f00, fix(&D:: template VMAXMIN_FP) }, - { 0xef800f10, 0xef000900, fix(&D:: template VML__) }, - { 0xef800d50, 0xef800800, fix(&D:: template VML__) }, - { 0xff800f10, 0xef000d10, fix(&D:: template VML__FP) }, - { 0xffb00e10, 0xee000a00, fix(&D:: template VML__FP) }, - { 0xef800a50, 0xef800040, fix(&D:: template VML__S) }, - { 0xef800b50, 0xef800240, fix(&D:: template VML__S) }, - { 0xefb80090, 0xef800010, fix(&D:: template VMOV_IMM) }, - { 0xffb00ef0, 0xeeb00a00, fix(&D:: template VMOV_IMM) }, - { 0xffb00f10, 0xef200110, fix(&D:: template VMOV_REG) }, - { 0xffbf0ed0, 0xeeb00a40, fix(&D:: template VMOV_REG) }, - { 0xff900f1f, 0xee000b10, fix(&D:: template VMOV_RS) }, - { 0xff100f1f, 0xee100b10, fix(&D:: template VMOV_SR) }, - { 0xffe00f7f, 0xee000a10, fix(&D:: template VMOV_RF) }, - { 0xffe00fd0, 0xec400a10, fix(&D:: template VMOV_2RF) }, - { 0xffe00fd0, 0xec400b10, fix(&D:: template VMOV_2RD) }, - { 0xef870fd0, 0xef800a10, fix(&D:: template VMOVL) }, - { 0xffb30fd0, 0xffb20200, fix(&D:: template VMOVN) }, - { 0xffff0fff, 0xeef10a10, fix(&D:: template VMRS) }, - { 0xffff0fff, 0xeee10a10, fix(&D:: template VMSR) }, - { 0xef800f10, 0xef000910, fix(&D:: template VMUL_) }, - { 0xef800d50, 0xef800c00, fix(&D:: template VMUL_) }, - { 0xffa00f10, 0xff000d10, fix(&D:: template VMUL_FP) }, - { 0xffb00e50, 0xee200a00, fix(&D:: template VMUL_FP) }, - { 0xef800e50, 0xef800840, fix(&D:: template VMUL_S) }, - { 0xef800f50, 0xef800a40, fix(&D:: template VMUL_S) }, - { 0xefb800b0, 0xef800030, fix(&D:: template VMVN_IMM) }, - { 0xffb30f90, 0xffb00580, fix(&D:: template VMVN_REG) }, - { 0xffb30b90, 0xffb10380, fix(&D:: template VNEG) }, - { 0xffbf0ed0, 0xeeb10a40, fix(&D:: template VNEG) }, - { 0xffb00e10, 0xee100a00, fix(&D:: template VNM__) }, - { 0xffb00e50, 0xee200a40, fix(&D:: template VNM__) }, - { 0xffb00f10, 0xef300110, fix(&D:: template VORN_REG) }, - { 0xefb800b0, 0xef800010, fix(&D:: template VORR_IMM) }, - { 0xffb00f10, 0xef200110, fix(&D:: template VORR_REG) }, - { 0xffb30f10, 0xffb00600, fix(&D:: template VPADAL) }, - { 0xff800f10, 0xef000b10, fix(&D:: template VPADD) }, - { 0xffa00f10, 0xff000d00, fix(&D:: template VPADD_FP) }, - { 0xffb30f10, 0xffb00200, fix(&D:: template VPADDL) }, - { 0xef800f00, 0xef000a00, fix(&D:: template VPMAXMIN) }, - { 0xff800f10, 0xff000f00, fix(&D:: template VPMAXMIN_FP) }, - { 0xffbf0f00, 0xecbd0b00, fix(&D:: template VPOP) }, - { 0xffbf0f00, 0xecbd0a00, fix(&D:: template VPOP) }, - { 0xffbf0f00, 0xed2d0b00, fix(&D:: template VPUSH) }, - { 0xffbf0f00, 0xed2d0a00, fix(&D:: template VPUSH) }, - { 0xffb30f90, 0xffb00700, fix(&D:: template VQABS) }, - { 0xef800f10, 0xef000010, fix(&D:: template VQADD) }, - { 0xff800d50, 0xef800900, fix(&D:: template VQDML_L) }, - { 0xff800b50, 0xef800340, fix(&D:: template VQDML_L) }, - { 0xff800f10, 0xef000b00, fix(&D:: template VQDMULH) }, - { 0xef800f50, 0xef800c40, fix(&D:: template VQDMULH) }, - { 0xff800f50, 0xef800d00, fix(&D:: template VQDMULL) }, - { 0xff800f50, 0xef800b40, fix(&D:: template VQDMULL) }, - { 0xffb30f10, 0xffb20200, fix(&D:: template VQMOV_N) }, - { 0xffb30f90, 0xffb00780, fix(&D:: template VQNEG) }, - { 0xff800f10, 0xff000b00, fix(&D:: template VQRDMULH) }, - { 0xef800f50, 0xef800d40, fix(&D:: template VQRDMULH) }, - { 0xef800f10, 0xef000510, fix(&D:: template VQRSHL) }, - { 0xef800ed0, 0xef800850, fix(&D:: template VQRSHR_N) }, - { 0xef800f10, 0xef000410, fix(&D:: template VQSHL_REG) }, - { 0xef800e10, 0xef800610, fix(&D:: template VQSHL_IMM) }, - { 0xef800ed0, 0xef800810, fix(&D:: template VQSHR_N) }, - { 0xef800f10, 0xef000210, fix(&D:: template VQSUB) }, - { 0xff800f50, 0xff800400, fix(&D:: template VRADDHN) }, - { 0xffb30e90, 0xffb30400, fix(&D:: template VRECPE) }, - { 0xffa00f10, 0xef000f10, fix(&D:: template VRECPS) }, - { 0xffb30e10, 0xffb00000, fix(&D:: template VREV__) }, - { 0xef800f10, 0xef000100, fix(&D:: template VRHADD) }, - { 0xef800f10, 0xef000500, fix(&D:: template VRSHL) }, - { 0xef800f10, 0xef800210, fix(&D:: template VRSHR) }, - { 0xff800fd0, 0xef800850, fix(&D:: template VRSHRN) }, - { 0xffb30e90, 0xffb30480, fix(&D:: template VRSQRTE) }, - { 0xffa00f10, 0xef200f10, fix(&D:: template VRSQRTS) }, - { 0xef800f10, 0xef800310, fix(&D:: template VRSRA) }, - { 0xff800f50, 0xff800600, fix(&D:: template VRSUBHN) }, - { 0xff800f10, 0xef800510, fix(&D:: template VSHL_IMM) }, - { 0xef800f10, 0xef000400, fix(&D:: template VSHL_REG) }, - { 0xef800fd0, 0xef800a10, fix(&D:: template VSHLL) }, - { 0xffb30fd0, 0xffb20300, fix(&D:: template VSHLL) }, - { 0xef800f10, 0xef800010, fix(&D:: template VSHR) }, - { 0xff800fd0, 0xef800810, fix(&D:: template VSHRN) }, - { 0xff800f10, 0xff800510, fix(&D:: template VSLI) }, - { 0xffbf0ed0, 0xeeb10ac0, fix(&D:: template VSQRT) }, - { 0xef800f10, 0xef800110, fix(&D:: template VSRA) }, - { 0xff800f10, 0xff800410, fix(&D:: template VSRI) }, - { 0xffb00000, 0xf9000000, fix(&D:: template VST__MS) }, // VST1, VST2, VST3, VST4 - { 0xffb00300, 0xf9800000, fix(&D:: template VST1_SL) }, - { 0xffb00300, 0xf9800100, fix(&D:: template VST2_SL) }, - { 0xffb00300, 0xf9800200, fix(&D:: template VST3_SL) }, - { 0xffb00300, 0xf9800300, fix(&D:: template VST4_SL) }, - { 0xfe100f00, 0xec000b00, fix(&D:: template VSTM) }, - { 0xfe100f00, 0xec000a00, fix(&D:: template VSTM) }, - { 0xff300f00, 0xed000b00, fix(&D:: template VSTR) }, - { 0xff300f00, 0xed000a00, fix(&D:: template VSTR) }, - { 0xff800f10, 0xff000800, fix(&D:: template VSUB) }, - { 0xffa00f10, 0xef200d00, fix(&D:: template VSUB_FP) }, - { 0xffb00e50, 0xee300a40, fix(&D:: template VSUB_FP) }, - { 0xff800f50, 0xef800600, fix(&D:: template VSUBHN) }, - { 0xef800e50, 0xef800200, fix(&D:: template VSUB_) }, - { 0xffb30f90, 0xffb20000, fix(&D:: template VSWP) }, - { 0xffb00c10, 0xffb00800, fix(&D:: template VTB_) }, - { 0xffb30f90, 0xffb20080, fix(&D:: template VTRN) }, - { 0xff800f10, 0xef000810, fix(&D:: template VTST) }, - { 0xffb30f90, 0xffb20100, fix(&D:: template VUZP) }, - { 0xffb30f90, 0xffb20180, fix(&D:: template VZIP) }, - { 0xffffffff, 0xf3af8002, fix(&D:: template WFE) }, - { 0xffffffff, 0xf3af8003, fix(&D:: template WFI) }, - { 0xffffffff, 0xf3af8001, fix(&D:: template YIELD) }, - }); - - m_arm_list.assign( - { - { 0x0ff000f0, 0x00700090, fix(&D:: template HACK), nullptr }, // "Undefined" ARM opcode used - { 0x0ffffff0, 0x012fff10, fix(&D:: template BX), nullptr }, - - { 0x0fe00000, 0x02a00000, fix(&D:: template ADC_IMM) }, - { 0x0fe00010, 0x00a00000, fix(&D:: template ADC_REG) }, - { 0x0fe00090, 0x00a00010, fix(&D:: template ADC_RSR) }, - { 0x0fe00000, 0x02800000, fix(&D:: template ADD_IMM) }, - { 0x0fe00010, 0x00800000, fix(&D:: template ADD_REG) }, - { 0x0fe00090, 0x00800010, fix(&D:: template ADD_RSR) }, - { 0x0fef0000, 0x028d0000, fix(&D:: template ADD_SPI) }, - { 0x0fef0010, 0x008d0000, fix(&D:: template ADD_SPR) }, - { 0x0fff0000, 0x028f0000, fix(&D:: template ADR) }, - { 0x0fff0000, 0x024f0000, fix(&D:: template ADR) }, - { 0x0fe00000, 0x02000000, fix(&D:: template AND_IMM) }, - { 0x0fe00010, 0x00000000, fix(&D:: template AND_REG) }, - { 0x0fe00090, 0x00000010, fix(&D:: template AND_RSR) }, - { 0x0fef0070, 0x01a00040, fix(&D:: template ASR_IMM) }, - { 0x0fef00f0, 0x01a00050, fix(&D:: template ASR_REG) }, - { 0x0f000000, 0x0a000000, fix(&D:: template B) }, - { 0x0fe0007f, 0x07c0001f, fix(&D:: template BFC) }, - { 0x0fe00070, 0x07c00010, fix(&D:: template BFI) }, - { 0x0fe00000, 0x03c00000, fix(&D:: template BIC_IMM) }, - { 0x0fe00010, 0x01c00000, fix(&D:: template BIC_REG) }, - { 0x0fe00090, 0x01c00010, fix(&D:: template BIC_RSR) }, - { 0x0ff000f0, 0x01200070, fix(&D:: template BKPT) }, - { 0x0f000000, 0x0b000000, fix(&D:: template BL) }, - { 0xfe000000, 0xfa000000, fix(&D:: template BL) }, - { 0x0ffffff0, 0x012fff30, fix(&D:: template BLX) }, - { 0x0fff0ff0, 0x016f0f10, fix(&D:: template CLZ) }, - { 0x0ff0f000, 0x03700000, fix(&D:: template CMN_IMM) }, - { 0x0ff0f010, 0x01700000, fix(&D:: template CMN_REG) }, - { 0x0ff0f090, 0x01700010, fix(&D:: template CMN_RSR) }, - { 0x0ff0f000, 0x03500000, fix(&D:: template CMP_IMM) }, - { 0x0ff0f010, 0x01500000, fix(&D:: template CMP_REG) }, - { 0x0ff0f090, 0x01500010, fix(&D:: template CMP_RSR) }, - { 0x0ffffff0, 0x0320f0f0, fix(&D:: template DBG) }, - { 0xfffffff0, 0xf57ff050, fix(&D:: template DMB) }, - { 0xfffffff0, 0xf57ff040, fix(&D:: template DSB) }, - { 0x0fe00000, 0x02200000, fix(&D:: template EOR_IMM) }, - { 0x0fe00010, 0x00200000, fix(&D:: template EOR_REG) }, - { 0x0fe00090, 0x00200010, fix(&D:: template EOR_RSR) }, - { 0x0fd00000, 0x08900000, fix(&D:: template LDM) }, - { 0x0fd00000, 0x08100000, fix(&D:: template LDMDA) }, - { 0x0fd00000, 0x09100000, fix(&D:: template LDMDB) }, - { 0x0fd00000, 0x09900000, fix(&D:: template LDMIB) }, - { 0x0e500000, 0x04100000, fix(&D:: template LDR_IMM) }, - { 0x0f7f0000, 0x051f0000, fix(&D:: template LDR_LIT) }, - { 0x0e500010, 0x06100000, fix(&D:: template LDR_REG) }, - { 0x0e500000, 0x04500000, fix(&D:: template LDRB_IMM) }, - { 0x0f7f0000, 0x055f0000, fix(&D:: template LDRB_LIT) }, - { 0x0e500010, 0x06500000, fix(&D:: template LDRB_REG) }, - { 0x0e5000f0, 0x004000d0, fix(&D:: template LDRD_IMM) }, - { 0x0f7f00f0, 0x014f00d0, fix(&D:: template LDRD_LIT) }, - { 0x0e500ff0, 0x000000d0, fix(&D:: template LDRD_REG) }, - { 0x0ff00fff, 0x01900f9f, fix(&D:: template LDREX) }, - { 0x0ff00fff, 0x01d00f9f, fix(&D:: template LDREXB) }, - { 0x0ff00fff, 0x01b00f9f, fix(&D:: template LDREXD) }, - { 0x0ff00fff, 0x01f00f9f, fix(&D:: template LDREXH) }, - { 0x0e5000f0, 0x005000b0, fix(&D:: template LDRH_IMM) }, - { 0x0f7f00f0, 0x015f00b0, fix(&D:: template LDRH_LIT) }, - { 0x0e500ff0, 0x001000b0, fix(&D:: template LDRH_REG) }, - { 0x0e5000f0, 0x005000d0, fix(&D:: template LDRSB_IMM) }, - { 0x0f7f00f0, 0x015f00d0, fix(&D:: template LDRSB_LIT) }, - { 0x0e500ff0, 0x001000d0, fix(&D:: template LDRSB_REG) }, - { 0x0e5000f0, 0x005000f0, fix(&D:: template LDRSH_IMM) }, - { 0x0f7f00f0, 0x015f00f0, fix(&D:: template LDRSH_LIT) }, - { 0x0e500ff0, 0x001000f0, fix(&D:: template LDRSH_REG) }, - { 0x0fef0070, 0x01a00000, fix(&D:: template LSL_IMM) }, - { 0x0fef00f0, 0x01a00010, fix(&D:: template LSL_REG) }, - { 0x0fef0030, 0x01a00020, fix(&D:: template LSR_IMM) }, - { 0x0fef00f0, 0x01a00030, fix(&D:: template LSR_REG) }, - { 0x0fe000f0, 0x00200090, fix(&D:: template MLA) }, - { 0x0ff000f0, 0x00600090, fix(&D:: template MLS) }, - { 0x0fef0000, 0x03a00000, fix(&D:: template MOV_IMM) }, - { 0x0ff00000, 0x03000000, fix(&D:: template MOV_IMM) }, - { 0x0fef0ff0, 0x01a00000, fix(&D:: template MOV_REG) }, - { 0x0ff00000, 0x03400000, fix(&D:: template MOVT) }, - { 0x0f100010, 0x0e100010, fix(&D:: template MRC_) }, - { 0xff100010, 0xfe100010, fix(&D:: template MRC_) }, - { 0x0fff0fff, 0x010f0000, fix(&D:: template MRS) }, - { 0x0ff3f000, 0x0320f000, fix(&D:: template MSR_IMM) }, - { 0x0ff3fff0, 0x0120f000, fix(&D:: template MSR_REG) }, - { 0x0fe0f0f0, 0x00000090, fix(&D:: template MUL) }, - { 0x0fef0000, 0x03e00000, fix(&D:: template MVN_IMM) }, - { 0xffef0010, 0x01e00000, fix(&D:: template MVN_REG) }, - { 0x0fef0090, 0x01e00010, fix(&D:: template MVN_RSR) }, - { 0x0fffffff, 0x0320f000, fix(&D:: template NOP) }, - { 0x0fe00000, 0x03800000, fix(&D:: template ORR_IMM) }, - { 0x0fe00010, 0x01800000, fix(&D:: template ORR_REG) }, - { 0x0fe00090, 0x01800010, fix(&D:: template ORR_RSR) }, - { 0x0ff00030, 0x06800010, fix(&D:: template PKH) }, - { 0x0fff0000, 0x08bd0000, fix(&D:: template POP) }, - { 0x0fff0fff, 0x049d0004, fix(&D:: template POP) }, - { 0x0fff0000, 0x092d0000, fix(&D:: template PUSH) }, - { 0x0fff0fff, 0x052d0004, fix(&D:: template PUSH) }, - { 0x0ff00ff0, 0x01000050, fix(&D:: template QADD) }, - { 0x0ff00ff0, 0x06200f10, fix(&D:: template QADD16) }, - { 0x0ff00ff0, 0x06200f90, fix(&D:: template QADD8) }, - { 0x0ff00ff0, 0x06200f30, fix(&D:: template QASX) }, - { 0x0ff00ff0, 0x01400050, fix(&D:: template QDADD) }, - { 0x0ff00ff0, 0x01600050, fix(&D:: template QDSUB) }, - { 0x0ff00ff0, 0x06200f50, fix(&D:: template QSAX) }, - { 0x0ff00ff0, 0x01200050, fix(&D:: template QSUB) }, - { 0x0ff00ff0, 0x06200f70, fix(&D:: template QSUB16) }, - { 0x0ff00ff0, 0x06200ff0, fix(&D:: template QSUB8) }, - { 0x0fff0ff0, 0x06ff0f30, fix(&D:: template RBIT) }, - { 0x0fff0ff0, 0x06bf0f30, fix(&D:: template REV) }, - { 0x0fff0ff0, 0x06bf0fb0, fix(&D:: template REV16) }, - { 0x0fff0ff0, 0x06ff0fb0, fix(&D:: template REVSH) }, - { 0x0fef0070, 0x01a00060, fix(&D:: template ROR_IMM) }, - { 0x0fef00f0, 0x01a00070, fix(&D:: template ROR_REG) }, - { 0x0fef0ff0, 0x01a00060, fix(&D:: template RRX) }, - { 0x0fe00000, 0x02600000, fix(&D:: template RSB_IMM) }, - { 0x0fe00010, 0x00600000, fix(&D:: template RSB_REG) }, - { 0x0fe00090, 0x00600010, fix(&D:: template RSB_RSR) }, - { 0x0fe00000, 0x02e00000, fix(&D:: template RSC_IMM) }, - { 0x0fe00010, 0x00e00000, fix(&D:: template RSC_REG) }, - { 0x0fe00090, 0x00e00010, fix(&D:: template RSC_RSR) }, - { 0x0ff00ff0, 0x06100f10, fix(&D:: template SADD16) }, - { 0x0ff00ff0, 0x06100f90, fix(&D:: template SADD8) }, - { 0x0ff00ff0, 0x06100f30, fix(&D:: template SASX) }, - { 0x0fe00000, 0x02c00000, fix(&D:: template SBC_IMM) }, - { 0x0fe00010, 0x00c00000, fix(&D:: template SBC_REG) }, - { 0x0fe00090, 0x00c00010, fix(&D:: template SBC_RSR) }, - { 0x0fe00070, 0x07a00050, fix(&D:: template SBFX) }, - { 0x0ff00ff0, 0x06800fb0, fix(&D:: template SEL) }, - { 0x0ff00ff0, 0x06300f10, fix(&D:: template SHADD16) }, - { 0x0ff00ff0, 0x06300f90, fix(&D:: template SHADD8) }, - { 0x0ff00ff0, 0x06300f30, fix(&D:: template SHASX) }, - { 0x0ff00ff0, 0x06300f50, fix(&D:: template SHSAX) }, - { 0x0ff00ff0, 0x06300f70, fix(&D:: template SHSUB16) }, - { 0x0ff00ff0, 0x06300ff0, fix(&D:: template SHSUB8) }, - { 0x0ff00090, 0x01000080, fix(&D:: template SMLA__) }, - { 0x0ff000d0, 0x07000010, fix(&D:: template SMLAD) }, - { 0x0fe000f0, 0x00e00090, fix(&D:: template SMLAL) }, - { 0x0ff00090, 0x01400080, fix(&D:: template SMLAL__) }, - { 0x0ff000d0, 0x07400010, fix(&D:: template SMLALD) }, - { 0x0ff000b0, 0x01200080, fix(&D:: template SMLAW_) }, - { 0x0ff000d0, 0x07000050, fix(&D:: template SMLSD) }, - { 0x0ff000d0, 0x07400050, fix(&D:: template SMLSLD) }, - { 0x0ff000d0, 0x07500010, fix(&D:: template SMMLA) }, - { 0x0ff000d0, 0x075000d0, fix(&D:: template SMMLS) }, - { 0x0ff0f0d0, 0x0750f010, fix(&D:: template SMMUL) }, - { 0x0ff0f0d0, 0x0700f010, fix(&D:: template SMUAD) }, - { 0x0ff0f090, 0x01600080, fix(&D:: template SMUL__) }, - { 0x0fe000f0, 0x00c00090, fix(&D:: template SMULL) }, - { 0x0ff0f0b0, 0x012000a0, fix(&D:: template SMULW_) }, - { 0x0ff0f0d0, 0x0700f050, fix(&D:: template SMUSD) }, - { 0x0fe00030, 0x06a00010, fix(&D:: template SSAT) }, - { 0x0ff00ff0, 0x06a00f30, fix(&D:: template SSAT16) }, - { 0x0ff00ff0, 0x06100f50, fix(&D:: template SSAX) }, - { 0x0ff00ff0, 0x06100f70, fix(&D:: template SSUB16) }, - { 0x0ff00ff0, 0x06100ff0, fix(&D:: template SSUB8) }, - { 0x0fd00000, 0x08800000, fix(&D:: template STM) }, - { 0x0fd00000, 0x08000000, fix(&D:: template STMDA) }, - { 0x0fd00000, 0x09000000, fix(&D:: template STMDB) }, - { 0x0fd00000, 0x09800000, fix(&D:: template STMIB) }, - { 0x0e500000, 0x04000000, fix(&D:: template STR_IMM) }, - { 0x0e500010, 0x06000000, fix(&D:: template STR_REG) }, - { 0x0e500000, 0x04400000, fix(&D:: template STRB_IMM) }, - { 0x0e500010, 0x06400000, fix(&D:: template STRB_REG) }, - { 0x0e5000f0, 0x004000f0, fix(&D:: template STRD_IMM) }, - { 0x0e500ff0, 0x000000f0, fix(&D:: template STRD_REG) }, - { 0x0ff00ff0, 0x01800f90, fix(&D:: template STREX) }, - { 0x0ff00ff0, 0x01c00f90, fix(&D:: template STREXB) }, - { 0x0ff00ff0, 0x01a00f90, fix(&D:: template STREXD) }, - { 0x0ff00ff0, 0x01e00f90, fix(&D:: template STREXH) }, - { 0x0e5000f0, 0x004000b0, fix(&D:: template STRH_IMM) }, - { 0x0e500ff0, 0x000000b0, fix(&D:: template STRH_REG) }, - { 0x0fe00000, 0x02400000, fix(&D:: template SUB_IMM) }, - { 0x0fe00010, 0x00400000, fix(&D:: template SUB_REG) }, - { 0x0fe00090, 0x00400010, fix(&D:: template SUB_RSR) }, - { 0x0fef0000, 0x024d0000, fix(&D:: template SUB_SPI) }, - { 0x0fef0010, 0x004d0000, fix(&D:: template SUB_SPR) }, - { 0x0f000000, 0x0f000000, fix(&D:: template SVC) }, - { 0x0ff003f0, 0x06a00070, fix(&D:: template SXTAB) }, - { 0x0ff003f0, 0x06800070, fix(&D:: template SXTAB16) }, - { 0x0ff003f0, 0x06b00070, fix(&D:: template SXTAH) }, - { 0x0fff03f0, 0x06af0070, fix(&D:: template SXTB) }, - { 0x0fff03f0, 0x068f0070, fix(&D:: template SXTB16) }, - { 0x0fff03f0, 0x06bf0070, fix(&D:: template SXTH) }, - { 0x0ff0f000, 0x03300000, fix(&D:: template TEQ_IMM) }, - { 0x0ff0f010, 0x01300000, fix(&D:: template TEQ_REG) }, - { 0x0ff0f090, 0x01300010, fix(&D:: template TEQ_RSR) }, - { 0x0ff0f000, 0x03100000, fix(&D:: template TST_IMM) }, - { 0x0ff0f010, 0x01100000, fix(&D:: template TST_REG) }, - { 0x0ff0f090, 0x01100010, fix(&D:: template TST_RSR) }, - { 0x0ff00ff0, 0x06500f10, fix(&D:: template UADD16) }, - { 0x0ff00ff0, 0x06500f90, fix(&D:: template UADD8) }, - { 0x0ff00ff0, 0x06500f30, fix(&D:: template UASX) }, - { 0x0fe00070, 0x07e00050, fix(&D:: template UBFX) }, - { 0x0ff00ff0, 0x06700f10, fix(&D:: template UHADD16) }, - { 0x0ff00ff0, 0x06700f90, fix(&D:: template UHADD8) }, - { 0x0ff00ff0, 0x06700f30, fix(&D:: template UHASX) }, - { 0x0ff00ff0, 0x06700f50, fix(&D:: template UHSAX) }, - { 0x0ff00ff0, 0x06700f70, fix(&D:: template UHSUB16) }, - { 0x0ff00ff0, 0x06700ff0, fix(&D:: template UHSUB8) }, - { 0x0ff000f0, 0x00400090, fix(&D:: template UMAAL) }, - { 0x0fe000f0, 0x00a00090, fix(&D:: template UMLAL) }, - { 0x0fe000f0, 0x00800090, fix(&D:: template UMULL) }, - { 0x0ff00ff0, 0x06600f10, fix(&D:: template UQADD16) }, - { 0x0ff00ff0, 0x06600f90, fix(&D:: template UQADD8) }, - { 0x0ff00ff0, 0x06600f30, fix(&D:: template UQASX) }, - { 0x0ff00ff0, 0x06600f50, fix(&D:: template UQSAX) }, - { 0x0ff00ff0, 0x06600f70, fix(&D:: template UQSUB16) }, - { 0x0ff00ff0, 0x06600ff0, fix(&D:: template UQSUB8) }, - { 0x0ff0f0f0, 0x0780f010, fix(&D:: template USAD8) }, - { 0x0ff000f0, 0x07800010, fix(&D:: template USADA8) }, - { 0x0fe00030, 0x06e00010, fix(&D:: template USAT) }, - { 0x0ff00ff0, 0x06e00f30, fix(&D:: template USAT16) }, - { 0x0ff00ff0, 0x06500f50, fix(&D:: template USAX) }, - { 0x0ff00ff0, 0x06500f70, fix(&D:: template USUB16) }, - { 0x0ff00ff0, 0x06500ff0, fix(&D:: template USUB8) }, - { 0x0ff003f0, 0x06e00070, fix(&D:: template UXTAB), SKIP_IF(BF(16, 19) == 15) }, - { 0x0ff003f0, 0x06c00070, fix(&D:: template UXTAB16) }, - { 0x0ff003f0, 0x06f00070, fix(&D:: template UXTAH) }, - { 0x0fff03f0, 0x06ef0070, fix(&D:: template UXTB) }, - { 0x0fff03f0, 0x06cf0070, fix(&D:: template UXTB16) }, - { 0x0fff03f0, 0x06ff0070, fix(&D:: template UXTH) }, - { 0xfe800f10, 0xf2000710, fix(&D:: template VABA_) }, - { 0xfe800f50, 0xf2800500, fix(&D:: template VABA_) }, - { 0xfe800f10, 0xf2000700, fix(&D:: template VABD_) }, - { 0xfe800f50, 0xf2800700, fix(&D:: template VABD_) }, - { 0xffa00f10, 0xf3200d00, fix(&D:: template VABD_FP) }, - { 0xffb30b90, 0xf3b10300, fix(&D:: template VABS) }, - { 0x0fbf0ed0, 0x0eb00ac0, fix(&D:: template VABS) }, - { 0xff800f10, 0xf3000e10, fix(&D:: template VAC__) }, - { 0xff800f10, 0xf2000800, fix(&D:: template VADD) }, - { 0xffa00f10, 0xf2000d00, fix(&D:: template VADD_FP) }, - { 0x0fb00e50, 0x0e300a00, fix(&D:: template VADD_FP) }, - { 0xff800f50, 0xf2800400, fix(&D:: template VADDHN) }, - { 0xfe800e50, 0xf2800000, fix(&D:: template VADD_) }, - { 0xffb00f10, 0xf2000110, fix(&D:: template VAND) }, - { 0xfeb000b0, 0xf2800030, fix(&D:: template VBIC_IMM) }, - { 0xffb00f10, 0xf2100110, fix(&D:: template VBIC_REG) }, - { 0xff800f10, 0xf3000110, fix(&D:: template VB__) }, - { 0xff800f10, 0xf3000810, fix(&D:: template VCEQ_REG) }, - { 0xffa00f10, 0xf2000e00, fix(&D:: template VCEQ_REG) }, - { 0xffb30b90, 0xf3b10100, fix(&D:: template VCEQ_ZERO) }, - { 0xfe800f10, 0xf2000310, fix(&D:: template VCGE_REG) }, - { 0xffa00f10, 0xf3000e00, fix(&D:: template VCGE_REG) }, - { 0xffb30b90, 0xf3b10080, fix(&D:: template VCGE_ZERO) }, - { 0xfe800f10, 0xf2000300, fix(&D:: template VCGT_REG) }, - { 0xffa00f10, 0xf3200e00, fix(&D:: template VCGT_REG) }, - { 0xffb30b90, 0xf3b10000, fix(&D:: template VCGT_ZERO) }, - { 0xffb30b90, 0xf3b10180, fix(&D:: template VCLE_ZERO) }, - { 0xffb30f90, 0xf3b00400, fix(&D:: template VCLS) }, - { 0xffb30b90, 0xf3b10200, fix(&D:: template VCLT_ZERO) }, - { 0xffb30f90, 0xf3b00480, fix(&D:: template VCLZ) }, - { 0x0fbf0e50, 0x0eb40a40, fix(&D:: template VCMP_) }, - { 0x0fbf0e7f, 0x0eb50a40, fix(&D:: template VCMP_) }, - { 0xffb30f90, 0xf3b00500, fix(&D:: template VCNT) }, - { 0xffb30e10, 0xf3b30600, fix(&D:: template VCVT_FIA) }, - { 0x0fb80e50, 0x0eb80a40, fix(&D:: template VCVT_FIF) }, - { 0xfe800e90, 0xf2800e10, fix(&D:: template VCVT_FFA) }, - { 0x0fba0e50, 0x0eba0a40, fix(&D:: template VCVT_FFF) }, - { 0x0fbf0ed0, 0x0eb70ac0, fix(&D:: template VCVT_DF) }, - { 0xffb30ed0, 0xf3b20600, fix(&D:: template VCVT_HFA) }, - { 0x0fbe0f50, 0x0eb20a40, fix(&D:: template VCVT_HFF) }, - { 0x0fb00e50, 0x0e800a00, fix(&D:: template VDIV) }, - { 0xffb00f90, 0xf3b00c00, fix(&D:: template VDUP_S) }, - { 0x0f900f5f, 0x0e800b10, fix(&D:: template VDUP_R) }, - { 0xffb00f10, 0xf3000110, fix(&D:: template VEOR) }, - { 0xffb00010, 0xf2b00000, fix(&D:: template VEXT) }, - { 0xfe800b10, 0xf2000000, fix(&D:: template VHADDSUB) }, - { 0xffb00000, 0xf4200000, fix(&D:: template VLD__MS) }, - { 0xffb00f00, 0xf4a00c00, fix(&D:: template VLD1_SAL) }, - { 0xffb00300, 0xf4a00000, fix(&D:: template VLD1_SL) }, - { 0xffb00f00, 0xf4a00d00, fix(&D:: template VLD2_SAL) }, - { 0xffb00300, 0xf4a00100, fix(&D:: template VLD2_SL) }, - { 0xffb00f00, 0xf4a00e00, fix(&D:: template VLD3_SAL) }, - { 0xffb00300, 0xf4a00200, fix(&D:: template VLD3_SL) }, - { 0xffb00f00, 0xf4a00f00, fix(&D:: template VLD4_SAL) }, - { 0xffb00300, 0xf4a00300, fix(&D:: template VLD4_SL) }, - { 0x0e100f00, 0x0c100b00, fix(&D:: template VLDM) }, - { 0x0e100f00, 0x0c100a00, fix(&D:: template VLDM) }, - { 0x0f300f00, 0x0d100b00, fix(&D:: template VLDR) }, - { 0x0f300f00, 0x0d100a00, fix(&D:: template VLDR) }, - { 0xfe800f00, 0xf2000600, fix(&D:: template VMAXMIN) }, - { 0xff800f10, 0xf2000f00, fix(&D:: template VMAXMIN_FP) }, - { 0xfe800f10, 0xf2000900, fix(&D:: template VML__) }, - { 0xfe800d50, 0xf2800800, fix(&D:: template VML__) }, - { 0xff800f10, 0xf2000d10, fix(&D:: template VML__FP) }, - { 0x0fb00e10, 0x0e000a00, fix(&D:: template VML__FP) }, - { 0xfe800a50, 0xf2800040, fix(&D:: template VML__S) }, - { 0xfe800b50, 0xf2800240, fix(&D:: template VML__S) }, - { 0xfeb80090, 0xf2800010, fix(&D:: template VMOV_IMM) }, - { 0x0fb00ef0, 0x0eb00a00, fix(&D:: template VMOV_IMM) }, - { 0xffb00f10, 0xf2200110, fix(&D:: template VMOV_REG) }, - { 0x0fbf0ed0, 0x0eb00a40, fix(&D:: template VMOV_REG) }, - { 0x0f900f1f, 0x0e000b10, fix(&D:: template VMOV_RS) }, - { 0x0f100f1f, 0x0e100b10, fix(&D:: template VMOV_SR) }, - { 0x0fe00f7f, 0x0e000a10, fix(&D:: template VMOV_RF) }, - { 0x0fe00fd0, 0x0c400a10, fix(&D:: template VMOV_2RF) }, - { 0x0fe00fd0, 0x0c400b10, fix(&D:: template VMOV_2RD) }, - { 0xfe870fd0, 0xf2800a10, fix(&D:: template VMOVL) }, - { 0xffb30fd0, 0xf3b20200, fix(&D:: template VMOVN) }, - { 0x0fff0fff, 0x0ef10a10, fix(&D:: template VMRS) }, - { 0x0fff0fff, 0x0ee10a10, fix(&D:: template VMSR) }, - { 0xfe800f10, 0xf2000910, fix(&D:: template VMUL_) }, - { 0xfe800d50, 0xf2800c00, fix(&D:: template VMUL_) }, - { 0xffa00f10, 0xf3000d10, fix(&D:: template VMUL_FP) }, - { 0x0fb00e50, 0x0e200a00, fix(&D:: template VMUL_FP) }, - { 0xfe800e50, 0xf2800840, fix(&D:: template VMUL_S) }, - { 0xfe800f50, 0xf2800a40, fix(&D:: template VMUL_S) }, - { 0xfeb800b0, 0xf2800030, fix(&D:: template VMVN_IMM) }, - { 0xffb30f90, 0xf3b00580, fix(&D:: template VMVN_REG) }, - { 0xffb30b90, 0xf3b10380, fix(&D:: template VNEG) }, - { 0x0fbf0ed0, 0x0eb10a40, fix(&D:: template VNEG) }, - { 0x0fb00e10, 0x0e100a00, fix(&D:: template VNM__) }, - { 0x0fb00e50, 0x0e200a40, fix(&D:: template VNM__) }, - { 0xffb00f10, 0xf2300110, fix(&D:: template VORN_REG) }, - { 0xfeb800b0, 0xf2800010, fix(&D:: template VORR_IMM) }, - { 0xffb00f10, 0xf2200110, fix(&D:: template VORR_REG) }, - { 0xffb30f10, 0xf3b00600, fix(&D:: template VPADAL) }, - { 0xff800f10, 0xf2000b10, fix(&D:: template VPADD) }, - { 0xffa00f10, 0xf3000d00, fix(&D:: template VPADD_FP) }, - { 0xffb30f10, 0xf3b00200, fix(&D:: template VPADDL) }, - { 0xfe800f00, 0xf2000a00, fix(&D:: template VPMAXMIN) }, - { 0xff800f10, 0xf3000f00, fix(&D:: template VPMAXMIN_FP) }, - { 0x0fbf0f00, 0x0cbd0b00, fix(&D:: template VPOP) }, - { 0x0fbf0f00, 0x0cbd0a00, fix(&D:: template VPOP) }, - { 0x0fbf0f00, 0x0d2d0b00, fix(&D:: template VPUSH) }, - { 0x0fbf0f00, 0x0d2d0a00, fix(&D:: template VPUSH) }, - // TODO: VQ* instructions - { 0xff800f50, 0xf3800400, fix(&D:: template VRADDHN) }, - { 0xffb30e90, 0xf3b30400, fix(&D:: template VRECPE) }, - { 0xffa00f10, 0xf2000f10, fix(&D:: template VRECPS) }, - { 0xffb30e10, 0xf3b00000, fix(&D:: template VREV__) }, - { 0xfe800f10, 0xf2000100, fix(&D:: template VRHADD) }, - { 0xfe800f10, 0xf2000500, fix(&D:: template VRSHL) }, - { 0xfe800f10, 0xf2800210, fix(&D:: template VRSHR) }, - { 0xff800fd0, 0xf2800850, fix(&D:: template VRSHRN) }, - { 0xffb30e90, 0xf3b30480, fix(&D:: template VRSQRTE) }, - { 0xffa00f10, 0xf2200f10, fix(&D:: template VRSQRTS) }, - { 0xfe800f10, 0xf2800310, fix(&D:: template VRSRA) }, - { 0xff800f50, 0xf3800600, fix(&D:: template VRSUBHN) }, - { 0xff800f10, 0xf2800510, fix(&D:: template VSHL_IMM) }, - { 0xfe800f10, 0xf2000400, fix(&D:: template VSHL_REG) }, - { 0xfe800fd0, 0xf2800a10, fix(&D:: template VSHLL) }, - { 0xffb30fd0, 0xf3b20300, fix(&D:: template VSHLL) }, - { 0xfe800f10, 0xf2800010, fix(&D:: template VSHR) }, - { 0xff800fd0, 0xf2800810, fix(&D:: template VSHRN) }, - { 0xff800f10, 0xf3800510, fix(&D:: template VSLI) }, - { 0x0fbf0ed0, 0x0eb10ac0, fix(&D:: template VSQRT) }, - { 0xfe800f10, 0xf2800110, fix(&D:: template VSRA) }, - { 0xff800f10, 0xf3800410, fix(&D:: template VSRI) }, - { 0xffb00000, 0xf4000000, fix(&D:: template VST__MS) }, - { 0xffb00300, 0xf4800000, fix(&D:: template VST1_SL) }, - { 0xffb00300, 0xf4800100, fix(&D:: template VST2_SL) }, - { 0xffb00300, 0xf4800200, fix(&D:: template VST3_SL) }, - { 0xffb00300, 0xf4800300, fix(&D:: template VST4_SL) }, - { 0x0e100f00, 0x0c000b00, fix(&D:: template VSTM) }, - { 0x0e100f00, 0x0c000a00, fix(&D:: template VSTM) }, - { 0x0f300f00, 0x0d000b00, fix(&D:: template VSTR) }, - { 0x0f300f00, 0x0d000a00, fix(&D:: template VSTR) }, - { 0xff800f10, 0xf3000800, fix(&D:: template VSUB) }, - { 0xffa00f10, 0xf2200d00, fix(&D:: template VSUB_FP) }, - { 0x0fb00e50, 0x0e300a40, fix(&D:: template VSUB_FP) }, - { 0xff800f50, 0xf2800600, fix(&D:: template VSUBHN) }, - { 0xfe800e50, 0xf2800200, fix(&D:: template VSUB_) }, - { 0xffb30f90, 0xf3b20000, fix(&D:: template VSWP) }, - { 0xffb00c10, 0xf3b00800, fix(&D:: template VTB_) }, - { 0xffb30f90, 0xf3b20080, fix(&D:: template VTRN) }, - { 0xff800f10, 0xf2000810, fix(&D:: template VTST) }, - { 0xffb30f90, 0xf3b20100, fix(&D:: template VUZP) }, - { 0xffb30f90, 0xf3b20180, fix(&D:: template VZIP) }, - { 0x0fffffff, 0x0320f002, fix(&D:: template WFE) }, - { 0x0fffffff, 0x0320f003, fix(&D:: template WFI) }, - { 0x0fffffff, 0x0320f001, fix(&D:: template YIELD) }, - }); - - m_op32_table.fill(m_op32_list.cbegin()); - - for (u32 i = 0; i < 0x10000; i++) - { - for (auto& opcode : m_op16_list) - { - if (opcode.match(i)) - { - m_op16_table[i] = opcode.pointer; - break; - } - } - - if (!m_op16_table[i] && !arm_op_thumb_is_32(i)) - { - m_op16_table[i] = &D::UNK; - } - } - - std::set> result; - - for (u32 i = 0xe800; i < 0x10000; i++) - { - if (m_op16_table[i]) LOG_ERROR(ARMv7, "Invalid m_op16_table entry 0x%04x", i); - - //std::set matches; - - //for (u32 j = 0; j < 0x10000; j++) - //{ - // for (auto& o : m_op32_list) - // { - // if (o.match(i << 16 | j)) - // { - // matches.emplace(&o); - // break; - // } - // } - //} - - //result.emplace(std::move(matches)); - } - - for (const auto& s : result) - { - LOG_NOTICE(ARMv7, "Set found (%u):", s.size()); - for (const auto& e : s) - { - LOG_NOTICE(ARMv7, "** 0x%08x, 0x%08x", e->mask, e->code); - } - } - } - - // First chance - T decode_thumb(u16 op16) const - { - return m_op16_table[op16]; - } - - // Second step - T decode_thumb(u32 op32) const - { - for (auto i = m_op32_table[op32 >> 16], end = m_op32_list.end(); i != end; i++) - { - if (i->match(op32)) - { - return i->pointer; - } - } - - return &D::UNK; - } - - T decode_arm(u32 op) const - { - for (auto& i : m_arm_list) - { - if (i.match(op)) - { - return i.pointer; - } - } - - return &D::UNK; - } -}; - -#undef SKIP_IF -#undef BF -#undef BT diff --git a/rpcs3/Emu/PSP2/ARMv7Thread.cpp b/rpcs3/Emu/PSP2/ARMv7Thread.cpp deleted file mode 100644 index 82b978381d..0000000000 --- a/rpcs3/Emu/PSP2/ARMv7Thread.cpp +++ /dev/null @@ -1,205 +0,0 @@ -#include "stdafx.h" -#include "Emu/Memory/Memory.h" -#include "Emu/IdManager.h" -#include "Emu/System.h" - -#include "ARMv7Thread.h" -#include "ARMv7Opcodes.h" -#include "ARMv7Interpreter.h" -#include "ARMv7Function.h" - -#include "Utilities/GSL.h" - -namespace vm { using namespace psv; } - -const arm_decoder s_arm_interpreter; - -std::string ARMv7Thread::get_name() const -{ - return fmt::format("ARMv7[0x%x] Thread (%s)", id, m_name); -} - -std::string ARMv7Thread::dump() const -{ - std::string result = cpu_thread::dump(); - result += "Last function: "; - result += last_function ? last_function : ""; - result += "\n\n"; - result += "Registers:\n=========\n"; - for(int i=0; i<15; ++i) - { - result += fmt::format("r%u\t= 0x%08x\n", i, GPR[i]); - } - - result += fmt::format("APSR\t= 0x%08x [N: %d, Z: %d, C: %d, V: %d, Q: %d]\n", - APSR.APSR, - u32{ APSR.N }, - u32{ APSR.Z }, - u32{ APSR.C }, - u32{ APSR.V }, - u32{ APSR.Q }); - - return result; -} - -extern thread_local std::string(*g_tls_log_prefix)(); - -void ARMv7Thread::cpu_task() -{ - return fast_call(PC); -} - -void ARMv7Thread::cpu_task_main() -{ - g_tls_log_prefix = [] - { - const auto cpu = static_cast(get_current_cpu_thread()); - - return fmt::format("%s [0x%08x]", cpu->get_name(), cpu->PC); - }; - - while (!test(state) || !check_state()) - { - if (ISET == Thumb) - { - const u16 op16 = vm::read16(PC); - const u32 cond = ITSTATE.advance(); - - if (const auto func16 = s_arm_interpreter.decode_thumb(op16)) - { - func16(*this, op16, cond); - PC += 2; - } - else - { - const u32 op32 = (op16 << 16) | vm::read16(PC + 2); - - s_arm_interpreter.decode_thumb(op32)(*this, op32, cond); - PC += 4; - } - } - else if (ISET == ARM) - { - const u32 op = vm::read32(PC); - - s_arm_interpreter.decode_arm(op)(*this, op, op >> 28); - PC += 4; - } - else - { - fmt::throw_exception("Invalid instruction set" HERE); - } - } -} - -ARMv7Thread::~ARMv7Thread() -{ - if (stack_addr) - { - vm::dealloc_verbose_nothrow(stack_addr, vm::main); - } -} - -ARMv7Thread::ARMv7Thread(const std::string& name, u32 prio, u32 stack) - : cpu_thread(idm::last_id()) - , m_name(name) - , prio(prio) - , stack_addr(vm::alloc(stack, vm::main)) - , stack_size(stack) -{ - verify(HERE), stack_size, stack_addr; - - std::memset(GPR, 0, sizeof(GPR)); - APSR.APSR = 0; - IPSR.IPSR = 0; - ITSTATE.IT = 0; - SP = stack_addr + stack_size; -} - -void ARMv7Thread::fast_call(u32 addr) -{ - const auto old_PC = PC; - const auto old_LR = LR; - const auto old_func = last_function; - - PC = addr; - LR = arm_function_manager::addr; // TODO - last_function = nullptr; - - auto at_ret = gsl::finally([&]() - { - if (std::uncaught_exception()) - { - if (last_function) - { - LOG_ERROR(ARMv7, "'%s' aborted", last_function); - } - - last_function = old_func; - } - else - { - state -= cpu_flag::ret; - PC = old_PC; - LR = old_LR; - last_function = old_func; - } - }); - - try - { - cpu_task_main(); - } - catch (cpu_flag _s) - { - state += _s; - - if (_s != cpu_flag::ret) - { - throw; - } - } -} - -u32 ARMv7Thread::stack_push(u32 size, u32 align_v) -{ - if (auto cpu = get_current_cpu_thread()) - { - ARMv7Thread& context = static_cast(*cpu); - - const u32 old_pos = context.SP; - context.SP -= align(size + 4, 4); // room minimal possible size - context.SP &= ~(align_v - 1); // fix stack alignment - - if (old_pos >= context.stack_addr && old_pos < context.stack_addr + context.stack_size && context.SP < context.stack_addr) - { - fmt::throw_exception("Stack overflow (size=0x%x, align=0x%x, SP=0x%x, stack=*0x%x)" HERE, size, align_v, context.SP, context.stack_addr); - } - else - { - vm::psv::_ref>(context.SP + size) = old_pos; - return context.SP; - } - } - - fmt::throw_exception("Invalid thread" HERE); -} - -void ARMv7Thread::stack_pop_verbose(u32 addr, u32 size) noexcept -{ - if (auto cpu = get_current_cpu_thread()) - { - ARMv7Thread& context = static_cast(*cpu); - - if (context.SP != addr) - { - LOG_ERROR(ARMv7, "Stack inconsistency (addr=0x%x, SP=0x%x, size=0x%x)", addr, context.SP, size); - return; - } - - context.SP = vm::psv::_ref>(context.SP + size); - return; - } - - LOG_ERROR(ARMv7, "Invalid thread" HERE); -} diff --git a/rpcs3/Emu/PSP2/ARMv7Thread.h b/rpcs3/Emu/PSP2/ARMv7Thread.h deleted file mode 100644 index 78b7a3b25f..0000000000 --- a/rpcs3/Emu/PSP2/ARMv7Thread.h +++ /dev/null @@ -1,293 +0,0 @@ -#pragma once - -#include "Emu/CPU/CPUThread.h" -#include "Emu/Memory/vm.h" - -enum ARMv7InstructionSet -{ - ARM, - Thumb, - Jazelle, - ThumbEE -}; - -class ARMv7Thread final : public cpu_thread -{ -public: - static const u32 id_base = 1; - static const u32 id_step = 2; - static const u32 id_count = 4096; - - virtual std::string get_name() const override; - virtual std::string dump() const override; - virtual void cpu_task() override; - virtual void cpu_task_main(); - virtual ~ARMv7Thread() override; - - ARMv7Thread(const std::string& name, u32 prio = 160, u32 stack = 256 * 1024); - - union - { - u32 GPR[15]; - - struct - { - u32 pad[13]; - - union - { - u32 SP; - - struct { u16 SP_main, SP_process; }; - }; - - u32 LR; - - union - { - struct - { - u32 reserved0 : 16; - u32 GE : 4; - u32 reserved1 : 4; - u32 dummy : 3; - u32 Q : 1; // Set to 1 if an SSAT or USAT instruction changes (saturates) the input value for the signed or unsigned range of the result - u32 V : 1; // Overflow condition code flag - u32 C : 1; // Carry condition code flag - u32 Z : 1; // Zero condition code flag - u32 N : 1; // Negative condition code flag - }; - - u32 APSR; - - } APSR; - }; - - struct - { - u64 GPR_D[8]; - }; - }; - - union - { - struct - { - u32 dummy : 24; - u32 exception : 8; - }; - - u32 IPSR; - - } IPSR; - - ARMv7InstructionSet ISET; - - union - { - struct - { - u8 shift_state : 5; - u8 cond_base : 3; - }; - - struct - { - u8 check_state : 4; - u8 condition : 4; - }; - - u8 IT; - - u32 advance() - { - // 0xf is "always true" and indicates that this instruction was not in IT block. - // 0xe is "always true" too and represents the AL condition of IT block. - // This makes a significant difference in some instructions. - const u32 res = check_state ? condition : 0xf; - - shift_state <<= 1; - if (!check_state) - { - IT = 0; // clear - } - - return res; - } - - operator bool() const - { - return check_state != 0; - } - - } ITSTATE; - - u32 TLS = 0; - u64 rtime = 0; - u32 raddr = 0; - u32 rdata = 0; - - struct perf_counter - { - u32 event; - u32 value; - }; - - std::array counters{}; - - u32 PC = 0; - u32 prio = -1; - u32 stack_addr = 0; - u32 stack_size = 0; - - const std::string m_name; - - atomic_t owner{}; - - const char* last_function = nullptr; - - void write_pc(u32 value, u32 size) - { - ISET = value & 1 ? Thumb : ARM; - PC = (value & ~1) - size; - } - - u32 read_pc() - { - return ISET == ARM ? PC + 8 : PC + 4; - } - - u32 get_stack_arg(u32 pos) - { - return vm::psv::read32(SP + sizeof(u32) * (pos - 5)); - } - - void write_gpr(u32 n, u32 value, u32 size) - { - verify(HERE), n <= 15; - - if (n < 15) - { - GPR[n] = value; - } - else - { - write_pc(value, size); - } - } - - u32 read_gpr(u32 n) - { - verify(HERE), n <= 15; - - if (n < 15) - { - return GPR[n]; - } - - return read_pc(); - } - - // function for processing va_args in printf-like functions - u32 get_next_gpr_arg(u32& g_count) - { - if (g_count < 4) - { - return GPR[g_count++]; - } - else - { - return get_stack_arg(g_count++); - } - } - - void fast_call(u32 addr); - - static u32 stack_push(u32 size, u32 align_v); - static void stack_pop_verbose(u32 addr, u32 size) noexcept; -}; - -template -struct arm_gpr_cast_impl -{ - static_assert(!sizeof(T), "Invalid type for arm_gpr_cast<>"); -}; - -template -struct arm_gpr_cast_impl::value || std::is_enum::value>> -{ - static_assert(sizeof(T) <= 4, "Too big integral type for arm_gpr_cast<>()"); - static_assert(std::is_same, bool>::value == false, "bool type is deprecated in arm_gpr_cast<>(), use b8 instead"); - - static inline u32 to(const T& value) - { - return static_cast(value); - } - - static inline T from(const u32 reg) - { - return static_cast(reg); - } -}; - -template<> -struct arm_gpr_cast_impl -{ - static inline u32 to(const b8& value) - { - return value; - } - - static inline b8 from(const u32 reg) - { - return reg != 0; - } -}; - -template<> -struct arm_gpr_cast_impl -{ - static inline u32 to(const error_code& code) - { - return code; - } - - static inline error_code from(const u32 reg) - { - return not_an_error(reg); - } -}; - -template -struct arm_gpr_cast_impl, void> -{ - static inline u32 to(const vm::_ptr_base& value) - { - return arm_gpr_cast_impl::to(value.addr()); - } - - static inline vm::_ptr_base from(const u32 reg) - { - return vm::cast(arm_gpr_cast_impl::from(reg)); - } -}; - -template -struct arm_gpr_cast_impl, void> -{ - static inline u32 to(const vm::_ref_base& value) - { - return arm_gpr_cast_impl::to(value.addr()); - } - - static inline vm::_ref_base from(const u32 reg) - { - return vm::cast(arm_gpr_cast_impl::from(reg)); - } -}; - -template -inline To arm_gpr_cast(const From& value) -{ - return arm_gpr_cast_impl::from(arm_gpr_cast_impl::to(value)); -} diff --git a/rpcs3/Emu/PSP2/ErrorCodes.h b/rpcs3/Emu/PSP2/ErrorCodes.h deleted file mode 100644 index f8bd7a56f6..0000000000 --- a/rpcs3/Emu/PSP2/ErrorCodes.h +++ /dev/null @@ -1,139 +0,0 @@ -#pragma once - -enum SceNotAnError : s32 -{ - SCE_OK = 0, - - __not_an_error -}; - -enum SceError : u32 -{ - SCE_ERROR_ERRNO_EPERM = 0x80010001, - SCE_ERROR_ERRNO_ENOENT = 0x80010002, - SCE_ERROR_ERRNO_ESRCH = 0x80010003, - SCE_ERROR_ERRNO_EINTR = 0x80010004, - SCE_ERROR_ERRNO_EIO = 0x80010005, - SCE_ERROR_ERRNO_ENXIO = 0x80010006, - SCE_ERROR_ERRNO_E2BIG = 0x80010007, - SCE_ERROR_ERRNO_ENOEXEC = 0x80010008, - SCE_ERROR_ERRNO_EBADF = 0x80010009, - SCE_ERROR_ERRNO_ECHILD = 0x8001000A, - SCE_ERROR_ERRNO_EAGAIN = 0x8001000B, - SCE_ERROR_ERRNO_ENOMEM = 0x8001000C, - SCE_ERROR_ERRNO_EACCES = 0x8001000D, - SCE_ERROR_ERRNO_EFAULT = 0x8001000E, - SCE_ERROR_ERRNO_ENOTBLK = 0x8001000F, - SCE_ERROR_ERRNO_EBUSY = 0x80010010, - SCE_ERROR_ERRNO_EEXIST = 0x80010011, - SCE_ERROR_ERRNO_EXDEV = 0x80010012, - SCE_ERROR_ERRNO_ENODEV = 0x80010013, - SCE_ERROR_ERRNO_ENOTDIR = 0x80010014, - SCE_ERROR_ERRNO_EISDIR = 0x80010015, - SCE_ERROR_ERRNO_EINVAL = 0x80010016, - SCE_ERROR_ERRNO_ENFILE = 0x80010017, - SCE_ERROR_ERRNO_EMFILE = 0x80010018, - SCE_ERROR_ERRNO_ENOTTY = 0x80010019, - SCE_ERROR_ERRNO_ETXTBSY = 0x8001001A, - SCE_ERROR_ERRNO_EFBIG = 0x8001001B, - SCE_ERROR_ERRNO_ENOSPC = 0x8001001C, - SCE_ERROR_ERRNO_ESPIPE = 0x8001001D, - SCE_ERROR_ERRNO_EROFS = 0x8001001E, - SCE_ERROR_ERRNO_EMLINK = 0x8001001F, - SCE_ERROR_ERRNO_EPIPE = 0x80010020, - SCE_ERROR_ERRNO_EDOM = 0x80010021, - SCE_ERROR_ERRNO_ERANGE = 0x80010022, - SCE_ERROR_ERRNO_ENOMSG = 0x80010023, - SCE_ERROR_ERRNO_EIDRM = 0x80010024, - SCE_ERROR_ERRNO_ECHRNG = 0x80010025, - SCE_ERROR_ERRNO_EL2NSYNC = 0x80010026, - SCE_ERROR_ERRNO_EL3HLT = 0x80010027, - SCE_ERROR_ERRNO_EL3RST = 0x80010028, - SCE_ERROR_ERRNO_ELNRNG = 0x80010029, - SCE_ERROR_ERRNO_EUNATCH = 0x8001002A, - SCE_ERROR_ERRNO_ENOCSI = 0x8001002B, - SCE_ERROR_ERRNO_EL2HLT = 0x8001002C, - SCE_ERROR_ERRNO_EDEADLK = 0x8001002D, - SCE_ERROR_ERRNO_ENOLCK = 0x8001002E, - SCE_ERROR_ERRNO_EFORMAT = 0x8001002F, - SCE_ERROR_ERRNO_EUNSUP = 0x80010030, - SCE_ERROR_ERRNO_EBADE = 0x80010032, - SCE_ERROR_ERRNO_EBADR = 0x80010033, - SCE_ERROR_ERRNO_EXFULL = 0x80010034, - SCE_ERROR_ERRNO_ENOANO = 0x80010035, - SCE_ERROR_ERRNO_EBADRQC = 0x80010036, - SCE_ERROR_ERRNO_EBADSLT = 0x80010037, - SCE_ERROR_ERRNO_EDEADLOCK = 0x80010038, - SCE_ERROR_ERRNO_EBFONT = 0x80010039, - SCE_ERROR_ERRNO_ENOSTR = 0x8001003C, - SCE_ERROR_ERRNO_ENODATA = 0x8001003D, - SCE_ERROR_ERRNO_ETIME = 0x8001003E, - SCE_ERROR_ERRNO_ENOSR = 0x8001003F, - SCE_ERROR_ERRNO_ENONET = 0x80010040, - SCE_ERROR_ERRNO_ENOPKG = 0x80010041, - SCE_ERROR_ERRNO_EREMOTE = 0x80010042, - SCE_ERROR_ERRNO_ENOLINK = 0x80010043, - SCE_ERROR_ERRNO_EADV = 0x80010044, - SCE_ERROR_ERRNO_ESRMNT = 0x80010045, - SCE_ERROR_ERRNO_ECOMM = 0x80010046, - SCE_ERROR_ERRNO_EPROTO = 0x80010047, - SCE_ERROR_ERRNO_EMULTIHOP = 0x8001004A, - SCE_ERROR_ERRNO_ELBIN = 0x8001004B, - SCE_ERROR_ERRNO_EDOTDOT = 0x8001004C, - SCE_ERROR_ERRNO_EBADMSG = 0x8001004D, - SCE_ERROR_ERRNO_EFTYPE = 0x8001004F, - SCE_ERROR_ERRNO_ENOTUNIQ = 0x80010050, - SCE_ERROR_ERRNO_EBADFD = 0x80010051, - SCE_ERROR_ERRNO_EREMCHG = 0x80010052, - SCE_ERROR_ERRNO_ELIBACC = 0x80010053, - SCE_ERROR_ERRNO_ELIBBAD = 0x80010054, - SCE_ERROR_ERRNO_ELIBSCN = 0x80010055, - SCE_ERROR_ERRNO_ELIBMAX = 0x80010056, - SCE_ERROR_ERRNO_ELIBEXEC = 0x80010057, - SCE_ERROR_ERRNO_ENOSYS = 0x80010058, - SCE_ERROR_ERRNO_ENMFILE = 0x80010059, - SCE_ERROR_ERRNO_ENOTEMPTY = 0x8001005A, - SCE_ERROR_ERRNO_ENAMETOOLONG = 0x8001005B, - SCE_ERROR_ERRNO_ELOOP = 0x8001005C, - SCE_ERROR_ERRNO_EOPNOTSUPP = 0x8001005F, - SCE_ERROR_ERRNO_EPFNOSUPPORT = 0x80010060, - SCE_ERROR_ERRNO_ECONNRESET = 0x80010068, - SCE_ERROR_ERRNO_ENOBUFS = 0x80010069, - SCE_ERROR_ERRNO_EAFNOSUPPORT = 0x8001006A, - SCE_ERROR_ERRNO_EPROTOTYPE = 0x8001006B, - SCE_ERROR_ERRNO_ENOTSOCK = 0x8001006C, - SCE_ERROR_ERRNO_ENOPROTOOPT = 0x8001006D, - SCE_ERROR_ERRNO_ESHUTDOWN = 0x8001006E, - SCE_ERROR_ERRNO_ECONNREFUSED = 0x8001006F, - SCE_ERROR_ERRNO_EADDRINUSE = 0x80010070, - SCE_ERROR_ERRNO_ECONNABORTED = 0x80010071, - SCE_ERROR_ERRNO_ENETUNREACH = 0x80010072, - SCE_ERROR_ERRNO_ENETDOWN = 0x80010073, - SCE_ERROR_ERRNO_ETIMEDOUT = 0x80010074, - SCE_ERROR_ERRNO_EHOSTDOWN = 0x80010075, - SCE_ERROR_ERRNO_EHOSTUNREACH = 0x80010076, - SCE_ERROR_ERRNO_EINPROGRESS = 0x80010077, - SCE_ERROR_ERRNO_EALREADY = 0x80010078, - SCE_ERROR_ERRNO_EDESTADDRREQ = 0x80010079, - SCE_ERROR_ERRNO_EMSGSIZE = 0x8001007A, - SCE_ERROR_ERRNO_EPROTONOSUPPORT = 0x8001007B, - SCE_ERROR_ERRNO_ESOCKTNOSUPPORT = 0x8001007C, - SCE_ERROR_ERRNO_EADDRNOTAVAIL = 0x8001007D, - SCE_ERROR_ERRNO_ENETRESET = 0x8001007E, - SCE_ERROR_ERRNO_EISCONN = 0x8001007F, - SCE_ERROR_ERRNO_ENOTCONN = 0x80010080, - SCE_ERROR_ERRNO_ETOOMANYREFS = 0x80010081, - SCE_ERROR_ERRNO_EPROCLIM = 0x80010082, - SCE_ERROR_ERRNO_EUSERS = 0x80010083, - SCE_ERROR_ERRNO_EDQUOT = 0x80010084, - SCE_ERROR_ERRNO_ESTALE = 0x80010085, - SCE_ERROR_ERRNO_ENOTSUP = 0x80010086, - SCE_ERROR_ERRNO_ENOMEDIUM = 0x80010087, - SCE_ERROR_ERRNO_ENOSHARE = 0x80010088, - SCE_ERROR_ERRNO_ECASECLASH = 0x80010089, - SCE_ERROR_ERRNO_EILSEQ = 0x8001008A, - SCE_ERROR_ERRNO_EOVERFLOW = 0x8001008B, - SCE_ERROR_ERRNO_ECANCELED = 0x8001008C, - SCE_ERROR_ERRNO_ENOTRECOVERABLE = 0x8001008D, - SCE_ERROR_ERRNO_EOWNERDEAD = 0x8001008E, -}; diff --git a/rpcs3/Emu/PSP2/Modules/Common.h b/rpcs3/Emu/PSP2/Modules/Common.h deleted file mode 100644 index c86c93de3e..0000000000 --- a/rpcs3/Emu/PSP2/Modules/Common.h +++ /dev/null @@ -1,38 +0,0 @@ -#pragma once - -#include "Utilities/types.h" -#include "Utilities/BEType.h" - -struct SceDateTime -{ - le_t year; - le_t month; - le_t day; - le_t hour; - le_t minute; - le_t second; - le_t microsecond; -}; - -struct SceFVector3 -{ - le_t x, y, z; -}; - -struct SceFQuaternion -{ - le_t x, y, z, w; -}; - -union SceUMatrix4 -{ - struct - { - le_t f[4][4]; - }; - - struct - { - le_t i[4][4]; - }; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceAppMgr.cpp b/rpcs3/Emu/PSP2/Modules/sceAppMgr.cpp deleted file mode 100644 index bc0e577d5b..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceAppMgr.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceAppMgr.h" - -logs::channel sceAppMgr("sceAppMgr"); - -s32 sceAppMgrReceiveEventNum(vm::ptr eventNum) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppMgrReceiveEvent(vm::ptr appEvent) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppMgrAcquireBgmPort() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppMgrReleaseBgmPort() -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceAppMgrUser, nid, name) - -DECLARE(arm_module_manager::SceAppMgr)("SceAppMgrUser", []() -{ - REG_FUNC(0x47E5DD7D, sceAppMgrReceiveEventNum); - REG_FUNC(0xCFAD5A3A, sceAppMgrReceiveEvent); - REG_FUNC(0xF3D65520, sceAppMgrAcquireBgmPort); - REG_FUNC(0x96CBE713, sceAppMgrReleaseBgmPort); - //REG_FUNC(0x49255C91, sceAppMgrGetRunStatus); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceAppMgr.h b/rpcs3/Emu/PSP2/Modules/sceAppMgr.h deleted file mode 100644 index 8768ba0c2a..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceAppMgr.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -struct SceAppMgrEvent -{ - le_t event; - le_t appId; - char param[56]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceAppUtil.cpp b/rpcs3/Emu/PSP2/Modules/sceAppUtil.cpp deleted file mode 100644 index 6a6971d54b..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceAppUtil.cpp +++ /dev/null @@ -1,92 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceAppUtil.h" - -logs::channel sceAppUtil("sceAppUtil"); - -s32 sceAppUtilInit(vm::cptr initParam, vm::ptr bootParam) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppUtilShutdown() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppUtilSaveDataSlotCreate(u32 slotId, vm::cptr param, vm::cptr mountPoint) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppUtilSaveDataSlotDelete(u32 slotId, vm::cptr mountPoint) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppUtilSaveDataSlotSetParam(u32 slotId, vm::cptr param, vm::cptr mountPoint) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppUtilSaveDataSlotGetParam(u32 slotId, vm::ptr param, vm::cptr mountPoint) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppUtilSaveDataFileSave(vm::cptr slot, vm::cptr files, u32 fileNum, vm::cptr mountPoint, vm::ptr requiredSizeKB) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppUtilPhotoMount() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppUtilPhotoUmount() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppUtilSystemParamGetInt(u32 paramId, vm::ptr value) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppUtilSystemParamGetString(u32 paramId, vm::ptr buf, u32 bufSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppUtilSaveSafeMemory(vm::cptr buf, u32 bufSize, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAppUtilLoadSafeMemory(vm::ptr buf, u32 bufSize, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceAppUtil, nid, name) - -DECLARE(arm_module_manager::SceAppUtil)("SceAppUtil", []() -{ - REG_FUNC(0xDAFFE671, sceAppUtilInit); - REG_FUNC(0xB220B00B, sceAppUtilShutdown); - REG_FUNC(0x7E8FE96A, sceAppUtilSaveDataSlotCreate); - REG_FUNC(0x266A7646, sceAppUtilSaveDataSlotDelete); - REG_FUNC(0x98630136, sceAppUtilSaveDataSlotSetParam); - REG_FUNC(0x93F0D89F, sceAppUtilSaveDataSlotGetParam); - REG_FUNC(0x1E2A6158, sceAppUtilSaveDataFileSave); - REG_FUNC(0xEE85804D, sceAppUtilPhotoMount); - REG_FUNC(0x9651B941, sceAppUtilPhotoUmount); - REG_FUNC(0x5DFB9CA0, sceAppUtilSystemParamGetInt); - REG_FUNC(0x6E6AA267, sceAppUtilSystemParamGetString); - REG_FUNC(0x9D8AC677, sceAppUtilSaveSafeMemory); - REG_FUNC(0x3424D772, sceAppUtilLoadSafeMemory); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceAppUtil.h b/rpcs3/Emu/PSP2/Modules/sceAppUtil.h deleted file mode 100644 index 3e35140209..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceAppUtil.h +++ /dev/null @@ -1,69 +0,0 @@ -#pragma once - -#include "Common.h" - -struct SceAppUtilInitParam -{ - le_t workBufSize; - char reserved[60]; -}; - -struct SceAppUtilBootParam -{ - le_t attr; - le_t appVersion; - char reserved[32]; -}; - -struct SceAppUtilSaveDataMountPoint -{ - char data[16]; -}; - -struct SceAppUtilSaveDataSlotParam -{ - le_t status; - char title[64]; - char subTitle[128]; - char detail[512]; - char iconPath[64]; - le_t userParam; - le_t sizeKB; - SceDateTime modifiedTime; - char reserved[48]; -}; - -struct SceAppUtilSaveDataSlotEmptyParam -{ - vm::lptr title; - vm::lptr iconPath; - vm::lptr iconBuf; - le_t iconBufSize; - char reserved[32]; -}; - -struct SceAppUtilSaveDataSlot -{ - le_t id; - le_t status; - le_t userParam; - vm::lptr emptyParam; -}; - -struct SceAppUtilSaveDataFile -{ - vm::lcptr filePath; - vm::lptr buf; - le_t bufSize; - le_t offset; - le_t mode; - le_t progDelta; - char reserved[32]; -}; - -struct SceAppUtilSaveDataFileSlot -{ - le_t id; - vm::lptr slotParam; - char reserved[32]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceAudio.cpp b/rpcs3/Emu/PSP2/Modules/sceAudio.cpp deleted file mode 100644 index b9411b29e5..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceAudio.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceAudio.h" - -logs::channel sceAudio("sceAudio"); - -s32 sceAudioOutOpenPort(s32 portType, s32 len, s32 freq, s32 param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioOutReleasePort(s32 port) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioOutOutput(s32 port, vm::ptr ptr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioOutSetVolume(s32 port, s32 flag, vm::ptr vol) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioOutSetConfig(s32 port, s32 len, s32 freq, s32 param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioOutGetConfig(s32 port, s32 configType) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioOutGetRestSample(s32 port) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioOutGetAdopt(s32 portType) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceAudio, nid, name) - -DECLARE(arm_module_manager::SceAudio)("SceAudio", []() -{ - REG_FUNC(0x5BC341E4, sceAudioOutOpenPort); - REG_FUNC(0x69E2E6B5, sceAudioOutReleasePort); - REG_FUNC(0x02DB3F5F, sceAudioOutOutput); - REG_FUNC(0x64167F11, sceAudioOutSetVolume); - REG_FUNC(0xB8BA0D07, sceAudioOutSetConfig); - REG_FUNC(0x9C8EDAEA, sceAudioOutGetConfig); - REG_FUNC(0x9A5370C4, sceAudioOutGetRestSample); - REG_FUNC(0x12FB1767, sceAudioOutGetAdopt); - //REG_FUNC(0xC6D8D775, sceAudioInRaw); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceAudio.h b/rpcs3/Emu/PSP2/Modules/sceAudio.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceAudio.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/rpcs3/Emu/PSP2/Modules/sceAudioIn.cpp b/rpcs3/Emu/PSP2/Modules/sceAudioIn.cpp deleted file mode 100644 index acfb572d81..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceAudioIn.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceAudioIn.h" - -logs::channel sceAudioIn("sceAudioIn"); - -s32 sceAudioInOpenPort(s32 portType, s32 grain, s32 freq, s32 param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioInReleasePort(s32 port) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioInInput(s32 port, vm::ptr destPtr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceAudioIn, nid, name) - -DECLARE(arm_module_manager::SceAudioIn)("SceAudioIn", []() -{ - REG_FUNC(0x638ADD2D, sceAudioInInput); - REG_FUNC(0x39B50DC1, sceAudioInOpenPort); - REG_FUNC(0x3A61B8C4, sceAudioInReleasePort); - //REG_FUNC(0x566AC433, sceAudioInGetAdopt); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceAudioIn.h b/rpcs3/Emu/PSP2/Modules/sceAudioIn.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceAudioIn.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/rpcs3/Emu/PSP2/Modules/sceAudiodec.cpp b/rpcs3/Emu/PSP2/Modules/sceAudiodec.cpp deleted file mode 100644 index 13ee8f0bcf..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceAudiodec.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceAudiodec.h" - -logs::channel sceAudiodec("sceAudiodec"); - -s32 sceAudiodecInitLibrary(u32 codecType, vm::ptr pInitParam) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudiodecTermLibrary(u32 codecType) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudiodecCreateDecoder(vm::ptr pCtrl, u32 codecType) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudiodecDeleteDecoder(vm::ptr pCtrl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudiodecDecode(vm::ptr pCtrl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudiodecClearContext(vm::ptr pCtrl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudiodecGetInternalError(vm::ptr pCtrl, vm::ptr pInternalError) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceAudiodecUser, nid, name) - -DECLARE(arm_module_manager::SceAudiodec)("SceAudiodecUser", []() -{ - REG_FUNC(0x445C2CEF, sceAudiodecInitLibrary); - REG_FUNC(0x45719B9D, sceAudiodecTermLibrary); - REG_FUNC(0x4DFD3AAA, sceAudiodecCreateDecoder); - REG_FUNC(0xE7A24E16, sceAudiodecDeleteDecoder); - REG_FUNC(0xCCDABA04, sceAudiodecDecode); - REG_FUNC(0xF72F9B64, sceAudiodecClearContext); - REG_FUNC(0x883B0CF5, sceAudiodecGetInternalError); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceAudiodec.h b/rpcs3/Emu/PSP2/Modules/sceAudiodec.h deleted file mode 100644 index eb8c29bd3c..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceAudiodec.h +++ /dev/null @@ -1,81 +0,0 @@ -#pragma once - -struct SceAudiodecInitStreamParam -{ - le_t size; - le_t totalStreams; -}; - -struct SceAudiodecInitChParam -{ - le_t size; - le_t totalCh; -}; - -union SceAudiodecInitParam -{ - le_t size; - SceAudiodecInitChParam at9; - SceAudiodecInitStreamParam mp3; - SceAudiodecInitStreamParam aac; - SceAudiodecInitStreamParam celp; -}; - -struct SceAudiodecInfoAt9 -{ - le_t size; - u8 configData[4]; - le_t ch; - le_t bitRate; - le_t samplingRate; - le_t superFrameSize; - le_t framesInSuperFrame; -}; - -struct SceAudiodecInfoMp3 -{ - le_t size; - le_t ch; - le_t version; -}; - -struct SceAudiodecInfoAac -{ - le_t size; - le_t isAdts; - le_t ch; - le_t samplingRate; - le_t isSbr; -}; - -struct SceAudiodecInfoCelp -{ - le_t size; - le_t excitationMode; - le_t samplingRate; - le_t bitRate; - le_t lostCount; -}; - -union SceAudiodecInfo -{ - le_t size; - SceAudiodecInfoAt9 at9; - SceAudiodecInfoMp3 mp3; - SceAudiodecInfoAac aac; - SceAudiodecInfoCelp celp; -}; - -struct SceAudiodecCtrl -{ - le_t size; - le_t handle; - vm::lptr pEs; - le_t inputEsSize; - le_t maxEsSize; - vm::lptr pPcm; - le_t outputPcmSize; - le_t maxPcmSize; - le_t wordLength; - vm::lptr pInfo; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceAudioenc.cpp b/rpcs3/Emu/PSP2/Modules/sceAudioenc.cpp deleted file mode 100644 index 049b2b0dd4..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceAudioenc.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceAudioenc.h" - -logs::channel sceAudioenc("sceAudioenc"); - -s32 sceAudioencInitLibrary(u32 codecType, vm::ptr pInitParam) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioencTermLibrary(u32 codecType) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioencCreateEncoder(vm::ptr pCtrl, u32 codecType) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioencDeleteEncoder(vm::ptr pCtrl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioencEncode(vm::ptr pCtrl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioencClearContext(vm::ptr pCtrl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioencGetOptInfo(vm::ptr pCtrl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAudioencGetInternalError(vm::ptr pCtrl, vm::ptr pInternalError) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceAudioencUser, nid, name) - -DECLARE(arm_module_manager::SceAudioenc)("SceAudioencUser", []() -{ - REG_FUNC(0x76EE4DC6, sceAudioencInitLibrary); - REG_FUNC(0xAB32D022, sceAudioencTermLibrary); - REG_FUNC(0x64C04AE8, sceAudioencCreateEncoder); - REG_FUNC(0xC6BA5EE6, sceAudioencDeleteEncoder); - REG_FUNC(0xD85DB29C, sceAudioencEncode); - REG_FUNC(0x9386F42D, sceAudioencClearContext); - REG_FUNC(0xD01C63A3, sceAudioencGetOptInfo); - REG_FUNC(0x452246D0, sceAudioencGetInternalError); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceAudioenc.h b/rpcs3/Emu/PSP2/Modules/sceAudioenc.h deleted file mode 100644 index b67cf8eb24..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceAudioenc.h +++ /dev/null @@ -1,57 +0,0 @@ -#pragma once - -struct SceAudioencInitStreamParam -{ - le_t size; - le_t totalStreams; -}; - -struct SceAudioencInfoCelp -{ - le_t size; - le_t excitationMode; - le_t samplingRate; - le_t bitRate; -}; - -struct SceAudioencOptInfoCelp -{ - le_t size; - u8 header[32]; - le_t headerSize; - le_t encoderVersion; -}; - - -union SceAudioencInitParam -{ - le_t size; - SceAudioencInitStreamParam celp; -}; - -union SceAudioencInfo -{ - le_t size; - SceAudioencInfoCelp celp; -}; - -union SceAudioencOptInfo -{ - le_t size; - SceAudioencOptInfoCelp celp; -}; - -struct SceAudioencCtrl -{ - le_t size; - le_t handle; - vm::lptr pInputPcm; - le_t inputPcmSize; - le_t maxPcmSize; - vm::lptr pOutputEs; - le_t outputEsSize; - le_t maxEsSize; - le_t wordLength; - vm::lptr pInfo; - vm::lptr pOptInfo; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceCamera.cpp b/rpcs3/Emu/PSP2/Modules/sceCamera.cpp deleted file mode 100644 index cb4027553a..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceCamera.cpp +++ /dev/null @@ -1,260 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceCamera.h" - -logs::channel sceCamera("sceCamera"); - -s32 sceCameraOpen(s32 devnum, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraClose(s32 devnum) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraStart(s32 devnum) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraStop(s32 devnum) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraRead(s32 devnum, vm::ptr pRead) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraIsActive(s32 devnum) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetSaturation(s32 devnum, vm::ptr pLevel) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetSaturation(s32 devnum, s32 level) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetBrightness(s32 devnum, vm::ptr pLevel) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetBrightness(s32 devnum, s32 level) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetContrast(s32 devnum, vm::ptr pLevel) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetContrast(s32 devnum, s32 level) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetSharpness(s32 devnum, vm::ptr pLevel) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetSharpness(s32 devnum, s32 level) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetReverse(s32 devnum, vm::ptr pMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetReverse(s32 devnum, s32 mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetEffect(s32 devnum, vm::ptr pMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetEffect(s32 devnum, s32 mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetEV(s32 devnum, vm::ptr pLevel) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetEV(s32 devnum, s32 level) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetZoom(s32 devnum, vm::ptr pLevel) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetZoom(s32 devnum, s32 level) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetAntiFlicker(s32 devnum, vm::ptr pMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetAntiFlicker(s32 devnum, s32 mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetISO(s32 devnum, vm::ptr pMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetISO(s32 devnum, s32 mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetGain(s32 devnum, vm::ptr pMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetGain(s32 devnum, s32 mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetWhiteBalance(s32 devnum, vm::ptr pMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetWhiteBalance(s32 devnum, s32 mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetBacklight(s32 devnum, vm::ptr pMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetBacklight(s32 devnum, s32 mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetNightmode(s32 devnum, vm::ptr pMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetNightmode(s32 devnum, s32 mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraLedSwitch(s32 devnum, s32 iSwitch) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraLedBlink(s32 devnum, s32 iOnCount, s32 iOffCount, s32 iBlinkCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetNoiseReductionForDebug(s32 devnum, vm::ptr pLevel) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetNoiseReductionForDebug(s32 devnum, s32 level) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraGetSharpnessOffForDebug(s32 devnum, vm::ptr pLevel) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCameraSetSharpnessOffForDebug(s32 devnum, s32 level) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceCameraUseCacheMemoryForTrial(s32 isCache) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceCamera, nid, name) - -DECLARE(arm_module_manager::SceCamera)("SceCamera", []() -{ - REG_FUNC(0xA462F801, sceCameraOpen); - REG_FUNC(0xCD6E1CFC, sceCameraClose); - REG_FUNC(0xA8FEAE35, sceCameraStart); - REG_FUNC(0x1DD9C9CE, sceCameraStop); - REG_FUNC(0x79B5C2DE, sceCameraRead); - REG_FUNC(0x103A75B8, sceCameraIsActive); - REG_FUNC(0x624F7653, sceCameraGetSaturation); - REG_FUNC(0xF9F7CA3D, sceCameraSetSaturation); - REG_FUNC(0x85D5951D, sceCameraGetBrightness); - REG_FUNC(0x98D71588, sceCameraSetBrightness); - REG_FUNC(0x8FBE84BE, sceCameraGetContrast); - REG_FUNC(0x06FB2900, sceCameraSetContrast); - REG_FUNC(0xAA72C3DC, sceCameraGetSharpness); - REG_FUNC(0xD1A5BB0B, sceCameraSetSharpness); - REG_FUNC(0x44F6043F, sceCameraGetReverse); - REG_FUNC(0x1175F477, sceCameraSetReverse); - REG_FUNC(0x7E8EF3B2, sceCameraGetEffect); - REG_FUNC(0xE9D2CFB1, sceCameraSetEffect); - REG_FUNC(0x8B5E6147, sceCameraGetEV); - REG_FUNC(0x62AFF0B8, sceCameraSetEV); - REG_FUNC(0x06D3816C, sceCameraGetZoom); - REG_FUNC(0xF7464216, sceCameraSetZoom); - REG_FUNC(0x9FDACB99, sceCameraGetAntiFlicker); - REG_FUNC(0xE312958A, sceCameraSetAntiFlicker); - REG_FUNC(0x4EBD5C68, sceCameraGetISO); - REG_FUNC(0x3CF630A1, sceCameraSetISO); - REG_FUNC(0x2C36D6F3, sceCameraGetGain); - REG_FUNC(0xE65CFE86, sceCameraSetGain); - REG_FUNC(0xDBFFA1DA, sceCameraGetWhiteBalance); - REG_FUNC(0x4D4514AC, sceCameraSetWhiteBalance); - REG_FUNC(0x8DD1292B, sceCameraGetBacklight); - REG_FUNC(0xAE071044, sceCameraSetBacklight); - REG_FUNC(0x12B6FF26, sceCameraGetNightmode); - REG_FUNC(0x3F26233E, sceCameraSetNightmode); - REG_FUNC(0xD02CFA5C, sceCameraLedSwitch); - REG_FUNC(0x89B16030, sceCameraLedBlink); - REG_FUNC(0x7670474C, sceCameraUseCacheMemoryForTrial); - REG_FUNC(0x27BB0528, sceCameraGetNoiseReductionForDebug); - REG_FUNC(0x233C9E27, sceCameraSetNoiseReductionForDebug); - REG_FUNC(0xC387F4DC, sceCameraGetSharpnessOffForDebug); - REG_FUNC(0xE22C2375, sceCameraSetSharpnessOffForDebug); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceCamera.h b/rpcs3/Emu/PSP2/Modules/sceCamera.h deleted file mode 100644 index 20a735db31..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceCamera.h +++ /dev/null @@ -1,38 +0,0 @@ -#pragma once - -struct SceCameraInfo -{ - le_t sizeThis; - le_t wPriority; - le_t wFormat; - le_t wResolution; - le_t wFramerate; - le_t wWidth; - le_t wHeight; - le_t wRange; - le_t _padding_0; - le_t sizeIBase; - le_t sizeUBase; - le_t sizeVBase; - vm::lptr pvIBase; - vm::lptr pvUBase; - vm::lptr pvVBase; - le_t wPitch; - le_t wBuffer; -}; - -struct SceCameraRead -{ - le_t sizeThis; - le_t dwMode; - le_t _padding_0; - le_t dwStatus; - le_t qwFrame; - le_t qwTimestamp; - le_t sizeIBase; - le_t sizeUBase; - le_t sizeVBase; - vm::lptr pvIBase; - vm::lptr pvUBase; - vm::lptr pvVBase; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceCodecEngine.cpp b/rpcs3/Emu/PSP2/Modules/sceCodecEngine.cpp deleted file mode 100644 index 2c5d432404..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceCodecEngine.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceCodecEngine.h" - -logs::channel sceCodecEngine("sceCodecEngine"); - -s32 sceCodecEnginePmonStart() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCodecEnginePmonStop() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCodecEnginePmonGetProcessorLoad(vm::ptr pProcessorLoad) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCodecEnginePmonReset() -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceCodecEngine, nid, name) - -DECLARE(arm_module_manager::SceCodecEngine)("SceCodecEngine", []() -{ - REG_FUNC(0x3E718890, sceCodecEnginePmonStart); - REG_FUNC(0x268B1EF5, sceCodecEnginePmonStop); - REG_FUNC(0x859E4A68, sceCodecEnginePmonGetProcessorLoad); - REG_FUNC(0xA097E4C8, sceCodecEnginePmonReset); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceCodecEngine.h b/rpcs3/Emu/PSP2/Modules/sceCodecEngine.h deleted file mode 100644 index 95cb73031a..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceCodecEngine.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -struct SceCodecEnginePmonProcessorLoad -{ - le_t size; - le_t average; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceCommonDialog.cpp b/rpcs3/Emu/PSP2/Modules/sceCommonDialog.cpp deleted file mode 100644 index e324c615cc..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceCommonDialog.cpp +++ /dev/null @@ -1,254 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceCommonDialog.h" - -logs::channel sceCommonDialog("sceCommonDialog"); - -s32 sceCommonDialogUpdate(vm::cptr updateParam) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMsgDialogInit(vm::cptr param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceCommonDialogStatus sceMsgDialogGetStatus() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMsgDialogAbort() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMsgDialogGetResult(vm::ptr result) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMsgDialogTerm() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMsgDialogClose() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMsgDialogProgressBarInc(s32 target, u32 delta) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMsgDialogProgressBarSetValue(s32 target, u32 rate) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCheckDialogInit(vm::ptr param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceCommonDialogStatus sceNetCheckDialogGetStatus() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCheckDialogAbort() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCheckDialogGetResult(vm::ptr result) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCheckDialogTerm() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSaveDataDialogInit(vm::cptr param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceCommonDialogStatus sceSaveDataDialogGetStatus() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSaveDataDialogAbort() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSaveDataDialogGetResult(vm::ptr result) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSaveDataDialogTerm() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceCommonDialogStatus sceSaveDataDialogGetSubStatus() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSaveDataDialogSubClose() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSaveDataDialogContinue(vm::cptr param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSaveDataDialogFinish(vm::cptr param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSaveDataDialogProgressBarInc(s32 target, u32 delta) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSaveDataDialogProgressBarSetValue(s32 target, u32 rate) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceImeDialogInit(vm::cptr param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceCommonDialogStatus sceImeDialogGetStatus() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceImeDialogAbort() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceImeDialogGetResult(vm::ptr result) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceImeDialogTerm() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 scePhotoImportDialogInit(vm::cptr param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceCommonDialogStatus scePhotoImportDialogGetStatus() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 scePhotoImportDialogGetResult(vm::ptr result) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 scePhotoImportDialogTerm() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 scePhotoImportDialogAbort() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 scePhotoReviewDialogInit(vm::cptr param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceCommonDialogStatus scePhotoReviewDialogGetStatus() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 scePhotoReviewDialogGetResult(vm::ptr result) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 scePhotoReviewDialogTerm() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 scePhotoReviewDialogAbort() -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceCommonDialog, nid, name) - -DECLARE(arm_module_manager::SceCommonDialog)("SceCommonDialog", []() -{ - REG_FUNC(0x90530F2F, sceCommonDialogUpdate); - REG_FUNC(0x755FF270, sceMsgDialogInit); - REG_FUNC(0x4107019E, sceMsgDialogGetStatus); - REG_FUNC(0xC296D396, sceMsgDialogClose); - REG_FUNC(0x0CC66115, sceMsgDialogAbort); - REG_FUNC(0xBB3BFC89, sceMsgDialogGetResult); - REG_FUNC(0x81ACF695, sceMsgDialogTerm); - REG_FUNC(0x7BE0E08B, sceMsgDialogProgressBarInc); - REG_FUNC(0x9CDA5E0D, sceMsgDialogProgressBarSetValue); - REG_FUNC(0xA38A4A0D, sceNetCheckDialogInit); - REG_FUNC(0x8027292A, sceNetCheckDialogGetStatus); - REG_FUNC(0x2D8EDF09, sceNetCheckDialogAbort); - REG_FUNC(0xB05FCE9E, sceNetCheckDialogGetResult); - REG_FUNC(0x8BE51C15, sceNetCheckDialogTerm); - REG_FUNC(0xBF5248FA, sceSaveDataDialogInit); - REG_FUNC(0x6E258046, sceSaveDataDialogGetStatus); - REG_FUNC(0x013E7F74, sceSaveDataDialogAbort); - REG_FUNC(0xB2FF576E, sceSaveDataDialogGetResult); - REG_FUNC(0x2192A10A, sceSaveDataDialogTerm); - REG_FUNC(0x19192C8B, sceSaveDataDialogContinue); - REG_FUNC(0xBA0542CA, sceSaveDataDialogGetSubStatus); - REG_FUNC(0x415D6068, sceSaveDataDialogSubClose); - REG_FUNC(0x6C49924B, sceSaveDataDialogFinish); - REG_FUNC(0xBDE00A83, sceSaveDataDialogProgressBarInc); - REG_FUNC(0x5C322D1E, sceSaveDataDialogProgressBarSetValue); - REG_FUNC(0x1E7043BF, sceImeDialogInit); - REG_FUNC(0xCF0431FD, sceImeDialogGetStatus); - REG_FUNC(0x594A220E, sceImeDialogAbort); - REG_FUNC(0x2EB3D046, sceImeDialogGetResult); - REG_FUNC(0x838A3AF4, sceImeDialogTerm); - REG_FUNC(0x73EE7C9C, scePhotoImportDialogInit); - REG_FUNC(0x032206D8, scePhotoImportDialogGetStatus); - REG_FUNC(0xD855414C, scePhotoImportDialogGetResult); - REG_FUNC(0x7FE5BD77, scePhotoImportDialogTerm); - REG_FUNC(0x4B125581, scePhotoImportDialogAbort); - REG_FUNC(0xCD990375, scePhotoReviewDialogInit); - REG_FUNC(0xF4F600CA, scePhotoReviewDialogGetStatus); - REG_FUNC(0xFFA35858, scePhotoReviewDialogGetResult); - REG_FUNC(0xC700B2DF, scePhotoReviewDialogTerm); - REG_FUNC(0x74FF2A8B, scePhotoReviewDialogAbort); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceCommonDialog.h b/rpcs3/Emu/PSP2/Modules/sceCommonDialog.h deleted file mode 100644 index 1fcbcdb578..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceCommonDialog.h +++ /dev/null @@ -1,300 +0,0 @@ -#pragma once - -#include "sceGxm.h" -#include "sceAppUtil.h" -#include "sceIme.h" - -enum SceCommonDialogStatus : s32 -{ - SCE_COMMON_DIALOG_STATUS_NONE = 0, - SCE_COMMON_DIALOG_STATUS_RUNNING = 1, - SCE_COMMON_DIALOG_STATUS_FINISHED = 2, -}; - -enum SceCommonDialogResult : s32 -{ - SCE_COMMON_DIALOG_RESULT_OK, - SCE_COMMON_DIALOG_RESULT_USER_CANCELED, - SCE_COMMON_DIALOG_RESULT_ABORTED, -}; - -struct SceCommonDialogRenderTargetInfo -{ - vm::lptr depthSurfaceData; - vm::lptr colorSurfaceData; - le_t surfaceType; // SceGxmColorSurfaceType - le_t colorFormat; // SceGxmColorFormat - le_t width; - le_t height; - le_t strideInPixels; - u8 reserved[32]; -}; - -struct SceCommonDialogUpdateParam -{ - SceCommonDialogRenderTargetInfo renderTarget; - vm::lptr displaySyncObject; - u8 reserved[32]; -}; - -struct SceMsgDialogUserMessageParam -{ - le_t buttonType; - vm::lcptr msg; - char reserved[32]; -}; - -struct SceMsgDialogSystemMessageParam -{ - le_t sysMsgType; - le_t value; - char reserved[32]; -}; - -struct SceMsgDialogErrorCodeParam -{ - le_t errorCode; - char reserved[32]; -}; - -struct SceMsgDialogProgressBarParam -{ - le_t barType; - SceMsgDialogSystemMessageParam sysMsgParam; - vm::lcptr msg; - char reserved[32]; -}; - -struct SceMsgDialogParam -{ - le_t sdkVersion; - le_t mode; - vm::lptr userMsgParam; - vm::lptr sysMsgParam; - vm::lptr errorCodeParam; - vm::lptr progBarParam; - le_t flag; - char reserved[32]; -}; - -struct SceMsgDialogResult -{ - le_t mode; - le_t result; - le_t buttonId; - u8 reserved[32]; -}; - - -struct SceNetCheckDialogParam -{ - le_t sdkVersion; - le_t mode; - u8 reserved[128]; -}; - -struct SceNetCheckDialogResult -{ - le_t result; - u8 reserved[128]; -}; - -struct SceSaveDataDialogFixedParam -{ - le_t targetSlot; - char reserved[32]; -}; - -struct SceSaveDataDialogListParam -{ - vm::lcptr slotList; - le_t slotListSize; - le_t focusPos; - le_t focusId; - vm::lcptr listTitle; - char reserved[32]; -}; - -struct SceSaveDataDialogUserMessageParam -{ - le_t buttonType; - vm::lcptr msg; - le_t targetSlot; - char reserved[32]; -}; - -struct SceSaveDataDialogSystemMessageParam -{ - le_t sysMsgType; - le_t value; - le_t targetSlot; - char reserved[32]; -}; - -struct SceSaveDataDialogErrorCodeParam -{ - le_t errorCode; - le_t targetSlot; - char reserved[32]; -}; - -struct SceSaveDataDialogProgressBarParam -{ - le_t barType; - SceSaveDataDialogSystemMessageParam sysMsgParam; - vm::lcptr msg; - le_t targetSlot; - char reserved[32]; -}; - -struct SceSaveDataDialogSlotConfigParam -{ - vm::lcptr mountPoint; - vm::lcptr appSubDir; - char reserved[32]; -}; - -struct SceSaveDataDialogParam -{ - le_t sdkVersion; - le_t mode; - le_t dispType; - vm::lptr fixedParam; - vm::lptr listParam; - vm::lptr userMsgParam; - vm::lptr sysMsgParam; - vm::lptr errorCodeParam; - vm::lptr progBarParam; - vm::lptr slotConfParam; - le_t flag; - vm::lptr userdata; - char reserved[32]; -}; - -struct SceSaveDataDialogFinishParam -{ - le_t flag; - char reserved[32]; -}; - -struct SceSaveDataDialogSlotInfo -{ - le_t isExist; - vm::lptr slotParam; - u8 reserved[32]; -}; - -struct SceSaveDataDialogResult -{ - le_t mode; - le_t result; - le_t buttonId; - le_t slotId; - vm::lptr slotInfo; - vm::lptr userdata; - char reserved[32]; -}; - - -struct SceImeDialogParam -{ - le_t sdkVersion; - le_t inputMethod; - le_t supportedLanguages; - le_t languagesForced; - le_t type; - le_t option; - vm::lptr filter; - le_t dialogMode; - le_t textBoxMode; - vm::lcptr title; - le_t maxTextLength; - vm::lptr initialText; - vm::lptr inputTextBuffer; - char reserved[32]; -}; - -struct SceImeDialogResult -{ - le_t result; - char reserved[32]; -}; - -enum ScePhotoImportDialogFormatType : s32 -{ - SCE_PHOTOIMPORT_DIALOG_FORMAT_TYPE_UNKNOWN = 0, - SCE_PHOTOIMPORT_DIALOG_FORMAT_TYPE_JPEG, - SCE_PHOTOIMPORT_DIALOG_FORMAT_TYPE_PNG, - SCE_PHOTOIMPORT_DIALOG_FORMAT_TYPE_GIF, - SCE_PHOTOIMPORT_DIALOG_FORMAT_TYPE_BMP, - SCE_PHOTOIMPORT_DIALOG_FORMAT_TYPE_TIFF -}; - -enum ScePhotoImportDialogOrientation : s32 -{ - SCE_PHOTOIMPORT_DIALOG_ORIENTATION_UNKNOWN = 0, - SCE_PHOTOIMPORT_DIALOG_ORIENTATION_TOP_LEFT, - SCE_PHOTOIMPORT_DIALOG_ORIENTATION_TOP_RIGHT, - SCE_PHOTOIMPORT_DIALOG_ORIENTATION_BOTTOM_RIGHT, - SCE_PHOTOIMPORT_DIALOG_ORIENTATION_BOTTOM_LEFT, - SCE_PHOTOIMPORT_DIALOG_ORIENTATION_LEFT_TOP, - SCE_PHOTOIMPORT_DIALOG_ORIENTATION_RIGHT_TOP, - SCE_PHOTOIMPORT_DIALOG_ORIENTATION_RIGHT_BOTTOM, - SCE_PHOTOIMPORT_DIALOG_ORIENTATION_LEFT_BOTTOM, -}; - -struct ScePhotoImportDialogFileDataSub -{ - le_t width; - le_t height; - ScePhotoImportDialogFormatType format; - ScePhotoImportDialogOrientation orientation; - char reserved[32]; -}; - -struct ScePhotoImportDialogFileData -{ - char fileName[1024]; - char photoTitle[256]; - char reserved[32]; -}; - -struct ScePhotoImportDialogItemData -{ - ScePhotoImportDialogFileData fileData; - ScePhotoImportDialogFileDataSub dataSub; - char reserved[32]; -}; - -struct ScePhotoImportDialogResult -{ - le_t result; - le_t importedItemNum; - char reserved[32]; -}; - -struct ScePhotoImportDialogParam -{ - le_t sdkVersion; - le_t mode; - le_t visibleCategory; - le_t itemCount; - vm::lptr itemData; - char reserved[32]; -}; - -struct ScePhotoReviewDialogParam -{ - le_t sdkVersion; - le_t mode; - char fileName[1024]; - vm::lptr workMemory; - le_t workMemorySize; - char reserved[32]; -}; - -struct ScePhotoReviewDialogResult -{ - le_t result; - char reserved[32]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceCtrl.cpp b/rpcs3/Emu/PSP2/Modules/sceCtrl.cpp deleted file mode 100644 index a8b5cdfaea..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceCtrl.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceCtrl.h" - -logs::channel sceCtrl("sceCtrl"); - -s32 sceCtrlSetSamplingMode(u32 uiMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCtrlGetSamplingMode(vm::ptr puiMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCtrlPeekBufferPositive(s32 port, vm::ptr pData, s32 nBufs) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCtrlPeekBufferNegative(s32 port, vm::ptr pData, s32 nBufs) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCtrlReadBufferPositive(s32 port, vm::ptr pData, s32 nBufs) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCtrlReadBufferNegative(s32 port, vm::ptr pData, s32 nBufs) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCtrlSetRapidFire(s32 port, s32 idx, vm::cptr pRule) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceCtrlClearRapidFire(s32 port, s32 idx) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceCtrl, nid, name) - -DECLARE(arm_module_manager::SceCtrl)("SceCtrl", []() -{ - REG_FUNC(0xA497B150, sceCtrlSetSamplingMode); - REG_FUNC(0xEC752AAF, sceCtrlGetSamplingMode); - REG_FUNC(0xA9C3CED6, sceCtrlPeekBufferPositive); - REG_FUNC(0x104ED1A7, sceCtrlPeekBufferNegative); - REG_FUNC(0x67E7AB83, sceCtrlReadBufferPositive); - REG_FUNC(0x15F96FB0, sceCtrlReadBufferNegative); - REG_FUNC(0xE9CB69C8, sceCtrlSetRapidFire); - REG_FUNC(0xD8294C9C, sceCtrlClearRapidFire); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceCtrl.h b/rpcs3/Emu/PSP2/Modules/sceCtrl.h deleted file mode 100644 index 3039299611..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceCtrl.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once - -struct SceCtrlData -{ - le_t timeStamp; - le_t buttons; - u8 lx; - u8 ly; - u8 rx; - u8 ry; - u8 reserved[16]; -}; - -struct SceCtrlRapidFireRule -{ - le_t uiMask; - le_t uiTrigger; - le_t uiTarget; - le_t uiDelay; - le_t uiMake; - le_t uiBreak; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceDbg.cpp b/rpcs3/Emu/PSP2/Modules/sceDbg.cpp deleted file mode 100644 index b22ca2d112..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceDbg.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceDbg.h" - -logs::channel sceDbg("sceDbg"); - -s32 sceDbgSetMinimumLogLevel(s32 minimumLogLevel) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDbgSetBreakOnErrorState(SceDbgBreakOnErrorState state) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDbgAssertionHandler(vm::cptr pFile, s32 line, b8 stop, vm::cptr pComponent, vm::cptr pMessage, arm_va_args_t va_args) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDbgLoggingHandler(vm::cptr pFile, s32 line, s32 severity, vm::cptr pComponent, vm::cptr pMessage, arm_va_args_t va_args) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceDbg, nid, name) - -DECLARE(arm_module_manager::SceDbg)("SceDbg", []() -{ - REG_FUNC(0x941622FA, sceDbgSetMinimumLogLevel); - REG_FUNC(0x1AF3678B, sceDbgAssertionHandler); - REG_FUNC(0x6605AB19, sceDbgLoggingHandler); - REG_FUNC(0xED4A00BA, sceDbgSetBreakOnErrorState); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceDbg.h b/rpcs3/Emu/PSP2/Modules/sceDbg.h deleted file mode 100644 index dbc556af2c..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceDbg.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -enum SceDbgBreakOnErrorState : s32 -{ - SCE_DBG_DISABLE_BREAK_ON_ERROR = 0, - SCE_DBG_ENABLE_BREAK_ON_ERROR -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceDeci4p.cpp b/rpcs3/Emu/PSP2/Modules/sceDeci4p.cpp deleted file mode 100644 index 39f61f1d0f..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceDeci4p.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceDeci4p.h" - -logs::channel sceDeci4p("sceDeci4p"); - -s32 sceKernelDeci4pOpen(vm::cptr protoname, u32 protonum, u32 bufsize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelDeci4pClose(s32 socketid) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelDeci4pRead(s32 socketid, vm::ptr buffer, u32 size, u32 reserved) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelDeci4pWrite(s32 socketid, vm::cptr buffer, u32 size, u32 reserved) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelDeci4pRegisterCallback(s32 socketid, s32 cbid) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceDeci4pUserp, nid, name) - -DECLARE(arm_module_manager::SceDeci4p)("SceDeci4pUserp", []() -{ - REG_FUNC(0x28578FE8, sceKernelDeci4pOpen); - REG_FUNC(0x63B0C50F, sceKernelDeci4pClose); - REG_FUNC(0x971E1C66, sceKernelDeci4pRead); - REG_FUNC(0xCDA3AAAC, sceKernelDeci4pWrite); - REG_FUNC(0x73371F35, sceKernelDeci4pRegisterCallback); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceDeci4p.h b/rpcs3/Emu/PSP2/Modules/sceDeci4p.h deleted file mode 100644 index 4393fdcf88..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceDeci4p.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -using SceKernelDeci4pCallback = s32(s32 notifyId, s32 notifyCount, s32 notifyArg, vm::ptr pCommon); diff --git a/rpcs3/Emu/PSP2/Modules/sceDeflt.cpp b/rpcs3/Emu/PSP2/Modules/sceDeflt.cpp deleted file mode 100644 index 4d20ddd039..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceDeflt.cpp +++ /dev/null @@ -1,91 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceDeflt.h" - -logs::channel sceDeflt("sceDeflt"); - -s32 sceGzipIsValid(vm::cptr pSrcGzip) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGzipGetInfo(vm::cptr pSrcGzip, vm::cpptr ppvExtra, vm::cpptr ppszName, vm::cpptr ppszComment, vm::ptr pusCrc, vm::cpptr ppvData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceGzipGetName(vm::cptr pSrcGzip) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceGzipGetComment(vm::cptr pSrcGzip) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceGzipGetCompressedData(vm::cptr pSrcGzip) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGzipDecompress(vm::ptr pDst, u32 uiBufSize, vm::cptr pSrcGzip, vm::ptr puiCrc32) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceZlibIsValid(vm::cptr pSrcZlib) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceZlibGetInfo(vm::cptr pSrcZlib, vm::ptr pbCmf, vm::ptr pbFlg, vm::ptr puiDictId, vm::cpptr ppvData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceZlibGetCompressedData(vm::cptr pSrcZlib) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceZlibDecompress(vm::ptr pDst, u32 uiBufSize, vm::cptr pSrcZlib, vm::ptr puiAdler32) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceZlibAdler32(u32 uiAdler, vm::cptr pSrc, u32 uiSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDeflateDecompress(vm::ptr pDst, u32 uiBufSize, vm::cptr pSrcDeflate, vm::cpptr ppNext) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceZipGetInfo(vm::cptr pSrc, vm::cpptr ppvExtra, vm::ptr puiCrc, vm::cpptr ppvData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceDeflt, nid, name) - -DECLARE(arm_module_manager::SceDeflt)("SceDeflt", []() -{ - REG_FUNC(0xCD83A464, sceZlibAdler32); - REG_FUNC(0x110D5050, sceDeflateDecompress); - REG_FUNC(0xE3CB51A3, sceGzipDecompress); - REG_FUNC(0xBABCF5CF, sceGzipGetComment); - REG_FUNC(0xE1844802, sceGzipGetCompressedData); - REG_FUNC(0x1B8E5862, sceGzipGetInfo); - REG_FUNC(0xAEBAABE6, sceGzipGetName); - REG_FUNC(0xDEDADC31, sceGzipIsValid); - REG_FUNC(0xE38F754D, sceZlibDecompress); - REG_FUNC(0xE680A65A, sceZlibGetCompressedData); - REG_FUNC(0x4C0A685D, sceZlibGetInfo); - REG_FUNC(0x14A0698D, sceZlibIsValid); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceDeflt.h b/rpcs3/Emu/PSP2/Modules/sceDeflt.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceDeflt.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/rpcs3/Emu/PSP2/Modules/sceDisplay.cpp b/rpcs3/Emu/PSP2/Modules/sceDisplay.cpp deleted file mode 100644 index f6e89e3b3e..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceDisplay.cpp +++ /dev/null @@ -1,102 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceDisplay.h" - -logs::channel sceDisplay("sceDisplay"); - -s32 sceDisplayGetRefreshRate(vm::ptr pFps) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDisplaySetFrameBuf(vm::cptr pFrameBuf, s32 iUpdateTimingMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDisplayGetFrameBuf(vm::ptr pFrameBuf, s32 iUpdateTimingMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDisplayGetVcount() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDisplayWaitVblankStart() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDisplayWaitVblankStartCB() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDisplayWaitVblankStartMulti(u32 vcount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDisplayWaitVblankStartMultiCB(u32 vcount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDisplayWaitSetFrameBuf() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDisplayWaitSetFrameBufCB() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDisplayWaitSetFrameBufMulti(u32 vcount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDisplayWaitSetFrameBufMultiCB(u32 vcount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDisplayRegisterVblankStartCallback(s32 uid) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceDisplayUnregisterVblankStartCallback(s32 uid) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceDisplay, nid, name) - -DECLARE(arm_module_manager::SceDisplayUser)("SceDisplayUser", []() -{ - REG_FNID(SceDisplayUser, 0x7A410B64, sceDisplaySetFrameBuf); - REG_FNID(SceDisplayUser, 0x42AE6BBC, sceDisplayGetFrameBuf); -}); - -DECLARE(arm_module_manager::SceDisplay)("SceDisplay", []() -{ - REG_FUNC(0xA08CA60D, sceDisplayGetRefreshRate); - REG_FUNC(0xB6FDE0BA, sceDisplayGetVcount); - REG_FUNC(0x5795E898, sceDisplayWaitVblankStart); - REG_FUNC(0x78B41B92, sceDisplayWaitVblankStartCB); - REG_FUNC(0xDD0A13B8, sceDisplayWaitVblankStartMulti); - REG_FUNC(0x05F27764, sceDisplayWaitVblankStartMultiCB); - REG_FUNC(0x9423560C, sceDisplayWaitSetFrameBuf); - REG_FUNC(0x814C90AF, sceDisplayWaitSetFrameBufCB); - REG_FUNC(0x7D9864A8, sceDisplayWaitSetFrameBufMulti); - REG_FUNC(0x3E796EF5, sceDisplayWaitSetFrameBufMultiCB); - REG_FUNC(0x6BDF4C4D, sceDisplayRegisterVblankStartCallback); - REG_FUNC(0x98436A80, sceDisplayUnregisterVblankStartCallback); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceDisplay.h b/rpcs3/Emu/PSP2/Modules/sceDisplay.h deleted file mode 100644 index 9835022740..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceDisplay.h +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once - -struct SceDisplayFrameBuf -{ - le_t size; - vm::lptr base; - le_t pitch; - le_t pixelformat; - le_t width; - le_t height; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceFiber.cpp b/rpcs3/Emu/PSP2/Modules/sceFiber.cpp deleted file mode 100644 index 56f1739052..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceFiber.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceFiber.h" - -logs::channel sceFiber("sceFiber"); - -s32 _sceFiberInitializeImpl(vm::ptr fiber, vm::cptr name, vm::ptr entry, u32 argOnInitialize, vm::ptr addrContext, u32 sizeContext, vm::cptr optParam, u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiberOptParamInitialize(vm::ptr optParam) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiberFinalize(vm::ptr fiber) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiberRun(vm::ptr fiber, u32 argOnRunTo, vm::ptr argOnReturn) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiberSwitch(vm::ptr fiber, u32 argOnRunTo, vm::ptr argOnRun) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiberGetSelf(vm::pptr fiber) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiberReturnToThread(u32 argOnReturn, vm::ptr argOnRun) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiberGetInfo(vm::ptr fiber, vm::ptr fiberInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceFiber, nid, name) - -DECLARE(arm_module_manager::SceFiber)("SceFiber", []() -{ - REG_FUNC(0xF24A298C, _sceFiberInitializeImpl); - //REG_FUNC(0xC6A3F9BB, _sceFiberInitializeWithInternalOptionImpl); - //REG_FUNC(0x7D0C7DDB, _sceFiberAttachContextAndRun); - //REG_FUNC(0xE00B9AFE, _sceFiberAttachContextAndSwitch); - REG_FUNC(0x801AB334, sceFiberOptParamInitialize); - REG_FUNC(0xE160F844, sceFiberFinalize); - REG_FUNC(0x7DF23243, sceFiberRun); - REG_FUNC(0xE4283144, sceFiberSwitch); - REG_FUNC(0x414D8CA5, sceFiberGetSelf); - REG_FUNC(0x3B42921F, sceFiberReturnToThread); - REG_FUNC(0x189599B4, sceFiberGetInfo); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceFiber.h b/rpcs3/Emu/PSP2/Modules/sceFiber.h deleted file mode 100644 index cbc65d6547..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceFiber.h +++ /dev/null @@ -1,29 +0,0 @@ -#pragma once - -using SceFiberEntry = void(u32 argOnInitialize, u32 argOnRun); - -struct alignas(8) SceFiber -{ - le_t padding[16]; -}; - -CHECK_SIZE_ALIGN(SceFiber, 128, 8); - -struct alignas(8) SceFiberOptParam -{ - le_t padding[16]; -}; - -CHECK_SIZE_ALIGN(SceFiberOptParam, 128, 8); - -struct alignas(8) SceFiberInfo -{ - vm::lptr entry; - le_t argOnInitialize; - vm::lptr addrContext; - le_t sizeContext; - char name[32]; - u8 padding[80]; -}; - -CHECK_SIZE_ALIGN(SceFiberInfo, 128, 8); diff --git a/rpcs3/Emu/PSP2/Modules/sceFios.cpp b/rpcs3/Emu/PSP2/Modules/sceFios.cpp deleted file mode 100644 index fead4326e9..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceFios.cpp +++ /dev/null @@ -1,825 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceFios.h" - -logs::channel sceFios("sceFios"); - -s32 sceFiosInitialize(vm::cptr pParameters) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosTerminate() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceFiosIsInitialized(vm::ptr pOutParameters) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosUpdateParameters(vm::cptr pParameters) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosSetGlobalDefaultOpAttr(vm::cptr pAttr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceFiosGetGlobalDefaultOpAttr(vm::ptr pOutAttr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosSetThreadDefaultOpAttr(vm::cptr pAttr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceFiosGetThreadDefaultOpAttr(vm::ptr pOutAttr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosGetDefaultOpAttr(vm::ptr pOutAttr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosSuspend() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceFiosGetSuspendCount() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceFiosIsSuspended() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosResume() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosShutdownAndCancelOps() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosCancelAllOps() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosCloseAllFiles() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceFiosIsIdle() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceFiosGetAllFHs(vm::ptr pOutArray, u32 arraySize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceFiosGetAllDHs(vm::ptr pOutArray, u32 arraySize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceFiosGetAllOps(vm::ptr pOutArray, u32 arraySize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceFiosIsValidHandle(s32 h) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosPathcmp(vm::cptr pA, vm::cptr pB) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosPathncmp(vm::cptr pA, vm::cptr pB, u32 n) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosPrintf(vm::cptr pFormat, arm_va_args_t va_args) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosVprintf(vm::cptr pFormat) // va_list -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFileExists(vm::cptr pAttr, vm::cptr pPath, vm::ptr pOutExists) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceFiosFileExistsSync(vm::cptr pAttr, vm::cptr pPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFileGetSize(vm::cptr pAttr, vm::cptr pPath, vm::ptr pOutSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFileGetSizeSync(vm::cptr pAttr, vm::cptr pPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFileDelete(vm::cptr pAttr, vm::cptr pPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFileDeleteSync(vm::cptr pAttr, vm::cptr pPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosDirectoryExists(vm::cptr pAttr, vm::cptr pPath, vm::ptr pOutExists) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceFiosDirectoryExistsSync(vm::cptr pAttr, vm::cptr pPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosDirectoryCreate(vm::cptr pAttr, vm::cptr pPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosDirectoryCreateSync(vm::cptr pAttr, vm::cptr pPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosDirectoryDelete(vm::cptr pAttr, vm::cptr pPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosDirectoryDeleteSync(vm::cptr pAttr, vm::cptr pPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosExists(vm::cptr pAttr, vm::cptr pPath, vm::ptr pOutExists) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceFiosExistsSync(vm::cptr pAttr, vm::cptr pPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosStat(vm::cptr pAttr, vm::cptr pPath, vm::ptr pOutStatus) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosStatSync(vm::cptr pAttr, vm::cptr pPath, vm::ptr pOutStatus) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosDelete(vm::cptr pAttr, vm::cptr pPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosDeleteSync(vm::cptr pAttr, vm::cptr pPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosResolve(vm::cptr pAttr, vm::cptr pInTuple, vm::ptr pOutTuple) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosResolveSync(vm::cptr pAttr, vm::cptr pInTuple, vm::ptr pOutTuple) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosRename(vm::cptr pAttr, vm::cptr pOldPath, vm::cptr pNewPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosRenameSync(vm::cptr pAttr, vm::cptr pOldPath, vm::cptr pNewPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFileRead(vm::cptr pAttr, vm::cptr pPath, vm::ptr pBuf, s64 length, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFileReadSync(vm::cptr pAttr, vm::cptr pPath, vm::ptr pBuf, s64 length, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFileWrite(vm::cptr pAttr, vm::cptr pPath, vm::cptr pBuf, s64 length, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFileWriteSync(vm::cptr pAttr, vm::cptr pPath, vm::cptr pBuf, s64 length, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFileTruncate(vm::cptr pAttr, vm::cptr pPath, s64 length) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFileTruncateSync(vm::cptr pAttr, vm::cptr pPath, s64 length) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHOpen(vm::cptr pAttr, vm::ptr pOutFH, vm::cptr pPath, vm::cptr pOpenParams) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHOpenSync(vm::cptr pAttr, vm::ptr pOutFH, vm::cptr pPath, vm::cptr pOpenParams) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHStat(vm::cptr pAttr, s32 fh, vm::ptr pOutStatus) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHStatSync(vm::cptr pAttr, s32 fh, vm::ptr pOutStatus) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHTruncate(vm::cptr pAttr, s32 fh, s64 length) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHTruncateSync(vm::cptr pAttr, s32 fh, s64 length) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHSync(vm::cptr pAttr, s32 fh) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHSyncSync(vm::cptr pAttr, s32 fh) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHRead(vm::cptr pAttr, s32 fh, vm::ptr pBuf, s64 length) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFHReadSync(vm::cptr pAttr, s32 fh, vm::ptr pBuf, s64 length) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHWrite(vm::cptr pAttr, s32 fh, vm::cptr pBuf, s64 length) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFHWriteSync(vm::cptr pAttr, s32 fh, vm::cptr pBuf, s64 length) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHReadv(vm::cptr pAttr, s32 fh, vm::cptr iov, s32 iovcnt) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFHReadvSync(vm::cptr pAttr, s32 fh, vm::cptr iov, s32 iovcnt) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHWritev(vm::cptr pAttr, s32 fh, vm::cptr iov, s32 iovcnt) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFHWritevSync(vm::cptr pAttr, s32 fh, vm::cptr iov, s32 iovcnt) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHPread(vm::cptr pAttr, s32 fh, vm::ptr pBuf, s64 length, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFHPreadSync(vm::cptr pAttr, s32 fh, vm::ptr pBuf, s64 length, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHPwrite(vm::cptr pAttr, s32 fh, vm::cptr pBuf, s64 length, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFHPwriteSync(vm::cptr pAttr, s32 fh, vm::cptr pBuf, s64 length, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHPreadv(vm::cptr pAttr, s32 fh, vm::cptr iov, s32 iovcnt, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFHPreadvSync(vm::cptr pAttr, s32 fh, vm::cptr iov, s32 iovcnt, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHPwritev(vm::cptr pAttr, s32 fh, vm::cptr iov, s32 iovcnt, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFHPwritevSync(vm::cptr pAttr, s32 fh, vm::cptr iov, s32 iovcnt, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHClose(vm::cptr pAttr, s32 fh) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosFHCloseSync(vm::cptr pAttr, s32 fh) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFHSeek(s32 fh, s64 offset, SceFiosWhence whence) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFHTell(s32 fh) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceFiosFHGetPath(s32 fh) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosFHGetSize(s32 fh) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceFiosFHGetOpenParams(s32 fh) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosDHOpen(vm::cptr pAttr, vm::ptr pOutDH, vm::cptr pPath, SceFiosBuffer buf) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosDHOpenSync(vm::cptr pAttr, vm::ptr pOutDH, vm::cptr pPath, SceFiosBuffer buf) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosDHRead(vm::cptr pAttr, s32 dh, vm::ptr pOutEntry) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosDHReadSync(vm::cptr pAttr, s32 dh, vm::ptr pOutEntry) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosDHClose(vm::cptr pAttr, s32 dh) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosDHCloseSync(vm::cptr pAttr, s32 dh) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceFiosDHGetPath(s32 dh) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceFiosOpIsDone(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosOpWait(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosOpWaitUntil(s32 op, s64 deadline) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosOpDelete(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosOpSyncWait(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosOpSyncWaitForIO(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosOpGetError(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosOpCancel(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceFiosOpIsCancelled(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceFiosOpGetAttr(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceFiosOpGetPath(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceFiosOpGetBuffer(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosOpGetOffset(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosOpGetRequestCount(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosOpGetActualCount(s32 op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosOpReschedule(s32 op, s64 newDeadline) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosTimeGetCurrent() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosTimeIntervalToNanoseconds(s64 interval) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosTimeIntervalFromNanoseconds(s64 ns) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u64 sceFiosDateGetCurrent() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u64 sceFiosDateFromComponents(vm::cptr pComponents) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceFiosDateToComponents(u64 date, vm::ptr pOutComponents) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u64 sceFiosDateFromSceDateTime(vm::cptr pSceDateTime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceFiosDateToSceDateTime(u64 date, vm::ptr pSceDateTime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosOverlayAdd(vm::cptr pOverlay, vm::ptr pOutID) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosOverlayRemove(s32 id) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosOverlayGetInfo(s32 id, vm::ptr pOutOverlay) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosOverlayModify(s32 id, vm::cptr pNewValue) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosOverlayGetList(vm::ptr pOutIDs, u32 maxIDs, vm::ptr pActualIDs) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosOverlayResolveSync(s32 resolveFlag, vm::cptr pInPath, vm::ptr pOutPath, u32 maxPath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosArchiveGetMountBufferSize(vm::cptr pAttr, vm::cptr pArchivePath, vm::cptr pOpenParams) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceFiosArchiveGetMountBufferSizeSync(vm::cptr pAttr, vm::cptr pArchivePath, vm::cptr pOpenParams) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosArchiveMount(vm::cptr pAttr, vm::ptr pOutFH, vm::cptr pArchivePath, vm::cptr pMountPoint, SceFiosBuffer mountBuffer, vm::cptr pOpenParams) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosArchiveMountSync(vm::cptr pAttr, vm::ptr pOutFH, vm::cptr pArchivePath, vm::cptr pMountPoint, SceFiosBuffer mountBuffer, vm::cptr pOpenParams) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosArchiveUnmount(vm::cptr pAttr, s32 fh) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosArchiveUnmountSync(vm::cptr pAttr, s32 fh) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceFiosDebugDumpError(s32 err, vm::ptr pBuffer, u32 bufferSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceFiosDebugDumpOp(s32 op, vm::ptr pBuffer, u32 bufferSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceFiosDebugDumpFH(s32 fh, vm::ptr pBuffer, u32 bufferSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceFiosDebugDumpDH(s32 dh, vm::ptr pBuffer, u32 bufferSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceFiosDebugDumpDate(u64 date, vm::ptr pBuffer, u32 bufferSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosIOFilterAdd(s32 index, vm::ptr pFilterCallback, vm::ptr pFilterContext) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosIOFilterGetInfo(s32 index, vm::pptr pOutFilterCallback, vm::pptr pOutFilterContext) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceFiosIOFilterRemove(s32 index) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceFiosIOFilterPsarcDearchiver() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(SceFios2, nid, name) - -DECLARE(arm_module_manager::SceFios)("SceFios2", []() -{ - REG_FUNC(0x15857180, sceFiosArchiveGetMountBufferSize); - REG_FUNC(0xDF3352FC, sceFiosArchiveGetMountBufferSizeSync); - //REG_FUNC(0x92E76BBD, sceFiosArchiveMount); - //REG_FUNC(0xC4822276, sceFiosArchiveMountSync); - REG_FUNC(0xFE1E1D28, sceFiosArchiveUnmount); - REG_FUNC(0xB26DC24D, sceFiosArchiveUnmountSync); - REG_FUNC(0x1E920B1D, sceFiosCancelAllOps); - REG_FUNC(0xF85C208B, sceFiosCloseAllFiles); - REG_FUNC(0xF6CACFC7, sceFiosDHClose); - REG_FUNC(0x1F3CC428, sceFiosDHCloseSync); - REG_FUNC(0x2B406DEB, sceFiosDHGetPath); - //REG_FUNC(0xEA9855BA, sceFiosDHOpen); - //REG_FUNC(0x34BC3713, sceFiosDHOpenSync); - REG_FUNC(0x72A0A851, sceFiosDHRead); - REG_FUNC(0xB7E79CAD, sceFiosDHReadSync); - REG_FUNC(0x280D284A, sceFiosDateFromComponents); - REG_FUNC(0x5C593C1E, sceFiosDateGetCurrent); - REG_FUNC(0x5CFF6EA0, sceFiosDateToComponents); - REG_FUNC(0x44B9F8EB, sceFiosDebugDumpDH); - REG_FUNC(0x159B1FA8, sceFiosDebugDumpDate); - REG_FUNC(0x51E677DF, sceFiosDebugDumpError); - REG_FUNC(0x5506ACAB, sceFiosDebugDumpFH); - REG_FUNC(0xE438D4F0, sceFiosDebugDumpOp); - REG_FUNC(0x764DFA7A, sceFiosDelete); - REG_FUNC(0xAAC54B44, sceFiosDeleteSync); - REG_FUNC(0x9198ED8B, sceFiosDirectoryCreate); - REG_FUNC(0xE037B076, sceFiosDirectoryCreateSync); - REG_FUNC(0xDA93677C, sceFiosDirectoryDelete); - REG_FUNC(0xB9573146, sceFiosDirectoryDeleteSync); - REG_FUNC(0x48D50D97, sceFiosDirectoryExists); - REG_FUNC(0x726E01BE, sceFiosDirectoryExistsSync); - REG_FUNC(0x6F12D8A5, sceFiosExists); - REG_FUNC(0x125EFD34, sceFiosExistsSync); - REG_FUNC(0xA88EDCA8, sceFiosFHClose); - REG_FUNC(0x45182328, sceFiosFHCloseSync); - REG_FUNC(0xC55DB73B, sceFiosFHGetOpenParams); - REG_FUNC(0x37143AE3, sceFiosFHGetPath); - REG_FUNC(0xC5C26581, sceFiosFHGetSize); - REG_FUNC(0xBF699BD4, sceFiosFHOpen); - REG_FUNC(0xC3E7C3DB, sceFiosFHOpenSync); - REG_FUNC(0x6A51E688, sceFiosFHPread); - REG_FUNC(0xE2805059, sceFiosFHPreadSync); - REG_FUNC(0x7C4E0C42, sceFiosFHPreadv); - REG_FUNC(0x4D42F95C, sceFiosFHPreadvSync); - REG_FUNC(0xCF1FAA6F, sceFiosFHPwrite); - REG_FUNC(0x1E962F57, sceFiosFHPwriteSync); - REG_FUNC(0xBBC9AFD5, sceFiosFHPwritev); - REG_FUNC(0x742ADDC4, sceFiosFHPwritevSync); - REG_FUNC(0xB09AFBDF, sceFiosFHRead); - REG_FUNC(0x76945919, sceFiosFHReadSync); - REG_FUNC(0x7DB0AFAF, sceFiosFHReadv); - REG_FUNC(0x1BC977FA, sceFiosFHReadvSync); - REG_FUNC(0xA75F3C4A, sceFiosFHSeek); - REG_FUNC(0xD97C4DF7, sceFiosFHStat); - REG_FUNC(0xF8BEAC88, sceFiosFHStatSync); - REG_FUNC(0xE485F35E, sceFiosFHSync); - REG_FUNC(0xA909CCE3, sceFiosFHSyncSync); - REG_FUNC(0xD7F33130, sceFiosFHTell); - REG_FUNC(0x2B39453B, sceFiosFHTruncate); - REG_FUNC(0xFEF940B7, sceFiosFHTruncateSync); - REG_FUNC(0xE663138E, sceFiosFHWrite); - REG_FUNC(0x984024E5, sceFiosFHWriteSync); - REG_FUNC(0x988DD7FF, sceFiosFHWritev); - REG_FUNC(0x267E6CE3, sceFiosFHWritevSync); - REG_FUNC(0xB647278B, sceFiosFileDelete); - REG_FUNC(0xB5302E30, sceFiosFileDeleteSync); - REG_FUNC(0x8758E62F, sceFiosFileExists); - REG_FUNC(0x233B070C, sceFiosFileExistsSync); - REG_FUNC(0x79D9BB50, sceFiosFileGetSize); - REG_FUNC(0x789215C3, sceFiosFileGetSizeSync); - REG_FUNC(0x84080161, sceFiosFileRead); - REG_FUNC(0x1C488B32, sceFiosFileReadSync); - REG_FUNC(0xC5513E13, sceFiosFileTruncate); - REG_FUNC(0x6E1252B8, sceFiosFileTruncateSync); - REG_FUNC(0x42C278E5, sceFiosFileWrite); - REG_FUNC(0x132B6DE6, sceFiosFileWriteSync); - REG_FUNC(0x681184A2, sceFiosGetAllDHs); - REG_FUNC(0x90AB9195, sceFiosGetAllFHs); - REG_FUNC(0x8F62832C, sceFiosGetAllOps); - REG_FUNC(0xC897F6A7, sceFiosGetDefaultOpAttr); - REG_FUNC(0x30583FCB, sceFiosGetGlobalDefaultOpAttr); - REG_FUNC(0x156EAFDC, sceFiosGetSuspendCount); - REG_FUNC(0xD55B8555, sceFiosIOFilterAdd); - REG_FUNC(0x7C9B14EB, sceFiosIOFilterGetInfo); - REG_FUNC(0x057252F2, sceFiosIOFilterPsarcDearchiver); - REG_FUNC(0x22E35018, sceFiosIOFilterRemove); - REG_FUNC(0x774C2C05, sceFiosInitialize); - REG_FUNC(0x29104BF3, sceFiosIsIdle); - REG_FUNC(0xF4F54E09, sceFiosIsInitialized); - REG_FUNC(0xD2466EA5, sceFiosIsSuspended); - REG_FUNC(0xB309E327, sceFiosIsValidHandle); - REG_FUNC(0x3904F205, sceFiosOpCancel); - REG_FUNC(0xE4EA92FA, sceFiosOpDelete); - REG_FUNC(0x218A43EE, sceFiosOpGetActualCount); - REG_FUNC(0xABFEE706, sceFiosOpGetAttr); - REG_FUNC(0x68C436E4, sceFiosOpGetBuffer); - REG_FUNC(0xBF099E16, sceFiosOpGetError); - REG_FUNC(0xF21213B9, sceFiosOpGetOffset); - REG_FUNC(0x157515CB, sceFiosOpGetPath); - REG_FUNC(0x9C1084C5, sceFiosOpGetRequestCount); - REG_FUNC(0x0C81D80E, sceFiosOpIsCancelled); - REG_FUNC(0x1B9A575E, sceFiosOpIsDone); - REG_FUNC(0x968CADBD, sceFiosOpReschedule); - REG_FUNC(0xE6A66C70, sceFiosOpSyncWait); - REG_FUNC(0x202079F9, sceFiosOpSyncWaitForIO); - REG_FUNC(0x2AC79DFC, sceFiosOpWait); - REG_FUNC(0xCC823B47, sceFiosOpWaitUntil); - REG_FUNC(0x27AE468B, sceFiosOverlayAdd); - REG_FUNC(0xF4C6B72A, sceFiosOverlayGetInfo); - REG_FUNC(0x1C0BCAD5, sceFiosOverlayGetList); - REG_FUNC(0x30F56704, sceFiosOverlayModify); - REG_FUNC(0xF3C84D0F, sceFiosOverlayRemove); - REG_FUNC(0x8A243E74, sceFiosOverlayResolveSync); - REG_FUNC(0x5E75937A, sceFiosPathcmp); - REG_FUNC(0xCC21C849, sceFiosPathncmp); - REG_FUNC(0xAF7FAADF, sceFiosPrintf); - REG_FUNC(0x25E399E5, sceFiosRename); - REG_FUNC(0x030306F4, sceFiosRenameSync); - REG_FUNC(0xD0B19C9F, sceFiosResolve); - REG_FUNC(0x7FF33797, sceFiosResolveSync); - REG_FUNC(0xBF2D3CC1, sceFiosResume); - REG_FUNC(0x4E2FD311, sceFiosSetGlobalDefaultOpAttr); - REG_FUNC(0x5B8D48C4, sceFiosShutdownAndCancelOps); - REG_FUNC(0xFF04AF72, sceFiosStat); - REG_FUNC(0xACBAF3E0, sceFiosStatSync); - REG_FUNC(0x510953DC, sceFiosSuspend); - REG_FUNC(0x2904B539, sceFiosTerminate); - REG_FUNC(0xE76C8EC3, sceFiosTimeGetCurrent); - REG_FUNC(0x35A82737, sceFiosTimeIntervalFromNanoseconds); - REG_FUNC(0x397BF626, sceFiosTimeIntervalToNanoseconds); - REG_FUNC(0x1915052A, sceFiosUpdateParameters); - REG_FUNC(0x5BA4BD6D, sceFiosVprintf); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceFios.h b/rpcs3/Emu/PSP2/Modules/sceFios.h deleted file mode 100644 index 838e31b5ce..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceFios.h +++ /dev/null @@ -1,113 +0,0 @@ -#pragma once - -#include "Common.h" - -using SceFiosOpCallback = s32(vm::ptr pContext, s32 op, u8 event, s32 err); -using SceFiosVprintfCallback = s32(vm::cptr fmt, arm_va_args_t ap /* va_list */); -using SceFiosMemcpyCallback = vm::ptr(vm::ptr dst, vm::cptr src, u32 len); - -enum SceFiosWhence : s32 -{ - SCE_FIOS_SEEK_SET = 0, - SCE_FIOS_SEEK_CUR = 1, - SCE_FIOS_SEEK_END = 2, -}; - -struct SceFiosBuffer -{ - vm::lptr pPtr; - le_t length; -}; - -struct SceFiosOpAttr -{ - le_t deadline; - vm::lptr pCallback; - vm::lptr pCallbackContext; - - //le_t priority : 8; - //le_t opflags : 24; - le_t params; // priority, opflags - - le_t userTag; - vm::lptr userPtr; - vm::lptr pReserved; -}; - -struct SceFiosDirEntry -{ - le_t fileSize; - le_t statFlags; - le_t nameLength; - le_t fullPathLength; - le_t offsetToName; - le_t reserved[3]; - char fullPath[1024]; -}; - -struct SceFiosStat -{ - le_t fileSize; - le_t accessDate; - le_t modificationDate; - le_t creationDate; - le_t statFlags; - le_t reserved; - le_t uid; - le_t gid; - le_t dev; - le_t ino; - le_t mode; -}; - -struct SceFiosOpenParams -{ - le_t openFlags; - le_t reserved; - SceFiosBuffer buffer; -}; - -struct SceFiosTuple -{ - le_t offset; - le_t size; - char path[1024]; -}; - -struct SceFiosParams -{ - //le_t initialized : 1; - //le_t paramsSize : 14; - //le_t pathMax : 16; - le_t params; // initialized, paramsSize, pathMax - - le_t profiling; - SceFiosBuffer opStorage; - SceFiosBuffer fhStorage; - SceFiosBuffer dhStorage; - SceFiosBuffer chunkStorage; - vm::lptr pVprintf; - vm::lptr pMemcpy; - le_t threadPriority[2]; - le_t threadAffinity[2]; -}; - -struct SceFiosOverlay -{ - u8 type; - u8 order; - u8 reserved[10]; - le_t id; - char dst[292]; - char src[292]; -}; - -using SceFiosIOFilterCallback = void(); - -struct SceFiosPsarcDearchiverContext -{ - le_t sizeOfContext; - le_t workBufferSize; - vm::lptr pWorkBuffer; - le_t reserved[4]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceFpu.cpp b/rpcs3/Emu/PSP2/Modules/sceFpu.cpp deleted file mode 100644 index 761989b94c..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceFpu.cpp +++ /dev/null @@ -1,99 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceFpu.h" - -logs::channel sceFpu("sceFpu"); - -float sceFpuSinf(float x) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceFpuCosf(float x) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceFpuTanf(float x) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceFpuAtanf(float x) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceFpuAtan2f(float y, float x) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceFpuAsinf(float x) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceFpuAcosf(float x) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -float sceFpuLogf(float x) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceFpuLog2f(float fs) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceFpuLog10f(float fs) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceFpuExpf(float x) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceFpuExp2f(float x) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceFpuExp10f(float x) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceFpuPowf(float x, float y) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceFpu, nid, name) - -DECLARE(arm_module_manager::SceFpu)("SceFpu", []() -{ - //REG_FUNC(0x33E1AC14, sceFpuSinf); - //REG_FUNC(0xDB66BA89, sceFpuCosf); - //REG_FUNC(0x6FBDA1C9, sceFpuTanf); - //REG_FUNC(0x53FF26AF, sceFpuAtanf); - //REG_FUNC(0xC8A4989B, sceFpuAtan2f); - //REG_FUNC(0x4D1AE0F1, sceFpuAsinf); - //REG_FUNC(0x64A8F9FE, sceFpuAcosf); - //REG_FUNC(0x936F0D27, sceFpuLogf); - //REG_FUNC(0x19881EC8, sceFpuLog2f); - //REG_FUNC(0xABBB6168, sceFpuLog10f); - //REG_FUNC(0xEFA16C6E, sceFpuExpf); - //REG_FUNC(0xA3A88AD0, sceFpuExp2f); - //REG_FUNC(0x35652326, sceFpuExp10f); - //REG_FUNC(0xDF622E56, sceFpuPowf); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceFpu.h b/rpcs3/Emu/PSP2/Modules/sceFpu.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceFpu.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/rpcs3/Emu/PSP2/Modules/sceGxm.cpp b/rpcs3/Emu/PSP2/Modules/sceGxm.cpp deleted file mode 100644 index b8d84fae4e..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceGxm.cpp +++ /dev/null @@ -1,1294 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceGxm.h" - -logs::channel sceGxm("sceGxm"); - -s32 sceGxmInitialize(vm::cptr params) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTerminate() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceGxmGetNotificationRegion() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmNotificationWait(vm::cptr notification) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmMapMemory(vm::ptr base, u32 size, SceGxmMemoryAttribFlags attr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmUnmapMemory(vm::ptr base) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmMapVertexUsseMemory(vm::ptr base, u32 size, vm::ptr offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmUnmapVertexUsseMemory(vm::ptr base) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmMapFragmentUsseMemory(vm::ptr base, u32 size, vm::ptr offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmUnmapFragmentUsseMemory(vm::ptr base) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmDisplayQueueAddEntry(vm::ptr oldBuffer, vm::ptr newBuffer, vm::cptr callbackData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmDisplayQueueFinish() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmSyncObjectCreate(vm::pptr syncObject) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmSyncObjectDestroy(vm::ptr syncObject) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -s32 sceGxmCreateContext(vm::cptr params, vm::pptr context) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmDestroyContext(vm::ptr context) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetValidationEnable(vm::ptr context, b8 enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -void sceGxmSetVertexProgram(vm::ptr context, vm::cptr vertexProgram) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetFragmentProgram(vm::ptr context, vm::cptr fragmentProgram) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmReserveVertexDefaultUniformBuffer(vm::ptr context, vm::pptr uniformBuffer) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmReserveFragmentDefaultUniformBuffer(vm::ptr context, vm::pptr uniformBuffer) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmSetVertexStream(vm::ptr context, u32 streamIndex, vm::cptr streamData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmSetVertexTexture(vm::ptr context, u32 textureIndex, vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmSetFragmentTexture(vm::ptr context, u32 textureIndex, vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmSetVertexUniformBuffer(vm::ptr context, u32 bufferIndex, vm::cptr bufferData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmSetFragmentUniformBuffer(vm::ptr context, u32 bufferIndex, vm::cptr bufferData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmSetAuxiliarySurface(vm::ptr context, u32 surfaceIndex, vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -void sceGxmSetPrecomputedFragmentState(vm::ptr context, vm::cptr precomputedState) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetPrecomputedVertexState(vm::ptr context, vm::cptr precomputedState) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmDrawPrecomputed(vm::ptr context, vm::cptr precomputedDraw) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmDraw(vm::ptr context, SceGxmPrimitiveType primType, SceGxmIndexFormat indexType, vm::cptr indexData, u32 indexCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmDrawInstanced(vm::ptr context, SceGxmPrimitiveType primType, SceGxmIndexFormat indexType, vm::cptr indexData, u32 indexCount, u32 indexWrap) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmSetVisibilityBuffer(vm::ptr context, vm::ptr bufferBase, u32 stridePerCore) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmBeginScene(vm::ptr context, u32 flags, vm::cptr renderTarget, vm::cptr validRegion, vm::ptr vertexSyncObject, vm::ptr fragmentSyncObject, vm::cptr colorSurface, vm::cptr depthStencil) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmMidSceneFlush(vm::ptr context, u32 flags, vm::ptr vertexSyncObject, vm::cptr vertexNotification) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmEndScene(vm::ptr context, vm::cptr vertexNotification, vm::cptr fragmentNotification) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetFrontDepthFunc(vm::ptr context, SceGxmDepthFunc depthFunc) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetBackDepthFunc(vm::ptr context, SceGxmDepthFunc depthFunc) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetFrontFragmentProgramEnable(vm::ptr context, SceGxmFragmentProgramMode enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetBackFragmentProgramEnable(vm::ptr context, SceGxmFragmentProgramMode enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetFrontDepthWriteEnable(vm::ptr context, SceGxmDepthWriteMode enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetBackDepthWriteEnable(vm::ptr context, SceGxmDepthWriteMode enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetFrontLineFillLastPixelEnable(vm::ptr context, SceGxmLineFillLastPixelMode enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetBackLineFillLastPixelEnable(vm::ptr context, SceGxmLineFillLastPixelMode enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetFrontStencilRef(vm::ptr context, u32 sref) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetBackStencilRef(vm::ptr context, u32 sref) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetFrontPointLineWidth(vm::ptr context, u32 width) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetBackPointLineWidth(vm::ptr context, u32 width) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetFrontPolygonMode(vm::ptr context, SceGxmPolygonMode mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetBackPolygonMode(vm::ptr context, SceGxmPolygonMode mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetFrontStencilFunc(vm::ptr context, SceGxmStencilFunc func, SceGxmStencilOp stencilFail, SceGxmStencilOp depthFail, SceGxmStencilOp depthPass, u8 compareMask, u8 writeMask) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -void sceGxmSetBackStencilFunc(vm::ptr context, SceGxmStencilFunc func, SceGxmStencilOp stencilFail, SceGxmStencilOp depthFail, SceGxmStencilOp depthPass, u8 compareMask, u8 writeMask) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetFrontDepthBias(vm::ptr context, s32 factor, s32 units) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetBackDepthBias(vm::ptr context, s32 factor, s32 units) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetTwoSidedEnable(vm::ptr context, SceGxmTwoSidedMode enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetViewport(vm::ptr context, float xOffset, float xScale, float yOffset, float yScale, float zOffset, float zScale) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetWClampValue(vm::ptr context, float clampValue) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetWClampEnable(vm::ptr context, SceGxmWClampMode enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetRegionClip(vm::ptr context, SceGxmRegionClipMode mode, u32 xMin, u32 yMin, u32 xMax, u32 yMax) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetCullMode(vm::ptr context, SceGxmCullMode mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetViewportEnable(vm::ptr context, SceGxmViewportMode enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetWBufferEnable(vm::ptr context, SceGxmWBufferMode enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetFrontVisibilityTestIndex(vm::ptr context, u32 index) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetBackVisibilityTestIndex(vm::ptr context, u32 index) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetFrontVisibilityTestOp(vm::ptr context, SceGxmVisibilityTestOp op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetBackVisibilityTestOp(vm::ptr context, SceGxmVisibilityTestOp op) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetFrontVisibilityTestEnable(vm::ptr context, SceGxmVisibilityTestMode enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmSetBackVisibilityTestEnable(vm::ptr context, SceGxmVisibilityTestMode enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmFinish(vm::ptr context) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPushUserMarker(vm::ptr context, vm::cptr tag) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPopUserMarker(vm::ptr context) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmSetUserMarker(vm::ptr context, vm::cptr tag) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPadHeartbeat(vm::cptr displaySurface, vm::ptr displaySyncObject) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPadTriggerGpuPaTrace() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmColorSurfaceInit(vm::ptr surface, SceGxmColorFormat colorFormat, SceGxmColorSurfaceType surfaceType, SceGxmColorSurfaceScaleMode scaleMode, SceGxmOutputRegisterSize outputRegisterSize, u32 width, u32 height, u32 strideInPixels, vm::ptr data) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmColorSurfaceInitDisabled(vm::ptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceGxmColorSurfaceIsEnabled(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmColorSurfaceGetClip(vm::cptr surface, vm::ptr xMin, vm::ptr yMin, vm::ptr xMax, vm::ptr yMax) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmColorSurfaceSetClip(vm::ptr surface, u32 xMin, u32 yMin, u32 xMax, u32 yMax) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmColorSurfaceScaleMode sceGxmColorSurfaceGetScaleMode(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmColorSurfaceSetScaleMode(vm::ptr surface, SceGxmColorSurfaceScaleMode scaleMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceGxmColorSurfaceGetData(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmColorSurfaceSetData(vm::ptr surface, vm::ptr data) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmColorFormat sceGxmColorSurfaceGetFormat(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmColorSurfaceSetFormat(vm::ptr surface, SceGxmColorFormat format) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmColorSurfaceType sceGxmColorSurfaceGetType(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmColorSurfaceGetStrideInPixels(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmDepthStencilSurfaceInit(vm::ptr surface, SceGxmDepthStencilFormat depthStencilFormat, SceGxmDepthStencilSurfaceType surfaceType, u32 strideInSamples, vm::ptr depthData, vm::ptr stencilData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmDepthStencilSurfaceInitDisabled(vm::ptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceGxmDepthStencilSurfaceGetBackgroundDepth(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmDepthStencilSurfaceSetBackgroundDepth(vm::ptr surface, float backgroundDepth) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u8 sceGxmDepthStencilSurfaceGetBackgroundStencil(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmDepthStencilSurfaceSetBackgroundStencil(vm::ptr surface, u8 backgroundStencil) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceGxmDepthStencilSurfaceIsEnabled(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmDepthStencilSurfaceSetForceLoadMode(vm::ptr surface, SceGxmDepthStencilForceLoadMode forceLoad) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmDepthStencilForceLoadMode sceGxmDepthStencilSurfaceGetForceLoadMode(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmDepthStencilSurfaceSetForceStoreMode(vm::ptr surface, SceGxmDepthStencilForceStoreMode forceStore) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmDepthStencilForceStoreMode sceGxmDepthStencilSurfaceGetForceStoreMode(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmColorSurfaceGammaMode sceGxmColorSurfaceGetGammaMode(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmColorSurfaceSetGammaMode(vm::ptr surface, SceGxmColorSurfaceGammaMode gammaMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmColorSurfaceDitherMode sceGxmColorSurfaceGetDitherMode(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmColorSurfaceSetDitherMode(vm::ptr surface, SceGxmColorSurfaceDitherMode ditherMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmDepthStencilFormat sceGxmDepthStencilSurfaceGetFormat(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmDepthStencilSurfaceGetStrideInSamples(vm::cptr surface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -s32 sceGxmProgramCheck(vm::cptr program) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmProgramGetSize(vm::cptr program) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmProgramType sceGxmProgramGetType(vm::cptr program) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceGxmProgramIsDiscardUsed(vm::cptr program) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceGxmProgramIsDepthReplaceUsed(vm::cptr program) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceGxmProgramIsSpriteCoordUsed(vm::cptr program) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmProgramGetDefaultUniformBufferSize(vm::cptr program) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmProgramGetParameterCount(vm::cptr program) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceGxmProgramGetParameter(vm::cptr program, u32 index) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceGxmProgramFindParameterByName(vm::cptr program, vm::cptr name) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceGxmProgramFindParameterBySemantic(vm::cptr program, SceGxmParameterSemantic semantic, u32 index) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmProgramParameterGetIndex(vm::cptr program, vm::cptr parameter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmParameterCategory sceGxmProgramParameterGetCategory(vm::cptr parameter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceGxmProgramParameterGetName(vm::cptr parameter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmParameterSemantic sceGxmProgramParameterGetSemantic(vm::cptr parameter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmProgramParameterGetSemanticIndex(vm::cptr parameter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmParameterType sceGxmProgramParameterGetType(vm::cptr parameter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmProgramParameterGetComponentCount(vm::cptr parameter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmProgramParameterGetArraySize(vm::cptr parameter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmProgramParameterGetResourceIndex(vm::cptr parameter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmProgramParameterGetContainerIndex(vm::cptr parameter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceGxmProgramParameterIsSamplerCube(vm::cptr parameter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceGxmFragmentProgramGetProgram(vm::cptr fragmentProgram) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceGxmVertexProgramGetProgram(vm::cptr vertexProgram) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -s32 sceGxmShaderPatcherCreate(vm::cptr params, vm::pptr shaderPatcher) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmShaderPatcherSetUserData(vm::ptr shaderPatcher, vm::ptr userData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceGxmShaderPatcherGetUserData(vm::ptr shaderPatcher) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmShaderPatcherDestroy(vm::ptr shaderPatcher) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmShaderPatcherRegisterProgram(vm::ptr shaderPatcher, vm::cptr programHeader, vm::pptr programId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmShaderPatcherUnregisterProgram(vm::ptr shaderPatcher, vm::ptr programId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceGxmShaderPatcherGetProgramFromId(vm::ptr programId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmShaderPatcherSetAuxiliarySurface(vm::ptr shaderPatcher, u32 auxSurfaceIndex, vm::cptr auxSurface) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmShaderPatcherCreateVertexProgram(vm::ptr shaderPatcher, vm::ptr programId, vm::cptr attributes, u32 attributeCount, vm::cptr streams, u32 streamCount, vm::pptr vertexProgram) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmShaderPatcherCreateFragmentProgram(vm::ptr shaderPatcher, vm::ptr programId, SceGxmOutputRegisterFormat outputFormat, SceGxmMultisampleMode multisampleMode, vm::cptr blendInfo, vm::cptr vertexProgram, vm::pptr fragmentProgram) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmShaderPatcherAddRefVertexProgram(vm::ptr shaderPatcher, vm::ptr vertexProgram) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmShaderPatcherAddRefFragmentProgram(vm::ptr shaderPatcher, vm::ptr fragmentProgram) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmShaderPatcherReleaseVertexProgram(vm::ptr shaderPatcher, vm::ptr vertexProgram) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmShaderPatcherReleaseFragmentProgram(vm::ptr shaderPatcher, vm::ptr fragmentProgram) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmShaderPatcherGetHostMemAllocated(vm::cptr shaderPatcher) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmShaderPatcherGetBufferMemAllocated(vm::cptr shaderPatcher) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmShaderPatcherGetVertexUsseMemAllocated(vm::cptr shaderPatcher) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmShaderPatcherGetFragmentUsseMemAllocated(vm::cptr shaderPatcher) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureInitSwizzled(vm::ptr texture, vm::cptr data, SceGxmTextureFormat texFormat, u32 width, u32 height, u32 mipCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureInitLinear(vm::ptr texture, vm::cptr data, SceGxmTextureFormat texFormat, u32 width, u32 height, u32 mipCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureInitLinearStrided(vm::ptr texture, vm::cptr data, SceGxmTextureFormat texFormat, u32 width, u32 height, u32 byteStride) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureInitTiled(vm::ptr texture, vm::cptr data, SceGxmTextureFormat texFormat, u32 width, u32 height, u32 mipCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureInitCube(vm::ptr texture, vm::cptr data, SceGxmTextureFormat texFormat, u32 width, u32 height, u32 mipCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmTextureType sceGxmTextureGetType(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetMinFilter(vm::ptr texture, SceGxmTextureFilter minFilter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmTextureFilter sceGxmTextureGetMinFilter(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetMagFilter(vm::ptr texture, SceGxmTextureFilter magFilter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmTextureFilter sceGxmTextureGetMagFilter(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetMipFilter(vm::ptr texture, SceGxmTextureMipFilter mipFilter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmTextureMipFilter sceGxmTextureGetMipFilter(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetAnisoMode(vm::ptr texture, SceGxmTextureAnisoMode anisoMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmTextureAnisoMode sceGxmTextureGetAnisoMode(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetUAddrMode(vm::ptr texture, SceGxmTextureAddrMode addrMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmTextureAddrMode sceGxmTextureGetUAddrMode(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetVAddrMode(vm::ptr texture, SceGxmTextureAddrMode addrMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmTextureAddrMode sceGxmTextureGetVAddrMode(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetFormat(vm::ptr texture, SceGxmTextureFormat texFormat) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmTextureFormat sceGxmTextureGetFormat(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetLodBias(vm::ptr texture, u32 bias) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmTextureGetLodBias(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetStride(vm::ptr texture, u32 byteStride) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmTextureGetStride(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetWidth(vm::ptr texture, u32 width) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmTextureGetWidth(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetHeight(vm::ptr texture, u32 height) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmTextureGetHeight(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetData(vm::ptr texture, vm::cptr data) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceGxmTextureGetData(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetMipmapCount(vm::ptr texture, u32 mipCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmTextureGetMipmapCount(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetPalette(vm::ptr texture, vm::cptr paletteData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceGxmTextureGetPalette(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -SceGxmTextureGammaMode sceGxmTextureGetGammaMode(vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmTextureSetGammaMode(vm::ptr texture, SceGxmTextureGammaMode gammaMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmGetPrecomputedVertexStateSize(vm::cptr vertexProgram) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedVertexStateInit(vm::ptr precomputedState, vm::cptr vertexProgram, vm::ptr memBlock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmPrecomputedVertexStateSetDefaultUniformBuffer(vm::ptr precomputedState, vm::ptr defaultBuffer) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceGxmPrecomputedVertexStateGetDefaultUniformBuffer(vm::cptr precomputedState) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedVertexStateSetAllTextures(vm::ptr precomputedState, vm::cptr textures) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedVertexStateSetTexture(vm::ptr precomputedState, u32 textureIndex, vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedVertexStateSetAllUniformBuffers(vm::ptr precomputedState, vm::cptr> bufferDataArray) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedVertexStateSetUniformBuffer(vm::ptr precomputedState, u32 bufferIndex, vm::cptr bufferData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmGetPrecomputedFragmentStateSize(vm::cptr fragmentProgram) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedFragmentStateInit(vm::ptr precomputedState, vm::cptr fragmentProgram, vm::ptr memBlock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmPrecomputedFragmentStateSetDefaultUniformBuffer(vm::ptr precomputedState, vm::ptr defaultBuffer) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceGxmPrecomputedFragmentStateGetDefaultUniformBuffer(vm::cptr precomputedState) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedFragmentStateSetAllTextures(vm::ptr precomputedState, vm::cptr textureArray) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedFragmentStateSetTexture(vm::ptr precomputedState, u32 textureIndex, vm::cptr texture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedFragmentStateSetAllUniformBuffers(vm::ptr precomputedState, vm::cptr> bufferDataArray) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedFragmentStateSetUniformBuffer(vm::ptr precomputedState, u32 bufferIndex, vm::cptr bufferData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedFragmentStateSetAllAuxiliarySurfaces(vm::ptr precomputedState, vm::cptr auxSurfaceArray) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceGxmGetPrecomputedDrawSize(vm::cptr vertexProgram) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedDrawInit(vm::ptr precomputedDraw, vm::cptr vertexProgram, vm::ptr memBlock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedDrawSetAllVertexStreams(vm::ptr precomputedDraw, vm::cptr> streamDataArray) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmPrecomputedDrawSetVertexStream(vm::ptr precomputedDraw, u32 streamIndex, vm::cptr streamData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmPrecomputedDrawSetParams(vm::ptr precomputedDraw, SceGxmPrimitiveType primType, SceGxmIndexFormat indexType, vm::cptr indexData, u32 indexCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceGxmPrecomputedDrawSetParamsInstanced(vm::ptr precomputedDraw, SceGxmPrimitiveType primType, SceGxmIndexFormat indexType, vm::cptr indexData, u32 indexCount, u32 indexWrap) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -s32 sceGxmGetRenderTargetMemSizes(vm::cptr params, vm::ptr hostMemSize, vm::ptr driverMemSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmCreateRenderTarget(vm::cptr params, vm::pptr renderTarget) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmRenderTargetGetHostMem(vm::cptr renderTarget, vm::pptr hostMem) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmRenderTargetGetDriverMemBlock(vm::cptr renderTarget, vm::ptr driverMemBlock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmDestroyRenderTarget(vm::ptr renderTarget) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceGxmSetUniformDataF(vm::ptr uniformBuffer, vm::cptr parameter, u32 componentOffset, u32 componentCount, vm::cptr sourceData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceGxm, nid, name) - -DECLARE(arm_module_manager::SceGxm)("SceGxm", []() -{ - REG_FUNC(0xB0F1E4EC, sceGxmInitialize); - REG_FUNC(0xB627DE66, sceGxmTerminate); - //REG_FUNC(0x48C134AB, sceGxmBug9255RaisePrimitiveSplitThresholdEs2); - //REG_FUNC(0xA3A41A42, sceGxmBug9255SetPrimitiveSplitThresholdEs2); - REG_FUNC(0xC61E34FC, sceGxmMapMemory); - REG_FUNC(0x828C68E8, sceGxmUnmapMemory); - REG_FUNC(0xFA437510, sceGxmMapVertexUsseMemory); - REG_FUNC(0x008402C6, sceGxmMapFragmentUsseMemory); - REG_FUNC(0x099134F5, sceGxmUnmapVertexUsseMemory); - REG_FUNC(0x80CCEDBB, sceGxmUnmapFragmentUsseMemory); - REG_FUNC(0xEC5C26B5, sceGxmDisplayQueueAddEntry); - REG_FUNC(0xB98C5B0D, sceGxmDisplayQueueFinish); - REG_FUNC(0x6A6013E1, sceGxmSyncObjectCreate); - REG_FUNC(0x889AE88C, sceGxmSyncObjectDestroy); - REG_FUNC(0x8BDE825A, sceGxmGetNotificationRegion); - REG_FUNC(0x9F448E79, sceGxmNotificationWait); - REG_FUNC(0x3D25FCE9, sceGxmPadHeartbeat); - REG_FUNC(0x47E06984, sceGxmPadTriggerGpuPaTrace); - REG_FUNC(0x2DB6026C, sceGxmColorSurfaceGetData); - REG_FUNC(0x200A96E1, sceGxmColorSurfaceGetDitherMode); - REG_FUNC(0xF3C1C6C6, sceGxmColorSurfaceGetFormat); - REG_FUNC(0x6E3FA74D, sceGxmColorSurfaceGetScaleMode); - REG_FUNC(0xF33D9980, sceGxmColorSurfaceGetStrideInPixels); - REG_FUNC(0x52FDE962, sceGxmColorSurfaceGetType); - REG_FUNC(0xED0F6E25, sceGxmColorSurfaceInit); - REG_FUNC(0x613639FA, sceGxmColorSurfaceInitDisabled); - REG_FUNC(0x0E0EBB57, sceGxmColorSurfaceIsEnabled); - REG_FUNC(0x07DFEE4B, sceGxmColorSurfaceGetClip); - REG_FUNC(0x86456F7B, sceGxmColorSurfaceSetClip); - REG_FUNC(0x537CA400, sceGxmColorSurfaceSetData); - REG_FUNC(0x45027BAB, sceGxmColorSurfaceSetDitherMode); - REG_FUNC(0x5F9A3A16, sceGxmColorSurfaceSetFormat); - REG_FUNC(0x6B96EDF7, sceGxmColorSurfaceSetScaleMode); - //REG_FUNC(0x269B56BE, sceGxmDepthStencilSurfaceGetBackgroundDepth); - REG_FUNC(0xAAFC062B, sceGxmDepthStencilSurfaceGetBackgroundStencil); - REG_FUNC(0x2F5CC20C, sceGxmDepthStencilSurfaceGetForceLoadMode); - REG_FUNC(0x544AA05A, sceGxmDepthStencilSurfaceGetForceStoreMode); - REG_FUNC(0x8504038D, sceGxmDepthStencilSurfaceGetFormat); - REG_FUNC(0x11628789, sceGxmDepthStencilSurfaceGetStrideInSamples); - REG_FUNC(0xCA9D41D1, sceGxmDepthStencilSurfaceInit); - REG_FUNC(0xA41DB0D6, sceGxmDepthStencilSurfaceInitDisabled); - REG_FUNC(0x082200E1, sceGxmDepthStencilSurfaceIsEnabled); - //REG_FUNC(0x32F280F0, sceGxmDepthStencilSurfaceSetBackgroundDepth); - REG_FUNC(0xF5D3F3E8, sceGxmDepthStencilSurfaceSetBackgroundStencil); - REG_FUNC(0x0C44ACD7, sceGxmDepthStencilSurfaceSetForceLoadMode); - REG_FUNC(0x12AAA7AF, sceGxmDepthStencilSurfaceSetForceStoreMode); - REG_FUNC(0xF5C89643, sceGxmColorSurfaceSetGammaMode); - REG_FUNC(0xEE0B4DF0, sceGxmColorSurfaceGetGammaMode); - REG_FUNC(0xE0E3B3F8, sceGxmFragmentProgramGetProgram); - REG_FUNC(0xBC52320E, sceGxmVertexProgramGetProgram); - REG_FUNC(0xDE9D5911, sceGxmTextureGetAnisoMode); - REG_FUNC(0x5341BD46, sceGxmTextureGetData); - REG_FUNC(0xE868D2B3, sceGxmTextureGetFormat); - REG_FUNC(0x5420A086, sceGxmTextureGetHeight); - REG_FUNC(0x2DE55DA5, sceGxmTextureGetLodBias); - REG_FUNC(0xAE7FBB51, sceGxmTextureGetMagFilter); - REG_FUNC(0x920666C6, sceGxmTextureGetMinFilter); - REG_FUNC(0xCE94CA15, sceGxmTextureGetMipFilter); - REG_FUNC(0x4CC42929, sceGxmTextureGetMipmapCount); - REG_FUNC(0xB0BD52F3, sceGxmTextureGetStride); - REG_FUNC(0xF65D4917, sceGxmTextureGetType); - REG_FUNC(0xC037DA83, sceGxmTextureGetUAddrMode); - REG_FUNC(0xD2F0D9C1, sceGxmTextureGetVAddrMode); - REG_FUNC(0x126A3EB3, sceGxmTextureGetWidth); - REG_FUNC(0x11DC8DC9, sceGxmTextureInitCube); - REG_FUNC(0x4811AECB, sceGxmTextureInitLinear); - REG_FUNC(0x6679BEF0, sceGxmTextureInitLinearStrided); - REG_FUNC(0xD572D547, sceGxmTextureInitSwizzled); - REG_FUNC(0xE6F0DB27, sceGxmTextureInitTiled); - //REG_FUNC(0x5DBFBA2C, sceGxmTextureInitSwizzledArbitrary); - //REG_FUNC(0xE3DF5E3B, sceGxmTextureInitCubeArbitrary); - REG_FUNC(0xE719CBD4, sceGxmTextureSetAnisoMode); - REG_FUNC(0x855814C4, sceGxmTextureSetData); - REG_FUNC(0xFC943596, sceGxmTextureSetFormat); - REG_FUNC(0x1B20D5DF, sceGxmTextureSetHeight); - REG_FUNC(0xB65EE6F7, sceGxmTextureSetLodBias); - REG_FUNC(0xFA695FD7, sceGxmTextureSetMagFilter); - REG_FUNC(0x416764E3, sceGxmTextureSetMinFilter); - REG_FUNC(0x1CA9FE0B, sceGxmTextureSetMipFilter); - REG_FUNC(0xD2DC4643, sceGxmTextureSetMipmapCount); - REG_FUNC(0x58D0EB0A, sceGxmTextureSetStride); - REG_FUNC(0x8699ECF4, sceGxmTextureSetUAddrMode); - REG_FUNC(0xFA22F6CC, sceGxmTextureSetVAddrMode); - REG_FUNC(0x5A690B60, sceGxmTextureSetWidth); - REG_FUNC(0xDD6AABFA, sceGxmTextureSetPalette); - REG_FUNC(0x0D189C30, sceGxmTextureGetPalette); - REG_FUNC(0xA6D9F4DA, sceGxmTextureSetGammaMode); - REG_FUNC(0xF23FCE81, sceGxmTextureGetGammaMode); - REG_FUNC(0x85DE8506, sceGxmGetPrecomputedFragmentStateSize); - REG_FUNC(0x9D83CA3B, sceGxmGetPrecomputedVertexStateSize); - REG_FUNC(0x41BBD792, sceGxmGetPrecomputedDrawSize); - REG_FUNC(0xA197F096, sceGxmPrecomputedDrawInit); - REG_FUNC(0xB6C6F571, sceGxmPrecomputedDrawSetAllVertexStreams); - REG_FUNC(0x884D0D08, sceGxmPrecomputedDrawSetParams); - REG_FUNC(0x3A7B1633, sceGxmPrecomputedDrawSetParamsInstanced); - REG_FUNC(0x6C936214, sceGxmPrecomputedDrawSetVertexStream); - REG_FUNC(0xCECB584A, sceGxmPrecomputedFragmentStateGetDefaultUniformBuffer); - REG_FUNC(0x91236858, sceGxmPrecomputedFragmentStateSetDefaultUniformBuffer); - REG_FUNC(0xE297D7AF, sceGxmPrecomputedFragmentStateInit); - REG_FUNC(0x29118BF1, sceGxmPrecomputedFragmentStateSetTexture); - REG_FUNC(0xB452F1FB, sceGxmPrecomputedFragmentStateSetUniformBuffer); - REG_FUNC(0xC383DE39, sceGxmPrecomputedFragmentStateSetAllTextures); - REG_FUNC(0x5A783DC3, sceGxmPrecomputedFragmentStateSetAllUniformBuffers); - REG_FUNC(0x9D93B63A, sceGxmPrecomputedFragmentStateSetAllAuxiliarySurfaces); - REG_FUNC(0xBE5A68EF, sceGxmPrecomputedVertexStateGetDefaultUniformBuffer); - REG_FUNC(0x34BF64E3, sceGxmPrecomputedVertexStateSetDefaultUniformBuffer); - REG_FUNC(0xBE937F8D, sceGxmPrecomputedVertexStateInit); - REG_FUNC(0x1625D348, sceGxmPrecomputedVertexStateSetTexture); - REG_FUNC(0xDBF97ED6, sceGxmPrecomputedVertexStateSetUniformBuffer); - REG_FUNC(0x8FF68274, sceGxmPrecomputedVertexStateSetAllTextures); - REG_FUNC(0x0389861D, sceGxmPrecomputedVertexStateSetAllUniformBuffers); - REG_FUNC(0x1F856E5D, sceGxmGetRenderTargetMemSizes); - //REG_FUNC(0xB291C959, sceGxmGetRenderTargetMemSize); - REG_FUNC(0xD56CD7B1, sceGxmCreateRenderTarget); - REG_FUNC(0x207AF96B, sceGxmCreateRenderTarget); // !!! - REG_FUNC(0x0B94C50A, sceGxmDestroyRenderTarget); - REG_FUNC(0xD0EDAB4C, sceGxmRenderTargetGetHostMem); - REG_FUNC(0x49553737, sceGxmRenderTargetGetDriverMemBlock); - REG_FUNC(0xDBA33160, sceGxmBeginScene); - REG_FUNC(0x8734FF4E, sceGxmBeginScene); // !!! - REG_FUNC(0xE84CE5B4, sceGxmCreateContext); - REG_FUNC(0xEDDC5FB2, sceGxmDestroyContext); - REG_FUNC(0xBC059AFC, sceGxmDraw); - REG_FUNC(0x14C4E7D3, sceGxmDrawInstanced); - REG_FUNC(0xED3F78B8, sceGxmDrawPrecomputed); - REG_FUNC(0xFE300E2F, sceGxmEndScene); - REG_FUNC(0x0733D8AE, sceGxmFinish); - REG_FUNC(0x51FE0899, sceGxmMidSceneFlush); - REG_FUNC(0x2B5C0444, sceGxmMidSceneFlush); // !!! - REG_FUNC(0x4FA073A6, sceGxmPopUserMarker); - REG_FUNC(0x3276C475, sceGxmPushUserMarker); - REG_FUNC(0x7B1FABB6, sceGxmReserveFragmentDefaultUniformBuffer); - REG_FUNC(0x97118913, sceGxmReserveVertexDefaultUniformBuffer); - REG_FUNC(0x91B4F7F4, sceGxmSetAuxiliarySurface); - REG_FUNC(0x17B3BF86, sceGxmSetBackDepthBias); - REG_FUNC(0xB042A4D2, sceGxmSetBackDepthFunc); - REG_FUNC(0xC18B706B, sceGxmSetBackDepthWriteEnable); - REG_FUNC(0xE26B4834, sceGxmSetBackFragmentProgramEnable); - REG_FUNC(0xC88EB702, sceGxmSetBackLineFillLastPixelEnable); - REG_FUNC(0x8DCB0EDB, sceGxmSetBackPointLineWidth); - REG_FUNC(0xF66EC6FE, sceGxmSetBackPolygonMode); - REG_FUNC(0x1A68C8D2, sceGxmSetBackStencilFunc); - REG_FUNC(0x866A0517, sceGxmSetBackStencilRef); - REG_FUNC(0xE1CA72AE, sceGxmSetCullMode); - REG_FUNC(0xAD2F48D9, sceGxmSetFragmentProgram); - REG_FUNC(0x29C34DF5, sceGxmSetFragmentTexture); - REG_FUNC(0xEA0FC310, sceGxmSetFragmentUniformBuffer); - REG_FUNC(0xAAA97F81, sceGxmSetFrontDepthBias); - REG_FUNC(0x14BD831F, sceGxmSetFrontDepthFunc); - REG_FUNC(0xF32CBF34, sceGxmSetFrontDepthWriteEnable); - REG_FUNC(0x575958A8, sceGxmSetFrontFragmentProgramEnable); - REG_FUNC(0x5765DE9F, sceGxmSetFrontLineFillLastPixelEnable); - REG_FUNC(0x06752183, sceGxmSetFrontPointLineWidth); - REG_FUNC(0xFD93209D, sceGxmSetFrontPolygonMode); - REG_FUNC(0xB8645A9A, sceGxmSetFrontStencilFunc); - REG_FUNC(0x8FA6FE44, sceGxmSetFrontStencilRef); - REG_FUNC(0xF8952750, sceGxmSetPrecomputedFragmentState); - REG_FUNC(0xB7626A93, sceGxmSetPrecomputedVertexState); - REG_FUNC(0x70C86868, sceGxmSetRegionClip); - REG_FUNC(0x0DE9AEB7, sceGxmSetTwoSidedEnable); - REG_FUNC(0xC7A8CB77, sceGxmSetUserMarker); - REG_FUNC(0x8C6A24C9, sceGxmSetValidationEnable); - REG_FUNC(0x31FF8ABD, sceGxmSetVertexProgram); - REG_FUNC(0x895DF2E9, sceGxmSetVertexStream); - REG_FUNC(0x16C9D339, sceGxmSetVertexTexture); - REG_FUNC(0xC68015E4, sceGxmSetVertexUniformBuffer); - //REG_FUNC(0x3EB3380B, sceGxmSetViewport); - REG_FUNC(0x814F61EB, sceGxmSetViewportEnable); - REG_FUNC(0x7767EC49, sceGxmSetVisibilityBuffer); - REG_FUNC(0xEED86975, sceGxmSetWBufferEnable); - REG_FUNC(0x1BF8B853, sceGxmSetWClampEnable); - //REG_FUNC(0xD096336E, sceGxmSetWClampValue); - REG_FUNC(0x12625C34, sceGxmSetFrontVisibilityTestIndex); - REG_FUNC(0xAE7886FE, sceGxmSetBackVisibilityTestIndex); - REG_FUNC(0xD0E3CD9A, sceGxmSetFrontVisibilityTestOp); - REG_FUNC(0xC83F0AB3, sceGxmSetBackVisibilityTestOp); - REG_FUNC(0x30459117, sceGxmSetFrontVisibilityTestEnable); - REG_FUNC(0x17CF46B9, sceGxmSetBackVisibilityTestEnable); - REG_FUNC(0xED8B6C69, sceGxmProgramCheck); - REG_FUNC(0x277794C4, sceGxmProgramFindParameterByName); - REG_FUNC(0x7FFFDD7A, sceGxmProgramFindParameterBySemantic); - REG_FUNC(0x06FF9151, sceGxmProgramGetParameter); - REG_FUNC(0xD5D5FCCD, sceGxmProgramGetParameterCount); - REG_FUNC(0xBF5E2090, sceGxmProgramGetSize); - REG_FUNC(0x04BB3C59, sceGxmProgramGetType); - REG_FUNC(0x89613EF2, sceGxmProgramIsDepthReplaceUsed); - REG_FUNC(0x029B4F1C, sceGxmProgramIsDiscardUsed); - REG_FUNC(0x8FA3F9C3, sceGxmProgramGetDefaultUniformBufferSize); - REG_FUNC(0xDBA8D061, sceGxmProgramParameterGetArraySize); - REG_FUNC(0x1997DC17, sceGxmProgramParameterGetCategory); - REG_FUNC(0xBD2998D1, sceGxmProgramParameterGetComponentCount); - REG_FUNC(0xBB58267D, sceGxmProgramParameterGetContainerIndex); - REG_FUNC(0x6E61DDF5, sceGxmProgramParameterGetIndex); - REG_FUNC(0x6AF88A5D, sceGxmProgramParameterGetName); - REG_FUNC(0x5C79D59A, sceGxmProgramParameterGetResourceIndex); - REG_FUNC(0xAAFD61D5, sceGxmProgramParameterGetSemantic); - REG_FUNC(0xB85CC13E, sceGxmProgramParameterGetSemanticIndex); - REG_FUNC(0x7B9023C3, sceGxmProgramParameterGetType); - REG_FUNC(0xF7AA978B, sceGxmProgramParameterIsSamplerCube); - REG_FUNC(0x4CD2D19F, sceGxmShaderPatcherAddRefFragmentProgram); - REG_FUNC(0x0FD1E589, sceGxmShaderPatcherAddRefVertexProgram); - REG_FUNC(0x05032658, sceGxmShaderPatcherCreate); - REG_FUNC(0x4ED2E49D, sceGxmShaderPatcherCreateFragmentProgram); - REG_FUNC(0xB7BBA6D5, sceGxmShaderPatcherCreateVertexProgram); - REG_FUNC(0xEAA5B100, sceGxmShaderPatcherDestroy); - REG_FUNC(0xA949A803, sceGxmShaderPatcherGetProgramFromId); - REG_FUNC(0x2B528462, sceGxmShaderPatcherRegisterProgram); - REG_FUNC(0xBE2743D1, sceGxmShaderPatcherReleaseFragmentProgram); - REG_FUNC(0xAC1FF2DA, sceGxmShaderPatcherReleaseVertexProgram); - REG_FUNC(0x8E5FCC2A, sceGxmShaderPatcherSetAuxiliarySurface); - REG_FUNC(0xF103AF8A, sceGxmShaderPatcherUnregisterProgram); - REG_FUNC(0x9DBBC71C, sceGxmShaderPatcherGetHostMemAllocated); - REG_FUNC(0xC694D039, sceGxmShaderPatcherGetBufferMemAllocated); - REG_FUNC(0x7D2F83C1, sceGxmShaderPatcherGetVertexUsseMemAllocated); - REG_FUNC(0x3C9DDB4A, sceGxmShaderPatcherGetFragmentUsseMemAllocated); - REG_FUNC(0x96A7E6DD, sceGxmShaderPatcherGetUserData); - REG_FUNC(0xF9B8FCFD, sceGxmShaderPatcherSetUserData); - REG_FUNC(0x65DD0C84, sceGxmSetUniformDataF); -}); \ No newline at end of file diff --git a/rpcs3/Emu/PSP2/Modules/sceGxm.h b/rpcs3/Emu/PSP2/Modules/sceGxm.h deleted file mode 100644 index 10d41d1dc5..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceGxm.h +++ /dev/null @@ -1,1240 +0,0 @@ -#pragma once - -// Error Codes - -enum -{ - SCE_GXM_ERROR_UNINITIALIZED = 0x805B0000, - SCE_GXM_ERROR_ALREADY_INITIALIZED = 0x805B0001, - SCE_GXM_ERROR_OUT_OF_MEMORY = 0x805B0002, - SCE_GXM_ERROR_INVALID_VALUE = 0x805B0003, - SCE_GXM_ERROR_INVALID_POINTER = 0x805B0004, - SCE_GXM_ERROR_INVALID_ALIGNMENT = 0x805B0005, - SCE_GXM_ERROR_NOT_WITHIN_SCENE = 0x805B0006, - SCE_GXM_ERROR_WITHIN_SCENE = 0x805B0007, - SCE_GXM_ERROR_NULL_PROGRAM = 0x805B0008, - SCE_GXM_ERROR_UNSUPPORTED = 0x805B0009, - SCE_GXM_ERROR_PATCHER_INTERNAL = 0x805B000A, - SCE_GXM_ERROR_RESERVE_FAILED = 0x805B000B, - SCE_GXM_ERROR_PROGRAM_IN_USE = 0x805B000C, - SCE_GXM_ERROR_INVALID_INDEX_COUNT = 0x805B000D, - SCE_GXM_ERROR_INVALID_POLYGON_MODE = 0x805B000E, - SCE_GXM_ERROR_INVALID_SAMPLER_RESULT_TYPE_PRECISION = 0x805B000F, - SCE_GXM_ERROR_INVALID_SAMPLER_RESULT_TYPE_COMPONENT_COUNT = 0x805B0010, - SCE_GXM_ERROR_UNIFORM_BUFFER_NOT_RESERVED = 0x805B0011, - SCE_GXM_ERROR_INVALID_AUXILIARY_SURFACE = 0x805B0013, - SCE_GXM_ERROR_INVALID_PRECOMPUTED_DRAW = 0x805B0014, - SCE_GXM_ERROR_INVALID_PRECOMPUTED_VERTEX_STATE = 0x805B0015, - SCE_GXM_ERROR_INVALID_PRECOMPUTED_FRAGMENT_STATE = 0x805B0016, - SCE_GXM_ERROR_DRIVER = 0x805B0017, -}; - -using SceGxmDisplayQueueCallback = void(vm::cptr callbackData); - -struct SceGxmInitializeParams -{ - le_t flags; - le_t displayQueueMaxPendingCount; - vm::lptr displayQueueCallback; - le_t displayQueueCallbackDataSize; - le_t parameterBufferSize; -}; - -enum SceGxmMemoryAttribFlags : u32 -{ - SCE_GXM_MEMORY_ATTRIB_READ = 1, - SCE_GXM_MEMORY_ATTRIB_WRITE = 2, -}; - -enum SceGxmAttributeFormat : u8 -{ - SCE_GXM_ATTRIBUTE_FORMAT_U8, - SCE_GXM_ATTRIBUTE_FORMAT_S8, - SCE_GXM_ATTRIBUTE_FORMAT_U16, - SCE_GXM_ATTRIBUTE_FORMAT_S16, - SCE_GXM_ATTRIBUTE_FORMAT_U8N, - SCE_GXM_ATTRIBUTE_FORMAT_S8N, - SCE_GXM_ATTRIBUTE_FORMAT_U16N, - SCE_GXM_ATTRIBUTE_FORMAT_S16N, - SCE_GXM_ATTRIBUTE_FORMAT_F16, - SCE_GXM_ATTRIBUTE_FORMAT_F32 -}; - -enum SceGxmDepthStencilFormat : u32 -{ - SCE_GXM_DEPTH_STENCIL_FORMAT_DF32 = 0x00044000u, - SCE_GXM_DEPTH_STENCIL_FORMAT_S8 = 0x00022000u, - SCE_GXM_DEPTH_STENCIL_FORMAT_DF32_S8 = 0x00066000u, - SCE_GXM_DEPTH_STENCIL_FORMAT_S8D24 = 0x01266000u, - SCE_GXM_DEPTH_STENCIL_FORMAT_D16 = 0x02444000u -}; - -enum SceGxmPrimitiveType : u32 -{ - SCE_GXM_PRIMITIVE_TRIANGLES = 0x00000000u, - SCE_GXM_PRIMITIVE_LINES = 0x04000000u, - SCE_GXM_PRIMITIVE_POINTS = 0x08000000u, - SCE_GXM_PRIMITIVE_TRIANGLE_STRIP = 0x0c000000u, - SCE_GXM_PRIMITIVE_TRIANGLE_FAN = 0x10000000u, - SCE_GXM_PRIMITIVE_TRIANGLE_EDGES = 0x14000000u -}; - -enum SceGxmEdgeEnableFlags : u32 -{ - SCE_GXM_EDGE_ENABLE_01 = 0x00000100u, - SCE_GXM_EDGE_ENABLE_12 = 0x00000200u, - SCE_GXM_EDGE_ENABLE_20 = 0x00000400u -}; - -enum SceGxmRegionClipMode : u32 -{ - SCE_GXM_REGION_CLIP_NONE = 0x00000000u, - SCE_GXM_REGION_CLIP_ALL = 0x40000000u, - SCE_GXM_REGION_CLIP_OUTSIDE = 0x80000000u, - SCE_GXM_REGION_CLIP_INSIDE = 0xc0000000u -}; - -enum SceGxmDepthFunc : u32 -{ - SCE_GXM_DEPTH_FUNC_NEVER = 0x00000000u, - SCE_GXM_DEPTH_FUNC_LESS = 0x00400000u, - SCE_GXM_DEPTH_FUNC_EQUAL = 0x00800000u, - SCE_GXM_DEPTH_FUNC_LESS_EQUAL = 0x00c00000u, - SCE_GXM_DEPTH_FUNC_GREATER = 0x01000000u, - SCE_GXM_DEPTH_FUNC_NOT_EQUAL = 0x01400000u, - SCE_GXM_DEPTH_FUNC_GREATER_EQUAL = 0x01800000u, - SCE_GXM_DEPTH_FUNC_ALWAYS = 0x01c00000u -}; - -enum SceGxmStencilFunc : u32 -{ - SCE_GXM_STENCIL_FUNC_NEVER = 0x00000000u, - SCE_GXM_STENCIL_FUNC_LESS = 0x02000000u, - SCE_GXM_STENCIL_FUNC_EQUAL = 0x04000000u, - SCE_GXM_STENCIL_FUNC_LESS_EQUAL = 0x06000000u, - SCE_GXM_STENCIL_FUNC_GREATER = 0x08000000u, - SCE_GXM_STENCIL_FUNC_NOT_EQUAL = 0x0a000000u, - SCE_GXM_STENCIL_FUNC_GREATER_EQUAL = 0x0c000000u, - SCE_GXM_STENCIL_FUNC_ALWAYS = 0x0e000000u -}; - -enum SceGxmStencilOp : u32 -{ - SCE_GXM_STENCIL_OP_KEEP = 0x00000000u, - SCE_GXM_STENCIL_OP_ZERO = 0x00000001u, - SCE_GXM_STENCIL_OP_REPLACE = 0x00000002u, - SCE_GXM_STENCIL_OP_INCR = 0x00000003u, - SCE_GXM_STENCIL_OP_DECR = 0x00000004u, - SCE_GXM_STENCIL_OP_INVERT = 0x00000005u, - SCE_GXM_STENCIL_OP_INCR_WRAP = 0x00000006u, - SCE_GXM_STENCIL_OP_DECR_WRAP = 0x00000007u -}; - -enum SceGxmCullMode : u32 -{ - SCE_GXM_CULL_NONE = 0x00000000u, - SCE_GXM_CULL_CW = 0x00000001u, - SCE_GXM_CULL_CCW = 0x00000002u -}; - -enum SceGxmPolygonMode : u32 -{ - SCE_GXM_POLYGON_MODE_TRIANGLE_FILL = 0x00000000u, - SCE_GXM_POLYGON_MODE_LINE = 0x00008000u, - SCE_GXM_POLYGON_MODE_POINT_10UV = 0x00010000u, - SCE_GXM_POLYGON_MODE_POINT = 0x00018000u, - SCE_GXM_POLYGON_MODE_POINT_01UV = 0x00020000u, - SCE_GXM_POLYGON_MODE_TRIANGLE_LINE = 0x00028000u, - SCE_GXM_POLYGON_MODE_TRIANGLE_POINT = 0x00030000u -}; - -enum SceGxmColorSwizzle4Mode : u32 -{ - SCE_GXM_COLOR_SWIZZLE4_ABGR = 0x00000000u, - SCE_GXM_COLOR_SWIZZLE4_ARGB = 0x00100000u, - SCE_GXM_COLOR_SWIZZLE4_RGBA = 0x00200000u, - SCE_GXM_COLOR_SWIZZLE4_BGRA = 0x00300000u -}; - -enum SceGxmColorSwizzle3Mode : u32 -{ - SCE_GXM_COLOR_SWIZZLE3_BGR = 0x00000000u, - SCE_GXM_COLOR_SWIZZLE3_RGB = 0x00100000u -}; - -enum SceGxmColorSwizzle2Mode : u32 -{ - SCE_GXM_COLOR_SWIZZLE2_GR = 0x00000000u, - SCE_GXM_COLOR_SWIZZLE2_RG = 0x00100000u, - SCE_GXM_COLOR_SWIZZLE2_RA = 0x00200000u, - SCE_GXM_COLOR_SWIZZLE2_AR = 0x00300000u -}; - -enum SceGxmColorSwizzle1Mode : u32 -{ - SCE_GXM_COLOR_SWIZZLE1_R = 0x00000000u, - SCE_GXM_COLOR_SWIZZLE1_G = 0x00100000u, - SCE_GXM_COLOR_SWIZZLE1_A = 0x00100000u -}; - -enum SceGxmColorBaseFormat : u32 -{ - SCE_GXM_COLOR_BASE_FORMAT_U8U8U8U8 = 0x00000000u, - SCE_GXM_COLOR_BASE_FORMAT_U8U8U8 = 0x10000000u, - SCE_GXM_COLOR_BASE_FORMAT_U5U6U5 = 0x30000000u, - SCE_GXM_COLOR_BASE_FORMAT_U1U5U5U5 = 0x40000000u, - SCE_GXM_COLOR_BASE_FORMAT_U4U4U4U4 = 0x50000000u, - SCE_GXM_COLOR_BASE_FORMAT_U8U3U3U2 = 0x60000000u, - SCE_GXM_COLOR_BASE_FORMAT_F16 = 0xf0000000u, - SCE_GXM_COLOR_BASE_FORMAT_F16F16 = 0x00800000u, - SCE_GXM_COLOR_BASE_FORMAT_F32 = 0x10800000u, - SCE_GXM_COLOR_BASE_FORMAT_S16 = 0x20800000u, - SCE_GXM_COLOR_BASE_FORMAT_S16S16 = 0x30800000u, - SCE_GXM_COLOR_BASE_FORMAT_U16 = 0x40800000u, - SCE_GXM_COLOR_BASE_FORMAT_U16U16 = 0x50800000u, - SCE_GXM_COLOR_BASE_FORMAT_U2U10U10U10 = 0x60800000u, - SCE_GXM_COLOR_BASE_FORMAT_U8 = 0x80800000u, - SCE_GXM_COLOR_BASE_FORMAT_S8 = 0x90800000u, - SCE_GXM_COLOR_BASE_FORMAT_S5S5U6 = 0xa0800000u, - SCE_GXM_COLOR_BASE_FORMAT_U8U8 = 0xb0800000u, - SCE_GXM_COLOR_BASE_FORMAT_S8S8 = 0xc0800000u, - SCE_GXM_COLOR_BASE_FORMAT_U8S8S8U8 = 0xd0800000u, - SCE_GXM_COLOR_BASE_FORMAT_S8S8S8S8 = 0xe0800000u, - SCE_GXM_COLOR_BASE_FORMAT_F16F16F16F16 = 0x01000000u, - SCE_GXM_COLOR_BASE_FORMAT_F32F32 = 0x11000000u, - SCE_GXM_COLOR_BASE_FORMAT_F11F11F10 = 0x21000000u, - SCE_GXM_COLOR_BASE_FORMAT_SE5M9M9M9 = 0x31000000u, - SCE_GXM_COLOR_BASE_FORMAT_U2F10F10F10 = 0x41000000u -}; - -enum SceGxmColorFormat : u32 -{ - // Supported formats - - SCE_GXM_COLOR_FORMAT_U8U8U8U8_ABGR = SCE_GXM_COLOR_BASE_FORMAT_U8U8U8U8 | SCE_GXM_COLOR_SWIZZLE4_ABGR, - SCE_GXM_COLOR_FORMAT_U8U8U8U8_ARGB = SCE_GXM_COLOR_BASE_FORMAT_U8U8U8U8 | SCE_GXM_COLOR_SWIZZLE4_ARGB, - SCE_GXM_COLOR_FORMAT_U8U8U8U8_RGBA = SCE_GXM_COLOR_BASE_FORMAT_U8U8U8U8 | SCE_GXM_COLOR_SWIZZLE4_RGBA, - SCE_GXM_COLOR_FORMAT_U8U8U8U8_BGRA = SCE_GXM_COLOR_BASE_FORMAT_U8U8U8U8 | SCE_GXM_COLOR_SWIZZLE4_BGRA, - - SCE_GXM_COLOR_FORMAT_U8U8U8_BGR = SCE_GXM_COLOR_BASE_FORMAT_U8U8U8 | SCE_GXM_COLOR_SWIZZLE3_BGR, - SCE_GXM_COLOR_FORMAT_U8U8U8_RGB = SCE_GXM_COLOR_BASE_FORMAT_U8U8U8 | SCE_GXM_COLOR_SWIZZLE3_RGB, - - SCE_GXM_COLOR_FORMAT_U5U6U5_BGR = SCE_GXM_COLOR_BASE_FORMAT_U5U6U5 | SCE_GXM_COLOR_SWIZZLE3_BGR, - SCE_GXM_COLOR_FORMAT_U5U6U5_RGB = SCE_GXM_COLOR_BASE_FORMAT_U5U6U5 | SCE_GXM_COLOR_SWIZZLE3_RGB, - - SCE_GXM_COLOR_FORMAT_U1U5U5U5_ABGR = SCE_GXM_COLOR_BASE_FORMAT_U1U5U5U5 | SCE_GXM_COLOR_SWIZZLE4_ABGR, - SCE_GXM_COLOR_FORMAT_U1U5U5U5_ARGB = SCE_GXM_COLOR_BASE_FORMAT_U1U5U5U5 | SCE_GXM_COLOR_SWIZZLE4_ARGB, - SCE_GXM_COLOR_FORMAT_U5U5U5U1_RGBA = SCE_GXM_COLOR_BASE_FORMAT_U1U5U5U5 | SCE_GXM_COLOR_SWIZZLE4_RGBA, - SCE_GXM_COLOR_FORMAT_U5U5U5U1_BGRA = SCE_GXM_COLOR_BASE_FORMAT_U1U5U5U5 | SCE_GXM_COLOR_SWIZZLE4_BGRA, - - SCE_GXM_COLOR_FORMAT_U4U4U4U4_ABGR = SCE_GXM_COLOR_BASE_FORMAT_U4U4U4U4 | SCE_GXM_COLOR_SWIZZLE4_ABGR, - SCE_GXM_COLOR_FORMAT_U4U4U4U4_ARGB = SCE_GXM_COLOR_BASE_FORMAT_U4U4U4U4 | SCE_GXM_COLOR_SWIZZLE4_ARGB, - SCE_GXM_COLOR_FORMAT_U4U4U4U4_RGBA = SCE_GXM_COLOR_BASE_FORMAT_U4U4U4U4 | SCE_GXM_COLOR_SWIZZLE4_RGBA, - SCE_GXM_COLOR_FORMAT_U4U4U4U4_BGRA = SCE_GXM_COLOR_BASE_FORMAT_U4U4U4U4 | SCE_GXM_COLOR_SWIZZLE4_BGRA, - - SCE_GXM_COLOR_FORMAT_U8U3U3U2_ARGB = SCE_GXM_COLOR_BASE_FORMAT_U8U3U3U2, - - SCE_GXM_COLOR_FORMAT_F16_R = SCE_GXM_COLOR_BASE_FORMAT_F16 | SCE_GXM_COLOR_SWIZZLE1_R, - SCE_GXM_COLOR_FORMAT_F16_G = SCE_GXM_COLOR_BASE_FORMAT_F16 | SCE_GXM_COLOR_SWIZZLE1_G, - - SCE_GXM_COLOR_FORMAT_F16F16_GR = SCE_GXM_COLOR_BASE_FORMAT_F16F16 | SCE_GXM_COLOR_SWIZZLE2_GR, - SCE_GXM_COLOR_FORMAT_F16F16_RG = SCE_GXM_COLOR_BASE_FORMAT_F16F16 | SCE_GXM_COLOR_SWIZZLE2_RG, - - SCE_GXM_COLOR_FORMAT_F32_R = SCE_GXM_COLOR_BASE_FORMAT_F32 | SCE_GXM_COLOR_SWIZZLE1_R, - - SCE_GXM_COLOR_FORMAT_S16_R = SCE_GXM_COLOR_BASE_FORMAT_S16 | SCE_GXM_COLOR_SWIZZLE1_R, - SCE_GXM_COLOR_FORMAT_S16_G = SCE_GXM_COLOR_BASE_FORMAT_S16 | SCE_GXM_COLOR_SWIZZLE1_G, - - SCE_GXM_COLOR_FORMAT_S16S16_GR = SCE_GXM_COLOR_BASE_FORMAT_S16S16 | SCE_GXM_COLOR_SWIZZLE2_GR, - SCE_GXM_COLOR_FORMAT_S16S16_RG = SCE_GXM_COLOR_BASE_FORMAT_S16S16 | SCE_GXM_COLOR_SWIZZLE2_RG, - - SCE_GXM_COLOR_FORMAT_U16_R = SCE_GXM_COLOR_BASE_FORMAT_U16 | SCE_GXM_COLOR_SWIZZLE1_R, - SCE_GXM_COLOR_FORMAT_U16_G = SCE_GXM_COLOR_BASE_FORMAT_U16 | SCE_GXM_COLOR_SWIZZLE1_G, - - SCE_GXM_COLOR_FORMAT_U16U16_GR = SCE_GXM_COLOR_BASE_FORMAT_U16U16 | SCE_GXM_COLOR_SWIZZLE2_GR, - SCE_GXM_COLOR_FORMAT_U16U16_RG = SCE_GXM_COLOR_BASE_FORMAT_U16U16 | SCE_GXM_COLOR_SWIZZLE2_RG, - - SCE_GXM_COLOR_FORMAT_U2U10U10U10_ABGR = SCE_GXM_COLOR_BASE_FORMAT_U2U10U10U10 | SCE_GXM_COLOR_SWIZZLE4_ABGR, - SCE_GXM_COLOR_FORMAT_U2U10U10U10_ARGB = SCE_GXM_COLOR_BASE_FORMAT_U2U10U10U10 | SCE_GXM_COLOR_SWIZZLE4_ARGB, - SCE_GXM_COLOR_FORMAT_U10U10U10U2_RGBA = SCE_GXM_COLOR_BASE_FORMAT_U2U10U10U10 | SCE_GXM_COLOR_SWIZZLE4_RGBA, - SCE_GXM_COLOR_FORMAT_U10U10U10U2_BGRA = SCE_GXM_COLOR_BASE_FORMAT_U2U10U10U10 | SCE_GXM_COLOR_SWIZZLE4_BGRA, - - SCE_GXM_COLOR_FORMAT_U8_R = SCE_GXM_COLOR_BASE_FORMAT_U8 | SCE_GXM_COLOR_SWIZZLE1_R, - SCE_GXM_COLOR_FORMAT_U8_A = SCE_GXM_COLOR_BASE_FORMAT_U8 | SCE_GXM_COLOR_SWIZZLE1_A, - - SCE_GXM_COLOR_FORMAT_S8_R = SCE_GXM_COLOR_BASE_FORMAT_S8 | SCE_GXM_COLOR_SWIZZLE1_R, - SCE_GXM_COLOR_FORMAT_S8_A = SCE_GXM_COLOR_BASE_FORMAT_S8 | SCE_GXM_COLOR_SWIZZLE1_A, - - SCE_GXM_COLOR_FORMAT_U6S5S5_BGR = SCE_GXM_COLOR_BASE_FORMAT_S5S5U6 | SCE_GXM_COLOR_SWIZZLE3_BGR, - SCE_GXM_COLOR_FORMAT_S5S5U6_RGB = SCE_GXM_COLOR_BASE_FORMAT_S5S5U6 | SCE_GXM_COLOR_SWIZZLE3_RGB, - - SCE_GXM_COLOR_FORMAT_U8U8_GR = SCE_GXM_COLOR_BASE_FORMAT_U8U8 | SCE_GXM_COLOR_SWIZZLE2_GR, - SCE_GXM_COLOR_FORMAT_U8U8_RG = SCE_GXM_COLOR_BASE_FORMAT_U8U8 | SCE_GXM_COLOR_SWIZZLE2_RG, - SCE_GXM_COLOR_FORMAT_U8U8_RA = SCE_GXM_COLOR_BASE_FORMAT_U8U8 | SCE_GXM_COLOR_SWIZZLE2_RA, - SCE_GXM_COLOR_FORMAT_U8U8_AR = SCE_GXM_COLOR_BASE_FORMAT_U8U8 | SCE_GXM_COLOR_SWIZZLE2_AR, - - SCE_GXM_COLOR_FORMAT_S8S8_GR = SCE_GXM_COLOR_BASE_FORMAT_S8S8 | SCE_GXM_COLOR_SWIZZLE2_GR, - SCE_GXM_COLOR_FORMAT_S8S8_RG = SCE_GXM_COLOR_BASE_FORMAT_S8S8 | SCE_GXM_COLOR_SWIZZLE2_RG, - SCE_GXM_COLOR_FORMAT_S8S8_RA = SCE_GXM_COLOR_BASE_FORMAT_S8S8 | SCE_GXM_COLOR_SWIZZLE2_RA, - SCE_GXM_COLOR_FORMAT_S8S8_AR = SCE_GXM_COLOR_BASE_FORMAT_S8S8 | SCE_GXM_COLOR_SWIZZLE2_AR, - - SCE_GXM_COLOR_FORMAT_U8S8S8U8_ABGR = SCE_GXM_COLOR_BASE_FORMAT_U8S8S8U8 | SCE_GXM_COLOR_SWIZZLE4_ABGR, - SCE_GXM_COLOR_FORMAT_U8U8S8S8_ARGB = SCE_GXM_COLOR_BASE_FORMAT_U8S8S8U8 | SCE_GXM_COLOR_SWIZZLE4_ARGB, - SCE_GXM_COLOR_FORMAT_U8S8S8U8_RGBA = SCE_GXM_COLOR_BASE_FORMAT_U8S8S8U8 | SCE_GXM_COLOR_SWIZZLE4_RGBA, - SCE_GXM_COLOR_FORMAT_S8S8U8U8_BGRA = SCE_GXM_COLOR_BASE_FORMAT_U8S8S8U8 | SCE_GXM_COLOR_SWIZZLE4_BGRA, - - SCE_GXM_COLOR_FORMAT_S8S8S8S8_ABGR = SCE_GXM_COLOR_BASE_FORMAT_S8S8S8S8 | SCE_GXM_COLOR_SWIZZLE4_ABGR, - SCE_GXM_COLOR_FORMAT_S8S8S8S8_ARGB = SCE_GXM_COLOR_BASE_FORMAT_S8S8S8S8 | SCE_GXM_COLOR_SWIZZLE4_ARGB, - SCE_GXM_COLOR_FORMAT_S8S8S8S8_RGBA = SCE_GXM_COLOR_BASE_FORMAT_S8S8S8S8 | SCE_GXM_COLOR_SWIZZLE4_RGBA, - SCE_GXM_COLOR_FORMAT_S8S8S8S8_BGRA = SCE_GXM_COLOR_BASE_FORMAT_S8S8S8S8 | SCE_GXM_COLOR_SWIZZLE4_BGRA, - - SCE_GXM_COLOR_FORMAT_F16F16F16F16_ABGR = SCE_GXM_COLOR_BASE_FORMAT_F16F16F16F16 | SCE_GXM_COLOR_SWIZZLE4_ABGR, - SCE_GXM_COLOR_FORMAT_F16F16F16F16_ARGB = SCE_GXM_COLOR_BASE_FORMAT_F16F16F16F16 | SCE_GXM_COLOR_SWIZZLE4_ARGB, - SCE_GXM_COLOR_FORMAT_F16F16F16F16_RGBA = SCE_GXM_COLOR_BASE_FORMAT_F16F16F16F16 | SCE_GXM_COLOR_SWIZZLE4_RGBA, - SCE_GXM_COLOR_FORMAT_F16F16F16F16_BGRA = SCE_GXM_COLOR_BASE_FORMAT_F16F16F16F16 | SCE_GXM_COLOR_SWIZZLE4_BGRA, - - SCE_GXM_COLOR_FORMAT_F32F32_GR = SCE_GXM_COLOR_BASE_FORMAT_F32F32 | SCE_GXM_COLOR_SWIZZLE2_GR, - SCE_GXM_COLOR_FORMAT_F32F32_RG = SCE_GXM_COLOR_BASE_FORMAT_F32F32 | SCE_GXM_COLOR_SWIZZLE2_RG, - - SCE_GXM_COLOR_FORMAT_F10F11F11_BGR = SCE_GXM_COLOR_BASE_FORMAT_F11F11F10 | SCE_GXM_COLOR_SWIZZLE3_BGR, - SCE_GXM_COLOR_FORMAT_F11F11F10_RGB = SCE_GXM_COLOR_BASE_FORMAT_F11F11F10 | SCE_GXM_COLOR_SWIZZLE3_RGB, - - SCE_GXM_COLOR_FORMAT_SE5M9M9M9_BGR = SCE_GXM_COLOR_BASE_FORMAT_SE5M9M9M9 | SCE_GXM_COLOR_SWIZZLE3_BGR, - SCE_GXM_COLOR_FORMAT_SE5M9M9M9_RGB = SCE_GXM_COLOR_BASE_FORMAT_SE5M9M9M9 | SCE_GXM_COLOR_SWIZZLE3_RGB, - - SCE_GXM_COLOR_FORMAT_U2F10F10F10_ABGR = SCE_GXM_COLOR_BASE_FORMAT_U2F10F10F10 | SCE_GXM_COLOR_SWIZZLE4_ABGR, - SCE_GXM_COLOR_FORMAT_U2F10F10F10_ARGB = SCE_GXM_COLOR_BASE_FORMAT_U2F10F10F10 | SCE_GXM_COLOR_SWIZZLE4_ARGB, - SCE_GXM_COLOR_FORMAT_F10F10F10U2_RGBA = SCE_GXM_COLOR_BASE_FORMAT_U2F10F10F10 | SCE_GXM_COLOR_SWIZZLE4_RGBA, - SCE_GXM_COLOR_FORMAT_F10F10F10U2_BGRA = SCE_GXM_COLOR_BASE_FORMAT_U2F10F10F10 | SCE_GXM_COLOR_SWIZZLE4_BGRA, - - // Legacy formats - - SCE_GXM_COLOR_FORMAT_A8B8G8R8 = SCE_GXM_COLOR_FORMAT_U8U8U8U8_ABGR, - SCE_GXM_COLOR_FORMAT_A8R8G8B8 = SCE_GXM_COLOR_FORMAT_U8U8U8U8_ARGB, - SCE_GXM_COLOR_FORMAT_R5G6B5 = SCE_GXM_COLOR_FORMAT_U5U6U5_RGB, - SCE_GXM_COLOR_FORMAT_A1R5G5B5 = SCE_GXM_COLOR_FORMAT_U1U5U5U5_ARGB, - SCE_GXM_COLOR_FORMAT_A4R4G4B4 = SCE_GXM_COLOR_FORMAT_U4U4U4U4_ARGB, - SCE_GXM_COLOR_FORMAT_A8 = SCE_GXM_COLOR_FORMAT_U8_A -}; - -enum SceGxmColorSurfaceType : u32 -{ - SCE_GXM_COLOR_SURFACE_LINEAR = 0x00000000u, - SCE_GXM_COLOR_SURFACE_TILED = 0x04000000u, - SCE_GXM_COLOR_SURFACE_SWIZZLED = 0x08000000u -}; - -enum SceGxmColorSurfaceGammaMode : u32 -{ - SCE_GXM_COLOR_SURFACE_GAMMA_NONE = 0x00000000u, - SCE_GXM_COLOR_SURFACE_GAMMA_R = 0x00001000u, - SCE_GXM_COLOR_SURFACE_GAMMA_GR = 0x00003000u, - SCE_GXM_COLOR_SURFACE_GAMMA_BGR = 0x00001000u -}; - -enum SceGxmColorSurfaceDitherMode : u32 -{ - SCE_GXM_COLOR_SURFACE_DITHER_DISABLED = 0x00000000u, - SCE_GXM_COLOR_SURFACE_DITHER_ENABLED = 0x00000008u -}; - -enum SceGxmDepthStencilSurfaceType : u32 -{ - SCE_GXM_DEPTH_STENCIL_SURFACE_LINEAR = 0x00000000u, - SCE_GXM_DEPTH_STENCIL_SURFACE_TILED = 0x00011000u -}; - -enum SceGxmOutputRegisterFormat : s32 -{ - SCE_GXM_OUTPUT_REGISTER_FORMAT_DECLARED, - SCE_GXM_OUTPUT_REGISTER_FORMAT_UCHAR4, - SCE_GXM_OUTPUT_REGISTER_FORMAT_CHAR4, - SCE_GXM_OUTPUT_REGISTER_FORMAT_USHORT2, - SCE_GXM_OUTPUT_REGISTER_FORMAT_SHORT2, - SCE_GXM_OUTPUT_REGISTER_FORMAT_HALF4, - SCE_GXM_OUTPUT_REGISTER_FORMAT_HALF2, - SCE_GXM_OUTPUT_REGISTER_FORMAT_FLOAT2, - SCE_GXM_OUTPUT_REGISTER_FORMAT_FLOAT -}; - -enum SceGxmMultisampleMode : u16 -{ - SCE_GXM_MULTISAMPLE_NONE, - SCE_GXM_MULTISAMPLE_2X, - SCE_GXM_MULTISAMPLE_4X -}; - -enum SceGxmTextureSwizzle4Mode : u32 -{ - SCE_GXM_TEXTURE_SWIZZLE4_ABGR = 0x00000000u, - SCE_GXM_TEXTURE_SWIZZLE4_ARGB = 0x00001000u, - SCE_GXM_TEXTURE_SWIZZLE4_RGBA = 0x00002000u, - SCE_GXM_TEXTURE_SWIZZLE4_BGRA = 0x00003000u, - SCE_GXM_TEXTURE_SWIZZLE4_1BGR = 0x00004000u, - SCE_GXM_TEXTURE_SWIZZLE4_1RGB = 0x00005000u, - SCE_GXM_TEXTURE_SWIZZLE4_RGB1 = 0x00006000u, - SCE_GXM_TEXTURE_SWIZZLE4_BGR1 = 0x00007000u -}; - -enum SceGxmTextureSwizzle3Mode : u32 -{ - SCE_GXM_TEXTURE_SWIZZLE3_BGR = 0x00000000u, - SCE_GXM_TEXTURE_SWIZZLE3_RGB = 0x00001000u -}; - -enum SceGxmTextureSwizzle2Mode : u32 -{ - SCE_GXM_TEXTURE_SWIZZLE2_GR = 0x00000000u, - SCE_GXM_TEXTURE_SWIZZLE2_00GR = 0x00001000u, - SCE_GXM_TEXTURE_SWIZZLE2_GRRR = 0x00002000u, - SCE_GXM_TEXTURE_SWIZZLE2_RGGG = 0x00003000u, - SCE_GXM_TEXTURE_SWIZZLE2_GRGR = 0x00004000u, - SCE_GXM_TEXTURE_SWIZZLE2_00RG = 0x00005000u -}; - -enum SceGxmTextureSwizzle2ModeAlt : u32 -{ - SCE_GXM_TEXTURE_SWIZZLE2_SD = 0x00000000u, - SCE_GXM_TEXTURE_SWIZZLE2_DS = 0x00001000u -}; - -enum SceGxmTextureSwizzle1Mode : u32 -{ - SCE_GXM_TEXTURE_SWIZZLE1_R = 0x00000000u, - SCE_GXM_TEXTURE_SWIZZLE1_000R = 0x00001000u, - SCE_GXM_TEXTURE_SWIZZLE1_111R = 0x00002000u, - SCE_GXM_TEXTURE_SWIZZLE1_RRRR = 0x00003000u, - SCE_GXM_TEXTURE_SWIZZLE1_0RRR = 0x00004000u, - SCE_GXM_TEXTURE_SWIZZLE1_1RRR = 0x00005000u, - SCE_GXM_TEXTURE_SWIZZLE1_R000 = 0x00006000u, - SCE_GXM_TEXTURE_SWIZZLE1_R111 = 0x00007000u -}; - -enum SceGxmTextureSwizzleYUV422Mode : u32 -{ - SCE_GXM_TEXTURE_SWIZZLE_YUYV_CSC0 = 0x00000000u, - SCE_GXM_TEXTURE_SWIZZLE_YVYU_CSC0 = 0x00001000u, - SCE_GXM_TEXTURE_SWIZZLE_UYVY_CSC0 = 0x00002000u, - SCE_GXM_TEXTURE_SWIZZLE_VYUY_CSC0 = 0x00003000u, - SCE_GXM_TEXTURE_SWIZZLE_YUYV_CSC1 = 0x00004000u, - SCE_GXM_TEXTURE_SWIZZLE_YVYU_CSC1 = 0x00005000u, - SCE_GXM_TEXTURE_SWIZZLE_UYVY_CSC1 = 0x00006000u, - SCE_GXM_TEXTURE_SWIZZLE_VYUY_CSC1 = 0x00007000u -}; - -enum SceGxmTextureSwizzleYUV420Mode : u32 -{ - SCE_GXM_TEXTURE_SWIZZLE_YUV_CSC0 = 0x00000000u, - SCE_GXM_TEXTURE_SWIZZLE_YVU_CSC0 = 0x00001000u, - SCE_GXM_TEXTURE_SWIZZLE_YUV_CSC1 = 0x00002000u, - SCE_GXM_TEXTURE_SWIZZLE_YVU_CSC1 = 0x00003000u -}; - -enum SceGxmTextureBaseFormat : u32 -{ - SCE_GXM_TEXTURE_BASE_FORMAT_U8 = 0x00000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_S8 = 0x01000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U4U4U4U4 = 0x02000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U8U3U3U2 = 0x03000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U1U5U5U5 = 0x04000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U5U6U5 = 0x05000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_S5S5U6 = 0x06000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U8U8 = 0x07000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_S8S8 = 0x08000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U16 = 0x09000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_S16 = 0x0a000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_F16 = 0x0b000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U8U8U8U8 = 0x0c000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_S8S8S8S8 = 0x0d000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U2U10U10U10 = 0x0e000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U16U16 = 0x0f000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_S16S16 = 0x10000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_F16F16 = 0x11000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_F32 = 0x12000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_F32M = 0x13000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_X8S8S8U8 = 0x14000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_X8U24 = 0x15000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U32 = 0x17000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_S32 = 0x18000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_SE5M9M9M9 = 0x19000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_F11F11F10 = 0x1a000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_F16F16F16F16 = 0x1b000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U16U16U16U16 = 0x1c000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_S16S16S16S16 = 0x1d000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_F32F32 = 0x1e000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U32U32 = 0x1f000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_PVRT2BPP = 0x80000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_PVRT4BPP = 0x81000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_PVRTII2BPP = 0x82000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_PVRTII4BPP = 0x83000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_UBC1 = 0x85000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_UBC2 = 0x86000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_UBC3 = 0x87000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_YUV420P2 = 0x90000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_YUV420P3 = 0x91000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_YUV422 = 0x92000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_P4 = 0x94000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_P8 = 0x95000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U8U8U8 = 0x98000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_S8S8S8 = 0x99000000u, - SCE_GXM_TEXTURE_BASE_FORMAT_U2F10F10F10 = 0x9a000000u -}; - -enum SceGxmTextureFormat : u32 -{ - // Supported formats - - SCE_GXM_TEXTURE_FORMAT_U8_000R = SCE_GXM_TEXTURE_BASE_FORMAT_U8 | SCE_GXM_TEXTURE_SWIZZLE1_000R, - SCE_GXM_TEXTURE_FORMAT_U8_111R = SCE_GXM_TEXTURE_BASE_FORMAT_U8 | SCE_GXM_TEXTURE_SWIZZLE1_111R, - SCE_GXM_TEXTURE_FORMAT_U8_RRRR = SCE_GXM_TEXTURE_BASE_FORMAT_U8 | SCE_GXM_TEXTURE_SWIZZLE1_RRRR, - SCE_GXM_TEXTURE_FORMAT_U8_0RRR = SCE_GXM_TEXTURE_BASE_FORMAT_U8 | SCE_GXM_TEXTURE_SWIZZLE1_0RRR, - SCE_GXM_TEXTURE_FORMAT_U8_1RRR = SCE_GXM_TEXTURE_BASE_FORMAT_U8 | SCE_GXM_TEXTURE_SWIZZLE1_1RRR, - SCE_GXM_TEXTURE_FORMAT_U8_R000 = SCE_GXM_TEXTURE_BASE_FORMAT_U8 | SCE_GXM_TEXTURE_SWIZZLE1_R000, - SCE_GXM_TEXTURE_FORMAT_U8_R111 = SCE_GXM_TEXTURE_BASE_FORMAT_U8 | SCE_GXM_TEXTURE_SWIZZLE1_R111, - SCE_GXM_TEXTURE_FORMAT_U8_R = SCE_GXM_TEXTURE_BASE_FORMAT_U8 | SCE_GXM_TEXTURE_SWIZZLE1_R, - - SCE_GXM_TEXTURE_FORMAT_S8_000R = SCE_GXM_TEXTURE_BASE_FORMAT_S8 | SCE_GXM_TEXTURE_SWIZZLE1_000R, - SCE_GXM_TEXTURE_FORMAT_S8_111R = SCE_GXM_TEXTURE_BASE_FORMAT_S8 | SCE_GXM_TEXTURE_SWIZZLE1_111R, - SCE_GXM_TEXTURE_FORMAT_S8_RRRR = SCE_GXM_TEXTURE_BASE_FORMAT_S8 | SCE_GXM_TEXTURE_SWIZZLE1_RRRR, - SCE_GXM_TEXTURE_FORMAT_S8_0RRR = SCE_GXM_TEXTURE_BASE_FORMAT_S8 | SCE_GXM_TEXTURE_SWIZZLE1_0RRR, - SCE_GXM_TEXTURE_FORMAT_S8_1RRR = SCE_GXM_TEXTURE_BASE_FORMAT_S8 | SCE_GXM_TEXTURE_SWIZZLE1_1RRR, - SCE_GXM_TEXTURE_FORMAT_S8_R000 = SCE_GXM_TEXTURE_BASE_FORMAT_S8 | SCE_GXM_TEXTURE_SWIZZLE1_R000, - SCE_GXM_TEXTURE_FORMAT_S8_R111 = SCE_GXM_TEXTURE_BASE_FORMAT_S8 | SCE_GXM_TEXTURE_SWIZZLE1_R111, - SCE_GXM_TEXTURE_FORMAT_S8_R = SCE_GXM_TEXTURE_BASE_FORMAT_S8 | SCE_GXM_TEXTURE_SWIZZLE1_R, - - SCE_GXM_TEXTURE_FORMAT_U4U4U4U4_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_U4U4U4U4 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_U4U4U4U4_ARGB = SCE_GXM_TEXTURE_BASE_FORMAT_U4U4U4U4 | SCE_GXM_TEXTURE_SWIZZLE4_ARGB, - SCE_GXM_TEXTURE_FORMAT_U4U4U4U4_RGBA = SCE_GXM_TEXTURE_BASE_FORMAT_U4U4U4U4 | SCE_GXM_TEXTURE_SWIZZLE4_RGBA, - SCE_GXM_TEXTURE_FORMAT_U4U4U4U4_BGRA = SCE_GXM_TEXTURE_BASE_FORMAT_U4U4U4U4 | SCE_GXM_TEXTURE_SWIZZLE4_BGRA, - SCE_GXM_TEXTURE_FORMAT_X4U4U4U4_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_U4U4U4U4 | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - SCE_GXM_TEXTURE_FORMAT_X4U4U4U4_1RGB = SCE_GXM_TEXTURE_BASE_FORMAT_U4U4U4U4 | SCE_GXM_TEXTURE_SWIZZLE4_1RGB, - SCE_GXM_TEXTURE_FORMAT_U4U4U4X4_RGB1 = SCE_GXM_TEXTURE_BASE_FORMAT_U4U4U4U4 | SCE_GXM_TEXTURE_SWIZZLE4_RGB1, - SCE_GXM_TEXTURE_FORMAT_U4U4U4X4_BGR1 = SCE_GXM_TEXTURE_BASE_FORMAT_U4U4U4U4 | SCE_GXM_TEXTURE_SWIZZLE4_BGR1, - - SCE_GXM_TEXTURE_FORMAT_U8U3U3U2_ARGB = SCE_GXM_TEXTURE_BASE_FORMAT_U8U3U3U2, - - SCE_GXM_TEXTURE_FORMAT_U1U5U5U5_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_U1U5U5U5 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_U1U5U5U5_ARGB = SCE_GXM_TEXTURE_BASE_FORMAT_U1U5U5U5 | SCE_GXM_TEXTURE_SWIZZLE4_ARGB, - SCE_GXM_TEXTURE_FORMAT_U5U5U5U1_RGBA = SCE_GXM_TEXTURE_BASE_FORMAT_U1U5U5U5 | SCE_GXM_TEXTURE_SWIZZLE4_RGBA, - SCE_GXM_TEXTURE_FORMAT_U5U5U5U1_BGRA = SCE_GXM_TEXTURE_BASE_FORMAT_U1U5U5U5 | SCE_GXM_TEXTURE_SWIZZLE4_BGRA, - SCE_GXM_TEXTURE_FORMAT_X1U5U5U5_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_U1U5U5U5 | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - SCE_GXM_TEXTURE_FORMAT_X1U5U5U5_1RGB = SCE_GXM_TEXTURE_BASE_FORMAT_U1U5U5U5 | SCE_GXM_TEXTURE_SWIZZLE4_1RGB, - SCE_GXM_TEXTURE_FORMAT_U5U5U5X1_RGB1 = SCE_GXM_TEXTURE_BASE_FORMAT_U1U5U5U5 | SCE_GXM_TEXTURE_SWIZZLE4_RGB1, - SCE_GXM_TEXTURE_FORMAT_U5U5U5X1_BGR1 = SCE_GXM_TEXTURE_BASE_FORMAT_U1U5U5U5 | SCE_GXM_TEXTURE_SWIZZLE4_BGR1, - - SCE_GXM_TEXTURE_FORMAT_U5U6U5_BGR = SCE_GXM_TEXTURE_BASE_FORMAT_U5U6U5 | SCE_GXM_TEXTURE_SWIZZLE3_BGR, - SCE_GXM_TEXTURE_FORMAT_U5U6U5_RGB = SCE_GXM_TEXTURE_BASE_FORMAT_U5U6U5 | SCE_GXM_TEXTURE_SWIZZLE3_RGB, - - SCE_GXM_TEXTURE_FORMAT_U6S5S5_BGR = SCE_GXM_TEXTURE_BASE_FORMAT_S5S5U6 | SCE_GXM_TEXTURE_SWIZZLE3_BGR, - SCE_GXM_TEXTURE_FORMAT_S5S5U6_RGB = SCE_GXM_TEXTURE_BASE_FORMAT_S5S5U6 | SCE_GXM_TEXTURE_SWIZZLE3_RGB, - - SCE_GXM_TEXTURE_FORMAT_U8U8_00GR = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8 | SCE_GXM_TEXTURE_SWIZZLE2_00GR, - SCE_GXM_TEXTURE_FORMAT_U8U8_GRRR = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8 | SCE_GXM_TEXTURE_SWIZZLE2_GRRR, - SCE_GXM_TEXTURE_FORMAT_U8U8_RGGG = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8 | SCE_GXM_TEXTURE_SWIZZLE2_RGGG, - SCE_GXM_TEXTURE_FORMAT_U8U8_GRGR = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8 | SCE_GXM_TEXTURE_SWIZZLE2_GRGR, - SCE_GXM_TEXTURE_FORMAT_U8U8_00RG = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8 | SCE_GXM_TEXTURE_SWIZZLE2_00RG, - SCE_GXM_TEXTURE_FORMAT_U8U8_GR = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8 | SCE_GXM_TEXTURE_SWIZZLE2_GR, - - SCE_GXM_TEXTURE_FORMAT_S8S8_00GR = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8 | SCE_GXM_TEXTURE_SWIZZLE2_00GR, - SCE_GXM_TEXTURE_FORMAT_S8S8_GRRR = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8 | SCE_GXM_TEXTURE_SWIZZLE2_GRRR, - SCE_GXM_TEXTURE_FORMAT_S8S8_RGGG = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8 | SCE_GXM_TEXTURE_SWIZZLE2_RGGG, - SCE_GXM_TEXTURE_FORMAT_S8S8_GRGR = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8 | SCE_GXM_TEXTURE_SWIZZLE2_GRGR, - SCE_GXM_TEXTURE_FORMAT_S8S8_00RG = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8 | SCE_GXM_TEXTURE_SWIZZLE2_00RG, - SCE_GXM_TEXTURE_FORMAT_S8S8_GR = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8 | SCE_GXM_TEXTURE_SWIZZLE2_GR, - - SCE_GXM_TEXTURE_FORMAT_U16_000R = SCE_GXM_TEXTURE_BASE_FORMAT_U16 | SCE_GXM_TEXTURE_SWIZZLE1_000R, - SCE_GXM_TEXTURE_FORMAT_U16_111R = SCE_GXM_TEXTURE_BASE_FORMAT_U16 | SCE_GXM_TEXTURE_SWIZZLE1_111R, - SCE_GXM_TEXTURE_FORMAT_U16_RRRR = SCE_GXM_TEXTURE_BASE_FORMAT_U16 | SCE_GXM_TEXTURE_SWIZZLE1_RRRR, - SCE_GXM_TEXTURE_FORMAT_U16_0RRR = SCE_GXM_TEXTURE_BASE_FORMAT_U16 | SCE_GXM_TEXTURE_SWIZZLE1_0RRR, - SCE_GXM_TEXTURE_FORMAT_U16_1RRR = SCE_GXM_TEXTURE_BASE_FORMAT_U16 | SCE_GXM_TEXTURE_SWIZZLE1_1RRR, - SCE_GXM_TEXTURE_FORMAT_U16_R000 = SCE_GXM_TEXTURE_BASE_FORMAT_U16 | SCE_GXM_TEXTURE_SWIZZLE1_R000, - SCE_GXM_TEXTURE_FORMAT_U16_R111 = SCE_GXM_TEXTURE_BASE_FORMAT_U16 | SCE_GXM_TEXTURE_SWIZZLE1_R111, - SCE_GXM_TEXTURE_FORMAT_U16_R = SCE_GXM_TEXTURE_BASE_FORMAT_U16 | SCE_GXM_TEXTURE_SWIZZLE1_R, - - SCE_GXM_TEXTURE_FORMAT_S16_000R = SCE_GXM_TEXTURE_BASE_FORMAT_S16 | SCE_GXM_TEXTURE_SWIZZLE1_000R, - SCE_GXM_TEXTURE_FORMAT_S16_111R = SCE_GXM_TEXTURE_BASE_FORMAT_S16 | SCE_GXM_TEXTURE_SWIZZLE1_111R, - SCE_GXM_TEXTURE_FORMAT_S16_RRRR = SCE_GXM_TEXTURE_BASE_FORMAT_S16 | SCE_GXM_TEXTURE_SWIZZLE1_RRRR, - SCE_GXM_TEXTURE_FORMAT_S16_0RRR = SCE_GXM_TEXTURE_BASE_FORMAT_S16 | SCE_GXM_TEXTURE_SWIZZLE1_0RRR, - SCE_GXM_TEXTURE_FORMAT_S16_1RRR = SCE_GXM_TEXTURE_BASE_FORMAT_S16 | SCE_GXM_TEXTURE_SWIZZLE1_1RRR, - SCE_GXM_TEXTURE_FORMAT_S16_R000 = SCE_GXM_TEXTURE_BASE_FORMAT_S16 | SCE_GXM_TEXTURE_SWIZZLE1_R000, - SCE_GXM_TEXTURE_FORMAT_S16_R111 = SCE_GXM_TEXTURE_BASE_FORMAT_S16 | SCE_GXM_TEXTURE_SWIZZLE1_R111, - SCE_GXM_TEXTURE_FORMAT_S16_R = SCE_GXM_TEXTURE_BASE_FORMAT_S16 | SCE_GXM_TEXTURE_SWIZZLE1_R, - - SCE_GXM_TEXTURE_FORMAT_F16_000R = SCE_GXM_TEXTURE_BASE_FORMAT_F16 | SCE_GXM_TEXTURE_SWIZZLE1_000R, - SCE_GXM_TEXTURE_FORMAT_F16_111R = SCE_GXM_TEXTURE_BASE_FORMAT_F16 | SCE_GXM_TEXTURE_SWIZZLE1_111R, - SCE_GXM_TEXTURE_FORMAT_F16_RRRR = SCE_GXM_TEXTURE_BASE_FORMAT_F16 | SCE_GXM_TEXTURE_SWIZZLE1_RRRR, - SCE_GXM_TEXTURE_FORMAT_F16_0RRR = SCE_GXM_TEXTURE_BASE_FORMAT_F16 | SCE_GXM_TEXTURE_SWIZZLE1_0RRR, - SCE_GXM_TEXTURE_FORMAT_F16_1RRR = SCE_GXM_TEXTURE_BASE_FORMAT_F16 | SCE_GXM_TEXTURE_SWIZZLE1_1RRR, - SCE_GXM_TEXTURE_FORMAT_F16_R000 = SCE_GXM_TEXTURE_BASE_FORMAT_F16 | SCE_GXM_TEXTURE_SWIZZLE1_R000, - SCE_GXM_TEXTURE_FORMAT_F16_R111 = SCE_GXM_TEXTURE_BASE_FORMAT_F16 | SCE_GXM_TEXTURE_SWIZZLE1_R111, - SCE_GXM_TEXTURE_FORMAT_F16_R = SCE_GXM_TEXTURE_BASE_FORMAT_F16 | SCE_GXM_TEXTURE_SWIZZLE1_R, - - SCE_GXM_TEXTURE_FORMAT_U8U8U8U8_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8U8U8 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_U8U8U8U8_ARGB = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8U8U8 | SCE_GXM_TEXTURE_SWIZZLE4_ARGB, - SCE_GXM_TEXTURE_FORMAT_U8U8U8U8_RGBA = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8U8U8 | SCE_GXM_TEXTURE_SWIZZLE4_RGBA, - SCE_GXM_TEXTURE_FORMAT_U8U8U8U8_BGRA = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8U8U8 | SCE_GXM_TEXTURE_SWIZZLE4_BGRA, - SCE_GXM_TEXTURE_FORMAT_X8U8U8U8_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8U8U8 | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - SCE_GXM_TEXTURE_FORMAT_X8U8U8U8_1RGB = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8U8U8 | SCE_GXM_TEXTURE_SWIZZLE4_1RGB, - SCE_GXM_TEXTURE_FORMAT_U8U8U8X8_RGB1 = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8U8U8 | SCE_GXM_TEXTURE_SWIZZLE4_RGB1, - SCE_GXM_TEXTURE_FORMAT_U8U8U8X8_BGR1 = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8U8U8 | SCE_GXM_TEXTURE_SWIZZLE4_BGR1, - - SCE_GXM_TEXTURE_FORMAT_S8S8S8S8_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8S8S8 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_S8S8S8S8_ARGB = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8S8S8 | SCE_GXM_TEXTURE_SWIZZLE4_ARGB, - SCE_GXM_TEXTURE_FORMAT_S8S8S8S8_RGBA = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8S8S8 | SCE_GXM_TEXTURE_SWIZZLE4_RGBA, - SCE_GXM_TEXTURE_FORMAT_S8S8S8S8_BGRA = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8S8S8 | SCE_GXM_TEXTURE_SWIZZLE4_BGRA, - SCE_GXM_TEXTURE_FORMAT_X8S8S8S8_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8S8S8 | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - SCE_GXM_TEXTURE_FORMAT_X8S8S8S8_1RGB = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8S8S8 | SCE_GXM_TEXTURE_SWIZZLE4_1RGB, - SCE_GXM_TEXTURE_FORMAT_S8S8S8X8_RGB1 = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8S8S8 | SCE_GXM_TEXTURE_SWIZZLE4_RGB1, - SCE_GXM_TEXTURE_FORMAT_S8S8S8X8_BGR1 = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8S8S8 | SCE_GXM_TEXTURE_SWIZZLE4_BGR1, - - SCE_GXM_TEXTURE_FORMAT_U2U10U10U10_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_U2U10U10U10 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_U2U10U10U10_ARGB = SCE_GXM_TEXTURE_BASE_FORMAT_U2U10U10U10 | SCE_GXM_TEXTURE_SWIZZLE4_ARGB, - SCE_GXM_TEXTURE_FORMAT_U10U10U10U2_RGBA = SCE_GXM_TEXTURE_BASE_FORMAT_U2U10U10U10 | SCE_GXM_TEXTURE_SWIZZLE4_RGBA, - SCE_GXM_TEXTURE_FORMAT_U10U10U10U2_BGRA = SCE_GXM_TEXTURE_BASE_FORMAT_U2U10U10U10 | SCE_GXM_TEXTURE_SWIZZLE4_BGRA, - SCE_GXM_TEXTURE_FORMAT_X2U10U10U10_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_U2U10U10U10 | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - SCE_GXM_TEXTURE_FORMAT_X2U10U10U10_1RGB = SCE_GXM_TEXTURE_BASE_FORMAT_U2U10U10U10 | SCE_GXM_TEXTURE_SWIZZLE4_1RGB, - SCE_GXM_TEXTURE_FORMAT_U10U10U10X2_RGB1 = SCE_GXM_TEXTURE_BASE_FORMAT_U2U10U10U10 | SCE_GXM_TEXTURE_SWIZZLE4_RGB1, - SCE_GXM_TEXTURE_FORMAT_U10U10U10X2_BGR1 = SCE_GXM_TEXTURE_BASE_FORMAT_U2U10U10U10 | SCE_GXM_TEXTURE_SWIZZLE4_BGR1, - - SCE_GXM_TEXTURE_FORMAT_U16U16_00GR = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16 | SCE_GXM_TEXTURE_SWIZZLE2_00GR, - SCE_GXM_TEXTURE_FORMAT_U16U16_GRRR = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16 | SCE_GXM_TEXTURE_SWIZZLE2_GRRR, - SCE_GXM_TEXTURE_FORMAT_U16U16_RGGG = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16 | SCE_GXM_TEXTURE_SWIZZLE2_RGGG, - SCE_GXM_TEXTURE_FORMAT_U16U16_GRGR = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16 | SCE_GXM_TEXTURE_SWIZZLE2_GRGR, - SCE_GXM_TEXTURE_FORMAT_U16U16_00RG = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16 | SCE_GXM_TEXTURE_SWIZZLE2_00RG, - SCE_GXM_TEXTURE_FORMAT_U16U16_GR = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16 | SCE_GXM_TEXTURE_SWIZZLE2_GR, - - SCE_GXM_TEXTURE_FORMAT_S16S16_00GR = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16 | SCE_GXM_TEXTURE_SWIZZLE2_00GR, - SCE_GXM_TEXTURE_FORMAT_S16S16_GRRR = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16 | SCE_GXM_TEXTURE_SWIZZLE2_GRRR, - SCE_GXM_TEXTURE_FORMAT_S16S16_RGGG = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16 | SCE_GXM_TEXTURE_SWIZZLE2_RGGG, - SCE_GXM_TEXTURE_FORMAT_S16S16_GRGR = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16 | SCE_GXM_TEXTURE_SWIZZLE2_GRGR, - SCE_GXM_TEXTURE_FORMAT_S16S16_00RG = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16 | SCE_GXM_TEXTURE_SWIZZLE2_00RG, - SCE_GXM_TEXTURE_FORMAT_S16S16_GR = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16 | SCE_GXM_TEXTURE_SWIZZLE2_GR, - - SCE_GXM_TEXTURE_FORMAT_F16F16_00GR = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16 | SCE_GXM_TEXTURE_SWIZZLE2_00GR, - SCE_GXM_TEXTURE_FORMAT_F16F16_GRRR = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16 | SCE_GXM_TEXTURE_SWIZZLE2_GRRR, - SCE_GXM_TEXTURE_FORMAT_F16F16_RGGG = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16 | SCE_GXM_TEXTURE_SWIZZLE2_RGGG, - SCE_GXM_TEXTURE_FORMAT_F16F16_GRGR = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16 | SCE_GXM_TEXTURE_SWIZZLE2_GRGR, - SCE_GXM_TEXTURE_FORMAT_F16F16_00RG = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16 | SCE_GXM_TEXTURE_SWIZZLE2_00RG, - SCE_GXM_TEXTURE_FORMAT_F16F16_GR = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16 | SCE_GXM_TEXTURE_SWIZZLE2_GR, - - SCE_GXM_TEXTURE_FORMAT_F32_000R = SCE_GXM_TEXTURE_BASE_FORMAT_F32 | SCE_GXM_TEXTURE_SWIZZLE1_000R, - SCE_GXM_TEXTURE_FORMAT_F32_111R = SCE_GXM_TEXTURE_BASE_FORMAT_F32 | SCE_GXM_TEXTURE_SWIZZLE1_111R, - SCE_GXM_TEXTURE_FORMAT_F32_RRRR = SCE_GXM_TEXTURE_BASE_FORMAT_F32 | SCE_GXM_TEXTURE_SWIZZLE1_RRRR, - SCE_GXM_TEXTURE_FORMAT_F32_0RRR = SCE_GXM_TEXTURE_BASE_FORMAT_F32 | SCE_GXM_TEXTURE_SWIZZLE1_0RRR, - SCE_GXM_TEXTURE_FORMAT_F32_1RRR = SCE_GXM_TEXTURE_BASE_FORMAT_F32 | SCE_GXM_TEXTURE_SWIZZLE1_1RRR, - SCE_GXM_TEXTURE_FORMAT_F32_R000 = SCE_GXM_TEXTURE_BASE_FORMAT_F32 | SCE_GXM_TEXTURE_SWIZZLE1_R000, - SCE_GXM_TEXTURE_FORMAT_F32_R111 = SCE_GXM_TEXTURE_BASE_FORMAT_F32 | SCE_GXM_TEXTURE_SWIZZLE1_R111, - SCE_GXM_TEXTURE_FORMAT_F32_R = SCE_GXM_TEXTURE_BASE_FORMAT_F32 | SCE_GXM_TEXTURE_SWIZZLE1_R, - - SCE_GXM_TEXTURE_FORMAT_F32M_000R = SCE_GXM_TEXTURE_BASE_FORMAT_F32M | SCE_GXM_TEXTURE_SWIZZLE1_000R, - SCE_GXM_TEXTURE_FORMAT_F32M_111R = SCE_GXM_TEXTURE_BASE_FORMAT_F32M | SCE_GXM_TEXTURE_SWIZZLE1_111R, - SCE_GXM_TEXTURE_FORMAT_F32M_RRRR = SCE_GXM_TEXTURE_BASE_FORMAT_F32M | SCE_GXM_TEXTURE_SWIZZLE1_RRRR, - SCE_GXM_TEXTURE_FORMAT_F32M_0RRR = SCE_GXM_TEXTURE_BASE_FORMAT_F32M | SCE_GXM_TEXTURE_SWIZZLE1_0RRR, - SCE_GXM_TEXTURE_FORMAT_F32M_1RRR = SCE_GXM_TEXTURE_BASE_FORMAT_F32M | SCE_GXM_TEXTURE_SWIZZLE1_1RRR, - SCE_GXM_TEXTURE_FORMAT_F32M_R000 = SCE_GXM_TEXTURE_BASE_FORMAT_F32M | SCE_GXM_TEXTURE_SWIZZLE1_R000, - SCE_GXM_TEXTURE_FORMAT_F32M_R111 = SCE_GXM_TEXTURE_BASE_FORMAT_F32M | SCE_GXM_TEXTURE_SWIZZLE1_R111, - SCE_GXM_TEXTURE_FORMAT_F32M_R = SCE_GXM_TEXTURE_BASE_FORMAT_F32M | SCE_GXM_TEXTURE_SWIZZLE1_R, - - SCE_GXM_TEXTURE_FORMAT_X8S8S8U8_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_X8S8S8U8 | SCE_GXM_TEXTURE_SWIZZLE3_BGR, - SCE_GXM_TEXTURE_FORMAT_X8U8S8S8_1RGB = SCE_GXM_TEXTURE_BASE_FORMAT_X8S8S8U8 | SCE_GXM_TEXTURE_SWIZZLE3_RGB, - - SCE_GXM_TEXTURE_FORMAT_X8U24_SD = SCE_GXM_TEXTURE_BASE_FORMAT_X8U24 | SCE_GXM_TEXTURE_SWIZZLE2_SD, - SCE_GXM_TEXTURE_FORMAT_U24X8_DS = SCE_GXM_TEXTURE_BASE_FORMAT_X8U24 | SCE_GXM_TEXTURE_SWIZZLE2_DS, - - SCE_GXM_TEXTURE_FORMAT_U32_000R = SCE_GXM_TEXTURE_BASE_FORMAT_U32 | SCE_GXM_TEXTURE_SWIZZLE1_000R, - SCE_GXM_TEXTURE_FORMAT_U32_111R = SCE_GXM_TEXTURE_BASE_FORMAT_U32 | SCE_GXM_TEXTURE_SWIZZLE1_111R, - SCE_GXM_TEXTURE_FORMAT_U32_RRRR = SCE_GXM_TEXTURE_BASE_FORMAT_U32 | SCE_GXM_TEXTURE_SWIZZLE1_RRRR, - SCE_GXM_TEXTURE_FORMAT_U32_0RRR = SCE_GXM_TEXTURE_BASE_FORMAT_U32 | SCE_GXM_TEXTURE_SWIZZLE1_0RRR, - SCE_GXM_TEXTURE_FORMAT_U32_1RRR = SCE_GXM_TEXTURE_BASE_FORMAT_U32 | SCE_GXM_TEXTURE_SWIZZLE1_1RRR, - SCE_GXM_TEXTURE_FORMAT_U32_R000 = SCE_GXM_TEXTURE_BASE_FORMAT_U32 | SCE_GXM_TEXTURE_SWIZZLE1_R000, - SCE_GXM_TEXTURE_FORMAT_U32_R111 = SCE_GXM_TEXTURE_BASE_FORMAT_U32 | SCE_GXM_TEXTURE_SWIZZLE1_R111, - SCE_GXM_TEXTURE_FORMAT_U32_R = SCE_GXM_TEXTURE_BASE_FORMAT_U32 | SCE_GXM_TEXTURE_SWIZZLE1_R, - - SCE_GXM_TEXTURE_FORMAT_S32_000R = SCE_GXM_TEXTURE_BASE_FORMAT_S32 | SCE_GXM_TEXTURE_SWIZZLE1_000R, - SCE_GXM_TEXTURE_FORMAT_S32_111R = SCE_GXM_TEXTURE_BASE_FORMAT_S32 | SCE_GXM_TEXTURE_SWIZZLE1_111R, - SCE_GXM_TEXTURE_FORMAT_S32_RRRR = SCE_GXM_TEXTURE_BASE_FORMAT_S32 | SCE_GXM_TEXTURE_SWIZZLE1_RRRR, - SCE_GXM_TEXTURE_FORMAT_S32_0RRR = SCE_GXM_TEXTURE_BASE_FORMAT_S32 | SCE_GXM_TEXTURE_SWIZZLE1_0RRR, - SCE_GXM_TEXTURE_FORMAT_S32_1RRR = SCE_GXM_TEXTURE_BASE_FORMAT_S32 | SCE_GXM_TEXTURE_SWIZZLE1_1RRR, - SCE_GXM_TEXTURE_FORMAT_S32_R000 = SCE_GXM_TEXTURE_BASE_FORMAT_S32 | SCE_GXM_TEXTURE_SWIZZLE1_R000, - SCE_GXM_TEXTURE_FORMAT_S32_R111 = SCE_GXM_TEXTURE_BASE_FORMAT_S32 | SCE_GXM_TEXTURE_SWIZZLE1_R111, - SCE_GXM_TEXTURE_FORMAT_S32_R = SCE_GXM_TEXTURE_BASE_FORMAT_S32 | SCE_GXM_TEXTURE_SWIZZLE1_R, - - SCE_GXM_TEXTURE_FORMAT_SE5M9M9M9_BGR = SCE_GXM_TEXTURE_BASE_FORMAT_SE5M9M9M9 | SCE_GXM_TEXTURE_SWIZZLE3_BGR, - SCE_GXM_TEXTURE_FORMAT_SE5M9M9M9_RGB = SCE_GXM_TEXTURE_BASE_FORMAT_SE5M9M9M9 | SCE_GXM_TEXTURE_SWIZZLE3_RGB, - - SCE_GXM_TEXTURE_FORMAT_F10F11F11_BGR = SCE_GXM_TEXTURE_BASE_FORMAT_F11F11F10 | SCE_GXM_TEXTURE_SWIZZLE3_BGR, - SCE_GXM_TEXTURE_FORMAT_F11F11F10_RGB = SCE_GXM_TEXTURE_BASE_FORMAT_F11F11F10 | SCE_GXM_TEXTURE_SWIZZLE3_RGB, - - SCE_GXM_TEXTURE_FORMAT_F16F16F16F16_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16F16F16 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_F16F16F16F16_ARGB = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16F16F16 | SCE_GXM_TEXTURE_SWIZZLE4_ARGB, - SCE_GXM_TEXTURE_FORMAT_F16F16F16F16_RGBA = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16F16F16 | SCE_GXM_TEXTURE_SWIZZLE4_RGBA, - SCE_GXM_TEXTURE_FORMAT_F16F16F16F16_BGRA = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16F16F16 | SCE_GXM_TEXTURE_SWIZZLE4_BGRA, - SCE_GXM_TEXTURE_FORMAT_X16F16F16F16_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16F16F16 | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - SCE_GXM_TEXTURE_FORMAT_X16F16F16F16_1RGB = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16F16F16 | SCE_GXM_TEXTURE_SWIZZLE4_1RGB, - SCE_GXM_TEXTURE_FORMAT_F16F16F16X16_RGB1 = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16F16F16 | SCE_GXM_TEXTURE_SWIZZLE4_RGB1, - SCE_GXM_TEXTURE_FORMAT_F16F16F16X16_BGR1 = SCE_GXM_TEXTURE_BASE_FORMAT_F16F16F16F16 | SCE_GXM_TEXTURE_SWIZZLE4_BGR1, - - SCE_GXM_TEXTURE_FORMAT_U16U16U16U16_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16U16U16 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_U16U16U16U16_ARGB = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16U16U16 | SCE_GXM_TEXTURE_SWIZZLE4_ARGB, - SCE_GXM_TEXTURE_FORMAT_U16U16U16U16_RGBA = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16U16U16 | SCE_GXM_TEXTURE_SWIZZLE4_RGBA, - SCE_GXM_TEXTURE_FORMAT_U16U16U16U16_BGRA = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16U16U16 | SCE_GXM_TEXTURE_SWIZZLE4_BGRA, - SCE_GXM_TEXTURE_FORMAT_X16U16U16U16_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16U16U16 | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - SCE_GXM_TEXTURE_FORMAT_X16U16U16U16_1RGB = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16U16U16 | SCE_GXM_TEXTURE_SWIZZLE4_1RGB, - SCE_GXM_TEXTURE_FORMAT_U16U16U16X16_RGB1 = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16U16U16 | SCE_GXM_TEXTURE_SWIZZLE4_RGB1, - SCE_GXM_TEXTURE_FORMAT_U16U16U16X16_BGR1 = SCE_GXM_TEXTURE_BASE_FORMAT_U16U16U16U16 | SCE_GXM_TEXTURE_SWIZZLE4_BGR1, - - SCE_GXM_TEXTURE_FORMAT_S16S16S16S16_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16S16S16 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_S16S16S16S16_ARGB = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16S16S16 | SCE_GXM_TEXTURE_SWIZZLE4_ARGB, - SCE_GXM_TEXTURE_FORMAT_S16S16S16S16_RGBA = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16S16S16 | SCE_GXM_TEXTURE_SWIZZLE4_RGBA, - SCE_GXM_TEXTURE_FORMAT_S16S16S16S16_BGRA = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16S16S16 | SCE_GXM_TEXTURE_SWIZZLE4_BGRA, - SCE_GXM_TEXTURE_FORMAT_X16S16S16S16_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16S16S16 | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - SCE_GXM_TEXTURE_FORMAT_X16S16S16S16_1RGB = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16S16S16 | SCE_GXM_TEXTURE_SWIZZLE4_1RGB, - SCE_GXM_TEXTURE_FORMAT_S16S16S16X16_RGB1 = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16S16S16 | SCE_GXM_TEXTURE_SWIZZLE4_RGB1, - SCE_GXM_TEXTURE_FORMAT_S16S16S16X16_BGR1 = SCE_GXM_TEXTURE_BASE_FORMAT_S16S16S16S16 | SCE_GXM_TEXTURE_SWIZZLE4_BGR1, - - SCE_GXM_TEXTURE_FORMAT_F32F32_00GR = SCE_GXM_TEXTURE_BASE_FORMAT_F32F32 | SCE_GXM_TEXTURE_SWIZZLE2_00GR, - SCE_GXM_TEXTURE_FORMAT_F32F32_GRRR = SCE_GXM_TEXTURE_BASE_FORMAT_F32F32 | SCE_GXM_TEXTURE_SWIZZLE2_GRRR, - SCE_GXM_TEXTURE_FORMAT_F32F32_RGGG = SCE_GXM_TEXTURE_BASE_FORMAT_F32F32 | SCE_GXM_TEXTURE_SWIZZLE2_RGGG, - SCE_GXM_TEXTURE_FORMAT_F32F32_GRGR = SCE_GXM_TEXTURE_BASE_FORMAT_F32F32 | SCE_GXM_TEXTURE_SWIZZLE2_GRGR, - SCE_GXM_TEXTURE_FORMAT_F32F32_00RG = SCE_GXM_TEXTURE_BASE_FORMAT_F32F32 | SCE_GXM_TEXTURE_SWIZZLE2_00RG, - SCE_GXM_TEXTURE_FORMAT_F32F32_GR = SCE_GXM_TEXTURE_BASE_FORMAT_F32F32 | SCE_GXM_TEXTURE_SWIZZLE2_GR, - - SCE_GXM_TEXTURE_FORMAT_U32U32_00GR = SCE_GXM_TEXTURE_BASE_FORMAT_U32U32 | SCE_GXM_TEXTURE_SWIZZLE2_00GR, - SCE_GXM_TEXTURE_FORMAT_U32U32_GRRR = SCE_GXM_TEXTURE_BASE_FORMAT_U32U32 | SCE_GXM_TEXTURE_SWIZZLE2_GRRR, - SCE_GXM_TEXTURE_FORMAT_U32U32_RGGG = SCE_GXM_TEXTURE_BASE_FORMAT_U32U32 | SCE_GXM_TEXTURE_SWIZZLE2_RGGG, - SCE_GXM_TEXTURE_FORMAT_U32U32_GRGR = SCE_GXM_TEXTURE_BASE_FORMAT_U32U32 | SCE_GXM_TEXTURE_SWIZZLE2_GRGR, - SCE_GXM_TEXTURE_FORMAT_U32U32_00RG = SCE_GXM_TEXTURE_BASE_FORMAT_U32U32 | SCE_GXM_TEXTURE_SWIZZLE2_00RG, - SCE_GXM_TEXTURE_FORMAT_U32U32_GR = SCE_GXM_TEXTURE_BASE_FORMAT_U32U32 | SCE_GXM_TEXTURE_SWIZZLE2_GR, - - SCE_GXM_TEXTURE_FORMAT_PVRT2BPP_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_PVRT2BPP | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_PVRT2BPP_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_PVRT2BPP | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - - SCE_GXM_TEXTURE_FORMAT_PVRT4BPP_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_PVRT4BPP | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_PVRT4BPP_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_PVRT4BPP | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - - SCE_GXM_TEXTURE_FORMAT_PVRTII2BPP_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_PVRTII2BPP | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_PVRTII2BPP_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_PVRTII2BPP | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - - SCE_GXM_TEXTURE_FORMAT_PVRTII4BPP_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_PVRTII4BPP | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_PVRTII4BPP_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_PVRTII4BPP | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - - SCE_GXM_TEXTURE_FORMAT_UBC1_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_UBC1 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - - SCE_GXM_TEXTURE_FORMAT_UBC2_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_UBC2 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - - SCE_GXM_TEXTURE_FORMAT_UBC3_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_UBC3 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - - SCE_GXM_TEXTURE_FORMAT_YUV420P2_CSC0 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV420P2 | SCE_GXM_TEXTURE_SWIZZLE_YUV_CSC0, - SCE_GXM_TEXTURE_FORMAT_YVU420P2_CSC0 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV420P2 | SCE_GXM_TEXTURE_SWIZZLE_YVU_CSC0, - SCE_GXM_TEXTURE_FORMAT_YUV420P2_CSC1 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV420P2 | SCE_GXM_TEXTURE_SWIZZLE_YUV_CSC1, - SCE_GXM_TEXTURE_FORMAT_YVU420P2_CSC1 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV420P2 | SCE_GXM_TEXTURE_SWIZZLE_YVU_CSC1, - - SCE_GXM_TEXTURE_FORMAT_YUV420P3_CSC0 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV420P3 | SCE_GXM_TEXTURE_SWIZZLE_YUV_CSC0, - SCE_GXM_TEXTURE_FORMAT_YVU420P3_CSC0 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV420P3 | SCE_GXM_TEXTURE_SWIZZLE_YVU_CSC0, - SCE_GXM_TEXTURE_FORMAT_YUV420P3_CSC1 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV420P3 | SCE_GXM_TEXTURE_SWIZZLE_YUV_CSC1, - SCE_GXM_TEXTURE_FORMAT_YVU420P3_CSC1 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV420P3 | SCE_GXM_TEXTURE_SWIZZLE_YVU_CSC1, - - SCE_GXM_TEXTURE_FORMAT_YUYV422_CSC0 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV422 | SCE_GXM_TEXTURE_SWIZZLE_YUYV_CSC0, - SCE_GXM_TEXTURE_FORMAT_YVYU422_CSC0 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV422 | SCE_GXM_TEXTURE_SWIZZLE_YVYU_CSC0, - SCE_GXM_TEXTURE_FORMAT_UYVY422_CSC0 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV422 | SCE_GXM_TEXTURE_SWIZZLE_UYVY_CSC0, - SCE_GXM_TEXTURE_FORMAT_VYUY422_CSC0 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV422 | SCE_GXM_TEXTURE_SWIZZLE_VYUY_CSC0, - SCE_GXM_TEXTURE_FORMAT_YUYV422_CSC1 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV422 | SCE_GXM_TEXTURE_SWIZZLE_YUYV_CSC1, - SCE_GXM_TEXTURE_FORMAT_YVYU422_CSC1 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV422 | SCE_GXM_TEXTURE_SWIZZLE_YVYU_CSC1, - SCE_GXM_TEXTURE_FORMAT_UYVY422_CSC1 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV422 | SCE_GXM_TEXTURE_SWIZZLE_UYVY_CSC1, - SCE_GXM_TEXTURE_FORMAT_VYUY422_CSC1 = SCE_GXM_TEXTURE_BASE_FORMAT_YUV422 | SCE_GXM_TEXTURE_SWIZZLE_VYUY_CSC1, - - SCE_GXM_TEXTURE_FORMAT_P4_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_P4 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_P4_ARGB = SCE_GXM_TEXTURE_BASE_FORMAT_P4 | SCE_GXM_TEXTURE_SWIZZLE4_ARGB, - SCE_GXM_TEXTURE_FORMAT_P4_RGBA = SCE_GXM_TEXTURE_BASE_FORMAT_P4 | SCE_GXM_TEXTURE_SWIZZLE4_RGBA, - SCE_GXM_TEXTURE_FORMAT_P4_BGRA = SCE_GXM_TEXTURE_BASE_FORMAT_P4 | SCE_GXM_TEXTURE_SWIZZLE4_BGRA, - SCE_GXM_TEXTURE_FORMAT_P4_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_P4 | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - SCE_GXM_TEXTURE_FORMAT_P4_1RGB = SCE_GXM_TEXTURE_BASE_FORMAT_P4 | SCE_GXM_TEXTURE_SWIZZLE4_1RGB, - SCE_GXM_TEXTURE_FORMAT_P4_RGB1 = SCE_GXM_TEXTURE_BASE_FORMAT_P4 | SCE_GXM_TEXTURE_SWIZZLE4_RGB1, - SCE_GXM_TEXTURE_FORMAT_P4_BGR1 = SCE_GXM_TEXTURE_BASE_FORMAT_P4 | SCE_GXM_TEXTURE_SWIZZLE4_BGR1, - - SCE_GXM_TEXTURE_FORMAT_P8_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_P8 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_P8_ARGB = SCE_GXM_TEXTURE_BASE_FORMAT_P8 | SCE_GXM_TEXTURE_SWIZZLE4_ARGB, - SCE_GXM_TEXTURE_FORMAT_P8_RGBA = SCE_GXM_TEXTURE_BASE_FORMAT_P8 | SCE_GXM_TEXTURE_SWIZZLE4_RGBA, - SCE_GXM_TEXTURE_FORMAT_P8_BGRA = SCE_GXM_TEXTURE_BASE_FORMAT_P8 | SCE_GXM_TEXTURE_SWIZZLE4_BGRA, - SCE_GXM_TEXTURE_FORMAT_P8_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_P8 | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - SCE_GXM_TEXTURE_FORMAT_P8_1RGB = SCE_GXM_TEXTURE_BASE_FORMAT_P8 | SCE_GXM_TEXTURE_SWIZZLE4_1RGB, - SCE_GXM_TEXTURE_FORMAT_P8_RGB1 = SCE_GXM_TEXTURE_BASE_FORMAT_P8 | SCE_GXM_TEXTURE_SWIZZLE4_RGB1, - SCE_GXM_TEXTURE_FORMAT_P8_BGR1 = SCE_GXM_TEXTURE_BASE_FORMAT_P8 | SCE_GXM_TEXTURE_SWIZZLE4_BGR1, - - SCE_GXM_TEXTURE_FORMAT_U8U8U8_BGR = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8U8 | SCE_GXM_TEXTURE_SWIZZLE3_BGR, - SCE_GXM_TEXTURE_FORMAT_U8U8U8_RGB = SCE_GXM_TEXTURE_BASE_FORMAT_U8U8U8 | SCE_GXM_TEXTURE_SWIZZLE3_RGB, - - SCE_GXM_TEXTURE_FORMAT_S8S8S8_BGR = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8S8 | SCE_GXM_TEXTURE_SWIZZLE3_BGR, - SCE_GXM_TEXTURE_FORMAT_S8S8S8_RGB = SCE_GXM_TEXTURE_BASE_FORMAT_S8S8S8 | SCE_GXM_TEXTURE_SWIZZLE3_RGB, - - SCE_GXM_TEXTURE_FORMAT_U2F10F10F10_ABGR = SCE_GXM_TEXTURE_BASE_FORMAT_U2F10F10F10 | SCE_GXM_TEXTURE_SWIZZLE4_ABGR, - SCE_GXM_TEXTURE_FORMAT_U2F10F10F10_ARGB = SCE_GXM_TEXTURE_BASE_FORMAT_U2F10F10F10 | SCE_GXM_TEXTURE_SWIZZLE4_ARGB, - SCE_GXM_TEXTURE_FORMAT_F10F10F10U2_RGBA = SCE_GXM_TEXTURE_BASE_FORMAT_U2F10F10F10 | SCE_GXM_TEXTURE_SWIZZLE4_RGBA, - SCE_GXM_TEXTURE_FORMAT_F10F10F10U2_BGRA = SCE_GXM_TEXTURE_BASE_FORMAT_U2F10F10F10 | SCE_GXM_TEXTURE_SWIZZLE4_BGRA, - SCE_GXM_TEXTURE_FORMAT_X2F10F10F10_1BGR = SCE_GXM_TEXTURE_BASE_FORMAT_U2F10F10F10 | SCE_GXM_TEXTURE_SWIZZLE4_1BGR, - SCE_GXM_TEXTURE_FORMAT_X2F10F10F10_1RGB = SCE_GXM_TEXTURE_BASE_FORMAT_U2F10F10F10 | SCE_GXM_TEXTURE_SWIZZLE4_1RGB, - SCE_GXM_TEXTURE_FORMAT_F10F10F10X2_RGB1 = SCE_GXM_TEXTURE_BASE_FORMAT_U2F10F10F10 | SCE_GXM_TEXTURE_SWIZZLE4_RGB1, - SCE_GXM_TEXTURE_FORMAT_F10F10F10X2_BGR1 = SCE_GXM_TEXTURE_BASE_FORMAT_U2F10F10F10 | SCE_GXM_TEXTURE_SWIZZLE4_BGR1, - - // Legacy formats - - SCE_GXM_TEXTURE_FORMAT_L8 = SCE_GXM_TEXTURE_FORMAT_U8_1RRR, - SCE_GXM_TEXTURE_FORMAT_A8 = SCE_GXM_TEXTURE_FORMAT_U8_R000, - SCE_GXM_TEXTURE_FORMAT_R8 = SCE_GXM_TEXTURE_FORMAT_U8_000R, - SCE_GXM_TEXTURE_FORMAT_A4R4G4B4 = SCE_GXM_TEXTURE_FORMAT_U4U4U4U4_ARGB, - SCE_GXM_TEXTURE_FORMAT_A1R5G5B5 = SCE_GXM_TEXTURE_FORMAT_U1U5U5U5_ARGB, - SCE_GXM_TEXTURE_FORMAT_R5G6B5 = SCE_GXM_TEXTURE_FORMAT_U5U6U5_RGB, - SCE_GXM_TEXTURE_FORMAT_A8L8 = SCE_GXM_TEXTURE_FORMAT_U8U8_GRRR, - SCE_GXM_TEXTURE_FORMAT_L8A8 = SCE_GXM_TEXTURE_FORMAT_U8U8_RGGG, - SCE_GXM_TEXTURE_FORMAT_G8R8 = SCE_GXM_TEXTURE_FORMAT_U8U8_00GR, - SCE_GXM_TEXTURE_FORMAT_L16 = SCE_GXM_TEXTURE_FORMAT_U16_1RRR, - SCE_GXM_TEXTURE_FORMAT_A16 = SCE_GXM_TEXTURE_FORMAT_U16_R000, - SCE_GXM_TEXTURE_FORMAT_R16 = SCE_GXM_TEXTURE_FORMAT_U16_000R, - SCE_GXM_TEXTURE_FORMAT_D16 = SCE_GXM_TEXTURE_FORMAT_U16_R, - SCE_GXM_TEXTURE_FORMAT_LF16 = SCE_GXM_TEXTURE_FORMAT_F16_1RRR, - SCE_GXM_TEXTURE_FORMAT_AF16 = SCE_GXM_TEXTURE_FORMAT_F16_R000, - SCE_GXM_TEXTURE_FORMAT_RF16 = SCE_GXM_TEXTURE_FORMAT_F16_000R, - SCE_GXM_TEXTURE_FORMAT_A8R8G8B8 = SCE_GXM_TEXTURE_FORMAT_U8U8U8U8_ARGB, - SCE_GXM_TEXTURE_FORMAT_A8B8G8R8 = SCE_GXM_TEXTURE_FORMAT_U8U8U8U8_ABGR, - SCE_GXM_TEXTURE_FORMAT_AF16LF16 = SCE_GXM_TEXTURE_FORMAT_F16F16_GRRR, - SCE_GXM_TEXTURE_FORMAT_LF16AF16 = SCE_GXM_TEXTURE_FORMAT_F16F16_RGGG, - SCE_GXM_TEXTURE_FORMAT_GF16RF16 = SCE_GXM_TEXTURE_FORMAT_F16F16_00GR, - SCE_GXM_TEXTURE_FORMAT_LF32M = SCE_GXM_TEXTURE_FORMAT_F32M_1RRR, - SCE_GXM_TEXTURE_FORMAT_AF32M = SCE_GXM_TEXTURE_FORMAT_F32M_R000, - SCE_GXM_TEXTURE_FORMAT_RF32M = SCE_GXM_TEXTURE_FORMAT_F32M_000R, - SCE_GXM_TEXTURE_FORMAT_DF32M = SCE_GXM_TEXTURE_FORMAT_F32M_R, - SCE_GXM_TEXTURE_FORMAT_VYUY = SCE_GXM_TEXTURE_FORMAT_VYUY422_CSC0, - SCE_GXM_TEXTURE_FORMAT_YVYU = SCE_GXM_TEXTURE_FORMAT_YVYU422_CSC0, - SCE_GXM_TEXTURE_FORMAT_UBC1 = SCE_GXM_TEXTURE_FORMAT_UBC1_ABGR, - SCE_GXM_TEXTURE_FORMAT_UBC2 = SCE_GXM_TEXTURE_FORMAT_UBC2_ABGR, - SCE_GXM_TEXTURE_FORMAT_UBC3 = SCE_GXM_TEXTURE_FORMAT_UBC3_ABGR, - SCE_GXM_TEXTURE_FORMAT_PVRT2BPP = SCE_GXM_TEXTURE_FORMAT_PVRT2BPP_ABGR, - SCE_GXM_TEXTURE_FORMAT_PVRT4BPP = SCE_GXM_TEXTURE_FORMAT_PVRT4BPP_ABGR, - SCE_GXM_TEXTURE_FORMAT_PVRTII2BPP = SCE_GXM_TEXTURE_FORMAT_PVRTII2BPP_ABGR, - SCE_GXM_TEXTURE_FORMAT_PVRTII4BPP = SCE_GXM_TEXTURE_FORMAT_PVRTII4BPP_ABGR -}; - -enum SceGxmTextureAnisoMode : u32 -{ - SCE_GXM_TEXTURE_ANISO_DISABLED = 0x00000000u, - SCE_GXM_TEXTURE_ANISO_ENABLED = 0x00004000u -}; - -enum SceGxmTextureType : u32 -{ - SCE_GXM_TEXTURE_SWIZZLED = 0x00000000u, - SCE_GXM_TEXTURE_CUBE = 0x40000000u, - SCE_GXM_TEXTURE_LINEAR = 0x60000000u, - SCE_GXM_TEXTURE_TILED = 0x80000000u, - SCE_GXM_TEXTURE_LINEAR_STRIDED = 0xc0000000u -}; - -enum SceGxmTextureFilter : u32 -{ - SCE_GXM_TEXTURE_FILTER_POINT = 0x00000000u, - SCE_GXM_TEXTURE_FILTER_LINEAR = 0x00000001u, - SCE_GXM_TEXTURE_FILTER_ANISO_LINEAR = 0x00000002u, - SCE_GXM_TEXTURE_FILTER_ANISO_POINT = 0x00000003u -}; - -enum SceGxmTextureMipFilter : u32 -{ - SCE_GXM_TEXTURE_MIP_FILTER_DISABLED = 0x00000000u, - SCE_GXM_TEXTURE_MIP_FILTER_ENABLED = 0x00000200u -}; - -enum SceGxmTextureAddrMode : u32 -{ - SCE_GXM_TEXTURE_ADDR_REPEAT = 0x00000000u, - SCE_GXM_TEXTURE_ADDR_MIRROR = 0x00000001u, - SCE_GXM_TEXTURE_ADDR_CLAMP = 0x00000002u, - SCE_GXM_TEXTURE_ADDR_MIRROR_CLAMP = 0x00000003u, - SCE_GXM_TEXTURE_ADDR_REPEAT_IGNORE_BORDER = 0x00000004u, - SCE_GXM_TEXTURE_ADDR_CLAMP_FULL_BORDER = 0x00000005u, - SCE_GXM_TEXTURE_ADDR_CLAMP_IGNORE_BORDER = 0x00000006u, - SCE_GXM_TEXTURE_ADDR_CLAMP_HALF_BORDER = 0x00000007u -}; - -enum SceGxmTextureGammaMode : u32 -{ - SCE_GXM_TEXTURE_GAMMA_NONE = 0x00000000u, - SCE_GXM_TEXTURE_GAMMA_R = 0x08000000u, - SCE_GXM_TEXTURE_GAMMA_GR = 0x18000000u, - SCE_GXM_TEXTURE_GAMMA_BGR = 0x08000000u -}; - -enum SceGxmIndexFormat : u32 -{ - SCE_GXM_INDEX_FORMAT_U16 = 0x00000000u, - SCE_GXM_INDEX_FORMAT_U32 = 0x01000000u -}; - -enum SceGxmIndexSource : u16 -{ - SCE_GXM_INDEX_SOURCE_INDEX_16BIT = 0x00000000u, - SCE_GXM_INDEX_SOURCE_INDEX_32BIT = 0x00000001u, - SCE_GXM_INDEX_SOURCE_INSTANCE_16BIT = 0x00000002u, - SCE_GXM_INDEX_SOURCE_INSTANCE_32BIT = 0x00000003u -}; - -enum SceGxmFragmentProgramMode : u32 -{ - SCE_GXM_FRAGMENT_PROGRAM_DISABLED = 0x00200000u, - SCE_GXM_FRAGMENT_PROGRAM_ENABLED = 0x00000000u -}; - -enum SceGxmDepthWriteMode : u32 -{ - SCE_GXM_DEPTH_WRITE_DISABLED = 0x00100000u, - SCE_GXM_DEPTH_WRITE_ENABLED = 0x00000000u -}; - -enum SceGxmLineFillLastPixelMode : u32 -{ - SCE_GXM_LINE_FILL_LAST_PIXEL_DISABLED = 0x00000000u, - SCE_GXM_LINE_FILL_LAST_PIXEL_ENABLED = 0x00080000u -}; - -enum SceGxmTwoSidedMode : u32 -{ - SCE_GXM_TWO_SIDED_DISABLED = 0x00000000u, - SCE_GXM_TWO_SIDED_ENABLED = 0x00000800u -}; - -enum SceGxmWClampMode : u32 -{ - SCE_GXM_WCLAMP_MODE_DISABLED = 0x00000000u, - SCE_GXM_WCLAMP_MODE_ENABLED = 0x00008000u -}; - -enum SceGxmViewportMode : u32 -{ - SCE_GXM_VIEWPORT_DISABLED = 0x00010000u, - SCE_GXM_VIEWPORT_ENABLED = 0x00000000u -}; - -enum SceGxmWBufferMode : u32 -{ - SCE_GXM_WBUFFER_DISABLED = 0x00000000u, - SCE_GXM_WBUFFER_ENABLED = 0x00004000u -}; - -enum SceGxmDepthStencilForceLoadMode : u32 -{ - SCE_GXM_DEPTH_STENCIL_FORCE_LOAD_DISABLED = 0x00000000u, - SCE_GXM_DEPTH_STENCIL_FORCE_LOAD_ENABLED = 0x00000002u -}; - -enum SceGxmDepthStencilForceStoreMode : u32 -{ - SCE_GXM_DEPTH_STENCIL_FORCE_STORE_DISABLED = 0x00000000u, - SCE_GXM_DEPTH_STENCIL_FORCE_STORE_ENABLED = 0x00000004u -}; - -enum SceGxmSceneFlags : u32 -{ - SCE_GXM_SCENE_FRAGMENT_SET_DEPENDENCY = 0x00000001u, - SCE_GXM_SCENE_VERTEX_WAIT_FOR_DEPENDENCY = 0x00000002u -}; - -enum SceGxmMidSceneFlags : u32 -{ - SCE_GXM_MIDSCENE_PRESERVE_DEFAULT_UNIFORM_BUFFERS = 0x00000001u -}; - -enum SceGxmColorSurfaceScaleMode : u32 -{ - SCE_GXM_COLOR_SURFACE_SCALE_NONE = 0x00000000u, - SCE_GXM_COLOR_SURFACE_SCALE_MSAA_DOWNSCALE = 0x00000001u -}; - -enum SceGxmOutputRegisterSize : u32 -{ - SCE_GXM_OUTPUT_REGISTER_SIZE_32BIT = 0x00000000u, - SCE_GXM_OUTPUT_REGISTER_SIZE_64BIT = 0x00000001u -}; - -enum SceGxmVisibilityTestMode : u32 -{ - SCE_GXM_VISIBILITY_TEST_DISABLED = 0x00000000u, - SCE_GXM_VISIBILITY_TEST_ENABLED = 0x00004000u -}; - -enum SceGxmVisibilityTestOp : u32 -{ - SCE_GXM_VISIBILITY_TEST_OP_INCREMENT = 0x00000000u, - SCE_GXM_VISIBILITY_TEST_OP_SET = 0x00040000u -}; - -enum SceGxmBlendFunc : u8 -{ - SCE_GXM_BLEND_FUNC_NONE, - SCE_GXM_BLEND_FUNC_ADD, - SCE_GXM_BLEND_FUNC_SUBTRACT, - SCE_GXM_BLEND_FUNC_REVERSE_SUBTRACT -}; - -enum SceGxmBlendFactor : u8 -{ - SCE_GXM_BLEND_FACTOR_ZERO, - SCE_GXM_BLEND_FACTOR_ONE, - SCE_GXM_BLEND_FACTOR_SRC_COLOR, - SCE_GXM_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, - SCE_GXM_BLEND_FACTOR_SRC_ALPHA, - SCE_GXM_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, - SCE_GXM_BLEND_FACTOR_DST_COLOR, - SCE_GXM_BLEND_FACTOR_ONE_MINUS_DST_COLOR, - SCE_GXM_BLEND_FACTOR_DST_ALPHA, - SCE_GXM_BLEND_FACTOR_ONE_MINUS_DST_ALPHA, - SCE_GXM_BLEND_FACTOR_SRC_ALPHA_SATURATE, - SCE_GXM_BLEND_FACTOR_DST_ALPHA_SATURATE -}; - -enum SceGxmColorMask : u8 -{ - SCE_GXM_COLOR_MASK_NONE = 0, - SCE_GXM_COLOR_MASK_A = (1 << 0), - SCE_GXM_COLOR_MASK_R = (1 << 1), - SCE_GXM_COLOR_MASK_G = (1 << 2), - SCE_GXM_COLOR_MASK_B = (1 << 3), - SCE_GXM_COLOR_MASK_ALL = (SCE_GXM_COLOR_MASK_A | SCE_GXM_COLOR_MASK_B | SCE_GXM_COLOR_MASK_G | SCE_GXM_COLOR_MASK_R) -}; - -struct SceGxmBlendInfo -{ - u8 colorMask; // SceGxmColorMask - u8 colorFunc : 4; // SceGxmBlendFunc - u8 alphaFunc : 4; // SceGxmBlendFunc - u8 colorSrc : 4; // SceGxmBlendFactor - u8 colorDst : 4; // SceGxmBlendFactor - u8 alphaSrc : 4; // SceGxmBlendFactor - u8 alphaDst : 4; // SceGxmBlendFactor -}; - -struct SceGxmRenderTarget; - -struct SceGxmSyncObject; - -struct SceGxmVertexAttribute -{ - le_t streamIndex; - le_t offset; - u8 format; // SceGxmAttributeFormat - u8 componentCount; - le_t regIndex; -}; - -struct SceGxmVertexStream -{ - le_t stride; - le_t indexSource; -}; - -struct SceGxmTexture -{ - le_t controlWords[4]; -}; - -struct SceGxmColorSurface -{ - le_t pbeSidebandWord; - le_t pbeEmitWords[6]; - le_t outputRegisterSize; - SceGxmTexture backgroundTex; -}; - -struct SceGxmDepthStencilSurface -{ - le_t zlsControl; - vm::lptr depthData; - vm::lptr stencilData; - le_t backgroundDepth; - le_t backgroundControl; -}; - -struct SceGxmAuxiliarySurface -{ - le_t colorFormat; // SceGxmColorFormat - le_t type; // SceGxmColorSurfaceType - le_t width; - le_t height; - le_t stride; - vm::lptr data; -}; - -struct SceGxmNotification -{ - vm::lptr address; - le_t value; -}; - -struct SceGxmValidRegion -{ - le_t xMin; - le_t yMin; - le_t xMax; - le_t yMax; -}; - -struct SceGxmContext; - -enum -{ - SCE_GXM_MINIMUM_CONTEXT_HOST_MEM_SIZE = 2048, - SCE_GXM_DEFAULT_VDM_RING_BUFFER_SIZE = (128 * 1024), - SCE_GXM_DEFAULT_VERTEX_RING_BUFFER_SIZE = (2 * 1024 * 1024), - SCE_GXM_DEFAULT_FRAGMENT_RING_BUFFER_SIZE = (512 * 1024), - SCE_GXM_DEFAULT_FRAGMENT_USSE_RING_BUFFER_SIZE = (16 * 1024), -}; - -struct SceGxmContextParams -{ - vm::lptr hostMem; - le_t hostMemSize; - vm::lptr vdmRingBufferMem; - le_t vdmRingBufferMemSize; - vm::lptr vertexRingBufferMem; - le_t vertexRingBufferMemSize; - vm::lptr fragmentRingBufferMem; - le_t fragmentRingBufferMemSize; - vm::lptr fragmentUsseRingBufferMem; - le_t fragmentUsseRingBufferMemSize; - le_t fragmentUsseRingBufferOffset; -}; - -struct SceGxmVertexProgram; - -struct SceGxmFragmentProgram; - -enum -{ - SCE_GXM_PRECOMPUTED_VERTEX_STATE_WORD_COUNT = 7, - SCE_GXM_PRECOMPUTED_FRAGMENT_STATE_WORD_COUNT = 9, - SCE_GXM_PRECOMPUTED_DRAW_WORD_COUNT = 11, -}; - -struct SceGxmPrecomputedVertexState -{ - le_t data[SCE_GXM_PRECOMPUTED_VERTEX_STATE_WORD_COUNT]; -}; - -struct SceGxmPrecomputedFragmentState -{ - le_t data[SCE_GXM_PRECOMPUTED_FRAGMENT_STATE_WORD_COUNT]; -}; - -struct SceGxmPrecomputedDraw -{ - le_t data[SCE_GXM_PRECOMPUTED_DRAW_WORD_COUNT]; -}; - -enum : u32 -{ - SCE_GXM_MAX_VERTEX_ATTRIBUTES = 16, - SCE_GXM_MAX_VERTEX_STREAMS = 4, - SCE_GXM_MAX_TEXTURE_UNITS = 16, - SCE_GXM_MAX_UNIFORM_BUFFERS = 8, - SCE_GXM_MAX_AUXILIARY_SURFACES = 3, -}; - -struct SceGxmProgram; - -struct SceGxmProgramParameter; - -enum SceGxmProgramType : s32 -{ - SCE_GXM_VERTEX_PROGRAM, - SCE_GXM_FRAGMENT_PROGRAM -}; - -enum SceGxmParameterCategory : s32 -{ - SCE_GXM_PARAMETER_CATEGORY_ATTRIBUTE, - SCE_GXM_PARAMETER_CATEGORY_UNIFORM, - SCE_GXM_PARAMETER_CATEGORY_SAMPLER, - SCE_GXM_PARAMETER_CATEGORY_AUXILIARY_SURFACE, - SCE_GXM_PARAMETER_CATEGORY_UNIFORM_BUFFER -}; - -enum SceGxmParameterType : s32 -{ - SCE_GXM_PARAMETER_TYPE_F32, - SCE_GXM_PARAMETER_TYPE_F16, - SCE_GXM_PARAMETER_TYPE_C10, - SCE_GXM_PARAMETER_TYPE_U32, - SCE_GXM_PARAMETER_TYPE_S32, - SCE_GXM_PARAMETER_TYPE_U16, - SCE_GXM_PARAMETER_TYPE_S16, - SCE_GXM_PARAMETER_TYPE_U8, - SCE_GXM_PARAMETER_TYPE_S8, - SCE_GXM_PARAMETER_TYPE_AGGREGATE -}; - -enum SceGxmParameterSemantic : s32 -{ - SCE_GXM_PARAMETER_SEMANTIC_NONE, - SCE_GXM_PARAMETER_SEMANTIC_ATTR, - SCE_GXM_PARAMETER_SEMANTIC_BCOL, - SCE_GXM_PARAMETER_SEMANTIC_BINORMAL, - SCE_GXM_PARAMETER_SEMANTIC_BLENDINDICES, - SCE_GXM_PARAMETER_SEMANTIC_BLENDWEIGHT, - SCE_GXM_PARAMETER_SEMANTIC_COLOR, - SCE_GXM_PARAMETER_SEMANTIC_DIFFUSE, - SCE_GXM_PARAMETER_SEMANTIC_FOGCOORD, - SCE_GXM_PARAMETER_SEMANTIC_NORMAL, - SCE_GXM_PARAMETER_SEMANTIC_POINTSIZE, - SCE_GXM_PARAMETER_SEMANTIC_POSITION, - SCE_GXM_PARAMETER_SEMANTIC_SPECULAR, - SCE_GXM_PARAMETER_SEMANTIC_TANGENT, - SCE_GXM_PARAMETER_SEMANTIC_TEXCOORD -}; - -struct SceGxmShaderPatcher; - -struct SceGxmRegisteredProgram; - -using SceGxmShaderPatcherHostAllocCallback = vm::ptr(vm::ptr userData, u32 size); -using SceGxmShaderPatcherHostFreeCallback = void(vm::ptr userData, vm::ptr mem); -using SceGxmShaderPatcherBufferAllocCallback = vm::ptr(vm::ptr userData, u32 size); -using SceGxmShaderPatcherBufferFreeCallback = void(vm::ptr userData, vm::ptr mem); -using SceGxmShaderPatcherUsseAllocCallback = vm::ptr(vm::ptr userData, u32 size, vm::ptr usseOffset); -using SceGxmShaderPatcherUsseFreeCallback = void(vm::ptr userData, vm::ptr mem); - -struct SceGxmShaderPatcherParams -{ - vm::lptr userData; - vm::lptr hostAllocCallback; - vm::lptr hostFreeCallback; - vm::lptr bufferAllocCallback; - vm::lptr bufferFreeCallback; - vm::lptr bufferMem; - le_t bufferMemSize; - vm::lptr vertexUsseAllocCallback; - vm::lptr vertexUsseFreeCallback; - vm::lptr vertexUsseMem; - le_t vertexUsseMemSize; - le_t vertexUsseOffset; - vm::lptr fragmentUsseAllocCallback; - vm::lptr fragmentUsseFreeCallback; - vm::lptr fragmentUsseMem; - le_t fragmentUsseMemSize; - le_t fragmentUsseOffset; -}; - -enum SceGxmRenderTargetFlags : u32 -{ - SCE_GXM_RENDER_TARGET_CUSTOM_MULTISAMPLE_LOCATIONS = 1 << 0, -}; - -struct SceGxmRenderTargetParams -{ - le_t flags; // SceGxmRenderTargetFlags - le_t width; - le_t height; - le_t scenesPerFrame; - le_t multisampleMode; // SceGxmMultisampleMode - le_t multisampleLocations; - vm::lptr hostMem; - le_t hostMemSize; - le_t driverMemBlock; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceHttp.cpp b/rpcs3/Emu/PSP2/Modules/sceHttp.cpp deleted file mode 100644 index 27c1e237fd..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceHttp.cpp +++ /dev/null @@ -1,356 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceHttp.h" - -logs::channel sceHttp("sceHttp"); - -s32 sceHttpInit(u32 poolSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpTerm() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpGetMemoryPoolStats(vm::ptr currentStat) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpCreateTemplate(vm::cptr userAgent, s32 httpVer, s32 autoProxyConf) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpDeleteTemplate(s32 tmplId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpCreateConnection(s32 tmplId, vm::cptr serverName, vm::cptr scheme, u16 port, s32 enableKeepalive) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpCreateConnectionWithURL(s32 tmplId, vm::cptr url, s32 enableKeepalive) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpDeleteConnection(s32 connId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpCreateRequest(s32 connId, s32 method, vm::cptr path, u64 contentLength) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpCreateRequestWithURL(s32 connId, s32 method, vm::cptr url, u64 contentLength) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpDeleteRequest(s32 reqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetResponseHeaderMaxSize(s32 id, u32 headerSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetRecvBlockSize(s32 id, u32 blockSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetRequestContentLength(s32 id, u64 contentLength) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSendRequest(s32 reqId, vm::cptr postData, u32 size) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpAbortRequest(s32 reqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpGetResponseContentLength(s32 reqId, vm::ptr contentLength) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpGetStatusCode(s32 reqId, vm::ptr statusCode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpGetAllResponseHeaders(s32 reqId, vm::pptr header, vm::ptr headerSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpReadData(s32 reqId, vm::ptr data, u32 size) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpAddRequestHeader(s32 id, vm::cptr name, vm::cptr value, u32 mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpRemoveRequestHeader(s32 id, vm::cptr name) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpParseResponseHeader(vm::cptr header, u32 headerLen, vm::cptr fieldStr, vm::cpptr fieldValue, vm::ptr valueLen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpParseStatusLine(vm::cptr statusLine, u32 lineLen, vm::ptr httpMajorVer, vm::ptr httpMinorVer, vm::ptr responseCode, vm::cpptr reasonPhrase, vm::ptr phraseLen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetAuthInfoCallback(s32 id, vm::ptr cbfunc, vm::ptr userArg) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetAuthEnabled(s32 id, s32 enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpGetAuthEnabled(s32 id, vm::ptr enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetRedirectCallback(s32 id, vm::ptr cbfunc, vm::ptr userArg) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetAutoRedirect(s32 id, s32 enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpGetAutoRedirect(s32 id, vm::ptr enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetResolveTimeOut(s32 id, u32 usec) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetResolveRetry(s32 id, s32 retry) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetConnectTimeOut(s32 id, u32 usec) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetSendTimeOut(s32 id, u32 usec) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetRecvTimeOut(s32 id, u32 usec) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpUriEscape(vm::ptr out, vm::ptr require, u32 prepare, vm::cptr in) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpUriUnescape(vm::ptr out, vm::ptr require, u32 prepare, vm::cptr in) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpUriParse(vm::ptr out, vm::cptr srcUrl, vm::ptr pool, vm::ptr require, u32 prepare) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpUriBuild(vm::ptr out, vm::ptr require, u32 prepare, vm::cptr srcElement, u32 option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpUriMerge(vm::ptr mergedUrl, vm::cptr url, vm::cptr relativeUrl, vm::ptr require, u32 prepare, u32 option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpUriSweepPath(vm::ptr dst, vm::cptr src, u32 srcSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetCookieEnabled(s32 id, s32 enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpGetCookieEnabled(s32 id, vm::ptr enable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpGetCookie(vm::cptr url, vm::ptr cookie, vm::ptr cookieLength, u32 prepare, s32 secure) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpAddCookie(vm::cptr url, vm::cptr cookie, u32 cookieLength) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetCookieRecvCallback(s32 id, vm::ptr cbfunc, vm::ptr userArg) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpSetCookieSendCallback(s32 id, vm::ptr cbfunc, vm::ptr userArg) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpsLoadCert(s32 caCertNum, vm::cpptr caList, vm::cptr cert, vm::cptr privKey) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpsUnloadCert() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpsEnableOption(u32 sslFlags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpsDisableOption(u32 sslFlags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpsGetSslError(s32 id, vm::ptr errNum, vm::ptr detail) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpsSetSslCallback(s32 id, vm::ptr cbfunc, vm::ptr userArg) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpsGetCaList(vm::ptr caList) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceHttpsFreeCaList(vm::ptr caList) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceHttp, nid, name) - -DECLARE(arm_module_manager::SceHttp)("SceHttp", []() -{ - REG_FUNC(0x214926D9, sceHttpInit); - REG_FUNC(0xC9076666, sceHttpTerm); - REG_FUNC(0xF98CDFA9, sceHttpGetMemoryPoolStats); - REG_FUNC(0x62241DAB, sceHttpCreateTemplate); - REG_FUNC(0xEC85ECFB, sceHttpDeleteTemplate); - REG_FUNC(0xC616C200, sceHttpCreateConnectionWithURL); - REG_FUNC(0xAEB3307E, sceHttpCreateConnection); - REG_FUNC(0xF0F65C15, sceHttpDeleteConnection); - REG_FUNC(0xBD5DA1D0, sceHttpCreateRequestWithURL); - REG_FUNC(0xB0284270, sceHttpCreateRequest); - REG_FUNC(0x3D3D29AD, sceHttpDeleteRequest); - REG_FUNC(0x9CA58B99, sceHttpSendRequest); - REG_FUNC(0x7EDE3979, sceHttpReadData); - REG_FUNC(0xF580D304, sceHttpGetResponseContentLength); - REG_FUNC(0x27071691, sceHttpGetStatusCode); - REG_FUNC(0xEA61662F, sceHttpAbortRequest); - REG_FUNC(0x7B51B122, sceHttpAddRequestHeader); - REG_FUNC(0x5EB5F548, sceHttpRemoveRequestHeader); - REG_FUNC(0x11F6C27F, sceHttpGetAllResponseHeaders); - REG_FUNC(0x03A6C89E, sceHttpParseResponseHeader); - REG_FUNC(0x179C56DB, sceHttpParseStatusLine); - REG_FUNC(0x1DA2A673, sceHttpUriEscape); - REG_FUNC(0x1274D318, sceHttpUriUnescape); - REG_FUNC(0x1D45F24E, sceHttpUriParse); - REG_FUNC(0x47664424, sceHttpUriBuild); - REG_FUNC(0x75027D1D, sceHttpUriMerge); - REG_FUNC(0x50737A3F, sceHttpUriSweepPath); - REG_FUNC(0x37C30C90, sceHttpSetRequestContentLength); - REG_FUNC(0x11EC42D0, sceHttpSetAuthEnabled); - REG_FUNC(0x6727874C, sceHttpGetAuthEnabled); - REG_FUNC(0x34891C3F, sceHttpSetAutoRedirect); - REG_FUNC(0x6EAD73EB, sceHttpGetAutoRedirect); - REG_FUNC(0xE0A3A88D, sceHttpSetAuthInfoCallback); - REG_FUNC(0x4E08167D, sceHttpSetRedirectCallback); - REG_FUNC(0x8455B5B3, sceHttpSetResolveTimeOut); - REG_FUNC(0x9AB56EA7, sceHttpSetResolveRetry); - REG_FUNC(0x237CA86E, sceHttpSetConnectTimeOut); - REG_FUNC(0x8AE3F008, sceHttpSetSendTimeOut); - REG_FUNC(0x94BF196E, sceHttpSetRecvTimeOut); - //REG_FUNC(0x27A98BDA, sceHttpSetNonblock); - //REG_FUNC(0xD65746BC, sceHttpGetNonblock); - //REG_FUNC(0x5CEB6554, sceHttpSetEpollId); - //REG_FUNC(0x9E031D7C, sceHttpGetEpollId); - //REG_FUNC(0x94F7256A, sceHttpWaitRequest); - //REG_FUNC(0x7C99AF67, sceHttpCreateEpoll); - //REG_FUNC(0x0F1FD1B3, sceHttpSetEpoll); - //REG_FUNC(0xCFB1DA4B, sceHttpUnsetEpoll); - //REG_FUNC(0x65FE983F, sceHttpGetEpoll); - //REG_FUNC(0x07D9F8BB, sceHttpDestroyEpoll); - REG_FUNC(0xAEE573A3, sceHttpSetCookieEnabled); - REG_FUNC(0x1B6EF66E, sceHttpGetCookieEnabled); - REG_FUNC(0x70220BFA, sceHttpGetCookie); - REG_FUNC(0xBEDB988D, sceHttpAddCookie); - //REG_FUNC(0x4259FB9E, sceHttpCookieExport); - //REG_FUNC(0x9DF48282, sceHttpCookieImport); - REG_FUNC(0xD4F32A23, sceHttpSetCookieRecvCallback); - REG_FUNC(0x11C03867, sceHttpSetCookieSendCallback); - REG_FUNC(0xAE8D7C33, sceHttpsLoadCert); - REG_FUNC(0x8577833F, sceHttpsUnloadCert); - REG_FUNC(0x9FBE2869, sceHttpsEnableOption); - REG_FUNC(0xC6D60403, sceHttpsDisableOption); - //REG_FUNC(0x72CB0741, sceHttpsEnableOptionPrivate); - //REG_FUNC(0x00659635, sceHttpsDisableOptionPrivate); - REG_FUNC(0x2B79BDE0, sceHttpsGetSslError); - REG_FUNC(0xA0926037, sceHttpsSetSslCallback); - REG_FUNC(0xF71AA58D, sceHttpsGetCaList); - REG_FUNC(0x56C95D94, sceHttpsFreeCaList); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceHttp.h b/rpcs3/Emu/PSP2/Modules/sceHttp.h deleted file mode 100644 index 1736330349..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceHttp.h +++ /dev/null @@ -1,72 +0,0 @@ -#pragma once - -#include "sceSsl.h" - -enum SceHttpHttpVersion : s32 -{ - SCE_HTTP_VERSION_1_0 = 1, - SCE_HTTP_VERSION_1_1 -}; - -enum SceHttpProxyMode : s32 -{ - SCE_HTTP_PROXY_AUTO, - SCE_HTTP_PROXY_MANUAL -}; - -enum SceHttpAddHeaderMode : s32 -{ - SCE_HTTP_HEADER_OVERWRITE, - SCE_HTTP_HEADER_ADD -}; - -enum SceHttpAuthType : s32 -{ - SCE_HTTP_AUTH_BASIC, - SCE_HTTP_AUTH_DIGEST, - SCE_HTTP_AUTH_RESERVED0, - SCE_HTTP_AUTH_RESERVED1, - SCE_HTTP_AUTH_RESERVED2 -}; - -using SceHttpAuthInfoCallback = s32(s32 request, SceHttpAuthType authType, vm::cptr realm, vm::ptr username, vm::ptr password, s32 needEntity, vm::pptr entityBody, vm::ptr entitySize, vm::ptr save, vm::ptr userArg); -using SceHttpRedirectCallback = s32(s32 request, s32 statusCode, vm::ptr method, vm::cptr location, vm::ptr userArg); - -struct SceHttpMemoryPoolStats -{ - le_t poolSize; - le_t maxInuseSize; - le_t currentInuseSize; - le_t reserved; -}; - -struct SceHttpUriElement -{ - le_t opaque; - vm::lptr scheme; - vm::lptr username; - vm::lptr password; - vm::lptr hostname; - vm::lptr path; - vm::lptr query; - vm::lptr fragment; - le_t port; - u8 reserved[10]; -}; - -using SceHttpCookieRecvCallback = s32(s32 request, vm::cptr url, vm::cptr cookieHeader, u32 headerLen, vm::ptr userArg); -using SceHttpCookieSendCallback = s32(s32 request, vm::cptr url, vm::cptr cookieHeader, vm::ptr userArg); - -struct SceHttpsData -{ - vm::lptr ptr; - le_t size; -}; - -struct SceHttpsCaList -{ - vm::lpptr caCerts; - le_t caNum; -}; - -using SceHttpsCallback = s32(u32 verifyEsrr, vm::cptr> sslCert, s32 certNum, vm::ptr userArg); diff --git a/rpcs3/Emu/PSP2/Modules/sceIme.cpp b/rpcs3/Emu/PSP2/Modules/sceIme.cpp deleted file mode 100644 index bb842cfb90..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceIme.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceIme.h" - -logs::channel sceIme("sceIme"); - -s32 sceImeOpen(vm::ptr param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceImeUpdate() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceImeSetCaret(vm::cptr caret) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceImeSetPreeditGeometry(vm::cptr preedit) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceImeClose() -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceIme, nid, name) - -DECLARE(arm_module_manager::SceIme)("SceIme", []() -{ - REG_FUNC(0x0E050613, sceImeOpen); - REG_FUNC(0x71D6898A, sceImeUpdate); - REG_FUNC(0x889A8421, sceImeClose); - REG_FUNC(0xD8342D2A, sceImeSetCaret); - REG_FUNC(0x7B1EFAA5, sceImeSetPreeditGeometry); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceIme.h b/rpcs3/Emu/PSP2/Modules/sceIme.h deleted file mode 100644 index 40b98c9e3e..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceIme.h +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once - -using SceImeCharFilter = s32(u16 ch); - -struct SceImeRect -{ - le_t x; - le_t y; - le_t width; - le_t height; -}; - -struct SceImeEditText -{ - le_t preeditIndex; - le_t preeditLength; - le_t caretIndex; - vm::lptr str; -}; - -union SceImeEventParam -{ - SceImeRect rect; - SceImeEditText text; - le_t caretIndex; -}; - -struct SceImeEvent -{ - le_t id; - SceImeEventParam param; -}; - -struct SceImeCaret -{ - le_t x; - le_t y; - le_t height; - le_t index; -}; - -struct SceImePreeditGeometry -{ - le_t x; - le_t y; - le_t height; -}; - -using SceImeEventHandler = void(vm::ptr arg, vm::cptr e); - -struct SceImeParam -{ - le_t size; - le_t inputMethod; - le_t supportedLanguages; - le_t languagesForced; - le_t type; - le_t option; - vm::lptr work; - vm::lptr arg; - vm::lptr handler; - vm::lptr filter; - vm::lptr initialText; - le_t maxTextLength; - vm::lptr inputTextBuffer; - le_t reserved0; - le_t reserved1; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceJpeg.cpp b/rpcs3/Emu/PSP2/Modules/sceJpeg.cpp deleted file mode 100644 index 8b9d209ff3..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceJpeg.cpp +++ /dev/null @@ -1,95 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceJpeg.h" - -logs::channel sceJpeg("sceJpeg"); - -s32 sceJpegInitMJpeg(s32 maxSplitDecoder) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegFinishMJpeg() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegDecodeMJpeg( - vm::cptr pJpeg, - u32 isize, - vm::ptr pRGBA, - u32 osize, - s32 decodeMode, - vm::ptr pTempBuffer, - u32 tempBufferSize, - vm::ptr pCoefBuffer, - u32 coefBufferSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegDecodeMJpegYCbCr( - vm::cptr pJpeg, - u32 isize, - vm::ptr pYCbCr, - u32 osize, - s32 decodeMode, - vm::ptr pCoefBuffer, - u32 coefBufferSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegMJpegCsc( - vm::ptr pRGBA, - vm::cptr pYCbCr, - s32 xysize, - s32 iFrameWidth, - s32 colorOption, - s32 sampling) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegGetOutputInfo( - vm::cptr pJpeg, - u32 isize, - s32 outputFormat, - s32 decodeMode, - vm::ptr pOutputInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegCreateSplitDecoder(vm::ptr pCtrl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegDeleteSplitDecoder(vm::ptr pCtrl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegSplitDecodeMJpeg(vm::ptr pCtrl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceJpegUser, nid, name) - -DECLARE(arm_module_manager::SceJpeg)("SceJpegUser", []() -{ - REG_FUNC(0xB030773B, sceJpegInitMJpeg); - REG_FUNC(0x62842598, sceJpegFinishMJpeg); - REG_FUNC(0x6215B095, sceJpegDecodeMJpeg); - REG_FUNC(0x2A769BD8, sceJpegDecodeMJpegYCbCr); - REG_FUNC(0xC2380E3A, sceJpegMJpegCsc); - REG_FUNC(0x353BA9B0, sceJpegGetOutputInfo); - REG_FUNC(0x123B4734, sceJpegCreateSplitDecoder); - REG_FUNC(0xDE8D5FA1, sceJpegDeleteSplitDecoder); - REG_FUNC(0x4598EC9C, sceJpegSplitDecodeMJpeg); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceJpeg.h b/rpcs3/Emu/PSP2/Modules/sceJpeg.h deleted file mode 100644 index fcb273e9d4..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceJpeg.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once - -struct SceJpegOutputInfo -{ - le_t colorSpace; - le_t imageWidth; - le_t imageHeight; - le_t outputBufferSize; - le_t tempBufferSize; - le_t coefBufferSize; - - struct _pitch_t - { - le_t x; - le_t y; - }; - - _pitch_t pitch[4]; -}; - -struct SceJpegSplitDecodeCtrl -{ - vm::lptr pStreamBuffer; - le_t streamBufferSize; - vm::lptr pWriteBuffer; - le_t writeBufferSize; - le_t isEndOfStream; - le_t decodeMode; - - SceJpegOutputInfo outputInfo; - - vm::lptr pOutputBuffer; - vm::lptr pCoefBuffer; - - le_t internalData[3]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceJpegEnc.cpp b/rpcs3/Emu/PSP2/Modules/sceJpegEnc.cpp deleted file mode 100644 index c412efaac2..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceJpegEnc.cpp +++ /dev/null @@ -1,91 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceJpegEnc.h" - -logs::channel sceJpegEnc("sceJpegEnc"); - -s32 sceJpegEncoderGetContextSize() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegEncoderInit( - SceJpegEncoderContext context, - s32 iFrameWidth, - s32 iFrameHeight, - s32 pixelFormat, - vm::ptr pJpeg, - u32 oJpegbufSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegEncoderEncode( - SceJpegEncoderContext context, - vm::cptr pYCbCr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegEncoderEnd(SceJpegEncoderContext context) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegEncoderSetValidRegion( - SceJpegEncoderContext context, - s32 iFrameWidth, - s32 iFrameHeight) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegEncoderSetCompressionRatio( - SceJpegEncoderContext context, - s32 compratio) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegEncoderSetHeaderMode( - SceJpegEncoderContext context, - s32 headerMode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegEncoderSetOutputAddr( - SceJpegEncoderContext context, - vm::ptr pJpeg, - u32 oJpegbufSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceJpegEncoderCsc( - SceJpegEncoderContext context, - vm::ptr pYCbCr, - vm::cptr pRGBA, - s32 iFrameWidth, - s32 inputPixelFormat) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceJpegEncUser, nid, name) - -DECLARE(arm_module_manager::SceJpegEnc)("SceJpegEncUser", []() -{ - REG_FUNC(0x2B55844D, sceJpegEncoderGetContextSize); - REG_FUNC(0x88DA92B4, sceJpegEncoderInit); - REG_FUNC(0xC60DE94C, sceJpegEncoderEncode); - REG_FUNC(0xC87AA849, sceJpegEncoderEnd); - REG_FUNC(0x9511F3BC, sceJpegEncoderSetValidRegion); - REG_FUNC(0xB2B828EC, sceJpegEncoderSetCompressionRatio); - REG_FUNC(0x2F58B12C, sceJpegEncoderSetHeaderMode); - REG_FUNC(0x25D52D97, sceJpegEncoderSetOutputAddr); - REG_FUNC(0x824A7D4F, sceJpegEncoderCsc); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceJpegEnc.h b/rpcs3/Emu/PSP2/Modules/sceJpegEnc.h deleted file mode 100644 index 513ea5a222..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceJpegEnc.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -using SceJpegEncoderContext = vm::ptr; diff --git a/rpcs3/Emu/PSP2/Modules/sceLibKernel.cpp b/rpcs3/Emu/PSP2/Modules/sceLibKernel.cpp deleted file mode 100644 index 11a898da3b..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLibKernel.cpp +++ /dev/null @@ -1,2418 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/IdManager.h" -#include "Emu/IPC.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceLibKernel.h" - -#include "Utilities/StrUtil.h" -#include "Utilities/lockless.h" - -#include - -logs::channel sceLibKernel("sceLibKernel"); - -extern u64 get_system_time(); - -template<> -void fmt_class_string::format(std::string& out, u64 arg) -{ - format_enum(out, arg, [](auto error) - { - switch (error) - { - STR_CASE(SCE_ERROR_ERRNO_EPERM); - STR_CASE(SCE_ERROR_ERRNO_ENOENT); - STR_CASE(SCE_ERROR_ERRNO_ESRCH); - STR_CASE(SCE_ERROR_ERRNO_EINTR); - STR_CASE(SCE_ERROR_ERRNO_EIO); - STR_CASE(SCE_ERROR_ERRNO_ENXIO); - STR_CASE(SCE_ERROR_ERRNO_E2BIG); - STR_CASE(SCE_ERROR_ERRNO_ENOEXEC); - STR_CASE(SCE_ERROR_ERRNO_EBADF); - STR_CASE(SCE_ERROR_ERRNO_ECHILD); - STR_CASE(SCE_ERROR_ERRNO_EAGAIN); - STR_CASE(SCE_ERROR_ERRNO_ENOMEM); - STR_CASE(SCE_ERROR_ERRNO_EACCES); - STR_CASE(SCE_ERROR_ERRNO_EFAULT); - STR_CASE(SCE_ERROR_ERRNO_ENOTBLK); - STR_CASE(SCE_ERROR_ERRNO_EBUSY); - STR_CASE(SCE_ERROR_ERRNO_EEXIST); - STR_CASE(SCE_ERROR_ERRNO_EXDEV); - STR_CASE(SCE_ERROR_ERRNO_ENODEV); - STR_CASE(SCE_ERROR_ERRNO_ENOTDIR); - STR_CASE(SCE_ERROR_ERRNO_EISDIR); - STR_CASE(SCE_ERROR_ERRNO_EINVAL); - STR_CASE(SCE_ERROR_ERRNO_ENFILE); - STR_CASE(SCE_ERROR_ERRNO_EMFILE); - STR_CASE(SCE_ERROR_ERRNO_ENOTTY); - STR_CASE(SCE_ERROR_ERRNO_ETXTBSY); - STR_CASE(SCE_ERROR_ERRNO_EFBIG); - STR_CASE(SCE_ERROR_ERRNO_ENOSPC); - STR_CASE(SCE_ERROR_ERRNO_ESPIPE); - STR_CASE(SCE_ERROR_ERRNO_EROFS); - STR_CASE(SCE_ERROR_ERRNO_EMLINK); - STR_CASE(SCE_ERROR_ERRNO_EPIPE); - STR_CASE(SCE_ERROR_ERRNO_EDOM); - STR_CASE(SCE_ERROR_ERRNO_ERANGE); - STR_CASE(SCE_ERROR_ERRNO_ENOMSG); - STR_CASE(SCE_ERROR_ERRNO_EIDRM); - STR_CASE(SCE_ERROR_ERRNO_ECHRNG); - STR_CASE(SCE_ERROR_ERRNO_EL2NSYNC); - STR_CASE(SCE_ERROR_ERRNO_EL3HLT); - STR_CASE(SCE_ERROR_ERRNO_EL3RST); - STR_CASE(SCE_ERROR_ERRNO_ELNRNG); - STR_CASE(SCE_ERROR_ERRNO_EUNATCH); - STR_CASE(SCE_ERROR_ERRNO_ENOCSI); - STR_CASE(SCE_ERROR_ERRNO_EL2HLT); - STR_CASE(SCE_ERROR_ERRNO_EDEADLK); - STR_CASE(SCE_ERROR_ERRNO_ENOLCK); - STR_CASE(SCE_ERROR_ERRNO_EFORMAT); - STR_CASE(SCE_ERROR_ERRNO_EUNSUP); - STR_CASE(SCE_ERROR_ERRNO_EBADE); - STR_CASE(SCE_ERROR_ERRNO_EBADR); - STR_CASE(SCE_ERROR_ERRNO_EXFULL); - STR_CASE(SCE_ERROR_ERRNO_ENOANO); - STR_CASE(SCE_ERROR_ERRNO_EBADRQC); - STR_CASE(SCE_ERROR_ERRNO_EBADSLT); - STR_CASE(SCE_ERROR_ERRNO_EDEADLOCK); - STR_CASE(SCE_ERROR_ERRNO_EBFONT); - STR_CASE(SCE_ERROR_ERRNO_ENOSTR); - STR_CASE(SCE_ERROR_ERRNO_ENODATA); - STR_CASE(SCE_ERROR_ERRNO_ETIME); - STR_CASE(SCE_ERROR_ERRNO_ENOSR); - STR_CASE(SCE_ERROR_ERRNO_ENONET); - STR_CASE(SCE_ERROR_ERRNO_ENOPKG); - STR_CASE(SCE_ERROR_ERRNO_EREMOTE); - STR_CASE(SCE_ERROR_ERRNO_ENOLINK); - STR_CASE(SCE_ERROR_ERRNO_EADV); - STR_CASE(SCE_ERROR_ERRNO_ESRMNT); - STR_CASE(SCE_ERROR_ERRNO_ECOMM); - STR_CASE(SCE_ERROR_ERRNO_EPROTO); - STR_CASE(SCE_ERROR_ERRNO_EMULTIHOP); - STR_CASE(SCE_ERROR_ERRNO_ELBIN); - STR_CASE(SCE_ERROR_ERRNO_EDOTDOT); - STR_CASE(SCE_ERROR_ERRNO_EBADMSG); - STR_CASE(SCE_ERROR_ERRNO_EFTYPE); - STR_CASE(SCE_ERROR_ERRNO_ENOTUNIQ); - STR_CASE(SCE_ERROR_ERRNO_EBADFD); - STR_CASE(SCE_ERROR_ERRNO_EREMCHG); - STR_CASE(SCE_ERROR_ERRNO_ELIBACC); - STR_CASE(SCE_ERROR_ERRNO_ELIBBAD); - STR_CASE(SCE_ERROR_ERRNO_ELIBSCN); - STR_CASE(SCE_ERROR_ERRNO_ELIBMAX); - STR_CASE(SCE_ERROR_ERRNO_ELIBEXEC); - STR_CASE(SCE_ERROR_ERRNO_ENOSYS); - STR_CASE(SCE_ERROR_ERRNO_ENMFILE); - STR_CASE(SCE_ERROR_ERRNO_ENOTEMPTY); - STR_CASE(SCE_ERROR_ERRNO_ENAMETOOLONG); - STR_CASE(SCE_ERROR_ERRNO_ELOOP); - STR_CASE(SCE_ERROR_ERRNO_EOPNOTSUPP); - STR_CASE(SCE_ERROR_ERRNO_EPFNOSUPPORT); - STR_CASE(SCE_ERROR_ERRNO_ECONNRESET); - STR_CASE(SCE_ERROR_ERRNO_ENOBUFS); - STR_CASE(SCE_ERROR_ERRNO_EAFNOSUPPORT); - STR_CASE(SCE_ERROR_ERRNO_EPROTOTYPE); - STR_CASE(SCE_ERROR_ERRNO_ENOTSOCK); - STR_CASE(SCE_ERROR_ERRNO_ENOPROTOOPT); - STR_CASE(SCE_ERROR_ERRNO_ESHUTDOWN); - STR_CASE(SCE_ERROR_ERRNO_ECONNREFUSED); - STR_CASE(SCE_ERROR_ERRNO_EADDRINUSE); - STR_CASE(SCE_ERROR_ERRNO_ECONNABORTED); - STR_CASE(SCE_ERROR_ERRNO_ENETUNREACH); - STR_CASE(SCE_ERROR_ERRNO_ENETDOWN); - STR_CASE(SCE_ERROR_ERRNO_ETIMEDOUT); - STR_CASE(SCE_ERROR_ERRNO_EHOSTDOWN); - STR_CASE(SCE_ERROR_ERRNO_EHOSTUNREACH); - STR_CASE(SCE_ERROR_ERRNO_EINPROGRESS); - STR_CASE(SCE_ERROR_ERRNO_EALREADY); - STR_CASE(SCE_ERROR_ERRNO_EDESTADDRREQ); - STR_CASE(SCE_ERROR_ERRNO_EMSGSIZE); - STR_CASE(SCE_ERROR_ERRNO_EPROTONOSUPPORT); - STR_CASE(SCE_ERROR_ERRNO_ESOCKTNOSUPPORT); - STR_CASE(SCE_ERROR_ERRNO_EADDRNOTAVAIL); - STR_CASE(SCE_ERROR_ERRNO_ENETRESET); - STR_CASE(SCE_ERROR_ERRNO_EISCONN); - STR_CASE(SCE_ERROR_ERRNO_ENOTCONN); - STR_CASE(SCE_ERROR_ERRNO_ETOOMANYREFS); - STR_CASE(SCE_ERROR_ERRNO_EPROCLIM); - STR_CASE(SCE_ERROR_ERRNO_EUSERS); - STR_CASE(SCE_ERROR_ERRNO_EDQUOT); - STR_CASE(SCE_ERROR_ERRNO_ESTALE); - STR_CASE(SCE_ERROR_ERRNO_ENOTSUP); - STR_CASE(SCE_ERROR_ERRNO_ENOMEDIUM); - STR_CASE(SCE_ERROR_ERRNO_ENOSHARE); - STR_CASE(SCE_ERROR_ERRNO_ECASECLASH); - STR_CASE(SCE_ERROR_ERRNO_EILSEQ); - STR_CASE(SCE_ERROR_ERRNO_EOVERFLOW); - STR_CASE(SCE_ERROR_ERRNO_ECANCELED); - STR_CASE(SCE_ERROR_ERRNO_ENOTRECOVERABLE); - STR_CASE(SCE_ERROR_ERRNO_EOWNERDEAD); - } - - return unknown; - }); -} - -template<> -void fmt_class_string::format(std::string& out, u64 arg) -{ - format_enum(out, arg, [](auto error) - { - switch (error) - { - STR_CASE(SCE_KERNEL_ERROR_ERROR); - STR_CASE(SCE_KERNEL_ERROR_NOT_IMPLEMENTED); - STR_CASE(SCE_KERNEL_ERROR_INVALID_ARGUMENT); - STR_CASE(SCE_KERNEL_ERROR_INVALID_ARGUMENT_SIZE); - STR_CASE(SCE_KERNEL_ERROR_INVALID_FLAGS); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_SIZE); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_ADDR); - STR_CASE(SCE_KERNEL_ERROR_UNSUP); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_MODE); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_ALIGNMENT); - STR_CASE(SCE_KERNEL_ERROR_NOSYS); - STR_CASE(SCE_KERNEL_ERROR_DEBUG_ERROR); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_DIPSW_NUMBER); - STR_CASE(SCE_KERNEL_ERROR_CPU_ERROR); - STR_CASE(SCE_KERNEL_ERROR_MMU_ILLEGAL_L1_TYPE); - STR_CASE(SCE_KERNEL_ERROR_MMU_L2_INDEX_OVERFLOW); - STR_CASE(SCE_KERNEL_ERROR_MMU_L2_SIZE_OVERFLOW); - STR_CASE(SCE_KERNEL_ERROR_INVALID_CPU_AFFINITY); - STR_CASE(SCE_KERNEL_ERROR_INVALID_MEMORY_ACCESS); - STR_CASE(SCE_KERNEL_ERROR_INVALID_MEMORY_ACCESS_PERMISSION); - STR_CASE(SCE_KERNEL_ERROR_VA2PA_FAULT); - STR_CASE(SCE_KERNEL_ERROR_VA2PA_MAPPED); - STR_CASE(SCE_KERNEL_ERROR_VALIDATION_CHECK_FAILED); - STR_CASE(SCE_KERNEL_ERROR_SYSMEM_ERROR); - STR_CASE(SCE_KERNEL_ERROR_INVALID_PROCESS_CONTEXT); - STR_CASE(SCE_KERNEL_ERROR_UID_NAME_TOO_LONG); - STR_CASE(SCE_KERNEL_ERROR_VARANGE_IS_NOT_PHYSICAL_CONTINUOUS); - STR_CASE(SCE_KERNEL_ERROR_PHYADDR_ERROR); - STR_CASE(SCE_KERNEL_ERROR_NO_PHYADDR); - STR_CASE(SCE_KERNEL_ERROR_PHYADDR_USED); - STR_CASE(SCE_KERNEL_ERROR_PHYADDR_NOT_USED); - STR_CASE(SCE_KERNEL_ERROR_NO_IOADDR); - STR_CASE(SCE_KERNEL_ERROR_PHYMEM_ERROR); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_PHYPAGE_STATUS); - STR_CASE(SCE_KERNEL_ERROR_NO_FREE_PHYSICAL_PAGE); - STR_CASE(SCE_KERNEL_ERROR_NO_FREE_PHYSICAL_PAGE_UNIT); - STR_CASE(SCE_KERNEL_ERROR_PHYMEMPART_NOT_EMPTY); - STR_CASE(SCE_KERNEL_ERROR_NO_PHYMEMPART_LPDDR2); - STR_CASE(SCE_KERNEL_ERROR_NO_PHYMEMPART_CDRAM); - STR_CASE(SCE_KERNEL_ERROR_FIXEDHEAP_ERROR); - STR_CASE(SCE_KERNEL_ERROR_FIXEDHEAP_ILLEGAL_SIZE); - STR_CASE(SCE_KERNEL_ERROR_FIXEDHEAP_ILLEGAL_INDEX); - STR_CASE(SCE_KERNEL_ERROR_FIXEDHEAP_INDEX_OVERFLOW); - STR_CASE(SCE_KERNEL_ERROR_FIXEDHEAP_NO_CHUNK); - STR_CASE(SCE_KERNEL_ERROR_UID_ERROR); - STR_CASE(SCE_KERNEL_ERROR_INVALID_UID); - STR_CASE(SCE_KERNEL_ERROR_SYSMEM_UID_INVALID_ARGUMENT); - STR_CASE(SCE_KERNEL_ERROR_SYSMEM_INVALID_UID_RANGE); - STR_CASE(SCE_KERNEL_ERROR_SYSMEM_NO_VALID_UID); - STR_CASE(SCE_KERNEL_ERROR_SYSMEM_CANNOT_ALLOCATE_UIDENTRY); - STR_CASE(SCE_KERNEL_ERROR_NOT_PROCESS_UID); - STR_CASE(SCE_KERNEL_ERROR_NOT_KERNEL_UID); - STR_CASE(SCE_KERNEL_ERROR_INVALID_UID_CLASS); - STR_CASE(SCE_KERNEL_ERROR_INVALID_UID_SUBCLASS); - STR_CASE(SCE_KERNEL_ERROR_UID_CANNOT_FIND_BY_NAME); - STR_CASE(SCE_KERNEL_ERROR_VIRPAGE_ERROR); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_VIRPAGE_TYPE); - STR_CASE(SCE_KERNEL_ERROR_BLOCK_ERROR); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_BLOCK_ID); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_BLOCK_TYPE); - STR_CASE(SCE_KERNEL_ERROR_BLOCK_IN_USE); - STR_CASE(SCE_KERNEL_ERROR_PARTITION_ERROR); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_PARTITION_ID); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_PARTITION_INDEX); - STR_CASE(SCE_KERNEL_ERROR_NO_L2PAGETABLE); - STR_CASE(SCE_KERNEL_ERROR_HEAPLIB_ERROR); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_HEAP_ID); - STR_CASE(SCE_KERNEL_ERROR_OUT_OF_RANG); - STR_CASE(SCE_KERNEL_ERROR_HEAPLIB_NOMEM); - STR_CASE(SCE_KERNEL_ERROR_SYSMEM_ADDRESS_SPACE_ERROR); - STR_CASE(SCE_KERNEL_ERROR_INVALID_ADDRESS_SPACE_ID); - STR_CASE(SCE_KERNEL_ERROR_INVALID_PARTITION_INDEX); - STR_CASE(SCE_KERNEL_ERROR_ADDRESS_SPACE_CANNOT_FIND_PARTITION_BY_ADDR); - STR_CASE(SCE_KERNEL_ERROR_SYSMEM_MEMBLOCK_ERROR); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_MEMBLOCK_TYPE); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_MEMBLOCK_REMAP_TYPE); - STR_CASE(SCE_KERNEL_ERROR_NOT_PHY_CONT_MEMBLOCK); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_MEMBLOCK_CODE); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_MEMBLOCK_SIZE); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_USERMAP_SIZE); - STR_CASE(SCE_KERNEL_ERROR_MEMBLOCK_TYPE_FOR_KERNEL_PROCESS); - STR_CASE(SCE_KERNEL_ERROR_PROCESS_CANNOT_REMAP_MEMBLOCK); - STR_CASE(SCE_KERNEL_ERROR_SYSMEM_PHYMEMLOW_ERROR); - STR_CASE(SCE_KERNEL_ERROR_CANNOT_ALLOC_PHYMEMLOW); - STR_CASE(SCE_KERNEL_ERROR_UNKNOWN_PHYMEMLOW_TYPE); - STR_CASE(SCE_KERNEL_ERROR_SYSMEM_BITHEAP_ERROR); - STR_CASE(SCE_KERNEL_ERROR_CANNOT_ALLOC_BITHEAP); - STR_CASE(SCE_KERNEL_ERROR_LOADCORE_ERROR); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_ELF_HEADER); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_SELF_HEADER); - STR_CASE(SCE_KERNEL_ERROR_EXCPMGR_ERROR); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_EXCPCODE); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_EXCPHANDLER); - STR_CASE(SCE_KERNEL_ERROR_NOTFOUND_EXCPHANDLER); - STR_CASE(SCE_KERNEL_ERROR_CANNOT_RELEASE_EXCPHANDLER); - STR_CASE(SCE_KERNEL_ERROR_INTRMGR_ERROR); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_CONTEXT); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_INTRCODE); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_INTRPARAM); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_INTRPRIORITY); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_TARGET_CPU); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_INTRFILTER); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_INTRTYPE); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_HANDLER); - STR_CASE(SCE_KERNEL_ERROR_FOUND_HANDLER); - STR_CASE(SCE_KERNEL_ERROR_NOTFOUND_HANDLER); - STR_CASE(SCE_KERNEL_ERROR_NO_MEMORY); - STR_CASE(SCE_KERNEL_ERROR_DMACMGR_ERROR); - STR_CASE(SCE_KERNEL_ERROR_ALREADY_QUEUED); - STR_CASE(SCE_KERNEL_ERROR_NOT_QUEUED); - STR_CASE(SCE_KERNEL_ERROR_NOT_SETUP); - STR_CASE(SCE_KERNEL_ERROR_ON_TRANSFERRING); - STR_CASE(SCE_KERNEL_ERROR_NOT_INITIALIZED); - STR_CASE(SCE_KERNEL_ERROR_TRANSFERRED); - STR_CASE(SCE_KERNEL_ERROR_NOT_UNDER_CONTROL); - STR_CASE(SCE_KERNEL_ERROR_SYSTIMER_ERROR); - STR_CASE(SCE_KERNEL_ERROR_NO_FREE_TIMER); - STR_CASE(SCE_KERNEL_ERROR_TIMER_NOT_ALLOCATED); - STR_CASE(SCE_KERNEL_ERROR_TIMER_COUNTING); - STR_CASE(SCE_KERNEL_ERROR_TIMER_STOPPED); - STR_CASE(SCE_KERNEL_ERROR_THREADMGR_ERROR); - STR_CASE(SCE_KERNEL_ERROR_DORMANT); - STR_CASE(SCE_KERNEL_ERROR_NOT_DORMANT); - STR_CASE(SCE_KERNEL_ERROR_UNKNOWN_THID); - STR_CASE(SCE_KERNEL_ERROR_CAN_NOT_WAIT); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_THID); - STR_CASE(SCE_KERNEL_ERROR_THREAD_TERMINATED); - STR_CASE(SCE_KERNEL_ERROR_DELETED); - STR_CASE(SCE_KERNEL_ERROR_WAIT_TIMEOUT); - STR_CASE(SCE_KERNEL_ERROR_NOTIFY_CALLBACK); - STR_CASE(SCE_KERNEL_ERROR_WAIT_DELETE); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_ATTR); - STR_CASE(SCE_KERNEL_ERROR_EVF_MULTI); - STR_CASE(SCE_KERNEL_ERROR_WAIT_CANCEL); - STR_CASE(SCE_KERNEL_ERROR_EVF_COND); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_COUNT); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_PRIORITY); - STR_CASE(SCE_KERNEL_ERROR_MUTEX_RECURSIVE); - STR_CASE(SCE_KERNEL_ERROR_MUTEX_LOCK_OVF); - STR_CASE(SCE_KERNEL_ERROR_MUTEX_NOT_OWNED); - STR_CASE(SCE_KERNEL_ERROR_MUTEX_UNLOCK_UDF); - STR_CASE(SCE_KERNEL_ERROR_MUTEX_FAILED_TO_OWN); - STR_CASE(SCE_KERNEL_ERROR_FAST_MUTEX_RECURSIVE); - STR_CASE(SCE_KERNEL_ERROR_FAST_MUTEX_LOCK_OVF); - STR_CASE(SCE_KERNEL_ERROR_FAST_MUTEX_FAILED_TO_OWN); - STR_CASE(SCE_KERNEL_ERROR_FAST_MUTEX_NOT_OWNED); - STR_CASE(SCE_KERNEL_ERROR_FAST_MUTEX_OWNED); - STR_CASE(SCE_KERNEL_ERROR_ALARM_CAN_NOT_CANCEL); - STR_CASE(SCE_KERNEL_ERROR_INVALID_OBJECT_TYPE); - STR_CASE(SCE_KERNEL_ERROR_KERNEL_TLS_FULL); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_KERNEL_TLS_INDEX); - STR_CASE(SCE_KERNEL_ERROR_KERNEL_TLS_BUSY); - STR_CASE(SCE_KERNEL_ERROR_DIFFERENT_UID_CLASS); - STR_CASE(SCE_KERNEL_ERROR_UNKNOWN_UID); - STR_CASE(SCE_KERNEL_ERROR_SEMA_ZERO); - STR_CASE(SCE_KERNEL_ERROR_SEMA_OVF); - STR_CASE(SCE_KERNEL_ERROR_PMON_NOT_THREAD_MODE); - STR_CASE(SCE_KERNEL_ERROR_PMON_NOT_CPU_MODE); - STR_CASE(SCE_KERNEL_ERROR_ALREADY_REGISTERED); - STR_CASE(SCE_KERNEL_ERROR_INVALID_THREAD_ID); - STR_CASE(SCE_KERNEL_ERROR_ALREADY_DEBUG_SUSPENDED); - STR_CASE(SCE_KERNEL_ERROR_NOT_DEBUG_SUSPENDED); - STR_CASE(SCE_KERNEL_ERROR_CAN_NOT_USE_VFP); - STR_CASE(SCE_KERNEL_ERROR_RUNNING); - STR_CASE(SCE_KERNEL_ERROR_EVENT_COND); - STR_CASE(SCE_KERNEL_ERROR_MSG_PIPE_FULL); - STR_CASE(SCE_KERNEL_ERROR_MSG_PIPE_EMPTY); - STR_CASE(SCE_KERNEL_ERROR_ALREADY_SENT); - STR_CASE(SCE_KERNEL_ERROR_CAN_NOT_SUSPEND); - STR_CASE(SCE_KERNEL_ERROR_FAST_MUTEX_ALREADY_INITIALIZED); - STR_CASE(SCE_KERNEL_ERROR_FAST_MUTEX_NOT_INITIALIZED); - STR_CASE(SCE_KERNEL_ERROR_THREAD_STOPPED); - STR_CASE(SCE_KERNEL_ERROR_THREAD_SUSPENDED); - STR_CASE(SCE_KERNEL_ERROR_NOT_SUSPENDED); - STR_CASE(SCE_KERNEL_ERROR_WAIT_DELETE_MUTEX); - STR_CASE(SCE_KERNEL_ERROR_WAIT_CANCEL_MUTEX); - STR_CASE(SCE_KERNEL_ERROR_WAIT_DELETE_COND); - STR_CASE(SCE_KERNEL_ERROR_WAIT_CANCEL_COND); - STR_CASE(SCE_KERNEL_ERROR_LW_MUTEX_NOT_OWNED); - STR_CASE(SCE_KERNEL_ERROR_LW_MUTEX_LOCK_OVF); - STR_CASE(SCE_KERNEL_ERROR_LW_MUTEX_UNLOCK_UDF); - STR_CASE(SCE_KERNEL_ERROR_LW_MUTEX_RECURSIVE); - STR_CASE(SCE_KERNEL_ERROR_LW_MUTEX_FAILED_TO_OWN); - STR_CASE(SCE_KERNEL_ERROR_WAIT_DELETE_LW_MUTEX); - STR_CASE(SCE_KERNEL_ERROR_ILLEGAL_STACK_SIZE); - STR_CASE(SCE_KERNEL_ERROR_RW_LOCK_RECURSIVE); - STR_CASE(SCE_KERNEL_ERROR_RW_LOCK_LOCK_OVF); - STR_CASE(SCE_KERNEL_ERROR_RW_LOCK_NOT_OWNED); - STR_CASE(SCE_KERNEL_ERROR_RW_LOCK_UNLOCK_UDF); - STR_CASE(SCE_KERNEL_ERROR_RW_LOCK_FAILED_TO_LOCK); - STR_CASE(SCE_KERNEL_ERROR_RW_LOCK_FAILED_TO_UNLOCK); - STR_CASE(SCE_KERNEL_ERROR_PROCESSMGR_ERROR); - STR_CASE(SCE_KERNEL_ERROR_INVALID_PID); - STR_CASE(SCE_KERNEL_ERROR_INVALID_PROCESS_TYPE); - STR_CASE(SCE_KERNEL_ERROR_PLS_FULL); - STR_CASE(SCE_KERNEL_ERROR_INVALID_PROCESS_STATUS); - STR_CASE(SCE_KERNEL_ERROR_INVALID_BUDGET_ID); - STR_CASE(SCE_KERNEL_ERROR_INVALID_BUDGET_SIZE); - STR_CASE(SCE_KERNEL_ERROR_CP14_DISABLED); - STR_CASE(SCE_KERNEL_ERROR_EXCEEDED_MAX_PROCESSES); - STR_CASE(SCE_KERNEL_ERROR_PROCESS_REMAINING); - STR_CASE(SCE_KERNEL_ERROR_IOFILEMGR_ERROR); - STR_CASE(SCE_KERNEL_ERROR_IO_NAME_TOO_LONG); - STR_CASE(SCE_KERNEL_ERROR_IO_REG_DEV); - STR_CASE(SCE_KERNEL_ERROR_IO_ALIAS_USED); - STR_CASE(SCE_KERNEL_ERROR_IO_DEL_DEV); - STR_CASE(SCE_KERNEL_ERROR_IO_WOULD_BLOCK); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_START_FAILED); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_STOP_FAIL); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_IN_USE); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NO_LIB); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_SYSCALL_REG); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NOMEM_LIB); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NOMEM_STUB); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NOMEM_SELF); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NOMEM); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_INVALID_LIB); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_INVALID_STUB); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NO_FUNC_NID); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NO_VAR_NID); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_INVALID_TYPE); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NO_MOD_ENTRY); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_INVALID_PROC_PARAM); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NO_MODOBJ); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NO_MOD); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NO_PROCESS); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_OLD_LIB); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_STARTED); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NOT_STARTED); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NOT_STOPPED); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_INVALID_PROCESS_UID); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_CANNOT_EXPORT_LIB_TO_SHARED); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_INVALID_REL_INFO); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_INVALID_REF_INFO); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_ELINK); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NOENT); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_BUSY); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NOEXEC); - STR_CASE(SCE_KERNEL_ERROR_MODULEMGR_NAMETOOLONG); - STR_CASE(SCE_KERNEL_ERROR_LIBRARYDB_NOENT); - STR_CASE(SCE_KERNEL_ERROR_LIBRARYDB_NO_LIB); - STR_CASE(SCE_KERNEL_ERROR_LIBRARYDB_NO_MOD); - STR_CASE(SCE_KERNEL_ERROR_AUTHFAIL); - STR_CASE(SCE_KERNEL_ERROR_NO_AUTH); - } - - return unknown; - }); -} - -arm_tls_manager::arm_tls_manager(u32 vaddr, u32 fsize, u32 vsize) - : vaddr(vaddr) - , fsize(fsize) - , vsize(vsize) - , start(vsize ? vm::alloc(vsize * ::size32(m_map), vm::main) : 0) -{ -} - -u32 arm_tls_manager::alloc() -{ - if (!vsize) - { - return 0; - } - - for (u32 i = 0; i < m_map.size(); i++) - { - if (!m_map[i] && m_map[i].exchange(true) == false) - { - const u32 addr = start + i * vsize; // Get TLS address - std::memcpy(vm::base(addr), vm::base(vaddr), fsize); // Initialize from TLS image - std::memset(vm::base(addr + fsize), 0, vsize - fsize); // Fill the rest with zeros - return addr; - } - } - - sceLibKernel.error("arm_tls_manager::alloc(): out of TLS memory (max=%zu)", m_map.size()); - return 0; -} - -void arm_tls_manager::dealloc(u32 addr) -{ - if (!addr) - { - return; - } - - // Calculate TLS index - const u32 i = (addr - start) / vsize; - - if (addr < start || i >= m_map.size() || (addr - start) % vsize) - { - sceLibKernel.error("arm_tls_manager::free(0x%x): invalid address", addr); - return; - } - - if (m_map[i].exchange(false) == false) - { - sceLibKernel.error("arm_tls_manager::free(0x%x): deallocation failed", addr); - return; - } -} - -s32 sceKernelAllocMemBlock(vm::cptr name, s32 type, u32 vsize, vm::ptr pOpt) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelFreeMemBlock(s32 uid) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetMemBlockBase(s32 uid, vm::pptr ppBase) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetMemBlockInfoByAddr(vm::ptr vbase, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -error_code sceKernelCreateThread(vm::cptr pName, vm::ptr entry, s32 initPriority, u32 stackSize, u32 attr, s32 cpuAffinityMask, vm::cptr pOptParam) -{ - sceLibKernel.warning("sceKernelCreateThread(pName=%s, entry=*0x%x, initPriority=%d, stackSize=0x%x, attr=0x%x, cpuAffinityMask=0x%x, pOptParam=*0x%x)", - pName, entry, initPriority, stackSize, attr, cpuAffinityMask, pOptParam); - - const auto thread = idm::make_ptr(pName.get_ptr(), initPriority, stackSize); - - thread->write_pc(entry.addr(), 0); - thread->TLS = fxm::get()->alloc(); - - return not_an_error(thread->id); -} - -error_code sceKernelStartThread(s32 threadId, u32 argSize, vm::cptr pArgBlock) -{ - sceLibKernel.warning("sceKernelStartThread(threadId=0x%x, argSize=0x%x, pArgBlock=*0x%x)", threadId, argSize, pArgBlock); - - const auto thread = idm::get(threadId); - - if (!thread) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - // thread should be in DORMANT state, but it's not possible to check it correctly atm - - //if (thread->IsAlive()) - //{ - // return SCE_KERNEL_ERROR_NOT_DORMANT; - //} - - // push arg block onto the stack - const u32 pos = (thread->SP -= argSize); - std::memcpy(vm::base(pos), pArgBlock.get_ptr(), argSize); - - // set SceKernelThreadEntry function arguments - thread->GPR[0] = argSize; - thread->GPR[1] = pos; - thread->run(); - return SCE_OK; -} - -error_code sceKernelExitThread(ARMv7Thread& cpu, s32 exitStatus) -{ - sceLibKernel.warning("sceKernelExitThread(exitStatus=0x%x)", exitStatus); - - // Exit status is stored in r0 - cpu.state += cpu_flag::exit; - - return SCE_OK; -} - -error_code sceKernelDeleteThread(s32 threadId) -{ - sceLibKernel.warning("sceKernelDeleteThread(threadId=0x%x)", threadId); - - const auto thread = idm::get(threadId); - - if (!thread) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - // thread should be in DORMANT state, but it's not possible to check it correctly atm - - //if (thread->IsAlive()) - //{ - // return SCE_KERNEL_ERROR_NOT_DORMANT; - //} - - fxm::get()->dealloc(thread->TLS); - idm::remove(threadId); - return SCE_OK; -} - -error_code sceKernelExitDeleteThread(ARMv7Thread& cpu, s32 exitStatus) -{ - sceLibKernel.warning("sceKernelExitDeleteThread(exitStatus=0x%x)", exitStatus); - - //cpu.state += cpu_flag::stop; - - // Delete current thread; exit status is stored in r0 - fxm::get()->dealloc(cpu.TLS); - idm::remove(cpu.id); - - return SCE_OK; -} - -s32 sceKernelChangeThreadCpuAffinityMask(s32 threadId, s32 cpuAffinityMask) -{ - sceLibKernel.todo("sceKernelChangeThreadCpuAffinityMask(threadId=0x%x, cpuAffinityMask=0x%x)", threadId, cpuAffinityMask); - - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetThreadCpuAffinityMask(s32 threadId) -{ - sceLibKernel.todo("sceKernelGetThreadCpuAffinityMask(threadId=0x%x)", threadId); - - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelChangeThreadPriority(s32 threadId, s32 priority) -{ - sceLibKernel.todo("sceKernelChangeThreadPriority(threadId=0x%x, priority=%d)", threadId, priority); - - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetThreadCurrentPriority() -{ - sceLibKernel.todo("sceKernelGetThreadCurrentPriority()"); - - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceKernelGetThreadId(ARMv7Thread& cpu) -{ - sceLibKernel.trace("sceKernelGetThreadId()"); - - return cpu.id; -} - -s32 sceKernelChangeCurrentThreadAttr(u32 clearAttr, u32 setAttr) -{ - sceLibKernel.todo("sceKernelChangeCurrentThreadAttr()"); - - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetThreadExitStatus(s32 threadId, vm::ptr pExitStatus) -{ - sceLibKernel.todo("sceKernelGetThreadExitStatus(threadId=0x%x, pExitStatus=*0x%x)", threadId, pExitStatus); - - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetProcessId() -{ - sceLibKernel.todo("sceKernelGetProcessId()"); - - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelCheckWaitableStatus() -{ - sceLibKernel.todo("sceKernelCheckWaitableStatus()"); - - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetThreadInfo(s32 threadId, vm::ptr pInfo) -{ - sceLibKernel.todo("sceKernelGetThreadInfo(threadId=0x%x, pInfo=*0x%x)", threadId, pInfo); - - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetThreadRunStatus(vm::ptr pStatus) -{ - sceLibKernel.todo("sceKernelGetThreadRunStatus(pStatus=*0x%x)", pStatus); - - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetSystemInfo(vm::ptr pInfo) -{ - sceLibKernel.todo("sceKernelGetSystemInfo(pInfo=*0x%x)", pInfo); - - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelChangeThreadVfpException(s32 clearMask, s32 setMask) -{ - sceLibKernel.todo("sceKernelChangeThreadVfpException(clearMask=0x%x, setMask=0x%x)", clearMask, setMask); - - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetCurrentThreadVfpException() -{ - sceLibKernel.todo("sceKernelGetCurrentThreadVfpException()"); - - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelDelayThread(u32 usec) -{ - sceLibKernel.todo("sceKernelDelayThread()"); - - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelDelayThreadCB(u32 usec) -{ - sceLibKernel.todo("sceKernelDelayThreadCB()"); - - fmt::throw_exception("Unimplemented" HERE); -} - -error_code sceKernelWaitThreadEnd(s32 threadId, vm::ptr pExitStatus, vm::ptr pTimeout) -{ - sceLibKernel.warning("sceKernelWaitThreadEnd(threadId=0x%x, pExitStatus=*0x%x, pTimeout=*0x%x)", threadId, pExitStatus, pTimeout); - - const auto thread = idm::get(threadId); - - if (!thread) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - if (pTimeout) - { - } - - thread->join(); - - if (pExitStatus) - { - *pExitStatus = thread->GPR[0]; - } - - return SCE_OK; -} - -s32 sceKernelWaitThreadEndCB(s32 threadId, vm::ptr pExitStatus, vm::ptr pTimeout) -{ - sceLibKernel.todo("sceKernelWaitThreadEndCB(threadId=0x%x, pExitStatus=*0x%x, pTimeout=*0x%x)", threadId, pExitStatus, pTimeout); - - fmt::throw_exception("Unimplemented" HERE); -} - -// Callback functions - -s32 sceKernelCreateCallback(vm::cptr pName, u32 attr, vm::ptr callbackFunc, vm::ptr pCommon) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelDeleteCallback(s32 callbackId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelNotifyCallback(s32 callbackId, s32 notifyArg) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelCancelCallback(s32 callbackId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetCallbackCount(s32 callbackId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelCheckCallback() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetCallbackInfo(s32 callbackId, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelRegisterCallbackToEvent(s32 eventId, s32 callbackId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelUnregisterCallbackFromEvent(s32 eventId, s32 callbackId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelUnregisterCallbackFromEventAll(s32 eventId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -// Event functions - -s32 sceKernelWaitEvent(s32 eventId, u32 waitPattern, vm::ptr pResultPattern, vm::ptr pUserData, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelWaitEventCB(s32 eventId, u32 waitPattern, vm::ptr pResultPattern, vm::ptr pUserData, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelPollEvent(s32 eventId, u32 bitPattern, vm::ptr pResultPattern, vm::ptr pUserData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelCancelEvent(s32 eventId, vm::ptr pNumWaitThreads) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetEventInfo(s32 eventId, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelWaitMultipleEvents(vm::ptr pWaitEventList, s32 numEvents, u32 waitMode, vm::ptr pResultEventList, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelWaitMultipleEventsCB(vm::ptr pWaitEventList, s32 numEvents, u32 waitMode, vm::ptr pResultEventList, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -struct psp2_event_flag final -{ - static const u32 id_base = 1; - static const u32 id_step = 2; - static const u32 id_count = 8192; - - using ipc = ipc_manager; - - const std::string name; // IPC/Debug Name - atomic_t ipc_ref{1}; // IPC Ref Count - - const u32 attr; - const u32 init; - - atomic_t pattern{0}; // Sync variable - atomic_t waiters{0}; // Waiter number or waiter id - atomic_t wait_ctr; // FIFO ordering helper - - psp2_event_flag(std::string&& name, u32 attr, u32 pattern) - : name(std::move(name)) - , attr(attr) - , init(pattern) - , pattern(pattern) - { - } - - static inline bool pat_test(u32 current, u32 pattern, u32 mode) - { - const u32 or_mask = mode & SCE_KERNEL_EVF_WAITMODE_OR ? pattern : 0; - const u32 and_mask = mode & SCE_KERNEL_EVF_WAITMODE_OR ? 0 : pattern; - - return (current & or_mask) != 0 && (current & and_mask) == and_mask; - } - - // Get mask for bitwise AND for bit clear operation - static inline u32 pat_clear(u32 pattern, u32 mode) - { - return - mode & SCE_KERNEL_EVF_WAITMODE_CLEAR_ALL ? 0 : - mode & SCE_KERNEL_EVF_WAITMODE_CLEAR_PAT ? ~pattern : ~0; - } - - // Commands - enum class task : u32 - { - null, - wait, // Check condition, enqueue waiting thread - poll, // Check condition only - set, // Set pattern bits and wake up threads - clear, // Clear pattern bits (bitwise AND) - cancel, // Wake up all threads with SCE_KERNEL_ERROR_WAIT_CANCEL - destroy, // Wake up all threads with SCE_KERNEL_ERROR_WAIT_DELETE - timeout, // Dequeue waiting thread (cleanup) - signal, // Signal selected thread (aux) - }; - - struct alignas(8) cmd_t - { - task type; - u32 arg; - }; - - // Enqueue a command and try to execute all pending commands. Commands are executed sequentially. - // Returns true if the command has been completed immediately. Its status is unknown otherwise. - bool exec(task type, u32 arg) - { - // Allocate position in the queue - const u32 push_pos = m_workload.push_begin(); - - // Make the command - cmd_t cmd{type, arg}; - - // Get queue head - u32 pos = m_workload.peek(); - - // Check non-optimistic case - if (UNLIKELY(pos != push_pos)) - { - // Try to acquire first command in the queue, *then* write current command - m_workload[push_pos] = std::exchange(cmd, m_workload[pos].exchange({task::null})); - } - - while (true) - { - switch (cmd.type) - { - case task::null: - { - // Return immediately if can't process a command. Possible reasons: - // 1) The command has not yet been written - // 2) The command has already been acquired - return push_pos < pos; - } - - case task::wait: op_wait(cmd.arg); break; - case task::poll: op_poll(cmd.arg); break; - case task::set: op_set(cmd.arg); break; - case task::clear: pattern &= cmd.arg; break; - case task::cancel: op_stop(vm::cast(cmd.arg), SCE_KERNEL_ERROR_WAIT_CANCEL); break; - case task::destroy: op_stop(vm::cast(cmd.arg), SCE_KERNEL_ERROR_WAIT_DELETE); break; - - case task::timeout: - { - // Timeout cleanup - idm::check(cmd.arg, [&](ARMv7Thread& cpu) - { - if (cpu.owner.compare_and_swap_test(this, nullptr)) - { - cpu.GPR[0] = SCE_KERNEL_ERROR_WAIT_TIMEOUT; - cpu.GPR[1] = pattern; - waiters -= attr & SCE_KERNEL_ATTR_MULTI ? 1 : cpu.id; - } - }); - - break; - } - - case task::signal: - { - idm::check(cmd.arg, [](auto& cpu) - { - cpu.state += cpu_flag::signal; - cpu.notify(); - }); - - break; - } - - default: ASSUME(0); - } - - // Get next position - pos = m_workload.pop_end(); - - // Exit after the cleanup - if (LIKELY(!pos)) return true; - - // Get next command - cmd = m_workload[pos].exchange({task::null}); - } - } - - // Enqueue a command and ensure its completion. - void sync(ARMv7Thread& cpu, task type, u32 arg) - { - if (UNLIKELY(!exec(type, arg))) - { - if (!exec(task::signal, cpu.id)) - { - thread_ctrl::wait([&] { return cpu.state.test_and_reset(cpu_flag::signal); }); - } - else - { - cpu.state -= cpu_flag::signal; - } - } - } - -private: - lf_fifo, 16> m_workload; - - void op_wait(u32 thread_id) - { - idm::check(thread_id, [=](ARMv7Thread& cpu) - { - if (attr & SCE_KERNEL_ATTR_MULTI) - { - waiters++; - } - else if (!waiters.compare_and_swap_test(0, thread_id)) - { - cpu.GPR[0] = SCE_KERNEL_ERROR_EVF_MULTI; - cpu.GPR[1] = pattern; - cpu.state += cpu_flag::signal; - cpu.notify(); - return; - } - - const u32 old_pattern = pattern.atomic_op([&](u32& value) -> u32 - { - const u32 pat = value; - if (pat_test(pat, cpu.GPR[1], cpu.GPR[0])) - { - value &= pat_clear(cpu.GPR[1], cpu.GPR[0]); - return pat; - } - - return 0; - }); - - if (old_pattern) - { - waiters -= attr & SCE_KERNEL_ATTR_MULTI ? 1 : cpu.id; - cpu.GPR[0] = SCE_OK; - cpu.GPR[1] = old_pattern; - cpu.state += cpu_flag::signal; - cpu.notify(); - } - else - { - cpu.owner = this; - cpu.GPR_D[1] = ++wait_ctr; - } - }); - } - - void op_poll(u32 thread_id) - { - idm::check(thread_id, [&](ARMv7Thread& cpu) - { - cpu.GPR[1] = pattern.atomic_op([&](u32& value) -> u32 - { - const u32 pat = value; - if (pat_test(pat, cpu.GPR[1], cpu.GPR[0])) - { - value &= pat_clear(cpu.GPR[1], cpu.GPR[0]); - return pat; - } - - return 0; - }); - }); - } - - void op_set(u32 _pattern) - { - pattern |= _pattern; - - if (const u32 _waiters = waiters) - { - const u32 new_pattern = pattern; - - std::vector> threads; - - // Enumerate appropriate threads - if (attr & SCE_KERNEL_ATTR_MULTI) - { - threads.reserve(_waiters); - - idm::select([&](u32, ARMv7Thread& cpu) - { - if (cpu.owner == this && pat_test(new_pattern, cpu.GPR[1], cpu.GPR[0])) - { - threads.emplace_back(cpu); - } - }); - - // Sort the thread list using appropriate scheduling policy - std::sort(threads.begin(), threads.end(), [&](const ARMv7Thread& cpu1, const ARMv7Thread& cpu2) - { - if (attr & SCE_KERNEL_ATTR_TH_PRIO && cpu1.prio != cpu2.prio) - { - return cpu1.prio < cpu2.prio; - } - else - { - return cpu1.GPR_D[1] < cpu2.GPR_D[1]; - } - }); - } - else - { - idm::check(_waiters, [&](ARMv7Thread& cpu) - { - if (cpu.owner == this && pat_test(new_pattern, cpu.GPR[1], cpu.GPR[0])) - { - threads.emplace_back(cpu); - } - }); - } - - // Wake up threads - for (ARMv7Thread& cpu : threads) - { - const u32 old_pattern = pattern.atomic_op([&](u32& value) -> u32 - { - const u32 pat = value; - - if (pat_test(pat, cpu.GPR[1], cpu.GPR[0])) - { - value &= pat_clear(cpu.GPR[1], cpu.GPR[0]); - return pat; - } - - return 0; - }); - - if (old_pattern) - { - cpu.GPR[0] = SCE_OK; - cpu.GPR[1] = old_pattern; - cpu.state += cpu_flag::signal; - cpu.owner = nullptr; - waiters -= attr & SCE_KERNEL_ATTR_MULTI ? 1 : cpu.id; - cpu.notify(); - } - } - } - } - - void op_stop(vm::ptr ptr, s32 error) - { - const u32 _pattern = ptr ? ptr->value() : pattern.load(); - - std::vector> threads; - - idm::select([&](u32, ARMv7Thread& cpu) - { - if (cpu.owner == this) - { - threads.emplace_back(cpu); - } - }); - - if (ptr) - { - *ptr = static_cast(threads.size()); - } - - for (ARMv7Thread& cpu : threads) - { - cpu.GPR[0] = error; - cpu.GPR[1] = _pattern; - cpu.state += cpu_flag::signal; - cpu.owner = nullptr; - cpu.notify(); - } - - pattern = _pattern; - waiters = 0; - } -}; - -template<> DECLARE(psp2_event_flag::ipc::g_ipc) {}; - -error_code sceKernelCreateEventFlag(vm::cptr pName, u32 attr, u32 initPattern, vm::cptr pOptParam) -{ - sceLibKernel.error("sceKernelCreateEventFlag(pName=%s, attr=0x%x, initPattern=0x%x, pOptParam=*0x%x)", pName, attr, initPattern, pOptParam); - - // Create EVF - auto evf = std::make_shared(pName.get_ptr(), attr, initPattern); - - // Try to register IPC name, only if not empty string (TODO) - if (evf->name.empty() || !psp2_event_flag::ipc::add(evf->name, [&] { return evf; })) - { - evf->ipc_ref = 0; - } - - // Register ID - return not_an_error(idm::import_existing(evf)); -} - -error_code sceKernelDeleteEventFlag(s32 evfId) -{ - sceLibKernel.error("sceKernelDeleteEventFlag(evfId=0x%x)", evfId); - - const auto evf = idm::withdraw(evfId); - - if (!evf) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - // Unregister IPC name - if (evf->ipc_ref.fetch_op([](u32& ref) { if (ref) ref--; })) - { - psp2_event_flag::ipc::remove(evf->name); - } - - // Finalize the last reference - if (!evf->ipc_ref) - { - evf->exec(psp2_event_flag::task::destroy, 0); - } - - return SCE_OK; -} - -error_code sceKernelOpenEventFlag(vm::cptr pName) -{ - sceLibKernel.error("sceKernelOpenEventFlag(pName=%s)", pName); - - const auto evf = psp2_event_flag::ipc::get(pName.get_ptr()); - - // Try to add IPC reference - if (!evf || !evf->ipc_ref.fetch_op([](u32& ref) { if (ref) ref++; })) - { - return SCE_KERNEL_ERROR_UID_CANNOT_FIND_BY_NAME; - } - - return not_an_error(idm::import_existing(evf)); -} - -error_code sceKernelCloseEventFlag(s32 evfId) -{ - sceLibKernel.error("sceKernelCloseEventFlag(evfId=0x%x)", evfId); - - const auto evf = idm::withdraw(evfId); - - if (!evf || !evf->ipc_ref) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - // Remove one IPC reference - if (!evf->ipc_ref.op_fetch([](u32& ref) { if (ref) ref--; })) - { - evf->exec(psp2_event_flag::task::destroy, 0); - } - - return SCE_OK; -} - -error_code sceKernelWaitEventFlag(ARMv7Thread& cpu, s32 evfId, u32 bitPattern, u32 waitMode, vm::ptr pResultPat, vm::ptr pTimeout) -{ - sceLibKernel.error("sceKernelWaitEventFlag(evfId=0x%x, bitPattern=0x%x, waitMode=0x%x, pResultPat=*0x%x, pTimeout=*0x%x)", evfId, bitPattern, waitMode, pResultPat, pTimeout); - - const u64 start_time = pTimeout ? get_system_time() : 0; - const u32 timeout = pTimeout ? pTimeout->value() : 0; - - const auto evf = idm::get(evfId); - - if (!evf) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - // First chance (TODO) - //const auto state = evf->ctrl.fetch_op([&](psp2_event_flag::ctrl_t& state) - //{ - // if (!state.waiters && psp2_event_flag::pat_test(state.pattern, bitPattern, waitMode)) - // { - // state.pattern &= psp2_event_flag::pat_clear(bitPattern, waitMode); - // } - // else if (evf->attr & SCE_KERNEL_ATTR_MULTI) - // { - // state.waiters++; - // } - // else if (!state.waiters) - // { - // state.waiters = cpu.id; - // } - //}); - - //if (evf->waiters && !(evf->attr & SCE_KERNEL_ATTR_MULTI)) - //{ - // return SCE_KERNEL_ERROR_EVF_MULTI; - //} - - //if (!state.waiters && psp2_event_flag::pat_test(state.pattern, bitPattern, waitMode)) - //{ - // if (pResultPat) *pResultPat = state.pattern; - // return SCE_OK; - //} - - // Set register values for external use - cpu.GPR[0] = waitMode; - cpu.GPR[1] = bitPattern; - - // Second chance - if (!evf->exec(psp2_event_flag::task::wait, cpu.id) || !cpu.state.test_and_reset(cpu_flag::signal)) - { - while (!cpu.state.test_and_reset(cpu_flag::signal)) - { - if (timeout) - { - const u64 passed = get_system_time() - start_time; - - if (passed >= timeout) - { - if (!evf->exec(psp2_event_flag::task::timeout, cpu.id)) - { - if (!evf->exec(psp2_event_flag::task::signal, cpu.id)) - { - thread_ctrl::wait([&] { return cpu.state.test_and_reset(cpu_flag::signal); }); - } - else - { - cpu.state -= cpu_flag::signal; - } - } - - break; - } - - thread_ctrl::wait_for(timeout - passed); - } - else - { - thread_ctrl::wait(); - } - } - } - - if (cpu.GPR[0] == SCE_KERNEL_ERROR_EVF_MULTI) - { - return SCE_KERNEL_ERROR_EVF_MULTI; - } - - if (pResultPat) *pResultPat = cpu.GPR[1]; - if (pTimeout) *pTimeout = static_cast(std::max(0, timeout - (get_system_time() - start_time))); - return not_an_error(cpu.GPR[0]); -} - -error_code sceKernelWaitEventFlagCB(ARMv7Thread& cpu, s32 evfId, u32 bitPattern, u32 waitMode, vm::ptr pResultPat, vm::ptr pTimeout) -{ - sceLibKernel.todo("sceKernelWaitEventFlagCB(evfId=0x%x, bitPattern=0x%x, waitMode=0x%x, pResultPat=*0x%x, pTimeout=*0x%x)", evfId, bitPattern, waitMode, pResultPat, pTimeout); - - return sceKernelWaitEventFlag(cpu, evfId, bitPattern, waitMode, pResultPat, pTimeout); -} - -error_code sceKernelPollEventFlag(ARMv7Thread& cpu, s32 evfId, u32 bitPattern, u32 waitMode, vm::ptr pResultPat) -{ - sceLibKernel.error("sceKernelPollEventFlag(evfId=0x%x, bitPattern=0x%x, waitMode=0x%x, pResultPat=*0x%x)", evfId, bitPattern, waitMode, pResultPat); - - const auto evf = idm::get(evfId); - - if (!evf) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - // First chance (TODO) - //const auto state = evf->ctrl.fetch_op([&](psp2_event_flag::ctrl_t& state) - //{ - // if (!state.waiters && psp2_event_flag::pat_test(state.pattern, bitPattern, waitMode)) - // { - // state.pattern &= psp2_event_flag::pat_clear(bitPattern, waitMode); - // } - //}); - - if (psp2_event_flag::pat_test(evf->pattern, bitPattern, waitMode)) - { - cpu.GPR[0] = waitMode; - cpu.GPR[1] = bitPattern; - - evf->sync(cpu, psp2_event_flag::task::poll, cpu.id); - - if (cpu.GPR[1]) - { - *pResultPat = cpu.GPR[1]; - return SCE_OK; - } - } - - return not_an_error(SCE_KERNEL_ERROR_EVENT_COND); -} - -error_code sceKernelSetEventFlag(s32 evfId, u32 bitPattern) -{ - sceLibKernel.error("sceKernelSetEventFlag(evfId=0x%x, bitPattern=0x%x)", evfId, bitPattern); - - const auto evf = idm::get(evfId); - - if (!evf) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - if (!evf->exec(psp2_event_flag::task::set, bitPattern)) - { - } - - return SCE_OK; -} - -error_code sceKernelClearEventFlag(s32 evfId, u32 bitPattern) -{ - sceLibKernel.error("sceKernelClearEventFlag(evfId=0x%x, bitPattern=0x%x)", evfId, bitPattern); - - const auto evf = idm::get(evfId); - - if (!evf) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - if (!evf->exec(psp2_event_flag::task::clear, bitPattern)) - { - } - - return SCE_OK; -} - -error_code sceKernelCancelEventFlag(ARMv7Thread& cpu, s32 evfId, u32 setPattern, vm::ptr pNumWaitThreads) -{ - sceLibKernel.error("sceKernelCancelEventFlag(evfId=0x%x, setPattern=0x%x, pNumWaitThreads=*0x%x)", evfId, setPattern, pNumWaitThreads); - - const auto evf = idm::get(evfId); - - if (!evf) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - *pNumWaitThreads = setPattern; - - evf->sync(cpu, psp2_event_flag::task::cancel, pNumWaitThreads.addr()); - - return SCE_OK; -} - -error_code sceKernelGetEventFlagInfo(s32 evfId, vm::ptr pInfo) -{ - sceLibKernel.error("sceKernelGetEventFlagInfo(evfId=0x%x, pInfo=*0x%x)", evfId, pInfo); - - const auto evf = idm::get(evfId); - - if (!evf) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - pInfo->size = SIZE_32(SceKernelEventFlagInfo); - pInfo->evfId = evfId; - - strcpy_trunc(pInfo->name, evf->name); - - pInfo->attr = evf->attr; - pInfo->initPattern = evf->init; - pInfo->currentPattern = evf->pattern; - pInfo->numWaitThreads = evf->attr & SCE_KERNEL_ATTR_MULTI ? evf->waiters.load() : evf->waiters != 0; - - return SCE_OK; -} - -// Semaphore functions - -error_code sceKernelCreateSema(vm::cptr pName, u32 attr, s32 initCount, s32 maxCount, vm::cptr pOptParam) -{ - sceLibKernel.error("sceKernelCreateSema(pName=%s, attr=0x%x, initCount=%d, maxCount=%d, pOptParam=*0x%x)", pName, attr, initCount, maxCount, pOptParam); - - return not_an_error(idm::make(pName.get_ptr(), attr, initCount, maxCount)); -} - -error_code sceKernelDeleteSema(s32 semaId) -{ - sceLibKernel.error("sceKernelDeleteSema(semaId=0x%x)", semaId); - - const auto sema = idm::withdraw(semaId); - - if (!sema) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - // ... - - return SCE_OK; -} - -s32 sceKernelOpenSema(vm::cptr pName) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelCloseSema(s32 semaId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -error_code sceKernelWaitSema(s32 semaId, s32 needCount, vm::ptr pTimeout) -{ - sceLibKernel.error("sceKernelWaitSema(semaId=0x%x, needCount=%d, pTimeout=*0x%x)", semaId, needCount, pTimeout); - - const auto sema = idm::get(semaId); - - if (!sema) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - sceLibKernel.error("*** name = %s", sema->name); - Emu.Pause(); - return SCE_OK; -} - -s32 sceKernelWaitSemaCB(s32 semaId, s32 needCount, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelPollSema(s32 semaId, s32 needCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelSignalSema(s32 semaId, s32 signalCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelCancelSema(s32 semaId, s32 setCount, vm::ptr pNumWaitThreads) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetSemaInfo(s32 semaId, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -// Mutex functions - -error_code sceKernelCreateMutex(vm::cptr pName, u32 attr, s32 initCount, vm::cptr pOptParam) -{ - sceLibKernel.error("sceKernelCreateMutex(pName=%s, attr=0x%x, initCount=%d, pOptParam=*0x%x)", pName, attr, initCount, pOptParam); - - return not_an_error(idm::make(pName.get_ptr(), attr, initCount)); -} - -error_code sceKernelDeleteMutex(s32 mutexId) -{ - sceLibKernel.error("sceKernelDeleteMutex(mutexId=0x%x)", mutexId); - - const auto mutex = idm::withdraw(mutexId); - - if (!mutex) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - // ... - - return SCE_OK; -} - -s32 sceKernelOpenMutex(vm::cptr pName) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelCloseMutex(s32 mutexId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelLockMutex(s32 mutexId, s32 lockCount, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelLockMutexCB(s32 mutexId, s32 lockCount, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelTryLockMutex(s32 mutexId, s32 lockCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelUnlockMutex(s32 mutexId, s32 unlockCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelCancelMutex(s32 mutexId, s32 newCount, vm::ptr pNumWaitThreads) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetMutexInfo(s32 mutexId, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -// Lightweight mutex functions - -s32 sceKernelCreateLwMutex(vm::ptr pWork, vm::cptr pName, u32 attr, s32 initCount, vm::cptr pOptParam) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelDeleteLwMutex(vm::ptr pWork) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelLockLwMutex(vm::ptr pWork, s32 lockCount, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelLockLwMutexCB(vm::ptr pWork, s32 lockCount, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelTryLockLwMutex(vm::ptr pWork, s32 lockCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelUnlockLwMutex(vm::ptr pWork, s32 unlockCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetLwMutexInfo(vm::ptr pWork, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetLwMutexInfoById(s32 lwMutexId, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -// Condition variable functions - -error_code sceKernelCreateCond(vm::cptr pName, u32 attr, s32 mutexId, vm::cptr pOptParam) -{ - sceLibKernel.error("sceKernelCreateCond(pName=%s, attr=0x%x, mutexId=0x%x, pOptParam=*0x%x)", pName, attr, mutexId, pOptParam); - - const auto mutex = idm::get(mutexId); - - if (!mutex) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - return not_an_error(idm::make(pName.get_ptr(), attr, mutex)); -} - -error_code sceKernelDeleteCond(s32 condId) -{ - sceLibKernel.error("sceKernelDeleteCond(condId=0x%x)", condId); - - const auto cond = idm::withdraw(condId); - - if (!cond) - { - return SCE_KERNEL_ERROR_INVALID_UID; - } - - // ... - - return SCE_OK; -} - -s32 sceKernelOpenCond(vm::cptr pName) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelCloseCond(s32 condId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelWaitCond(s32 condId, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelWaitCondCB(s32 condId, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelSignalCond(s32 condId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelSignalCondAll(s32 condId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelSignalCondTo(s32 condId, s32 threadId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetCondInfo(s32 condId, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -// Lightweight condition variable functions - -s32 sceKernelCreateLwCond(vm::ptr pWork, vm::cptr pName, u32 attr, vm::ptr pLwMutex, vm::cptr pOptParam) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelDeleteLwCond(vm::ptr pWork) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelWaitLwCond(vm::ptr pWork, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelWaitLwCondCB(vm::ptr pWork, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelSignalLwCond(vm::ptr pWork) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelSignalLwCondAll(vm::ptr pWork) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelSignalLwCondTo(vm::ptr pWork, s32 threadId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetLwCondInfo(vm::ptr pWork, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetLwCondInfoById(s32 lwCondId, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -// Time functions - -s32 sceKernelGetSystemTime(vm::ptr pClock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u64 sceKernelGetSystemTimeWide() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceKernelGetSystemTimeLow() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -// Timer functions - -s32 sceKernelCreateTimer(vm::cptr pName, u32 attr, vm::cptr pOptParam) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelDeleteTimer(s32 timerId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelOpenTimer(vm::cptr pName) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelCloseTimer(s32 timerId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelStartTimer(s32 timerId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelStopTimer(s32 timerId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetTimerBase(s32 timerId, vm::ptr pBase) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u64 sceKernelGetTimerBaseWide(s32 timerId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetTimerTime(s32 timerId, vm::ptr pClock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u64 sceKernelGetTimerTimeWide(s32 timerId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelSetTimerTime(s32 timerId, vm::ptr pClock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u64 sceKernelSetTimerTimeWide(s32 timerId, u64 clock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelSetTimerEvent(s32 timerId, s32 type, vm::ptr pInterval, s32 fRepeat) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelCancelTimer(s32 timerId, vm::ptr pNumWaitThreads) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetTimerInfo(s32 timerId, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -// Reader/writer lock functions - -s32 sceKernelCreateRWLock(vm::cptr pName, u32 attr, vm::cptr pOptParam) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelDeleteRWLock(s32 rwLockId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelOpenRWLock(vm::cptr pName) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelCloseRWLock(s32 rwLockId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelLockReadRWLock(s32 rwLockId, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelLockReadRWLockCB(s32 rwLockId, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelTryLockReadRWLock(s32 rwLockId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelUnlockReadRWLock(s32 rwLockId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelLockWriteRWLock(s32 rwLockId, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelLockWriteRWLockCB(s32 rwLockId, vm::ptr pTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelTryLockWriteRWLock(s32 rwLockId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelUnlockWriteRWLock(s32 rwLockId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelCancelRWLock(s32 rwLockId, vm::ptr pNumReadWaitThreads, vm::ptr pNumWriteWaitThreads, s32 flag) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceKernelGetRWLockInfo(s32 rwLockId, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -error_code sceKernelGetThreadmgrUIDClass(s32 uid) -{ - sceLibKernel.error("sceKernelGetThreadmgrUIDClass(uid=0x%x)", uid); - - if (idm::check(uid)) return not_an_error(SCE_KERNEL_THREADMGR_UID_CLASS_THREAD); - if (idm::check(uid)) return not_an_error(SCE_KERNEL_THREADMGR_UID_CLASS_SEMA); - if (idm::check(uid)) return not_an_error(SCE_KERNEL_THREADMGR_UID_CLASS_EVENT_FLAG); - if (idm::check(uid)) return not_an_error(SCE_KERNEL_THREADMGR_UID_CLASS_MUTEX); - if (idm::check(uid)) return not_an_error(SCE_KERNEL_THREADMGR_UID_CLASS_COND); - - return SCE_KERNEL_ERROR_INVALID_UID; -} - -// IO/File functions - -s32 sceIoRemove(vm::cptr filename) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoMkdir(vm::cptr dirname, s32 mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoRmdir(vm::cptr dirname) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoRename(vm::cptr oldname, vm::cptr newname) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoDevctl(vm::cptr devname, s32 cmd, vm::cptr arg, u32 arglen, vm::ptr bufp, u32 buflen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoSync(vm::cptr devname, s32 flag) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoOpen(vm::cptr filename, s32 flag, s32 mode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoClose(s32 fd) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoIoctl(s32 fd, s32 cmd, vm::cptr argp, u32 arglen, vm::ptr bufp, u32 buflen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s64 sceIoLseek(s32 fd, s64 offset, s32 whence) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoLseek32(s32 fd, s32 offset, s32 whence) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoRead(s32 fd, vm::ptr buf, u32 nbyte) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoWrite(s32 fd, vm::cptr buf, u32 nbyte) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoPread(s32 fd, vm::ptr buf, u32 nbyte, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoPwrite(s32 fd, vm::cptr buf, u32 nbyte, s64 offset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoDopen(vm::cptr dirname) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoDclose(s32 fd) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoDread(s32 fd, vm::ptr buf) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoChstat(vm::cptr name, vm::cptr buf, u32 cbit) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceIoGetstat(vm::cptr name, vm::ptr buf) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceLibKernel, nid, name) - -DECLARE(arm_module_manager::SceLibKernel)("SceLibKernel", []() -{ - // REG_FUNC(???, sceKernelGetEventInfo); - - //REG_FUNC(0x023EAA62, sceKernelPuts); - //REG_FUNC(0xB0335388, sceClibToupper); - //REG_FUNC(0x4C5471BC, sceClibTolower); - //REG_FUNC(0xD8EBBB7E, sceClibLookCtypeTable); - //REG_FUNC(0x20EC3210, sceClibGetCtypeTable); - //REG_FUNC(0x407D6153, sceClibMemchr); - //REG_FUNC(0x9CC2BFDF, sceClibMemcmp); - //REG_FUNC(0x14E9DBD7, sceClibMemcpy); - //REG_FUNC(0x736753C8, sceClibMemmove); - //REG_FUNC(0x632980D7, sceClibMemset); - //REG_FUNC(0xFA26BC62, sceClibPrintf); - //REG_FUNC(0x5EA3B6CE, sceClibVprintf); - //REG_FUNC(0x8CBA03D5, sceClibSnprintf); - //REG_FUNC(0xFA6BE467, sceClibVsnprintf); - //REG_FUNC(0xA2FB4D9D, sceClibStrcmp); - //REG_FUNC(0x70CBC2D5, sceClibStrlcat); - //REG_FUNC(0x2CDFCD1C, sceClibStrlcpy); - //REG_FUNC(0xA37E6383, sceClibStrncat); - //REG_FUNC(0x660D1F6D, sceClibStrncmp); - //REG_FUNC(0xC458D60A, sceClibStrncpy); - //REG_FUNC(0xAC595E68, sceClibStrnlen); - //REG_FUNC(0x614076B7, sceClibStrchr); - //REG_FUNC(0x6E728AAE, sceClibStrrchr); - //REG_FUNC(0xE265498B, sceClibStrstr); - //REG_FUNC(0xB54C0BE4, sceClibStrncasecmp); - //REG_FUNC(0x2F2C6046, sceClibAbort); - //REG_FUNC(0x2E581B88, sceClibStrtoll); - //REG_FUNC(0x3B9E301A, sceClibMspaceCreate); - //REG_FUNC(0xAE1A21EC, sceClibMspaceDestroy); - //REG_FUNC(0x86EF7680, sceClibMspaceMalloc); - //REG_FUNC(0x9C56B4D1, sceClibMspaceFree); - //REG_FUNC(0x678374AD, sceClibMspaceCalloc); - //REG_FUNC(0x3C847D57, sceClibMspaceMemalign); - //REG_FUNC(0x774891D6, sceClibMspaceRealloc); - //REG_FUNC(0x586AC68D, sceClibMspaceReallocalign); - //REG_FUNC(0x46A02279, sceClibMspaceMallocUsableSize); - //REG_FUNC(0x8CC1D38E, sceClibMspaceMallocStats); - //REG_FUNC(0x738E0322, sceClibMspaceMallocStatsFast); - //REG_FUNC(0xD1D59701, sceClibMspaceIsHeapEmpty); - //REG_FUNC(0xE960FDA2, sceKernelAtomicSet8); - //REG_FUNC(0x450BFECF, sceKernelAtomicSet16); - //REG_FUNC(0xB69DA09B, sceKernelAtomicSet32); - //REG_FUNC(0xC8A4339C, sceKernelAtomicSet64); - //REG_FUNC(0x27A2AAFA, sceKernelAtomicGetAndAdd8); - //REG_FUNC(0x5674DB0C, sceKernelAtomicGetAndAdd16); - //REG_FUNC(0x2611CB0B, sceKernelAtomicGetAndAdd32); - //REG_FUNC(0x63DAF37D, sceKernelAtomicGetAndAdd64); - //REG_FUNC(0x8F7BD940, sceKernelAtomicAddAndGet8); - //REG_FUNC(0x495C52EC, sceKernelAtomicAddAndGet16); - //REG_FUNC(0x2E84A93B, sceKernelAtomicAddAndGet32); - //REG_FUNC(0xB6CE9B9A, sceKernelAtomicAddAndGet64); - //REG_FUNC(0xCDF5DF67, sceKernelAtomicGetAndSub8); - //REG_FUNC(0xAC51979C, sceKernelAtomicGetAndSub16); - //REG_FUNC(0x115C516F, sceKernelAtomicGetAndSub32); - //REG_FUNC(0x4AE9C8E6, sceKernelAtomicGetAndSub64); - //REG_FUNC(0x99E1796E, sceKernelAtomicSubAndGet8); - //REG_FUNC(0xC26BBBB1, sceKernelAtomicSubAndGet16); - //REG_FUNC(0x01C9CD92, sceKernelAtomicSubAndGet32); - //REG_FUNC(0x9BB4A94B, sceKernelAtomicSubAndGet64); - //REG_FUNC(0x53DCA02B, sceKernelAtomicGetAndAnd8); - //REG_FUNC(0x7A0CB056, sceKernelAtomicGetAndAnd16); - //REG_FUNC(0x08266595, sceKernelAtomicGetAndAnd32); - //REG_FUNC(0x4828BC43, sceKernelAtomicGetAndAnd64); - //REG_FUNC(0x86B9170F, sceKernelAtomicAndAndGet8); - //REG_FUNC(0xF9890F7E, sceKernelAtomicAndAndGet16); - //REG_FUNC(0x6709D30C, sceKernelAtomicAndAndGet32); - //REG_FUNC(0xAED2B370, sceKernelAtomicAndAndGet64); - //REG_FUNC(0x107A68DF, sceKernelAtomicGetAndOr8); - //REG_FUNC(0x31E49E73, sceKernelAtomicGetAndOr16); - //REG_FUNC(0x984AD276, sceKernelAtomicGetAndOr32); - //REG_FUNC(0xC39186CD, sceKernelAtomicGetAndOr64); - //REG_FUNC(0x51693931, sceKernelAtomicOrAndGet8); - //REG_FUNC(0x8E248EBD, sceKernelAtomicOrAndGet16); - //REG_FUNC(0xC3B2F7F8, sceKernelAtomicOrAndGet32); - //REG_FUNC(0x809BBC7D, sceKernelAtomicOrAndGet64); - //REG_FUNC(0x7350B2DF, sceKernelAtomicGetAndXor8); - //REG_FUNC(0x6E2D0B9E, sceKernelAtomicGetAndXor16); - //REG_FUNC(0x38739E2F, sceKernelAtomicGetAndXor32); - //REG_FUNC(0x6A19BBE9, sceKernelAtomicGetAndXor64); - //REG_FUNC(0x634AF062, sceKernelAtomicXorAndGet8); - //REG_FUNC(0x6F524195, sceKernelAtomicXorAndGet16); - //REG_FUNC(0x46940704, sceKernelAtomicXorAndGet32); - //REG_FUNC(0xDDC6866E, sceKernelAtomicXorAndGet64); - //REG_FUNC(0x327DB4C0, sceKernelAtomicCompareAndSet8); - //REG_FUNC(0xE8C01236, sceKernelAtomicCompareAndSet16); - //REG_FUNC(0x1124A1D4, sceKernelAtomicCompareAndSet32); - //REG_FUNC(0x1EBDFCCD, sceKernelAtomicCompareAndSet64); - //REG_FUNC(0xD7D49E36, sceKernelAtomicClearMask8); - //REG_FUNC(0x5FE7DFF8, sceKernelAtomicClearMask16); - //REG_FUNC(0xE3DF0CB3, sceKernelAtomicClearMask32); - //REG_FUNC(0x953D118A, sceKernelAtomicClearMask64); - //REG_FUNC(0x7FD94393, sceKernelAtomicAddUnless8); - //REG_FUNC(0x1CF4AA4B, sceKernelAtomicAddUnless16); - //REG_FUNC(0x4B33FD3C, sceKernelAtomicAddUnless32); - //REG_FUNC(0xFFCE7438, sceKernelAtomicAddUnless64); - //REG_FUNC(0x9DABE6C3, sceKernelAtomicDecIfPositive8); - //REG_FUNC(0x323718FB, sceKernelAtomicDecIfPositive16); - //REG_FUNC(0xCA3294F1, sceKernelAtomicDecIfPositive32); - //REG_FUNC(0x8BE2A007, sceKernelAtomicDecIfPositive64); - //REG_FUNC(0xBBE82155, sceKernelLoadModule); - //REG_FUNC(0x2DCC4AFA, sceKernelLoadStartModule); - //REG_FUNC(0x702425D5, sceKernelStartModule); - //REG_FUNC(0x3B2CBA09, sceKernelStopModule); - //REG_FUNC(0x1987920E, sceKernelUnloadModule); - //REG_FUNC(0x2415F8A4, sceKernelStopUnloadModule); - //REG_FUNC(0x15E2A45D, sceKernelCallModuleExit); - //REG_FUNC(0xD11A5103, sceKernelGetModuleInfoByAddr); - //REG_FUNC(0x4F2D8B15, sceKernelOpenModule); - //REG_FUNC(0x657FA50E, sceKernelCloseModule); - //REG_FUNC(0x7595D9AA, sceKernelExitProcess); - //REG_FUNC(0x4C7AD128, sceKernelPowerLock); - //REG_FUNC(0xAF8E9C11, sceKernelPowerUnlock); - //REG_FUNC(0xB295EB61, sceKernelGetTLSAddr); - REG_FUNC(0x0FB972F9, sceKernelGetThreadId); - REG_FUNC(0xA37A6057, sceKernelGetCurrentThreadVfpException); - //REG_FUNC(0x0CA71EA2, sceKernelSendMsgPipe); - //REG_FUNC(0xA5CA74AC, sceKernelSendMsgPipeCB); - //REG_FUNC(0xDFC670E0, sceKernelTrySendMsgPipe); - //REG_FUNC(0x4E81DD5C, sceKernelReceiveMsgPipe); - //REG_FUNC(0x33AF829B, sceKernelReceiveMsgPipeCB); - //REG_FUNC(0x5615B006, sceKernelTryReceiveMsgPipe); - REG_FUNC(0xA7819967, sceKernelLockLwMutex); - REG_FUNC(0x6F9C4CC1, sceKernelLockLwMutexCB); - REG_FUNC(0x9EF798C1, sceKernelTryLockLwMutex); - REG_FUNC(0x499EA781, sceKernelUnlockLwMutex); - REG_FUNC(0xF7D8F1FC, sceKernelGetLwMutexInfo); - REG_FUNC(0xDDB395A9, sceKernelWaitThreadEnd); - REG_FUNC(0xC54941ED, sceKernelWaitThreadEndCB); - REG_FUNC(0xD5DC26C4, sceKernelGetThreadExitStatus); - //REG_FUNC(0x4373B548, __sce_aeabi_idiv0); - //REG_FUNC(0xFB235848, __sce_aeabi_ldiv0); - REG_FUNC(0xF08DE149, sceKernelStartThread); - REG_FUNC(0x58DDAC4F, sceKernelDeleteThread); - REG_FUNC(0x5150577B, sceKernelChangeThreadCpuAffinityMask); - REG_FUNC(0x8C57AC2A, sceKernelGetThreadCpuAffinityMask); - REG_FUNC(0xDF7E6EDA, sceKernelChangeThreadPriority); - //REG_FUNC(0xBCB63B66, sceKernelGetThreadStackFreeSize); - REG_FUNC(0x8D9C5461, sceKernelGetThreadInfo); - REG_FUNC(0xD6B01013, sceKernelGetThreadRunStatus); - REG_FUNC(0xE0241FAA, sceKernelGetSystemInfo); - REG_FUNC(0xF994FE65, sceKernelGetThreadmgrUIDClass); - //REG_FUNC(0xB4DE10C7, sceKernelGetActiveCpuMask); - REG_FUNC(0x2C1321A3, sceKernelChangeThreadVfpException); - REG_FUNC(0x3849359A, sceKernelCreateCallback); - REG_FUNC(0x88DD1BC8, sceKernelGetCallbackInfo); - REG_FUNC(0x464559D3, sceKernelDeleteCallback); - REG_FUNC(0xBD9C8F2B, sceKernelNotifyCallback); - REG_FUNC(0x3137A687, sceKernelCancelCallback); - REG_FUNC(0x76A2EF81, sceKernelGetCallbackCount); - REG_FUNC(0xD4F75281, sceKernelRegisterCallbackToEvent); - REG_FUNC(0x8D3940DF, sceKernelUnregisterCallbackFromEvent); - REG_FUNC(0x2BD1E682, sceKernelUnregisterCallbackFromEventAll); - REG_FUNC(0x120F03AF, sceKernelWaitEvent); - REG_FUNC(0xA0490795, sceKernelWaitEventCB); - REG_FUNC(0x241F3634, sceKernelPollEvent); - REG_FUNC(0x603AB770, sceKernelCancelEvent); - REG_FUNC(0x10586418, sceKernelWaitMultipleEvents); - REG_FUNC(0x4263DBC9, sceKernelWaitMultipleEventsCB); - REG_FUNC(0x8516D040, sceKernelCreateEventFlag); - REG_FUNC(0x11FE9B8B, sceKernelDeleteEventFlag); - REG_FUNC(0xE04EC73A, sceKernelOpenEventFlag); - REG_FUNC(0x9C0B8285, sceKernelCloseEventFlag); - REG_FUNC(0x83C0E2AF, sceKernelWaitEventFlag); - REG_FUNC(0xE737B1DF, sceKernelWaitEventFlagCB); - REG_FUNC(0x1FBB0FE1, sceKernelPollEventFlag); - REG_FUNC(0x2A12D9B7, sceKernelCancelEventFlag); - REG_FUNC(0x8BA4C0C1, sceKernelGetEventFlagInfo); - REG_FUNC(0x9EF9C0C5, sceKernelSetEventFlag); - REG_FUNC(0xD018793F, sceKernelClearEventFlag); - REG_FUNC(0x297AA2AE, sceKernelCreateSema); - REG_FUNC(0xC08F5BC5, sceKernelDeleteSema); - REG_FUNC(0xB028AB78, sceKernelOpenSema); - REG_FUNC(0x817707AB, sceKernelCloseSema); - REG_FUNC(0x0C7B834B, sceKernelWaitSema); - REG_FUNC(0x174692B4, sceKernelWaitSemaCB); - REG_FUNC(0x66D6BF05, sceKernelCancelSema); - REG_FUNC(0x595D3FA6, sceKernelGetSemaInfo); - REG_FUNC(0x3012A9C6, sceKernelPollSema); - REG_FUNC(0x2053A496, sceKernelSignalSema); - REG_FUNC(0xED53334A, sceKernelCreateMutex); - REG_FUNC(0x12D11F65, sceKernelDeleteMutex); - REG_FUNC(0x16B85235, sceKernelOpenMutex); - REG_FUNC(0x43DDC9CC, sceKernelCloseMutex); - REG_FUNC(0x1D8D7945, sceKernelLockMutex); - REG_FUNC(0x2BDAA524, sceKernelLockMutexCB); - REG_FUNC(0x2144890D, sceKernelCancelMutex); - REG_FUNC(0x9A6C43CA, sceKernelGetMutexInfo); - REG_FUNC(0xE5901FF9, sceKernelTryLockMutex); - REG_FUNC(0x34746309, sceKernelUnlockMutex); - REG_FUNC(0x50572FDA, sceKernelCreateCond); - REG_FUNC(0xFD295414, sceKernelDeleteCond); - REG_FUNC(0xCB2A73A9, sceKernelOpenCond); - REG_FUNC(0x4FB91A89, sceKernelCloseCond); - REG_FUNC(0xC88D44AD, sceKernelWaitCond); - REG_FUNC(0x4CE42CE2, sceKernelWaitCondCB); - REG_FUNC(0x6864DCE2, sceKernelGetCondInfo); - REG_FUNC(0x10A4976F, sceKernelSignalCond); - REG_FUNC(0x2EB86929, sceKernelSignalCondAll); - REG_FUNC(0x087629E6, sceKernelSignalCondTo); - //REG_FUNC(0x0A10C1C8, sceKernelCreateMsgPipe); - //REG_FUNC(0x69F6575D, sceKernelDeleteMsgPipe); - //REG_FUNC(0x230691DA, sceKernelOpenMsgPipe); - //REG_FUNC(0x7E5C0C16, sceKernelCloseMsgPipe); - //REG_FUNC(0x94D506F7, sceKernelSendMsgPipeVector); - //REG_FUNC(0x9C6F7F79, sceKernelSendMsgPipeVectorCB); - //REG_FUNC(0x60DB346F, sceKernelTrySendMsgPipeVector); - //REG_FUNC(0x9F899087, sceKernelReceiveMsgPipeVector); - //REG_FUNC(0xBE5B3E27, sceKernelReceiveMsgPipeVectorCB); - //REG_FUNC(0x86ECC0FF, sceKernelTryReceiveMsgPipeVector); - //REG_FUNC(0xEF14BA37, sceKernelCancelMsgPipe); - //REG_FUNC(0x4046D16B, sceKernelGetMsgPipeInfo); - REG_FUNC(0xDA6EC8EF, sceKernelCreateLwMutex); - REG_FUNC(0x244E76D2, sceKernelDeleteLwMutex); - REG_FUNC(0x4846613D, sceKernelGetLwMutexInfoById); - REG_FUNC(0x48C7EAE6, sceKernelCreateLwCond); - REG_FUNC(0x721F6CB3, sceKernelDeleteLwCond); - REG_FUNC(0xE1878282, sceKernelWaitLwCond); - REG_FUNC(0x8FA54B07, sceKernelWaitLwCondCB); - REG_FUNC(0x3AC63B9A, sceKernelSignalLwCond); - REG_FUNC(0xE5241A0C, sceKernelSignalLwCondAll); - REG_FUNC(0xFC1A48EB, sceKernelSignalLwCondTo); - REG_FUNC(0xE4DF36A0, sceKernelGetLwCondInfo); - REG_FUNC(0x971F1DE8, sceKernelGetLwCondInfoById); - REG_FUNC(0x2255B2A5, sceKernelCreateTimer); - REG_FUNC(0x746F3290, sceKernelDeleteTimer); - REG_FUNC(0x2F3D35A3, sceKernelOpenTimer); - REG_FUNC(0x17283DE6, sceKernelCloseTimer); - REG_FUNC(0x1478249B, sceKernelStartTimer); - REG_FUNC(0x075B1329, sceKernelStopTimer); - REG_FUNC(0x1F59E04D, sceKernelGetTimerBase); - REG_FUNC(0x3223CCD1, sceKernelGetTimerBaseWide); - REG_FUNC(0x381DC300, sceKernelGetTimerTime); - REG_FUNC(0x53C5D833, sceKernelGetTimerTimeWide); - REG_FUNC(0xFFAD717F, sceKernelSetTimerTime); - REG_FUNC(0xAF67678B, sceKernelSetTimerTimeWide); - REG_FUNC(0x621D293B, sceKernelSetTimerEvent); - REG_FUNC(0x9CCF768C, sceKernelCancelTimer); - REG_FUNC(0x7E35E10A, sceKernelGetTimerInfo); - REG_FUNC(0x8667951D, sceKernelCreateRWLock); - REG_FUNC(0x3D750204, sceKernelDeleteRWLock); - REG_FUNC(0xBA4DAC9A, sceKernelOpenRWLock); - REG_FUNC(0xA7F94E64, sceKernelCloseRWLock); - REG_FUNC(0xFA670F0F, sceKernelLockReadRWLock); - REG_FUNC(0x2D4A62B7, sceKernelLockReadRWLockCB); - REG_FUNC(0x1B8586C0, sceKernelTryLockReadRWLock); - REG_FUNC(0x675D10A8, sceKernelUnlockReadRWLock); - REG_FUNC(0x67A187BB, sceKernelLockWriteRWLock); - REG_FUNC(0xA4777082, sceKernelLockWriteRWLockCB); - REG_FUNC(0x597D4607, sceKernelTryLockWriteRWLock); - REG_FUNC(0xD9369DF2, sceKernelUnlockWriteRWLock); - REG_FUNC(0x190CA94B, sceKernelCancelRWLock); - REG_FUNC(0x079A573B, sceKernelGetRWLockInfo); - REG_FUNC(0x8AF15B5F, sceKernelGetSystemTime); - //REG_FUNC(0x99B2BF15, sceKernelPMonThreadGetCounter); - //REG_FUNC(0x7C21C961, sceKernelPMonCpuGetCounter); - //REG_FUNC(0xADCA94E5, sceKernelWaitSignal); - //REG_FUNC(0x24460BB3, sceKernelWaitSignalCB); - //REG_FUNC(0x7BE9C4C8, sceKernelSendSignal); - REG_FUNC(0xC5C11EE7, sceKernelCreateThread); - REG_FUNC(0x6C60AC61, sceIoOpen); - REG_FUNC(0xF5C6F098, sceIoClose); - REG_FUNC(0x713523E1, sceIoRead); - REG_FUNC(0x11FED231, sceIoWrite); - REG_FUNC(0x99BA173E, sceIoLseek); - REG_FUNC(0x5CC983AC, sceIoLseek32); - REG_FUNC(0xE20ED0F3, sceIoRemove); - REG_FUNC(0xF737E369, sceIoRename); - REG_FUNC(0x9670D39F, sceIoMkdir); - REG_FUNC(0xE9F91EC8, sceIoRmdir); - REG_FUNC(0xA9283DD0, sceIoDopen); - REG_FUNC(0x9DFF9C59, sceIoDclose); - REG_FUNC(0x9C8B6624, sceIoDread); - REG_FUNC(0xBCA5B623, sceIoGetstat); - REG_FUNC(0x29482F7F, sceIoChstat); - REG_FUNC(0x98ACED6D, sceIoSync); - REG_FUNC(0x04B30CB2, sceIoDevctl); - REG_FUNC(0x54ABACFA, sceIoIoctl); - //REG_FUNC(0x6A7EA9FD, sceIoOpenAsync); - //REG_FUNC(0x84201C9B, sceIoCloseAsync); - //REG_FUNC(0x7B3BE857, sceIoReadAsync); - //REG_FUNC(0x21329B20, sceIoWriteAsync); - //REG_FUNC(0xCAC5D672, sceIoLseekAsync); - //REG_FUNC(0x099C54B9, sceIoIoctlAsync); - //REG_FUNC(0x446A60AC, sceIoRemoveAsync); - //REG_FUNC(0x73FC184B, sceIoDopenAsync); - //REG_FUNC(0x4D0597D7, sceIoDcloseAsync); - //REG_FUNC(0xCE32490D, sceIoDreadAsync); - //REG_FUNC(0x8E5FCBB1, sceIoMkdirAsync); - //REG_FUNC(0x9694D00F, sceIoRmdirAsync); - //REG_FUNC(0xEE9857CD, sceIoRenameAsync); - //REG_FUNC(0x9739A5E2, sceIoChstatAsync); - //REG_FUNC(0x82B20B41, sceIoGetstatAsync); - //REG_FUNC(0x950F78EB, sceIoDevctlAsync); - //REG_FUNC(0xF7C7FBFE, sceIoSyncAsync); - //REG_FUNC(0xEC96EA71, sceIoCancel); - //REG_FUNC(0x857E0C71, sceIoComplete); - REG_FUNC(0x52315AD7, sceIoPread); - REG_FUNC(0x8FFFF5A8, sceIoPwrite); - //REG_FUNC(0xA010141E, sceIoPreadAsync); - //REG_FUNC(0xED25BEEF, sceIoPwriteAsync); - //REG_FUNC(0xA792C404, sceIoCompleteMultiple); - //REG_FUNC(0x894037E8, sceKernelBacktrace); - //REG_FUNC(0x20E2D4B7, sceKernelPrintBacktrace); - //REG_FUNC(0x963F4A99, sceSblACMgrIsGameProgram); - //REG_FUNC(0x261E2C34, sceKernelGetOpenPsId); - - //REG_FUNC(0x4C4672BF, sceKernelGetProcessTime); // !!! -}); - -DECLARE(arm_module_manager::SceIofilemgr)("SceIofilemgr", []() -{ - REG_FNID(SceIofilemgr, 0x34EFD876, sceIoWrite); // !!! - REG_FNID(SceIofilemgr, 0xC70B8886, sceIoClose); // !!! - REG_FNID(SceIofilemgr, 0xFDB32293, sceIoRead); // !!! -}); - -DECLARE(arm_module_manager::SceModulemgr)("SceModulemgr", []() -{ - //REG_FNID(SceModulemgr, 0x36585DAF, sceKernelGetModuleInfo); - //REG_FNID(SceModulemgr, 0x2EF2581F, sceKernelGetModuleList); - //REG_FNID(SceModulemgr, 0xF5798C7C, sceKernelGetModuleIdByAddr); -}); - -DECLARE(arm_module_manager::SceProcessmgr)("SceProcessmgr", []() -{ - //REG_FNID(SceProcessmgr, 0xCD248267, sceKernelGetCurrentProcess); - //REG_FNID(SceProcessmgr, 0x2252890C, sceKernelPowerTick); - //REG_FNID(SceProcessmgr, 0x9E45DA09, sceKernelLibcClock); - //REG_FNID(SceProcessmgr, 0x0039BE45, sceKernelLibcTime); - //REG_FNID(SceProcessmgr, 0x4B879059, sceKernelLibcGettimeofday); - //REG_FNID(SceProcessmgr, 0xC1727F59, sceKernelGetStdin); - //REG_FNID(SceProcessmgr, 0xE5AA625C, sceKernelGetStdout); - //REG_FNID(SceProcessmgr, 0xFA5E3ADA, sceKernelGetStderr); - //REG_FNID(SceProcessmgr, 0xE6E9FCA3, sceKernelGetRemoteProcessTime); - //REG_FNID(SceProcessmgr, 0xD37A8437, sceKernelGetProcessTime); - //REG_FNID(SceProcessmgr, 0xF5D0D4C6, sceKernelGetProcessTimeLow); - //REG_FNID(SceProcessmgr, 0x89DA0967, sceKernelGetProcessTimeWide); - //REG_FNID(SceProcessmgr, 0x2BE3E066, sceKernelGetProcessParam); -}); - -DECLARE(arm_module_manager::SceStdio)("SceStdio", []() -{ - //REG_FNID(SceStdio, 0x54237407, sceKernelStdin); - //REG_FNID(SceStdio, 0x9033E9BD, sceKernelStdout); - //REG_FNID(SceStdio, 0x35EE7CF5, sceKernelStderr); -}); - -DECLARE(arm_module_manager::SceSysmem)("SceSysmem", []() -{ - REG_FNID(SceSysmem, 0xB9D5EBDE, sceKernelAllocMemBlock); - REG_FNID(SceSysmem, 0xA91E15EE, sceKernelFreeMemBlock); - REG_FNID(SceSysmem, 0xB8EF5818, sceKernelGetMemBlockBase); - //REG_FNID(SceSysmem, 0x3B29E0F5, sceKernelRemapMemBlock); - //REG_FNID(SceSysmem, 0xA33B99D1, sceKernelFindMemBlockByAddr); - REG_FNID(SceSysmem, 0x4010AD65, sceKernelGetMemBlockInfoByAddr); -}); - -DECLARE(arm_module_manager::SceCpu)("SceCpu", []() -{ - //REG_FNID(SceCpu, 0x2704CFEE, sceKernelCpuId); -}); - -DECLARE(arm_module_manager::SceDipsw)("SceDipsw", []() -{ - //REG_FNID(SceDipsw, 0x1C783FB2, sceKernelCheckDipsw); - //REG_FNID(SceDipsw, 0x817053D4, sceKernelSetDipsw); - //REG_FNID(SceDipsw, 0x800EDCC1, sceKernelClearDipsw); -}); - -DECLARE(arm_module_manager::SceThreadmgr)("SceThreadmgr", []() -{ - REG_FNID(SceThreadmgr, 0x0C8A38E1, sceKernelExitThread); - REG_FNID(SceThreadmgr, 0x1D17DECF, sceKernelExitDeleteThread); - REG_FNID(SceThreadmgr, 0x4B675D05, sceKernelDelayThread); - REG_FNID(SceThreadmgr, 0x9C0180E1, sceKernelDelayThreadCB); - REG_FNID(SceThreadmgr, 0x1BBDE3D9, sceKernelDeleteThread); // !!! - //REG_FNID(SceThreadmgr, 0x001173F8, sceKernelChangeActiveCpuMask); - REG_FNID(SceThreadmgr, 0x01414F0B, sceKernelGetThreadCurrentPriority); - REG_FNID(SceThreadmgr, 0x751C9B7A, sceKernelChangeCurrentThreadAttr); - REG_FNID(SceThreadmgr, 0xD9BD74EB, sceKernelCheckWaitableStatus); - REG_FNID(SceThreadmgr, 0x9DCB4B7A, sceKernelGetProcessId); - REG_FNID(SceThreadmgr, 0xB19CF7E9, sceKernelCreateCallback); // !!! - REG_FNID(SceThreadmgr, 0xD469676B, sceKernelDeleteCallback); // !!! - REG_FNID(SceThreadmgr, 0xE53E41F6, sceKernelCheckCallback); - REG_FNID(SceThreadmgr, 0xF4EE4FA9, sceKernelGetSystemTimeWide); - REG_FNID(SceThreadmgr, 0x47F6DE49, sceKernelGetSystemTimeLow); - //REG_FNID(SceThreadmgr, 0xC0FAF6A3, sceKernelCreateThreadForUser); - REG_FNID(SceThreadmgr, 0xF1AE5654, sceKernelGetThreadCpuAffinityMask); // !!! -}); - -DECLARE(arm_module_manager::SceDebugLed)("SceDebugLed", []() -{ - //REG_FNID(SceDebugLed, 0x78E702D3, sceKernelSetGPO); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceLibKernel.h b/rpcs3/Emu/PSP2/Modules/sceLibKernel.h deleted file mode 100644 index cb025be4bf..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLibKernel.h +++ /dev/null @@ -1,712 +0,0 @@ -#pragma once - -#include "Emu/PSP2/ErrorCodes.h" -#include "Emu/PSP2/Modules/Common.h" - -// Kernel internal TLS manager (TODO) -class arm_tls_manager -{ - std::array, 128> m_map{}; - -public: - const u32 vaddr; - const u32 fsize; - const u32 vsize; - const u32 start; - - // Initialize from ELF process parameters - arm_tls_manager(u32 vaddr, u32 fsize, u32 vsize); - - // Allocate and initialize TLS - u32 alloc(); - - // Deallocate by address - void dealloc(u32 addr); -}; - -// Error Codes -enum SceLibKernelError : u32 -{ - SCE_KERNEL_ERROR_ERROR = 0x80020001, - SCE_KERNEL_ERROR_NOT_IMPLEMENTED = 0x80020002, - SCE_KERNEL_ERROR_INVALID_ARGUMENT = 0x80020003, - SCE_KERNEL_ERROR_INVALID_ARGUMENT_SIZE = 0x80020004, - SCE_KERNEL_ERROR_INVALID_FLAGS = 0x80020005, - SCE_KERNEL_ERROR_ILLEGAL_SIZE = 0x80020006, - SCE_KERNEL_ERROR_ILLEGAL_ADDR = 0x80020007, - SCE_KERNEL_ERROR_UNSUP = 0x80020008, - SCE_KERNEL_ERROR_ILLEGAL_MODE = 0x80020009, - SCE_KERNEL_ERROR_ILLEGAL_ALIGNMENT = 0x8002000A, - SCE_KERNEL_ERROR_NOSYS = 0x8002000B, - SCE_KERNEL_ERROR_DEBUG_ERROR = 0x80021000, - SCE_KERNEL_ERROR_ILLEGAL_DIPSW_NUMBER = 0x80021001, - SCE_KERNEL_ERROR_CPU_ERROR = 0x80022000, - SCE_KERNEL_ERROR_MMU_ILLEGAL_L1_TYPE = 0x80022001, - SCE_KERNEL_ERROR_MMU_L2_INDEX_OVERFLOW = 0x80022002, - SCE_KERNEL_ERROR_MMU_L2_SIZE_OVERFLOW = 0x80022003, - SCE_KERNEL_ERROR_INVALID_CPU_AFFINITY = 0x80022004, - SCE_KERNEL_ERROR_INVALID_MEMORY_ACCESS = 0x80022005, - SCE_KERNEL_ERROR_INVALID_MEMORY_ACCESS_PERMISSION = 0x80022006, - SCE_KERNEL_ERROR_VA2PA_FAULT = 0x80022007, - SCE_KERNEL_ERROR_VA2PA_MAPPED = 0x80022008, - SCE_KERNEL_ERROR_VALIDATION_CHECK_FAILED = 0x80022009, - SCE_KERNEL_ERROR_SYSMEM_ERROR = 0x80024000, - SCE_KERNEL_ERROR_INVALID_PROCESS_CONTEXT = 0x80024001, - SCE_KERNEL_ERROR_UID_NAME_TOO_LONG = 0x80024002, - SCE_KERNEL_ERROR_VARANGE_IS_NOT_PHYSICAL_CONTINUOUS = 0x80024003, - SCE_KERNEL_ERROR_PHYADDR_ERROR = 0x80024100, - SCE_KERNEL_ERROR_NO_PHYADDR = 0x80024101, - SCE_KERNEL_ERROR_PHYADDR_USED = 0x80024102, - SCE_KERNEL_ERROR_PHYADDR_NOT_USED = 0x80024103, - SCE_KERNEL_ERROR_NO_IOADDR = 0x80024104, - SCE_KERNEL_ERROR_PHYMEM_ERROR = 0x80024300, - SCE_KERNEL_ERROR_ILLEGAL_PHYPAGE_STATUS = 0x80024301, - SCE_KERNEL_ERROR_NO_FREE_PHYSICAL_PAGE = 0x80024302, - SCE_KERNEL_ERROR_NO_FREE_PHYSICAL_PAGE_UNIT = 0x80024303, - SCE_KERNEL_ERROR_PHYMEMPART_NOT_EMPTY = 0x80024304, - SCE_KERNEL_ERROR_NO_PHYMEMPART_LPDDR2 = 0x80024305, - SCE_KERNEL_ERROR_NO_PHYMEMPART_CDRAM = 0x80024306, - SCE_KERNEL_ERROR_FIXEDHEAP_ERROR = 0x80024400, - SCE_KERNEL_ERROR_FIXEDHEAP_ILLEGAL_SIZE = 0x80024401, - SCE_KERNEL_ERROR_FIXEDHEAP_ILLEGAL_INDEX = 0x80024402, - SCE_KERNEL_ERROR_FIXEDHEAP_INDEX_OVERFLOW = 0x80024403, - SCE_KERNEL_ERROR_FIXEDHEAP_NO_CHUNK = 0x80024404, - SCE_KERNEL_ERROR_UID_ERROR = 0x80024500, - SCE_KERNEL_ERROR_INVALID_UID = 0x80024501, - SCE_KERNEL_ERROR_SYSMEM_UID_INVALID_ARGUMENT = 0x80024502, - SCE_KERNEL_ERROR_SYSMEM_INVALID_UID_RANGE = 0x80024503, - SCE_KERNEL_ERROR_SYSMEM_NO_VALID_UID = 0x80024504, - SCE_KERNEL_ERROR_SYSMEM_CANNOT_ALLOCATE_UIDENTRY = 0x80024505, - SCE_KERNEL_ERROR_NOT_PROCESS_UID = 0x80024506, - SCE_KERNEL_ERROR_NOT_KERNEL_UID = 0x80024507, - SCE_KERNEL_ERROR_INVALID_UID_CLASS = 0x80024508, - SCE_KERNEL_ERROR_INVALID_UID_SUBCLASS = 0x80024509, - SCE_KERNEL_ERROR_UID_CANNOT_FIND_BY_NAME = 0x8002450A, - SCE_KERNEL_ERROR_VIRPAGE_ERROR = 0x80024600, - SCE_KERNEL_ERROR_ILLEGAL_VIRPAGE_TYPE = 0x80024601, - SCE_KERNEL_ERROR_BLOCK_ERROR = 0x80024700, - SCE_KERNEL_ERROR_ILLEGAL_BLOCK_ID = 0x80024701, - SCE_KERNEL_ERROR_ILLEGAL_BLOCK_TYPE = 0x80024702, - SCE_KERNEL_ERROR_BLOCK_IN_USE = 0x80024703, - SCE_KERNEL_ERROR_PARTITION_ERROR = 0x80024800, - SCE_KERNEL_ERROR_ILLEGAL_PARTITION_ID = 0x80024801, - SCE_KERNEL_ERROR_ILLEGAL_PARTITION_INDEX = 0x80024802, - SCE_KERNEL_ERROR_NO_L2PAGETABLE = 0x80024803, - SCE_KERNEL_ERROR_HEAPLIB_ERROR = 0x80024900, - SCE_KERNEL_ERROR_ILLEGAL_HEAP_ID = 0x80024901, - SCE_KERNEL_ERROR_OUT_OF_RANG = 0x80024902, - SCE_KERNEL_ERROR_HEAPLIB_NOMEM = 0x80024903, - SCE_KERNEL_ERROR_SYSMEM_ADDRESS_SPACE_ERROR = 0x80024A00, - SCE_KERNEL_ERROR_INVALID_ADDRESS_SPACE_ID = 0x80024A01, - SCE_KERNEL_ERROR_INVALID_PARTITION_INDEX = 0x80024A02, - SCE_KERNEL_ERROR_ADDRESS_SPACE_CANNOT_FIND_PARTITION_BY_ADDR = 0x80024A03, - SCE_KERNEL_ERROR_SYSMEM_MEMBLOCK_ERROR = 0x80024B00, - SCE_KERNEL_ERROR_ILLEGAL_MEMBLOCK_TYPE = 0x80024B01, - SCE_KERNEL_ERROR_ILLEGAL_MEMBLOCK_REMAP_TYPE = 0x80024B02, - SCE_KERNEL_ERROR_NOT_PHY_CONT_MEMBLOCK = 0x80024B03, - SCE_KERNEL_ERROR_ILLEGAL_MEMBLOCK_CODE = 0x80024B04, - SCE_KERNEL_ERROR_ILLEGAL_MEMBLOCK_SIZE = 0x80024B05, - SCE_KERNEL_ERROR_ILLEGAL_USERMAP_SIZE = 0x80024B06, - SCE_KERNEL_ERROR_MEMBLOCK_TYPE_FOR_KERNEL_PROCESS = 0x80024B07, - SCE_KERNEL_ERROR_PROCESS_CANNOT_REMAP_MEMBLOCK = 0x80024B08, - SCE_KERNEL_ERROR_SYSMEM_PHYMEMLOW_ERROR = 0x80024C00, - SCE_KERNEL_ERROR_CANNOT_ALLOC_PHYMEMLOW = 0x80024C01, - SCE_KERNEL_ERROR_UNKNOWN_PHYMEMLOW_TYPE = 0x80024C02, - SCE_KERNEL_ERROR_SYSMEM_BITHEAP_ERROR = 0x80024D00, - SCE_KERNEL_ERROR_CANNOT_ALLOC_BITHEAP = 0x80024D01, - SCE_KERNEL_ERROR_LOADCORE_ERROR = 0x80025000, - SCE_KERNEL_ERROR_ILLEGAL_ELF_HEADER = 0x80025001, - SCE_KERNEL_ERROR_ILLEGAL_SELF_HEADER = 0x80025002, - SCE_KERNEL_ERROR_EXCPMGR_ERROR = 0x80027000, - SCE_KERNEL_ERROR_ILLEGAL_EXCPCODE = 0x80027001, - SCE_KERNEL_ERROR_ILLEGAL_EXCPHANDLER = 0x80027002, - SCE_KERNEL_ERROR_NOTFOUND_EXCPHANDLER = 0x80027003, - SCE_KERNEL_ERROR_CANNOT_RELEASE_EXCPHANDLER = 0x80027004, - SCE_KERNEL_ERROR_INTRMGR_ERROR = 0x80027100, - SCE_KERNEL_ERROR_ILLEGAL_CONTEXT = 0x80027101, - SCE_KERNEL_ERROR_ILLEGAL_INTRCODE = 0x80027102, - SCE_KERNEL_ERROR_ILLEGAL_INTRPARAM = 0x80027103, - SCE_KERNEL_ERROR_ILLEGAL_INTRPRIORITY = 0x80027104, - SCE_KERNEL_ERROR_ILLEGAL_TARGET_CPU = 0x80027105, - SCE_KERNEL_ERROR_ILLEGAL_INTRFILTER = 0x80027106, - SCE_KERNEL_ERROR_ILLEGAL_INTRTYPE = 0x80027107, - SCE_KERNEL_ERROR_ILLEGAL_HANDLER = 0x80027108, - SCE_KERNEL_ERROR_FOUND_HANDLER = 0x80027109, - SCE_KERNEL_ERROR_NOTFOUND_HANDLER = 0x8002710A, - SCE_KERNEL_ERROR_NO_MEMORY = 0x8002710B, - SCE_KERNEL_ERROR_DMACMGR_ERROR = 0x80027200, - SCE_KERNEL_ERROR_ALREADY_QUEUED = 0x80027201, - SCE_KERNEL_ERROR_NOT_QUEUED = 0x80027202, - SCE_KERNEL_ERROR_NOT_SETUP = 0x80027203, - SCE_KERNEL_ERROR_ON_TRANSFERRING = 0x80027204, - SCE_KERNEL_ERROR_NOT_INITIALIZED = 0x80027205, - SCE_KERNEL_ERROR_TRANSFERRED = 0x80027206, - SCE_KERNEL_ERROR_NOT_UNDER_CONTROL = 0x80027207, - SCE_KERNEL_ERROR_SYSTIMER_ERROR = 0x80027300, - SCE_KERNEL_ERROR_NO_FREE_TIMER = 0x80027301, - SCE_KERNEL_ERROR_TIMER_NOT_ALLOCATED = 0x80027302, - SCE_KERNEL_ERROR_TIMER_COUNTING = 0x80027303, - SCE_KERNEL_ERROR_TIMER_STOPPED = 0x80027304, - SCE_KERNEL_ERROR_THREADMGR_ERROR = 0x80028000, - SCE_KERNEL_ERROR_DORMANT = 0x80028001, - SCE_KERNEL_ERROR_NOT_DORMANT = 0x80028002, - SCE_KERNEL_ERROR_UNKNOWN_THID = 0x80028003, - SCE_KERNEL_ERROR_CAN_NOT_WAIT = 0x80028004, - SCE_KERNEL_ERROR_ILLEGAL_THID = 0x80028005, - SCE_KERNEL_ERROR_THREAD_TERMINATED = 0x80028006, - SCE_KERNEL_ERROR_DELETED = 0x80028007, - SCE_KERNEL_ERROR_WAIT_TIMEOUT = 0x80028008, - SCE_KERNEL_ERROR_NOTIFY_CALLBACK = 0x80028009, - SCE_KERNEL_ERROR_WAIT_DELETE = 0x8002800A, - SCE_KERNEL_ERROR_ILLEGAL_ATTR = 0x8002800B, - SCE_KERNEL_ERROR_EVF_MULTI = 0x8002800C, - SCE_KERNEL_ERROR_WAIT_CANCEL = 0x8002800D, - SCE_KERNEL_ERROR_EVF_COND = 0x8002800E, - SCE_KERNEL_ERROR_ILLEGAL_COUNT = 0x8002800F, - SCE_KERNEL_ERROR_ILLEGAL_PRIORITY = 0x80028010, - SCE_KERNEL_ERROR_MUTEX_RECURSIVE = 0x80028011, - SCE_KERNEL_ERROR_MUTEX_LOCK_OVF = 0x80028012, - SCE_KERNEL_ERROR_MUTEX_NOT_OWNED = 0x80028013, - SCE_KERNEL_ERROR_MUTEX_UNLOCK_UDF = 0x80028014, - SCE_KERNEL_ERROR_MUTEX_FAILED_TO_OWN = 0x80028015, - SCE_KERNEL_ERROR_FAST_MUTEX_RECURSIVE = 0x80028016, - SCE_KERNEL_ERROR_FAST_MUTEX_LOCK_OVF = 0x80028017, - SCE_KERNEL_ERROR_FAST_MUTEX_FAILED_TO_OWN = 0x80028018, - SCE_KERNEL_ERROR_FAST_MUTEX_NOT_OWNED = 0x80028019, - SCE_KERNEL_ERROR_FAST_MUTEX_OWNED = 0x8002801A, - SCE_KERNEL_ERROR_ALARM_CAN_NOT_CANCEL = 0x8002801B, - SCE_KERNEL_ERROR_INVALID_OBJECT_TYPE = 0x8002801C, - SCE_KERNEL_ERROR_KERNEL_TLS_FULL = 0x8002801D, - SCE_KERNEL_ERROR_ILLEGAL_KERNEL_TLS_INDEX = 0x8002801E, - SCE_KERNEL_ERROR_KERNEL_TLS_BUSY = 0x8002801F, - SCE_KERNEL_ERROR_DIFFERENT_UID_CLASS = 0x80028020, - SCE_KERNEL_ERROR_UNKNOWN_UID = 0x80028021, - SCE_KERNEL_ERROR_SEMA_ZERO = 0x80028022, - SCE_KERNEL_ERROR_SEMA_OVF = 0x80028023, - SCE_KERNEL_ERROR_PMON_NOT_THREAD_MODE = 0x80028024, - SCE_KERNEL_ERROR_PMON_NOT_CPU_MODE = 0x80028025, - SCE_KERNEL_ERROR_ALREADY_REGISTERED = 0x80028026, - SCE_KERNEL_ERROR_INVALID_THREAD_ID = 0x80028027, - SCE_KERNEL_ERROR_ALREADY_DEBUG_SUSPENDED = 0x80028028, - SCE_KERNEL_ERROR_NOT_DEBUG_SUSPENDED = 0x80028029, - SCE_KERNEL_ERROR_CAN_NOT_USE_VFP = 0x8002802A, - SCE_KERNEL_ERROR_RUNNING = 0x8002802B, - SCE_KERNEL_ERROR_EVENT_COND = 0x8002802C, - SCE_KERNEL_ERROR_MSG_PIPE_FULL = 0x8002802D, - SCE_KERNEL_ERROR_MSG_PIPE_EMPTY = 0x8002802E, - SCE_KERNEL_ERROR_ALREADY_SENT = 0x8002802F, - SCE_KERNEL_ERROR_CAN_NOT_SUSPEND = 0x80028030, - SCE_KERNEL_ERROR_FAST_MUTEX_ALREADY_INITIALIZED = 0x80028031, - SCE_KERNEL_ERROR_FAST_MUTEX_NOT_INITIALIZED = 0x80028032, - SCE_KERNEL_ERROR_THREAD_STOPPED = 0x80028033, - SCE_KERNEL_ERROR_THREAD_SUSPENDED = 0x80028034, - SCE_KERNEL_ERROR_NOT_SUSPENDED = 0x80028035, - SCE_KERNEL_ERROR_WAIT_DELETE_MUTEX = 0x80028036, - SCE_KERNEL_ERROR_WAIT_CANCEL_MUTEX = 0x80028037, - SCE_KERNEL_ERROR_WAIT_DELETE_COND = 0x80028038, - SCE_KERNEL_ERROR_WAIT_CANCEL_COND = 0x80028039, - SCE_KERNEL_ERROR_LW_MUTEX_NOT_OWNED = 0x8002803A, - SCE_KERNEL_ERROR_LW_MUTEX_LOCK_OVF = 0x8002803B, - SCE_KERNEL_ERROR_LW_MUTEX_UNLOCK_UDF = 0x8002803C, - SCE_KERNEL_ERROR_LW_MUTEX_RECURSIVE = 0x8002803D, - SCE_KERNEL_ERROR_LW_MUTEX_FAILED_TO_OWN = 0x8002803E, - SCE_KERNEL_ERROR_WAIT_DELETE_LW_MUTEX = 0x8002803F, - SCE_KERNEL_ERROR_ILLEGAL_STACK_SIZE = 0x80028040, - SCE_KERNEL_ERROR_RW_LOCK_RECURSIVE = 0x80028041, - SCE_KERNEL_ERROR_RW_LOCK_LOCK_OVF = 0x80028042, - SCE_KERNEL_ERROR_RW_LOCK_NOT_OWNED = 0x80028043, - SCE_KERNEL_ERROR_RW_LOCK_UNLOCK_UDF = 0x80028044, - SCE_KERNEL_ERROR_RW_LOCK_FAILED_TO_LOCK = 0x80028045, - SCE_KERNEL_ERROR_RW_LOCK_FAILED_TO_UNLOCK = 0x80028046, - SCE_KERNEL_ERROR_PROCESSMGR_ERROR = 0x80029000, - SCE_KERNEL_ERROR_INVALID_PID = 0x80029001, - SCE_KERNEL_ERROR_INVALID_PROCESS_TYPE = 0x80029002, - SCE_KERNEL_ERROR_PLS_FULL = 0x80029003, - SCE_KERNEL_ERROR_INVALID_PROCESS_STATUS = 0x80029004, - SCE_KERNEL_ERROR_INVALID_BUDGET_ID = 0x80029005, - SCE_KERNEL_ERROR_INVALID_BUDGET_SIZE = 0x80029006, - SCE_KERNEL_ERROR_CP14_DISABLED = 0x80029007, - SCE_KERNEL_ERROR_EXCEEDED_MAX_PROCESSES = 0x80029008, - SCE_KERNEL_ERROR_PROCESS_REMAINING = 0x80029009, - SCE_KERNEL_ERROR_IOFILEMGR_ERROR = 0x8002A000, - SCE_KERNEL_ERROR_IO_NAME_TOO_LONG = 0x8002A001, - SCE_KERNEL_ERROR_IO_REG_DEV = 0x8002A002, - SCE_KERNEL_ERROR_IO_ALIAS_USED = 0x8002A003, - SCE_KERNEL_ERROR_IO_DEL_DEV = 0x8002A004, - SCE_KERNEL_ERROR_IO_WOULD_BLOCK = 0x8002A005, - SCE_KERNEL_ERROR_MODULEMGR_START_FAILED = 0x8002D000, - SCE_KERNEL_ERROR_MODULEMGR_STOP_FAIL = 0x8002D001, - SCE_KERNEL_ERROR_MODULEMGR_IN_USE = 0x8002D002, - SCE_KERNEL_ERROR_MODULEMGR_NO_LIB = 0x8002D003, - SCE_KERNEL_ERROR_MODULEMGR_SYSCALL_REG = 0x8002D004, - SCE_KERNEL_ERROR_MODULEMGR_NOMEM_LIB = 0x8002D005, - SCE_KERNEL_ERROR_MODULEMGR_NOMEM_STUB = 0x8002D006, - SCE_KERNEL_ERROR_MODULEMGR_NOMEM_SELF = 0x8002D007, - SCE_KERNEL_ERROR_MODULEMGR_NOMEM = 0x8002D008, - SCE_KERNEL_ERROR_MODULEMGR_INVALID_LIB = 0x8002D009, - SCE_KERNEL_ERROR_MODULEMGR_INVALID_STUB = 0x8002D00A, - SCE_KERNEL_ERROR_MODULEMGR_NO_FUNC_NID = 0x8002D00B, - SCE_KERNEL_ERROR_MODULEMGR_NO_VAR_NID = 0x8002D00C, - SCE_KERNEL_ERROR_MODULEMGR_INVALID_TYPE = 0x8002D00D, - SCE_KERNEL_ERROR_MODULEMGR_NO_MOD_ENTRY = 0x8002D00E, - SCE_KERNEL_ERROR_MODULEMGR_INVALID_PROC_PARAM = 0x8002D00F, - SCE_KERNEL_ERROR_MODULEMGR_NO_MODOBJ = 0x8002D010, - SCE_KERNEL_ERROR_MODULEMGR_NO_MOD = 0x8002D011, - SCE_KERNEL_ERROR_MODULEMGR_NO_PROCESS = 0x8002D012, - SCE_KERNEL_ERROR_MODULEMGR_OLD_LIB = 0x8002D013, - SCE_KERNEL_ERROR_MODULEMGR_STARTED = 0x8002D014, - SCE_KERNEL_ERROR_MODULEMGR_NOT_STARTED = 0x8002D015, - SCE_KERNEL_ERROR_MODULEMGR_NOT_STOPPED = 0x8002D016, - SCE_KERNEL_ERROR_MODULEMGR_INVALID_PROCESS_UID = 0x8002D017, - SCE_KERNEL_ERROR_MODULEMGR_CANNOT_EXPORT_LIB_TO_SHARED = 0x8002D018, - SCE_KERNEL_ERROR_MODULEMGR_INVALID_REL_INFO = 0x8002D019, - SCE_KERNEL_ERROR_MODULEMGR_INVALID_REF_INFO = 0x8002D01A, - SCE_KERNEL_ERROR_MODULEMGR_ELINK = 0x8002D01B, - SCE_KERNEL_ERROR_MODULEMGR_NOENT = 0x8002D01C, - SCE_KERNEL_ERROR_MODULEMGR_BUSY = 0x8002D01D, - SCE_KERNEL_ERROR_MODULEMGR_NOEXEC = 0x8002D01E, - SCE_KERNEL_ERROR_MODULEMGR_NAMETOOLONG = 0x8002D01F, - SCE_KERNEL_ERROR_LIBRARYDB_NOENT = 0x8002D080, - SCE_KERNEL_ERROR_LIBRARYDB_NO_LIB = 0x8002D081, - SCE_KERNEL_ERROR_LIBRARYDB_NO_MOD = 0x8002D082, - SCE_KERNEL_ERROR_AUTHFAIL = 0x8002F000, - SCE_KERNEL_ERROR_NO_AUTH = 0x8002F001, -}; - -// PSP2 UID Class -enum : u32 -{ - SCE_KERNEL_UID_CLASS_PROCESS = 0, - SCE_KERNEL_THREADMGR_UID_CLASS_THREAD = 1, - SCE_KERNEL_THREADMGR_UID_CLASS_SEMA = 2, - SCE_KERNEL_THREADMGR_UID_CLASS_EVENT_FLAG = 3, - SCE_KERNEL_THREADMGR_UID_CLASS_MUTEX = 4, - SCE_KERNEL_THREADMGR_UID_CLASS_COND = 5, - SCE_KERNEL_THREADMGR_UID_CLASS_TIMER = 6, - SCE_KERNEL_THREADMGR_UID_CLASS_MSG_PIPE = 7, - SCE_KERNEL_THREADMGR_UID_CLASS_CALLBACK = 8, - SCE_KERNEL_THREADMGR_UID_CLASS_THREAD_EVENT = 9, -}; - -union SceKernelSysClock -{ - struct - { - le_t low; - le_t hi; - } - u; - - le_t quad; -}; - -struct SceKernelCallFrame -{ - le_t sp; - le_t pc; -}; - -// Memory Manager definitions - -struct SceKernelMemBlockInfo -{ - le_t size; - vm::lptr mappedBase; - le_t mappedSize; - le_t memoryType; // SceKernelMemoryType - le_t access; -}; - -struct SceKernelAllocMemBlockOpt -{ - le_t size; - le_t attr; - le_t alignment; - le_t uidBaseBlock; - vm::lcptr strBaseBlockName; -}; - -// Thread Manager definitions (threads) - -enum -{ - SCE_KERNEL_ATTR_TH_FIFO = 0, - SCE_KERNEL_ATTR_TH_PRIO = 0x2000, - - SCE_KERNEL_ATTR_SINGLE = 0, // Event Flag only - SCE_KERNEL_ATTR_MULTI = 0x1000, // Event Flag only -}; - -using SceKernelThreadEntry = s32(u32 argSize, vm::ptr pArgBlock); - -struct SceKernelThreadOptParam -{ - le_t size; - le_t attr; -}; - -struct SceKernelThreadInfo -{ - le_t size; - le_t processId; - char name[32]; - le_t attr; - le_t status; - vm::lptr entry; - vm::lptr pStack; - le_t stackSize; - le_t initPriority; - le_t currentPriority; - le_t initCpuAffinityMask; - le_t currentCpuAffinityMask; - le_t currentCpuId; - le_t lastExecutedCpuId; - le_t waitType; - le_t waitId; - le_t exitStatus; - SceKernelSysClock runClocks; - le_t intrPreemptCount; - le_t threadPreemptCount; - le_t threadReleaseCount; - le_t changeCpuCount; - le_t fNotifyCallback; - le_t reserved; -}; - -struct SceKernelThreadRunStatus -{ - le_t size; - - struct - { - le_t processId; - le_t threadId; - le_t priority; - - } cpuInfo[4]; -}; - -struct SceKernelSystemInfo -{ - le_t size; - le_t activeCpuMask; - - struct - { - SceKernelSysClock idleClock; - le_t comesOutOfIdleCount; - le_t threadSwitchCount; - - } cpuInfo[4]; -}; - -// Thread Manager definitions (callbacks) - -using SceKernelCallbackFunction = s32(s32 notifyId, s32 notifyCount, s32 notifyArg, vm::ptr pCommon); - -struct SceKernelCallbackInfo -{ - le_t size; - le_t callbackId; - char name[32]; - le_t attr; - le_t threadId; - vm::lptr callbackFunc; - le_t notifyId; - le_t notifyCount; - le_t notifyArg; - vm::lptr pCommon; -}; - -// Thread Manager definitions (events) - -using SceKernelThreadEventHandler = s32(s32 type, s32 threadId, s32 arg, vm::ptr pCommon); - -struct SceKernelEventInfo -{ - le_t size; - le_t eventId; - char name[32]; - le_t attr; - le_t eventPattern; - le_t userData; - le_t numWaitThreads; - le_t reserved[1]; -}; - -struct SceKernelWaitEvent -{ - le_t eventId; - le_t eventPattern; -}; - -struct SceKernelResultEvent -{ - le_t eventId; - le_t result; - le_t resultPattern; - le_t reserved[1]; - le_t userData; -}; - -// Thread Manager definitions (event flags) - -enum : u32 -{ - SCE_KERNEL_EVF_WAITMODE_AND = 0x00000000, - SCE_KERNEL_EVF_WAITMODE_OR = 0x00000001, - SCE_KERNEL_EVF_WAITMODE_CLEAR_ALL = 0x00000002, - SCE_KERNEL_EVF_WAITMODE_CLEAR_PAT = 0x00000004, -}; - -struct SceKernelEventFlagOptParam -{ - le_t size; -}; - -struct SceKernelEventFlagInfo -{ - le_t size; - le_t evfId; - char name[32]; - le_t attr; - le_t initPattern; - le_t currentPattern; - le_t numWaitThreads; -}; - -// Thread Manager definitions (semaphores) - -struct SceKernelSemaOptParam -{ - le_t size; -}; - -struct SceKernelSemaInfo -{ - le_t size; - le_t semaId; - char name[32]; - le_t attr; - le_t initCount; - le_t currentCount; - le_t maxCount; - le_t numWaitThreads; -}; - -struct psp2_semaphore -{ - static const u32 id_base = 1; - static const u32 id_step = 2; - static const u32 id_count = 8192; - - const std::string name; // IPC Name - - atomic_t ref{}; // IPC Ref Counter - - const u32 attr; - const s32 max; - - atomic_t count; - - psp2_semaphore(const char* name, u32 attr, s32 count, s32 max) - : name(name) - , attr(attr) - , max(max) - , count(count) - { - } -}; - -// Thread Manager definitions (mutexes) - -struct SceKernelMutexOptParam -{ - le_t size; - le_t ceilingPriority; -}; - -struct SceKernelMutexInfo -{ - le_t size; - le_t mutexId; - char name[32]; - le_t attr; - le_t initCount; - le_t currentCount; - le_t currentOwnerId; - le_t numWaitThreads; -}; - -struct psp2_mutex -{ - static const u32 id_base = 1; - static const u32 id_step = 2; - static const u32 id_count = 8192; - - const std::string name; // IPC Name - - atomic_t ref{}; // IPC Ref Counter - - const u32 attr; - - atomic_t count; - - psp2_mutex(const char* name, u32 attr, s32 count) - : name(name) - , attr(attr) - , count(count) - { - } -}; - -// Thread Manager definitions (lightweight mutexes) - -struct SceKernelLwMutexWork -{ - le_t data[4]; -}; - -struct SceKernelLwMutexOptParam -{ - le_t size; -}; - -struct SceKernelLwMutexInfo -{ - le_t size; - le_t uid; - char name[32]; - le_t attr; - vm::lptr pWork; - le_t initCount; - le_t currentCount; - le_t currentOwnerId; - le_t numWaitThreads; -}; - -// Thread Manager definitions (condition variables) - -struct SceKernelCondOptParam -{ - le_t size; -}; - -struct SceKernelCondInfo -{ - le_t size; - le_t condId; - char name[32]; - le_t attr; - le_t mutexId; - le_t numWaitThreads; -}; - -struct psp2_cond -{ - static const u32 id_base = 1; - static const u32 id_step = 2; - static const u32 id_count = 8192; - - const std::string name; // IPC Name - - atomic_t ref{}; // IPC Ref Counter - - const u32 attr; - - const std::shared_ptr mutex; - - psp2_cond(const char* name, u32 attr, const std::shared_ptr& mutex) - : name(name) - , attr(attr) - , mutex(mutex) - { - } -}; - -// Thread Manager definitions (lightweight condition variables) - -struct SceKernelLwCondWork -{ - le_t data[4]; -}; - -struct SceKernelLwCondOptParam -{ - le_t size; -}; - -struct SceKernelLwCondInfo -{ - le_t size; - le_t uid; - char name[32]; - le_t attr; - vm::lptr pWork; - vm::lptr pLwMutex; - le_t numWaitThreads; -}; - -// Thread Manager definitions (timers) - -struct SceKernelTimerOptParam -{ - le_t size; -}; - -struct SceKernelTimerInfo -{ - le_t size; - le_t timerId; - char name[32]; - le_t attr; - le_t fActive; - SceKernelSysClock baseTime; - SceKernelSysClock currentTime; - SceKernelSysClock schedule; - SceKernelSysClock interval; - le_t type; - le_t fRepeat; - le_t numWaitThreads; - le_t reserved[1]; -}; - -// Thread Manager definitions (reader/writer locks) - -struct SceKernelRWLockOptParam -{ - le_t size; -}; - -struct SceKernelRWLockInfo -{ - le_t size; - le_t rwLockId; - char name[32]; - le_t attr; - le_t lockCount; - le_t writeOwnerId; - le_t numReadWaitThreads; - le_t numWriteWaitThreads; -}; - -// IO/File Manager definitions - -struct SceIoStat -{ - le_t mode; - le_t attr; - le_t size; - SceDateTime ctime; - SceDateTime atime; - SceDateTime mtime; - le_t _private[6]; -}; - -struct SceIoDirent -{ - SceIoStat d_stat; - char d_name[256]; - vm::lptr d_private; - le_t dummy; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceLibXml.cpp b/rpcs3/Emu/PSP2/Modules/sceLibXml.cpp deleted file mode 100644 index 531b5786ed..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLibXml.cpp +++ /dev/null @@ -1,199 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceLibXml.h" - -logs::channel sceLibXml("sceLibXml"); - -#define REG_FUNC(nid, name) REG_FNID(SceLibXml, nid, name) - -DECLARE(arm_module_manager::SceLibXml)("SceLibXml", []() -{ - //REG_FUNC(0x57400A1A, _ZN3sce3Xml10SimpleDataC1EPKcj); - //REG_FUNC(0x7E582075, _ZN3sce3Xml10SimpleDataC1Ev); - //REG_FUNC(0x4CF0656B, _ZN3sce3Xml10SimpleDataC2EPKcj); - //REG_FUNC(0x95077028, _ZN3sce3Xml10SimpleDataC2Ev); - //REG_FUNC(0xECFA6A2A, _ZN3sce3Xml11Initializer10initializeEPKNS0_13InitParameterE); - //REG_FUNC(0x29824CD5, _ZN3sce3Xml11Initializer9terminateEv); - //REG_FUNC(0xBF13FDE6, _ZN3sce3Xml11InitializerC1Ev); - //REG_FUNC(0x94AAA71D, _ZN3sce3Xml11InitializerC2Ev); - //REG_FUNC(0xB4547C88, _ZN3sce3Xml11InitializerD1Ev); - //REG_FUNC(0xAAA08FA8, _ZN3sce3Xml11InitializerD2Ev); - //REG_FUNC(0x8D387E01, _ZN3sce3Xml12MemAllocatorC1Ev); - //REG_FUNC(0xE982E681, _ZN3sce3Xml12MemAllocatorC2Ev); - //REG_FUNC(0x90B82579, _ZN3sce3Xml12MemAllocatorD0Ev); - //REG_FUNC(0x56002B9D, _ZN3sce3Xml12MemAllocatorD1Ev); - //REG_FUNC(0x1BE022EA, _ZN3sce3Xml12MemAllocatorD2Ev); - //REG_FUNC(0x89AA847E, _ZN3sce3Xml13AttributeList10initializeEPKNS0_11InitializerE); - //REG_FUNC(0xD08EE434, _ZN3sce3Xml13AttributeList12addAttributeEPKNS0_6StringES4_); - //REG_FUNC(0xCCEE4E7C, _ZN3sce3Xml13AttributeList5clearEv); - //REG_FUNC(0x11FE5A65, _ZN3sce3Xml13AttributeList9terminateEv); - //REG_FUNC(0x9CBD82D4, _ZN3sce3Xml13AttributeListC1ERKS1_); - //REG_FUNC(0x542076D8, _ZN3sce3Xml13AttributeListC1Ev); - //REG_FUNC(0x87C89447, _ZN3sce3Xml13AttributeListC2ERKS1_); - //REG_FUNC(0x5D49542A, _ZN3sce3Xml13AttributeListC2Ev); - //REG_FUNC(0x38861841, _ZN3sce3Xml13AttributeListD1Ev); - //REG_FUNC(0x1B0B3976, _ZN3sce3Xml13AttributeListD2Ev); - //REG_FUNC(0x30520B78, _ZN3sce3Xml14VarAllocBuffer4copyEPKhjb); - //REG_FUNC(0x7D5A0041, _ZN3sce3Xml14VarAllocBuffer5clearEv); - //REG_FUNC(0xD95D3824, _ZN3sce3Xml14VarAllocBuffer7copyStrEPKcj); - //REG_FUNC(0xFE99676E, _ZN3sce3Xml14VarAllocBuffer7copyStrERKNS0_6StringE); - //REG_FUNC(0x82747F92, _ZN3sce3Xml14VarAllocBuffer7reserveEj); - //REG_FUNC(0xE93EACFC, _ZN3sce3Xml14VarAllocBuffer9terminateEv); - //REG_FUNC(0x8045D9C2, _ZN3sce3Xml14VarAllocBufferC1EPKNS0_11InitializerE); - //REG_FUNC(0xEF4FA027, _ZN3sce3Xml14VarAllocBufferC2EPKNS0_11InitializerE); - //REG_FUNC(0xD61CAAFC, _ZN3sce3Xml14VarAllocBufferD0Ev); - //REG_FUNC(0xD9217FC8, _ZN3sce3Xml14VarAllocBufferD1Ev); - //REG_FUNC(0x8A4B9379, _ZN3sce3Xml14VarAllocBufferD2Ev); - //REG_FUNC(0xB7770E5E, _ZN3sce3Xml18SerializeParameterC1Ev); - //REG_FUNC(0xF65270FC, _ZN3sce3Xml18SerializeParameterC2Ev); - //REG_FUNC(0x2CB61A7C, _ZN3sce3Xml20bXResultToResultTypeEi); - //REG_FUNC(0x59C5E9B2, _ZN3sce3Xml23getMemManagerDebugLevelEv); - //REG_FUNC(0xBA8B7374, _ZN3sce3Xml23setMemManagerDebugLevelEi); - //REG_FUNC(0xBBACFE87, _ZN3sce3Xml3Dom15DocumentBuilder10initializeEPKNS0_11InitializerE); - //REG_FUNC(0x1A29526B, _ZN3sce3Xml3Dom15DocumentBuilder11getDocumentEv); - //REG_FUNC(0xA2431C2B, _ZN3sce3Xml3Dom15DocumentBuilder16setResolveEntityEb); - //REG_FUNC(0xB8C4D13C, _ZN3sce3Xml3Dom15DocumentBuilder20setSkipIgnorableTextEb); - //REG_FUNC(0xF351D753, _ZN3sce3Xml3Dom15DocumentBuilder26setSkipIgnorableWhiteSpaceEb); - //REG_FUNC(0x7744DD14, _ZN3sce3Xml3Dom15DocumentBuilder5parseEPKNS0_6StringEb); - //REG_FUNC(0x42D59053, _ZN3sce3Xml3Dom15DocumentBuilder9terminateEv); - //REG_FUNC(0x702492EA, _ZN3sce3Xml3Dom15DocumentBuilderC1Ev); - //REG_FUNC(0x36F6BDF2, _ZN3sce3Xml3Dom15DocumentBuilderC2Ev); - //REG_FUNC(0x79C9322E, _ZN3sce3Xml3Dom15DocumentBuilderD0Ev); - //REG_FUNC(0x19D0E024, _ZN3sce3Xml3Dom15DocumentBuilderD1Ev); - //REG_FUNC(0x99C58389, _ZN3sce3Xml3Dom15DocumentBuilderD2Ev); - //REG_FUNC(0x3CA958D3, _ZN3sce3Xml3Dom4Node11removeChildEy); - //REG_FUNC(0x1B98BDBE, _ZN3sce3Xml3Dom4Node12insertBeforeEyy); - //REG_FUNC(0x26BA1E6E, _ZNK3sce3Xml3Dom4Node13hasAttributesEv); - //REG_FUNC(0xC6F4F6A8, _ZN3sce3Xml3Dom4Node13hasChildNodesEv); - //REG_FUNC(0x088C100E, _ZN3sce3Xml3Dom4NodeC1Ey); - //REG_FUNC(0x44CAF9E1, _ZN3sce3Xml3Dom4NodeC2Ey); - //REG_FUNC(0x8F2EB967, _ZN3sce3Xml3Dom4NodeD1Ev); - //REG_FUNC(0x241EFC0E, _ZN3sce3Xml3Dom4NodeD2Ev); - //REG_FUNC(0x6A16C2FF, _ZN3sce3Xml3Dom8Document10importNodeEyyPKS2_y); - //REG_FUNC(0xB4A33B78, _ZN3sce3Xml3Dom8Document10initializeEPKNS0_11InitializerE); - //REG_FUNC(0x18686B94, _ZN3sce3Xml3Dom8Document10insertNodeEyyy); - //REG_FUNC(0x49263CE5, _ZN3sce3Xml3Dom8Document11removeChildEyy); - //REG_FUNC(0xD945184A, _ZN3sce3Xml3Dom8Document11resetStatusEv); - //REG_FUNC(0x7B0A8F6C, _ZN3sce3Xml3Dom8Document11setWritableEv); - //REG_FUNC(0x0CBC1C3F, _ZN3sce3Xml3Dom8Document12importParentEPKS2_y); - //REG_FUNC(0x016A9ADB, _ZN3sce3Xml3Dom8Document12setAttrValueEyPKNS0_6StringES5_); - //REG_FUNC(0xEA19C7CF, _ZN3sce3Xml3Dom8Document12setAttributeEyPKNS0_6StringES5_); - //REG_FUNC(0x35C50B8B, _ZN3sce3Xml3Dom8Document13createElementEPKNS0_6StringEPKNS0_13AttributeListES5_); - //REG_FUNC(0xBCA5E62A, _ZN3sce3Xml3Dom8Document13recurseDeleteEy); - //REG_FUNC(0x8D19723F, _ZN3sce3Xml3Dom8Document14createTextNodeEPKNS0_6StringE); - //REG_FUNC(0x6220E98B, _ZN3sce3Xml3Dom8Document15addElementChildEyPKNS0_6StringEPKNS0_13AttributeListES5_); - //REG_FUNC(0xF1DB18B1, _ZN3sce3Xml3Dom8Document15removeAttributeEyPKNS0_6StringE); - //REG_FUNC(0x779036AB, _ZN3sce3Xml3Dom8Document16removeAttributesEy); - //REG_FUNC(0x0667B08D, _ZN3sce3Xml3Dom8Document16setAttributeListEyPKNS0_13AttributeListE); - //REG_FUNC(0xD2BFBC47, _ZNK3sce3Xml3Dom8Document20getElementsByTagNameEyPKNS0_6StringEPNS1_8NodeListE); - //REG_FUNC(0xDEFEAFD2, _ZN3sce3Xml3Dom8Document7setTextEyPKNS0_6StringE); - //REG_FUNC(0x87F8B4DA, _ZN3sce3Xml3Dom8Document9serializeEPKNS0_18SerializeParameterEPNS0_6StringE); - //REG_FUNC(0x4B7321FB, _ZN3sce3Xml3Dom8Document9terminateEv); - //REG_FUNC(0x1DD41C7A, _ZN3sce3Xml3Dom8DocumentC1ERKS2_); - //REG_FUNC(0x7B7107AD, _ZN3sce3Xml3Dom8DocumentC1Ev); - //REG_FUNC(0xF399F763, _ZN3sce3Xml3Dom8DocumentC2ERKS2_); - //REG_FUNC(0xE6BA9C73, _ZN3sce3Xml3Dom8DocumentC2Ev); - //REG_FUNC(0xFB207925, _ZN3sce3Xml3Dom8DocumentD1Ev); - //REG_FUNC(0x11A5F0A3, _ZN3sce3Xml3Dom8DocumentD2Ev); - //REG_FUNC(0xD622A7FE, _ZN3sce3Xml3Dom8DocumentaSERKS2_); - //REG_FUNC(0x860CC706, _ZN3sce3Xml3Dom8NodeList10initializeEPKNS0_11InitializerE); - //REG_FUNC(0x7A889374, _ZN3sce3Xml3Dom8NodeList10insertLastEy); - //REG_FUNC(0xE9995F58, _ZN3sce3Xml3Dom8NodeList10removeItemEy); - //REG_FUNC(0xFA921C6E, _ZN3sce3Xml3Dom8NodeList11insertFirstEy); - //REG_FUNC(0xCDD1D418, _ZNK3sce3Xml3Dom8NodeList4itemEj); - //REG_FUNC(0x508E9150, _ZN3sce3Xml3Dom8NodeList5clearEv); - //REG_FUNC(0xA41ED241, _ZNK3sce3Xml3Dom8NodeList8findItemEPKNS0_6StringE); - //REG_FUNC(0xE1AB441D, _ZNK3sce3Xml3Dom8NodeList8findItemEy); - //REG_FUNC(0xFB9EDBF9, _ZNK3sce3Xml3Dom8NodeList9getLengthEv); - //REG_FUNC(0x32B396AD, _ZN3sce3Xml3Dom8NodeList9terminateEv); - //REG_FUNC(0xB1CA0E34, _ZN3sce3Xml3Dom8NodeListC1ERKS2_); - //REG_FUNC(0x0580C02E, _ZN3sce3Xml3Dom8NodeListC1Ev); - //REG_FUNC(0xB97BF737, _ZN3sce3Xml3Dom8NodeListC2ERKS2_); - //REG_FUNC(0x684E57B9, _ZN3sce3Xml3Dom8NodeListC2Ev); - //REG_FUNC(0x92EBC9F8, _ZN3sce3Xml3Dom8NodeListD1Ev); - //REG_FUNC(0x2DF80037, _ZN3sce3Xml3Dom8NodeListD2Ev); - //REG_FUNC(0xBAD4AAFA, _ZNK3sce3Xml3Dom8NodeListixEj); - //REG_FUNC(0x874C8331, _ZN3sce3Xml3Sax6Parser10initializeEPKNS0_11InitializerE); - //REG_FUNC(0x4DB998E6, _ZN3sce3Xml3Sax6Parser11setUserDataEPv); - //REG_FUNC(0xB77BF8A0, _ZN3sce3Xml3Sax6Parser16setResolveEntityEb); - //REG_FUNC(0x1B2442A0, _ZN3sce3Xml3Sax6Parser18setDocumentHandlerEPNS1_15DocumentHandlerE); - //REG_FUNC(0xCE1DAE23, _ZN3sce3Xml3Sax6Parser26setSkipIgnorableWhiteSpaceEb); - //REG_FUNC(0x70D9FC8E, _ZN3sce3Xml3Sax6Parser5parseEPKNS0_6StringEb); - //REG_FUNC(0xA2B40FA7, _ZN3sce3Xml3Sax6Parser5resetEv); - //REG_FUNC(0xF2C8950D, _ZN3sce3Xml3Sax6Parser9terminateEv); - //REG_FUNC(0x60BF9988, _ZN3sce3Xml3Sax6ParserC1Ev); - //REG_FUNC(0x56390CA0, _ZN3sce3Xml3Sax6ParserC2Ev); - //REG_FUNC(0xA11C2AED, _ZN3sce3Xml3Sax6ParserD1Ev); - //REG_FUNC(0x02E8F7FA, _ZN3sce3Xml3Sax6ParserD2Ev); - //REG_FUNC(0xE5314387, _ZN3sce3Xml4Attr10initializeEPKNS0_11InitializerE); - //REG_FUNC(0x66D1B605, _ZN3sce3Xml4Attr7setNameEPKNS0_6StringE); - //REG_FUNC(0x7DD3059D, _ZN3sce3Xml4Attr8setValueEPKNS0_6StringE); - //REG_FUNC(0x67E0DF2B, _ZN3sce3Xml4Attr9terminateEv); - //REG_FUNC(0xC09ABF87, _ZN3sce3Xml4AttrC1ERKS1_); - //REG_FUNC(0xD016F1BC, _ZN3sce3Xml4AttrC1Ev); - //REG_FUNC(0xB4851BEC, _ZN3sce3Xml4AttrC2ERKS1_); - //REG_FUNC(0x0B3AE81B, _ZN3sce3Xml4AttrC2Ev); - //REG_FUNC(0x58E349A5, _ZN3sce3Xml4AttrD1Ev); - //REG_FUNC(0xB9E6F81A, _ZN3sce3Xml4AttrD2Ev); - //REG_FUNC(0xA5B902D4, _ZN3sce3Xml4AttraSERKS1_); - //REG_FUNC(0xA7E983E2, _ZN3sce3Xml4Util9strResultEi); - //REG_FUNC(0x035F013B, _ZN3sce3Xml6StringC1EPKc); - //REG_FUNC(0x0B5461E0, _ZN3sce3Xml6StringC1EPKcj); - //REG_FUNC(0x67191CC6, _ZN3sce3Xml6StringC1ERKS1_); - //REG_FUNC(0xA17502C1, _ZN3sce3Xml6StringC1Ev); - //REG_FUNC(0xECC1F1A4, _ZN3sce3Xml6StringC2EPKc); - //REG_FUNC(0x457CCE55, _ZN3sce3Xml6StringC2EPKcj); - //REG_FUNC(0xD785BA85, _ZN3sce3Xml6StringC2ERKS1_); - //REG_FUNC(0x8816F7EF, _ZN3sce3Xml6StringC2Ev); - //REG_FUNC(0x18758863, _ZN3sce3Xml6StringaSERKS1_); - //REG_FUNC(0x4F30F0CC, _ZNK3sce3Xml13AttributeList12getAttributeEPKNS0_6StringE); - //REG_FUNC(0x5ED0B2F9, _ZNK3sce3Xml13AttributeList12getAttributeEj); - //REG_FUNC(0x38AEB52E, _ZNK3sce3Xml13AttributeList9getLengthEv); - //REG_FUNC(0xEC96BFC6, _ZNK3sce3Xml3Dom13DocumentDebug13getStructSizeEv); - //REG_FUNC(0xE1100FC0, _ZNK3sce3Xml3Dom13DocumentDebug16getAttrTableSizeEv); - //REG_FUNC(0x6E1F1FFB, _ZNK3sce3Xml3Dom13DocumentDebug16getCharTableSizeEv); - //REG_FUNC(0x8F9CEE10, _ZNK3sce3Xml3Dom13DocumentDebug19getElementTableSizeEv); - //REG_FUNC(0xE1269956, _ZNK3sce3Xml3Dom4Node11getNodeNameEv); - //REG_FUNC(0xCED5E0FF, _ZNK3sce3Xml3Dom4Node11getNodeTypeEv); - //REG_FUNC(0x4F2D5541, _ZNK3sce3Xml3Dom4Node12getNodeValueEv); - //REG_FUNC(0xB405A149, _ZNK3sce3Xml3Dom4Node13getAttributesEv); - //REG_FUNC(0x117BEA8A, _ZNK3sce3Xml3Dom4Node13getChildNodesEv); - //REG_FUNC(0x639D219C, _ZNK3sce3Xml3Dom4Node13getFirstChildEv); - //REG_FUNC(0x3FD63FB8, _ZNK3sce3Xml3Dom4Node12getLastChildEv); - //REG_FUNC(0x1A46C0E1, _ZNK3sce3Xml3Dom4Node14getNextSiblingEv); - //REG_FUNC(0xD9757BC8, _ZNK3sce3Xml3Dom4Node14getParenetNodeEv); - //REG_FUNC(0x3E8122AB, _ZNK3sce3Xml3Dom4Node16getOwnerDocumentEv); - //REG_FUNC(0x22DBB221, _ZNK3sce3Xml3Dom8Document10getDocRootEv); - //REG_FUNC(0xE3D0A78A, _ZNK3sce3Xml3Dom8Document10getSiblingEy); - //REG_FUNC(0x2D370226, _ZNK3sce3Xml3Dom8Document10getXmlMetaEv); - //REG_FUNC(0xA4D99D40, _ZNK3sce3Xml3Dom8Document10isReadOnlyEv); - //REG_FUNC(0xCD65B91F, _ZNK3sce3Xml3Dom8Document11getAttrNameEy); - //REG_FUNC(0x883E1BFC, _ZNK3sce3Xml3Dom8Document11getNextAttrEy); - //REG_FUNC(0x471A22E8, _ZNK3sce3Xml3Dom8Document11getNodeNameEy); - //REG_FUNC(0x62D3CB44, _ZNK3sce3Xml3Dom8Document11getNodeTypeEy); - //REG_FUNC(0x28FD79E3, _ZNK3sce3Xml3Dom8Document11isAvailableEv); - //REG_FUNC(0x7C6A03FD, _ZNK3sce3Xml3Dom8Document12getAttrValueEy); - //REG_FUNC(0x9531C3CD, _ZNK3sce3Xml3Dom8Document12getAttributeEyPKNS0_6StringE); - //REG_FUNC(0xEC856072, _ZNK3sce3Xml3Dom8Document12getFirstAttrEy); - //REG_FUNC(0xFBCF0D3E, _ZNK3sce3Xml3Dom8Document12getLastChildEy); - //REG_FUNC(0xCDEC3F43, _ZNK3sce3Xml3Dom8Document13getAttributesEyPNS1_8NodeListE); - //REG_FUNC(0xFC61FDF1, _ZNK3sce3Xml3Dom8Document13getChildNodesEyPNS1_8NodeListE); - //REG_FUNC(0xDAC75E49, _ZNK3sce3Xml3Dom8Document13getEntityTypeEy); - //REG_FUNC(0xEA805296, _ZNK3sce3Xml3Dom8Document13hasAttributesEy); - //REG_FUNC(0xC5E7431A, _ZNK3sce3Xml3Dom8Document13hasChildNodesEy); - //REG_FUNC(0x0C1DDEC5, _ZNK3sce3Xml3Dom8Document14getSkippedTextEy); - //REG_FUNC(0xB34D9672, _ZNK3sce3Xml3Dom8Document7getRootEv); - //REG_FUNC(0x36ACFF5E, _ZNK3sce3Xml3Dom8Document7getTextEy); - //REG_FUNC(0x3028E05D, _ZNK3sce3Xml3Dom8Document13getFirstChildEy); - //REG_FUNC(0x161BA85E, _ZNK3sce3Xml3Dom8Document9getEntityEy); - //REG_FUNC(0xA98B5758, _ZNK3sce3Xml3Dom8Document9getParentEy); - //REG_FUNC(0xD428753A, _ZNK3sce3Xml3Dom8Document9getStatusEv); - //REG_FUNC(0x10530611, _ZNK3sce3Xml3Dom8NodeList11isAvailableEv); - //REG_FUNC(0x35134B85, _ZNK3sce3Xml4Attr7getNameEv); - //REG_FUNC(0x7834A2F7, _ZNK3sce3Xml4Attr8getValueEv); - //REG_FUNC(0x0D119AB3, _ZNK3sce3Xml3Dom4Node11isAvailableEv); - //REG_FUNC(0x1633846D, _ZNK3sce3Xml4Attr11isAvailableEv); - //REG_FUNC(0x58854322, _ZNK3sce3Xml13AttributeList11isAvailableEv); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceLibXml.h b/rpcs3/Emu/PSP2/Modules/sceLibXml.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLibXml.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/rpcs3/Emu/PSP2/Modules/sceLibc.cpp b/rpcs3/Emu/PSP2/Modules/sceLibc.cpp deleted file mode 100644 index fc1e4d3ef5..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLibc.cpp +++ /dev/null @@ -1,542 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" -#include "Emu/PSP2/ARMv7Thread.h" -#include "Emu/PSP2/ARMv7Callback.h" - -#include "sceLibc.h" - -#include - -logs::channel sceLibc("sceLibc"); - -extern fs::file g_tty; - -// TODO -vm::ptr g_dso; - -std::vector> g_atexit; - -std::string arm_fmt(ARMv7Thread& cpu, vm::cptr fmt, u32 g_count) -{ - std::string result; - - for (char c = *fmt++; c; c = *fmt++) - { - switch (c) - { - case '%': - { - const auto start = fmt - 1; - - // read flags - // TODO:: Syphurith: Sorry i can not classify/understand these lines exactly.. - const bool plus_sign = *fmt == '+' ? fmt++, true : false; - const bool minus_sign = *fmt == '-' ? fmt++, true : false; - const bool space_sign = *fmt == ' ' ? fmt++, true : false; - const bool number_sign = *fmt == '#' ? fmt++, true : false; - const bool zero_padding = *fmt == '0' ? fmt++, true : false; - - // read width - const u32 width = [&]() -> u32 - { - u32 width = 0; - - if (*fmt == '*') - { - fmt++; - return cpu.get_next_gpr_arg(g_count); - } - - while (*fmt - '0' < 10) - { - width = width * 10 + (*fmt++ - '0'); - } - - return width; - }(); - - // read precision - const u32 prec = [&]() -> u32 - { - u32 prec = 0; - - if (*fmt != '.') - { - return 0; - } - - if (*++fmt == '*') - { - fmt++; - return cpu.get_next_gpr_arg(g_count); - } - - while (*fmt - '0' < 10) - { - prec = prec * 10 + (*fmt++ - '0'); - } - - return prec; - }(); - - switch (char cf = *fmt++) - { - case '%': - { - if (plus_sign || minus_sign || space_sign || number_sign || zero_padding || width || prec) break; - - result += '%'; - continue; - } - case 'd': - case 'i': - { - // signed decimal - const s64 value = cpu.get_next_gpr_arg(g_count); - - if (plus_sign || minus_sign || space_sign || number_sign || zero_padding || width || prec) break; - - result += fmt::format("%lld", value); - continue; - } - case 'x': - case 'X': - { - // hexadecimal - const u64 value = cpu.get_next_gpr_arg(g_count); - - if (plus_sign || minus_sign || space_sign || prec) break; - - if (number_sign && value) - { - result += cf == 'x' ? "0x" : "0X"; - } - - const std::string& hex = fmt::format(cf == 'x' ? "%llx" : "%llX", value); - - if (hex.length() >= width) - { - result += hex; - } - else if (zero_padding) - { - result += std::string(width - hex.length(), '0') + hex; - } - else - { - result += hex + std::string(width - hex.length(), ' '); - } - continue; - } - case 's': - { - // string - const vm::cptr string = vm::cast(cpu.get_next_gpr_arg(g_count)); - - if (plus_sign || minus_sign || space_sign || number_sign || zero_padding || width || prec) break; - - result += string.get_ptr(); - continue; - } - } - - fmt::throw_exception("Unknown formatting '%s'" HERE, start.get_ptr()); - } - } - - result += c; - } - - return result; -} - -namespace sce_libc_func -{ - void __cxa_atexit(vm::ptr func, vm::ptr arg, vm::ptr dso) - { - sceLibc.warning("__cxa_atexit(func=*0x%x, arg=*0x%x, dso=*0x%x)", func, arg, dso); - - g_atexit.insert(g_atexit.begin(), [func, arg, dso](ARMv7Thread& cpu) - { - func(cpu, arg); - }); - } - - void __aeabi_atexit(vm::ptr arg, vm::ptr func, vm::ptr dso) - { - sceLibc.warning("__aeabi_atexit(arg=*0x%x, func=*0x%x, dso=*0x%x)", arg, func, dso); - - g_atexit.insert(g_atexit.begin(), [func, arg, dso](ARMv7Thread& cpu) - { - func(cpu, arg); - }); - } - - void exit(ARMv7Thread& cpu) - { - sceLibc.warning("exit()"); - - for (auto& func : decltype(g_atexit)(std::move(g_atexit))) - { - func(cpu); - } - - sceLibc.success("Process finished"); - - Emu.CallAfter([]() - { - Emu.Stop(); - }); - - thread_ctrl::eternalize(); - } - - void printf(ARMv7Thread& cpu, vm::cptr fmt, arm_va_args_t va_args) - { - sceLibc.warning("printf(fmt=%s, ...)", fmt); - - if (g_tty) - { - g_tty.write(arm_fmt(cpu, fmt, va_args.count)); - } - } - - void sprintf(ARMv7Thread& cpu, vm::ptr str, vm::cptr fmt, arm_va_args_t va_args) - { - sceLibc.warning("sprintf(str=*0x%x, fmt=%s, ...)", str, fmt); - - const std::string& result = arm_fmt(cpu, fmt, va_args.count); - sceLibc.trace("sprintf() -> '%s'", result); - - ::memcpy(str.get_ptr(), result.c_str(), result.size() + 1); - } - - void __cxa_set_dso_handle_main(vm::ptr dso) - { - sceLibc.warning("__cxa_set_dso_handle_main(dso=*0x%x)", dso); - - g_dso = dso; - g_atexit.clear(); - } - - void memcpy(vm::ptr dst, vm::cptr src, u32 size) - { - sceLibc.warning("memcpy(dst=*0x%x, src=*0x%x, size=0x%x)", dst, src, size); - - ::memcpy(dst.get_ptr(), src.get_ptr(), size); - } - - void memset(vm::ptr dst, s32 value, u32 size) - { - sceLibc.warning("memset(dst=*0x%x, value=%d, size=0x%x)", dst, value, size); - - ::memset(dst.get_ptr(), value, size); - } - - void _Assert(vm::cptr text, vm::cptr func) - { - sceLibc.error("_Assert(text=*0x%x, func=*0x%x)", text, func); - - LOG_FATAL(HLE, "%s : %s\n", func.get_ptr(), text.get_ptr()); - Emu.Pause(); - } -} - -#define REG_FUNC(nid, name) REG_FNID(SceLibc, nid, sce_libc_func::name) - -DECLARE(arm_module_manager::SceLibc)("SceLibc", []() -{ - REG_FUNC(0xE4531F85, _Assert); - //REG_FUNC(0xE71C5CDE, _Stoul); - //REG_FUNC(0x7A5CA6A3, _Stoulx); - //REG_FUNC(0x6794B3C6, _Stoull); - //REG_FUNC(0xD00F68FD, _Stoullx); - //REG_FUNC(0xBF94193B, _Stod); - //REG_FUNC(0x6798AA28, _Stodx); - //REG_FUNC(0x784D8D95, _Stof); - //REG_FUNC(0x99A49A62, _Stofx); - //REG_FUNC(0x5AE9FFD8, _Stold); - //REG_FUNC(0x448A3CBE, _Stoldx); - //REG_FUNC(0x6B9E23FE, _Stoll); - //REG_FUNC(0x0D9E3B1C, _Stollx); - //REG_FUNC(0x52DDCDAF, _Stolx); - //REG_FUNC(0x76904D60, _Wctomb); - //REG_FUNC(0x5E56EA4E, _Mbtowc); - //REG_FUNC(0xDEC462AB, _FCbuild); - //REG_FUNC(0x9E248B76, _sceLibcErrnoLoc); - //REG_FUNC(0xA2F50E9E, _Fltrounds); - //REG_FUNC(0x7CC1B964, isalnum); - //REG_FUNC(0x94A89A00, isalpha); - //REG_FUNC(0xF894ECCB, isblank); - //REG_FUNC(0x13F4A8C8, iscntrl); - //REG_FUNC(0xEB93BC93, isdigit); - //REG_FUNC(0xDFEEFB1A, isgraph); - //REG_FUNC(0x465B93F1, islower); - //REG_FUNC(0xB7F87C4D, isprint); - //REG_FUNC(0x82C1E3FD, ispunct); - //REG_FUNC(0x18F2A715, isspace); - //REG_FUNC(0xF2012814, isupper); - //REG_FUNC(0x3B561695, isxdigit); - //REG_FUNC(0x83F73C88, tolower); - //REG_FUNC(0x1218642B, toupper); - //REG_FUNC(0x1118B49F, imaxabs); - //REG_FUNC(0x5766B4A8, imaxdiv); - //REG_FUNC(0xB45FD61E, strtoimax); - //REG_FUNC(0xB318952F, strtoumax); - //REG_FUNC(0x3F2D104F, wcstoimax); - //REG_FUNC(0xB9E511B4, wcstoumax); - //REG_FUNC(0xCEF7C575, mspace_create); - //REG_FUNC(0x30CBBC66, mspace_destroy); - //REG_FUNC(0xE080B96E, mspace_malloc); - //REG_FUNC(0x3CDFD2A3, mspace_free); - //REG_FUNC(0x30470BBA, mspace_calloc); - //REG_FUNC(0x52F780DD, mspace_memalign); - //REG_FUNC(0x4633134A, mspace_realloc); - //REG_FUNC(0x915DA59E, mspace_reallocalign); - //REG_FUNC(0x7AD7A737, mspace_malloc_usable_size); - //REG_FUNC(0x8D2A14C4, mspace_malloc_stats); - //REG_FUNC(0x2FF5D5BB, mspace_malloc_stats_fast); - //REG_FUNC(0xF355F381, mspace_is_heap_empty); - //REG_FUNC(0x50B326CE, setjmp); - //REG_FUNC(0x2D81C8C8, longjmp); - //REG_FUNC(0x72BA4468, clearerr); - //REG_FUNC(0xEC97321C, fclose); - //REG_FUNC(0xB2F318FE, fdopen); - //REG_FUNC(0xBF96AD71, feof); - //REG_FUNC(0xB724BFC1, ferror); - //REG_FUNC(0x5AAD2996, fflush); - //REG_FUNC(0x672C58E0, fgetc); - //REG_FUNC(0x3CDA3118, fgetpos); - //REG_FUNC(0xBA14322F, fgets); - //REG_FUNC(0xFEC1502E, fileno); - //REG_FUNC(0xFFFBE239, fopen); - //REG_FUNC(0xE0C79764, fprintf); - //REG_FUNC(0x7E6A6108, fputc); - //REG_FUNC(0xC8FF13E5, fputs); - //REG_FUNC(0xB31C73A9, fread); - //REG_FUNC(0x715C4395, freopen); - //REG_FUNC(0x505601C6, fscanf); - //REG_FUNC(0xC3A7CDE1, fseek); - //REG_FUNC(0xDC1BDBD7, fsetpos); - //REG_FUNC(0x41C2AF95, ftell); - //REG_FUNC(0x8BCDCC4E, fwrite); - //REG_FUNC(0x4BD5212E, getc); - //REG_FUNC(0x4790BF1E, getchar); - //REG_FUNC(0xF97B8CA3, gets); - //REG_FUNC(0x4696E7BE, perror); - REG_FUNC(0x9a004680, printf); - //REG_FUNC(0x995708A6, putc); - //REG_FUNC(0x7CDAC89C, putchar); - //REG_FUNC(0x59C3E171, puts); - //REG_FUNC(0x40293B75, remove); - //REG_FUNC(0x6FE983A3, rename); - //REG_FUNC(0x6CA5BAB9, rewind); - //REG_FUNC(0x9CB9D899, scanf); - //REG_FUNC(0x395490DA, setbuf); - //REG_FUNC(0x2CA980A0, setvbuf); - //REG_FUNC(0xA1BFF606, snprintf); - REG_FUNC(0x7449B359, sprintf); - //REG_FUNC(0xEC585241, sscanf); - //REG_FUNC(0x2BCB3F01, ungetc); - //REG_FUNC(0xF7915685, vfprintf); - //REG_FUNC(0xF137771A, vfscanf); - //REG_FUNC(0xE7B5E23E, vprintf); - //REG_FUNC(0x0E9BD318, vscanf); - //REG_FUNC(0xFE83F2E4, vsnprintf); - //REG_FUNC(0x802FDDF9, vsprintf); - //REG_FUNC(0xA9889307, vsscanf); - //REG_FUNC(0x20FE0FFF, abort); - //REG_FUNC(0x8E5A06C5, abs); - //REG_FUNC(0xD500DE27, atof); - //REG_FUNC(0x21493BE7, atoi); - //REG_FUNC(0xA1DBEE9F, atol); - //REG_FUNC(0x875994F3, atoll); - //REG_FUNC(0xD1BC28E7, bsearch); - //REG_FUNC(0xE9F823C0, div); - REG_FUNC(0x826bbbaf, exit); - //REG_FUNC(0xB53B345B, _Exit); - //REG_FUNC(0xBCEA304B, labs); - //REG_FUNC(0x9D2D17CD, llabs); - //REG_FUNC(0xD63330DA, ldiv); - //REG_FUNC(0x3F887699, lldiv); - //REG_FUNC(0x3E347849, mblen); - //REG_FUNC(0x2F75CF9B, mbstowcs); - //REG_FUNC(0xD791A952, mbtowc); - //REG_FUNC(0xA7CBE4A6, qsort); - //REG_FUNC(0x6CA88B08, strtod); - //REG_FUNC(0x6CB8540E, strtof); - //REG_FUNC(0x181827ED, strtol); - //REG_FUNC(0x48C684B2, strtold); - //REG_FUNC(0x39B7E681, strtoll); - //REG_FUNC(0xF34AE312, strtoul); - //REG_FUNC(0xE0E12333, strtoull); - //REG_FUNC(0x9A8F7FC0, wcstombs); - //REG_FUNC(0x6489B5E4, wctomb); - //REG_FUNC(0xC0883865, rand); - //REG_FUNC(0x3AAD41B0, srand); - //REG_FUNC(0x962097AA, rand_r); - //REG_FUNC(0x775A0CB2, malloc); - //REG_FUNC(0xE7EC3D0B, calloc); - //REG_FUNC(0x006B54BA, realloc); - //REG_FUNC(0x5B9BB802, free); - //REG_FUNC(0xA9363E6B, memalign); - //REG_FUNC(0x608AC135, reallocalign); - //REG_FUNC(0x57A729DB, malloc_stats); - //REG_FUNC(0xB3D29DE1, malloc_stats_fast); - //REG_FUNC(0x54A54EB1, malloc_usable_size); - //REG_FUNC(0x2F3E5B16, memchr); - //REG_FUNC(0x7747F6D7, memcmp); - REG_FUNC(0x7205BFDB, memcpy); - //REG_FUNC(0xAF5C218D, memmove); - REG_FUNC(0x6DC1F0D8, memset); - //REG_FUNC(0x1434FA46, strcat); - //REG_FUNC(0xB9336E16, strchr); - //REG_FUNC(0x1B58FA3B, strcmp); - //REG_FUNC(0x46AE2311, strcoll); - //REG_FUNC(0x85B924B7, strcpy); - //REG_FUNC(0x0E29D27A, strcspn); - //REG_FUNC(0x1E9D6335, strerror); - //REG_FUNC(0x8AECC873, strlen); - //REG_FUNC(0xFBA69BC2, strncat); - //REG_FUNC(0xE4299DCB, strncmp); - //REG_FUNC(0x9F87712D, strncpy); - //REG_FUNC(0x68C307B6, strpbrk); - //REG_FUNC(0xCEFDD143, strrchr); - //REG_FUNC(0x4203B663, strspn); - //REG_FUNC(0x0D5200CB, strstr); - //REG_FUNC(0x0289B8B3, strtok); - //REG_FUNC(0x4D023DE9, strxfrm); - //REG_FUNC(0xEB31926D, strtok_r); - //REG_FUNC(0xFF6F77C7, strdup); - //REG_FUNC(0x184C4B07, strcasecmp); - //REG_FUNC(0xAF1CA2F1, strncasecmp); - //REG_FUNC(0xC94AE948, asctime); - //REG_FUNC(0xC082CA03, clock); - //REG_FUNC(0x1EA1CA8D, ctime); - //REG_FUNC(0x33AD70A0, difftime); - //REG_FUNC(0xF283CFE3, gmtime); - //REG_FUNC(0xF4A2E0BF, localtime); - //REG_FUNC(0xD1A2DFC3, mktime); - //REG_FUNC(0xEEB76FED, strftime); - //REG_FUNC(0xDAE8D60F, time); - //REG_FUNC(0xEFB3BC61, btowc); - //REG_FUNC(0x1D1DA5AD, _Btowc); - //REG_FUNC(0x89541CA5, fgetwc); - //REG_FUNC(0x982AFA4D, fgetws); - //REG_FUNC(0xA597CDC8, fputwc); - //REG_FUNC(0xB755927C, fputws); - //REG_FUNC(0xA77327D2, fwide); - //REG_FUNC(0xE52278E8, fwprintf); - //REG_FUNC(0x7BFC75C6, fwscanf); - //REG_FUNC(0x23E0F442, getwc); - //REG_FUNC(0x55DB4E32, getwchar); - //REG_FUNC(0x1927CAE8, mbrlen); - //REG_FUNC(0x910664C3, mbrtowc); - //REG_FUNC(0x961D12F8, mbsinit); - //REG_FUNC(0x9C14D58E, mbsrtowcs); - //REG_FUNC(0x247C71A6, putwc); - //REG_FUNC(0x3E04AB1C, putwchar); - //REG_FUNC(0x1B581BEB, swprintf); - //REG_FUNC(0xE1D2AE42, swscanf); - //REG_FUNC(0x39334D9C, ungetwc); - //REG_FUNC(0x36BF1E06, vfwprintf); - //REG_FUNC(0x37A563BE, vfwscanf); - //REG_FUNC(0x572DAB57, vswprintf); - //REG_FUNC(0x9451EE20, vswscanf); - //REG_FUNC(0x0A451B11, vwprintf); - //REG_FUNC(0xAD0C43DC, vwscanf); - //REG_FUNC(0xD9FF289D, wcrtomb); - //REG_FUNC(0x2F990FF9, wcscat); - //REG_FUNC(0xC1587971, wcschr); - //REG_FUNC(0xF42128B9, wcscmp); - //REG_FUNC(0x8EC70609, wcscoll); - //REG_FUNC(0x8AAADD56, wcscpy); - //REG_FUNC(0x25F7E46A, wcscspn); - //REG_FUNC(0x74136BC1, wcsftime); - //REG_FUNC(0xA778A14B, wcslen); - //REG_FUNC(0x196AB9F2, wcsncat); - //REG_FUNC(0xAAA6AAA2, wcsncmp); - //REG_FUNC(0x62E9B2D5, wcsncpy); - //REG_FUNC(0x07F229DB, wcspbrk); - //REG_FUNC(0xDF806521, wcsrchr); - //REG_FUNC(0xD8889FC8, wcsrtombs); - //REG_FUNC(0x5F5AA692, wcsspn); - //REG_FUNC(0x5BE328EE, wcsstr); - //REG_FUNC(0x35D7F1B1, wcstod); - //REG_FUNC(0x322243A8, _WStod); - //REG_FUNC(0x64123137, wcstof); - //REG_FUNC(0x340AF0F7, _WStof); - //REG_FUNC(0xA17C24A3, wcstok); - //REG_FUNC(0xFBEB657E, wcstol); - //REG_FUNC(0x2D7C3A7A, wcstold); - //REG_FUNC(0x1EDA8F09, _WStold); - //REG_FUNC(0x6EEFB7D7, wcstoll); - //REG_FUNC(0xACF13D54, wcstoul); - //REG_FUNC(0x87C94271, _WStoul); - //REG_FUNC(0xCBFF8200, wcstoull); - //REG_FUNC(0xF6069AFD, wcsxfrm); - //REG_FUNC(0x704321CC, wctob); - //REG_FUNC(0x2F0C81A6, _Wctob); - //REG_FUNC(0x7A08BE70, wmemchr); - //REG_FUNC(0x9864C99F, wmemcmp); - //REG_FUNC(0xD9F9DDCD, wmemcpy); - //REG_FUNC(0x53F7EB4B, wmemmove); - //REG_FUNC(0x4D04A480, wmemset); - //REG_FUNC(0xBF2F5FCE, wprintf); - //REG_FUNC(0xADC32204, wscanf); - //REG_FUNC(0x7E811AF2, iswalnum); - //REG_FUNC(0xC5ECB7B6, iswalpha); - //REG_FUNC(0xC8FC4BBE, iswblank); - //REG_FUNC(0xC30AE3C7, iswcntrl); - //REG_FUNC(0x9E348712, iswctype); - //REG_FUNC(0xC37DB2C2, iswdigit); - //REG_FUNC(0x70632234, iswgraph); - //REG_FUNC(0x40F84B7D, iswlower); - //REG_FUNC(0xF52F9241, iswprint); - //REG_FUNC(0x3922B91A, iswpunct); - //REG_FUNC(0x2BDA4905, iswspace); - //REG_FUNC(0x9939E1AD, iswupper); - //REG_FUNC(0x82FCEFA4, iswxdigit); - //REG_FUNC(0x09C38DE4, towlower); - //REG_FUNC(0xCF77D465, towctrans); - //REG_FUNC(0xCACE34B9, towupper); - //REG_FUNC(0xE8270951, wctrans); - //REG_FUNC(0xA967B88D, wctype); - //REG_FUNC(0x9D885076, _Towctrans); - //REG_FUNC(0xE980110A, _Iswctype); - REG_FUNC(0x33b83b70, __cxa_atexit); - REG_FUNC(0xEDC939E1, __aeabi_atexit); - //REG_FUNC(0xB538BF48, __cxa_finalize); - //REG_FUNC(0xD0310E31, __cxa_guard_acquire); - //REG_FUNC(0x4ED1056F, __cxa_guard_release); - //REG_FUNC(0xD18E461D, __cxa_guard_abort); - REG_FUNC(0xbfe02b3a, __cxa_set_dso_handle_main); - //REG_FUNC(0x64DA2C47, _Unlocksyslock); - //REG_FUNC(0x7DBC0575, _Locksyslock); - //REG_FUNC(0x5044FC32, _Lockfilelock); - //REG_FUNC(0xFD5DD98C, _Unlockfilelock); - //REG_FUNC(0x1EFFBAC2, __set_exidx_main); - //REG_FUNC(0x855FC605, _Files); - //REG_FUNC(0x66B7406C, _Stdin); - //REG_FUNC(0x5D8C1282, _Stdout); - //REG_FUNC(0xDDF9BB09, _Stderr); - //REG_FUNC(0x3CE6109D, _Ctype); - //REG_FUNC(0x36878958, _Touptab); - //REG_FUNC(0xD662E07C, _Tolotab); - //REG_FUNC(0xE5620A03, _Flt); - //REG_FUNC(0x338FE545, _Dbl); - //REG_FUNC(0x94CE931C, _Ldbl); - //REG_FUNC(0xF708906E, _Denorm); - //REG_FUNC(0x01B05132, _FDenorm); - //REG_FUNC(0x2C8DBEB7, _LDenorm); - //REG_FUNC(0x710B5F33, _Inf); - //REG_FUNC(0x8A0F308C, _FInf); - //REG_FUNC(0x5289BBC0, _LInf); - //REG_FUNC(0x116F3DA9, _Nan); - //REG_FUNC(0x415162DD, _FNan); - //REG_FUNC(0x036D0F07, _LNan); - //REG_FUNC(0x677CDE35, _Snan); - //REG_FUNC(0x7D35108B, _FSnan); - //REG_FUNC(0x48AEEF2A, _LSnan); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceLibc.h b/rpcs3/Emu/PSP2/Modules/sceLibc.h deleted file mode 100644 index 05cc11c1b4..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLibc.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -using atexit_func_t = void(vm::ptr); diff --git a/rpcs3/Emu/PSP2/Modules/sceLibm.cpp b/rpcs3/Emu/PSP2/Modules/sceLibm.cpp deleted file mode 100644 index 5308b279da..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLibm.cpp +++ /dev/null @@ -1,216 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceLibm.h" - -logs::channel sceLibm("sceLibm"); - -namespace sce_libm_func -{ - -} - -#define REG_FUNC(nid, name) REG_FNID(SceLibm, nid, sce_libm_func::name) - -DECLARE(arm_module_manager::SceLibm)("SceLibm", []() -{ - //REG_FUNC(0xC73FE76D, _Exp); - //REG_FUNC(0xFF4EAE04, _FExp); - //REG_FUNC(0xB363D7D4, _LExp); - //REG_FUNC(0xD72B5ACB, acos); - //REG_FUNC(0x27EAB8C1, acosf); - //REG_FUNC(0x1C053D0F, acosh); - //REG_FUNC(0x568ECFB0, acoshf); - //REG_FUNC(0xD3D6D36E, acoshl); - //REG_FUNC(0x3210F395, acosl); - //REG_FUNC(0x4016B2E6, asin); - //REG_FUNC(0x3A3E5424, asinf); - //REG_FUNC(0x7C93F1DD, asinh); - //REG_FUNC(0x285AEDEA, asinhf); - //REG_FUNC(0x9496E15E, asinhl); - //REG_FUNC(0x1724A81D, asinl); - //REG_FUNC(0x516D9970, atan); - //REG_FUNC(0xC9BE3F05, atan2); - //REG_FUNC(0x4E09DD53, atan2f); - //REG_FUNC(0xCE325597, atan2l); - //REG_FUNC(0xD78FC94E, atanf); - //REG_FUNC(0x434BCE01, atanh); - //REG_FUNC(0xC7B0AFBA, atanhf); - //REG_FUNC(0x6A6881A6, atanhl); - //REG_FUNC(0xD423A4AB, atanl); - //REG_FUNC(0xACC0DC5A, cbrt); - //REG_FUNC(0xD1699F4D, cbrtf); - //REG_FUNC(0x342F9501, cbrtl); - //REG_FUNC(0x63F05BD6, ceil); - //REG_FUNC(0x6BBFEC89, ceilf); - //REG_FUNC(0x48082D81, ceill); - //REG_FUNC(0x0B918D13, copysign); - //REG_FUNC(0x16EB9E63, copysignf); - //REG_FUNC(0x19DFC0AA, copysignl); - //REG_FUNC(0x061D0244, cos); - //REG_FUNC(0x127F8302, cosf); - //REG_FUNC(0x89B9BE1F, cosl); - //REG_FUNC(0x110195E7, cosh); - //REG_FUNC(0x61DE0770, coshf); - //REG_FUNC(0x7EADDC5E, coshl); - //REG_FUNC(0x4B84C012, _Cosh); - //REG_FUNC(0x15993458, erf); - //REG_FUNC(0x524AEBFE, erfc); - //REG_FUNC(0x0301F113, erfcf); - //REG_FUNC(0xD4C92471, erfcl); - //REG_FUNC(0x41DD1AB8, erff); - //REG_FUNC(0xFD431619, erfl); - //REG_FUNC(0xEB027358, exp); - //REG_FUNC(0x9B18F38F, exp2); - //REG_FUNC(0x79415BD3, exp2f); - //REG_FUNC(0x40053307, exp2l); - //REG_FUNC(0x56473BC7, expf); - //REG_FUNC(0xA71A81AA, expl); - //REG_FUNC(0x2A97A75F, expm1); - //REG_FUNC(0x64131D7B, expm1f); - //REG_FUNC(0x8BF1866C, expm1l); - //REG_FUNC(0x3E672BE3, fabs); - //REG_FUNC(0x75348906, fabsf); - //REG_FUNC(0x03ECA514, fabsl); - //REG_FUNC(0xA278B20D, _FCosh); - //REG_FUNC(0xD6FD5A2E, fdim); - //REG_FUNC(0x8B6CC137, fdimf); - //REG_FUNC(0xE6988B7B, fdiml); - //REG_FUNC(0xD5BD8D5C, _FLog); - //REG_FUNC(0x22BB8237, floor); - //REG_FUNC(0xCD7C05BD, floorf); - //REG_FUNC(0xFDFA4558, floorl); - //REG_FUNC(0x1EACA585, fma); - //REG_FUNC(0xB61672A7, fmaf); - //REG_FUNC(0xBCF6EA7C, fmal); - //REG_FUNC(0xBE30CC1E, fmax); - //REG_FUNC(0x7004FA75, fmaxf); - //REG_FUNC(0xBF5AF69E, fmaxl); - //REG_FUNC(0x2ABBDFF7, fmin); - //REG_FUNC(0x7673CC1E, fminf); - //REG_FUNC(0xE2F5A0F0, fminl); - //REG_FUNC(0x798587E4, fmod); - //REG_FUNC(0x1CD8F88E, fmodf); - //REG_FUNC(0x986011B4, fmodl); - //REG_FUNC(0x59197427, frexp); - //REG_FUNC(0x0A6879AC, frexpf); - //REG_FUNC(0x6DC8D877, frexpl); - //REG_FUNC(0x4A496BC0, _FSin); - //REG_FUNC(0x7FBB4C55, _FSinh); - //REG_FUNC(0x2D2CD795, hypot); - //REG_FUNC(0xA397B929, hypotf); - //REG_FUNC(0x05BFBEE8, hypotl); - //REG_FUNC(0x667EE864, ilogb); - //REG_FUNC(0x80050A43, ilogbf); - //REG_FUNC(0x91298DCA, ilogbl); - //REG_FUNC(0x0197C9D5, _LCosh); - //REG_FUNC(0x0056061B, ldexp); - //REG_FUNC(0x0E61E016, ldexpf); - //REG_FUNC(0x8280A7B1, ldexpl); - //REG_FUNC(0x2480AA54, lgamma); - //REG_FUNC(0x2D9556D5, lgammaf); - //REG_FUNC(0xADEBD201, lgammal); - //REG_FUNC(0x5B05329D, _LLog); - //REG_FUNC(0x7B41AC38, llrint); - //REG_FUNC(0xC1F6135B, llrintf); - //REG_FUNC(0x80558247, llrintl); - //REG_FUNC(0xD1251A18, llround); - //REG_FUNC(0x04595A04, llroundf); - //REG_FUNC(0x9AB5C7AF, llroundl); - //REG_FUNC(0x6037C48F, log); - //REG_FUNC(0x811ED68B, logf); - //REG_FUNC(0xC6FFBCD6, logl); - //REG_FUNC(0x67E99979, _Log); - //REG_FUNC(0x2CBE04D7, log1p); - //REG_FUNC(0xF1D7C851, log1pf); - //REG_FUNC(0x3359152C, log1pl); - //REG_FUNC(0xCF65F098, log10); - //REG_FUNC(0xFD2A3464, log10f); - //REG_FUNC(0x3D7E7201, log10l); - //REG_FUNC(0x73AFEE5F, log2); - //REG_FUNC(0x4095DBDB, log2f); - //REG_FUNC(0x720021A9, log2l); - //REG_FUNC(0x5EAE8AD4, logb); - //REG_FUNC(0x025F51CE, logbf); - //REG_FUNC(0x86C4B75F, logbl); - //REG_FUNC(0x207307D0, lrint); - //REG_FUNC(0xDA903135, lrintf); - //REG_FUNC(0xE8C1F6F8, lrintl); - //REG_FUNC(0xD35AFD56, lround); - //REG_FUNC(0xA24C6453, lroundf); - //REG_FUNC(0x8B3ACA4E, lroundl); - //REG_FUNC(0xB397FE83, _LSin); - //REG_FUNC(0xF247EE99, _LSinh); - //REG_FUNC(0x1167B5D2, modf); - //REG_FUNC(0x5D7A7EB2, modff); - //REG_FUNC(0xD41D68F2, modfl); - //REG_FUNC(0xC3FCA1FA, nan); - //REG_FUNC(0xB4761D24, nanf); - //REG_FUNC(0xBFA96D93, nanl); - //REG_FUNC(0x877187C4, nearbyint); - //REG_FUNC(0xD56E78F6, nearbyintf); - //REG_FUNC(0x8DD794DC, nearbyintl); - //REG_FUNC(0xE1A3D449, nextafter); - //REG_FUNC(0xC8A94A33, nextafterf); - //REG_FUNC(0xEAAB2055, nextafterl); - //REG_FUNC(0x39E605E6, nexttoward); - //REG_FUNC(0xDD652D4E, nexttowardf); - //REG_FUNC(0x41E6AEA4, nexttowardl); - //REG_FUNC(0x640DB443, pow); - //REG_FUNC(0x6DEA815A, powf); - //REG_FUNC(0x96328F3D, powl); - //REG_FUNC(0xE4D6117F, remainder); - //REG_FUNC(0xE6BB3DCF, remainderf); - //REG_FUNC(0x354E568E, remainderl); - //REG_FUNC(0x52337926, remquo); - //REG_FUNC(0xD8F6B5D3, remquof); - //REG_FUNC(0xBB353F24, remquol); - //REG_FUNC(0x943F218F, rint); - //REG_FUNC(0xCACE5A19, rintf); - //REG_FUNC(0xE3C097E0, rintl); - //REG_FUNC(0x64D37996, round); - //REG_FUNC(0xAAF31896, roundf); - //REG_FUNC(0x9AB1B1B1, roundl); - //REG_FUNC(0x8F8CF628, scalbln); - //REG_FUNC(0xDEB0A2D0, scalblnf); - //REG_FUNC(0x2113921E, scalblnl); - //REG_FUNC(0x569758D0, scalbn); - //REG_FUNC(0x78F70588, scalbnf); - //REG_FUNC(0x777C7463, scalbnl); - //REG_FUNC(0xB5519FF0, sin); - //REG_FUNC(0x7F00B590, sinf); - //REG_FUNC(0x3294447C, sinl); - //REG_FUNC(0xD92A7F85, _Sin); - //REG_FUNC(0xF2C0AF49, sinh); - //REG_FUNC(0xB5838E7D, sinhf); - //REG_FUNC(0x4B91F2E6, sinhl); - //REG_FUNC(0x40E42E8E, _Sinh); - //REG_FUNC(0xDA227FCC, sqrt); - //REG_FUNC(0xBA3F6937, sqrtf); - //REG_FUNC(0xC1343477, sqrtl); - //REG_FUNC(0x5BAE40B0, tan); - //REG_FUNC(0xA98E941B, tanf); - //REG_FUNC(0x26CD78CA, tanh); - //REG_FUNC(0xC4847578, tanhf); - //REG_FUNC(0x14F2BEA1, tanhl); - //REG_FUNC(0xDC742A5E, tanl); - //REG_FUNC(0x3A7FE686, tgamma); - //REG_FUNC(0xE6067AC0, tgammaf); - //REG_FUNC(0x2949109F, tgammal); - //REG_FUNC(0x0212323E, trunc); - //REG_FUNC(0x090B899F, truncf); - //REG_FUNC(0xBC0F1B1A, truncl); - //REG_FUNC(0x98BBDAE0, _Dclass); - //REG_FUNC(0xBD8EF217, _FDclass); - //REG_FUNC(0x314CCE54, _LDclass); - //REG_FUNC(0xC5B9C8D8, _FDtest); - //REG_FUNC(0x27A55170, _Dtest); - //REG_FUNC(0x8DAE8767, _LDtest); - //REG_FUNC(0x622CBFEE, _Fpcomp); - //REG_FUNC(0x9CD4CEFE, _FFpcomp); - //REG_FUNC(0x18F43CD0, _LFpcomp); - //REG_FUNC(0x5BD0F71C, _Dsign); - //REG_FUNC(0xC4F7E42C, _FDsign); - //REG_FUNC(0x1DF73D2B, _LDsign); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceLibm.h b/rpcs3/Emu/PSP2/Modules/sceLibm.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLibm.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/rpcs3/Emu/PSP2/Modules/sceLibstdcxx.cpp b/rpcs3/Emu/PSP2/Modules/sceLibstdcxx.cpp deleted file mode 100644 index d86cfc3888..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLibstdcxx.cpp +++ /dev/null @@ -1,1931 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceLibstdcxx.h" - -logs::channel sceLibstdcxx("sceLibstdcxx"); - -namespace sce_libstdcxx_func -{ - void __aeabi_unwind_cpp_pr0() - { - fmt::throw_exception("Unimplemented" HERE); - } - - void __aeabi_unwind_cpp_pr1() - { - fmt::throw_exception("Unimplemented" HERE); - } - - void __aeabi_unwind_cpp_pr2() - { - fmt::throw_exception("Unimplemented" HERE); - } -} - -// TODO: find and set correct original mangled name. Currently ignored. -// Example of correct usage: REG_FUNC(0xAE71DC3, operator_new_nothrow, "_ZnwjRKSt9nothrow_t"); -#define REG_FUNC(nid, name, orig_name) REG_FNID(SceLibstdcxx, nid, sce_libstdcxx_func::name) - -DECLARE(arm_module_manager::SceLibstdcxx)("SceLibstdcxx", []() -{ - //REG_FUNC(0x52B0C625, std::bad_typeid::what() const); - //REG_FUNC(0x64D7D074, std::bad_typeid::_Doraise() const); - //REG_FUNC(0x15FB88E2, std::logic_error::what() const); - //REG_FUNC(0x492D1209, std::logic_error::_Doraise() const); - //REG_FUNC(0xDBDFF9D0, std::range_error::_Doraise() const); - //REG_FUNC(0xE8D59AB5, std::_String_base::_Xlen() const); - //REG_FUNC(0x473DC636, std::_String_base::_Xran() const); - //REG_FUNC(0x481ECB76, std::domain_error::_Doraise() const); - //REG_FUNC(0xB03E909C, std::length_error::_Doraise() const); - //REG_FUNC(0x38CF41AC, std::out_of_range::_Doraise() const); - //REG_FUNC(0x55AE5502, std::_codecvt_base::do_encoding() const); - //REG_FUNC(0x5522293F, std::_codecvt_base::do_max_length() const); - //REG_FUNC(0xCF5643A9, std::_codecvt_base::do_always_noconv() const); - //REG_FUNC(0x51FCD56B, std::bad_exception::what() const); - //REG_FUNC(0x109E54C9, std::bad_exception::_Doraise() const); - //REG_FUNC(0xAE85C2EE, std::runtime_error::what() const); - //REG_FUNC(0x1D878503, std::runtime_error::_Doraise() const); - //REG_FUNC(0xEED101C6, std::overflow_error::_Doraise() const); - //REG_FUNC(0xB1AE6F9E, std::underflow_error::_Doraise() const); - //REG_FUNC(0x16F56E8D, std::invalid_argument::_Doraise() const); - //REG_FUNC(0x6C568D20, std::_ctype::do_tolower(char*, char const*) const); - //REG_FUNC(0xC334DE66, std::_ctype::do_tolower(char) const); - //REG_FUNC(0x02DD808E, std::_ctype::do_toupper(char*, char const*) const); - //REG_FUNC(0xF6AF33EA, std::_ctype::do_toupper(char) const); - //REG_FUNC(0x1B81D726, std::_ctype::do_widen(char const*, char const*, char*) const); - //REG_FUNC(0x6471CC01, std::_ctype::do_widen(char) const); - //REG_FUNC(0x9CFA56E5, std::_ctype::do_narrow(char const*, char const*, char, char*) const); - //REG_FUNC(0x718669AB, std::_ctype::do_narrow(char, char) const); - //REG_FUNC(0x759F105D, std::_ctype::do_scan_is(short, wchar_t const*, wchar_t const*) const); - //REG_FUNC(0x0056443F, std::_ctype::do_tolower(wchar_t*, wchar_t const*) const); - //REG_FUNC(0x33E9ECDD, std::_ctype::do_tolower(wchar_t) const); - //REG_FUNC(0x1256E6A5, std::_ctype::do_toupper(wchar_t*, wchar_t const*) const); - //REG_FUNC(0x64072C2E, std::_ctype::do_toupper(wchar_t) const); - //REG_FUNC(0x339766BF, std::_ctype::do_scan_not(short, wchar_t const*, wchar_t const*) const); - //REG_FUNC(0xDA4E1651, std::_ctype::do_is(wchar_t const*, wchar_t const*, short*) const); - //REG_FUNC(0x5A06C0E8, std::_ctype::do_is(short, wchar_t) const); - //REG_FUNC(0x609036C7, std::_ctype::do_widen(char const*, char const*, wchar_t*) const); - //REG_FUNC(0xA2896AA8, std::_ctype::do_widen(char) const); - //REG_FUNC(0x631687B9, std::_ctype::do_narrow(wchar_t const*, wchar_t const*, char, char*) const); - //REG_FUNC(0xB4D8D2F0, std::_ctype::do_narrow(wchar_t, char) const); - //REG_FUNC(0xD9070137, std::_codecvt::do_unshift(std::_Mbstatet&, char*, char*, char*&) const); - //REG_FUNC(0xABA0412F, std::_codecvt::do_in(std::_Mbstatet&, char const*, char const*, char const*&, char*, char*, char*&) const); - //REG_FUNC(0x51052F04, std::_codecvt::do_out(std::_Mbstatet&, char const*, char const*, char const*&, char*, char*, char*&) const); - //REG_FUNC(0x39F062BE, std::_codecvt::do_length(std::_Mbstatet const&, char const*, char const*, unsigned int) const); - //REG_FUNC(0xF07CC89F, std::_codecvt::do_unshift(std::_Mbstatet&, char*, char*, char*&) const); - //REG_FUNC(0xF3A2E837, std::_codecvt::do_encoding() const); - //REG_FUNC(0x1F133D1E, std::_codecvt::do_max_length() const); - //REG_FUNC(0x27716D17, std::_codecvt::do_always_noconv() const); - //REG_FUNC(0x1C1AFE42, std::_codecvt::do_in(std::_Mbstatet&, char const*, char const*, char const*&, wchar_t*, wchar_t*, wchar_t*&) const); - //REG_FUNC(0xCBDE5500, std::_codecvt::do_out(std::_Mbstatet&, wchar_t const*, wchar_t const*, wchar_t const*&, char*, char*, char*&) const); - //REG_FUNC(0xF4D38990, std::_codecvt::do_length(std::_Mbstatet const&, char const*, char const*, unsigned int) const); - //REG_FUNC(0x46A9143F, std::bad_cast::what() const); - //REG_FUNC(0x8D129D3F, std::bad_cast::_Doraise() const); - //REG_FUNC(0xF877F51E, std::ios_base::failure::_Doraise() const); - //REG_FUNC(0x664750EE, std::bad_alloc::what() const); - //REG_FUNC(0xBA89FBE7, std::bad_alloc::_Doraise() const); - //REG_FUNC(0xC133E331, std::exception::what() const); - //REG_FUNC(0x0656BE32, std::exception::_Raise() const); - //REG_FUNC(0x47A5CDA2, std::exception::_Doraise() const); - //REG_FUNC(0xBAE38DF9, std::type_info::name() const); - //REG_FUNC(0x1F260F10, std::type_info::before(std::type_info const&) const); - //REG_FUNC(0xDB15F0FC, std::type_info::operator==(std::type_info const&) const); - //REG_FUNC(0x9994F9FE, std::type_info::operator!=(std::type_info const&) const); - //REG_FUNC(0x2DA9FCEC, std::basic_iostream >::~basic_iostream()); - //REG_FUNC(0x6C2D3707, std::basic_iostream >::~basic_iostream()); - //REG_FUNC(0x9BA8786E, std::basic_istream >::~basic_istream()); - //REG_FUNC(0xD089A7C9, std::basic_istream >::~basic_istream()); - //REG_FUNC(0x3EE0611A, std::basic_ostream >::basic_ostream(std::basic_streambuf >*, bool)); - //REG_FUNC(0x6489E51D, std::basic_ostream >::~basic_ostream()); - //REG_FUNC(0xEF21C386, std::basic_ostream >::~basic_ostream()); - //REG_FUNC(0x10D794D4, std::string::_Grow(unsigned int, bool)); - //REG_FUNC(0x846D0286, std::string::assign(std::string const&, unsigned int, unsigned int)); - //REG_FUNC(0x2AF7786D, std::basic_string, std::allocator >::basic_string(char const*)); - //REG_FUNC(0x92F661CF, std::basic_string, std::allocator >::basic_string(std::string const&)); - //REG_FUNC(0xECC3B9C2, std::bad_typeid::bad_typeid(std::bad_typeid const&)); - //REG_FUNC(0x9F4CD196, std::bad_typeid::bad_typeid()); - //REG_FUNC(0x7AE1631B, std::bad_typeid::bad_typeid(std::bad_typeid const&)); - //REG_FUNC(0x33377802, std::bad_typeid::bad_typeid()); - //REG_FUNC(0x2CE020C7, std::bad_typeid::~bad_typeid()); - //REG_FUNC(0x625460B9, std::bad_typeid::~bad_typeid()); - //REG_FUNC(0xB4F5C5A7, std::bad_typeid::~bad_typeid()); - //REG_FUNC(0x55AAD6A6, std::bad_typeid::operator=(std::bad_typeid const&)); - //REG_FUNC(0x9CF31703, std::istrstream::~istrstream()); - //REG_FUNC(0x71D13A36, std::istrstream::~istrstream()); - //REG_FUNC(0xAF5DF8C3, std::istrstream::~istrstream()); - //REG_FUNC(0x0C1E7C7A, std::ostrstream::ostrstream(char*, int, std::_Iosb::_Openmode)); - //REG_FUNC(0x0C09B290, std::ostrstream::ostrstream(char*, int, std::_Iosb::_Openmode)); - //REG_FUNC(0x4B8BA644, std::ostrstream::~ostrstream()); - //REG_FUNC(0x0E463FB3, std::ostrstream::~ostrstream()); - //REG_FUNC(0xA0A34FEF, std::ostrstream::~ostrstream()); - //REG_FUNC(0xC9F632FF, std::logic_error::logic_error(std::logic_error const&)); - //REG_FUNC(0xE6356C5C, std::logic_error::logic_error(std::string const&)); - //REG_FUNC(0x6322FEB0, std::logic_error::~logic_error()); - //REG_FUNC(0x35ED9C5A, std::logic_error::~logic_error()); - //REG_FUNC(0x1FFC4420, std::logic_error::~logic_error()); - //REG_FUNC(0x6F6E3A52, std::range_error::range_error(std::range_error const&)); - //REG_FUNC(0xFD97D28A, std::range_error::~range_error()); - //REG_FUNC(0x1C86405F, std::range_error::~range_error()); - //REG_FUNC(0xEF754EBD, std::range_error::~range_error()); - //REG_FUNC(0x7D5412EF, std::domain_error::domain_error(std::domain_error const&)); - //REG_FUNC(0x803A7D3E, std::domain_error::~domain_error()); - //REG_FUNC(0xA6BCA2AD, std::domain_error::~domain_error()); - //REG_FUNC(0x036F9D2A, std::domain_error::~domain_error()); - //REG_FUNC(0x5F3428AD, std::length_error::length_error(std::length_error const&)); - //REG_FUNC(0xF6FB801D, std::length_error::length_error(std::string const&)); - //REG_FUNC(0xF83AA7DA, std::length_error::~length_error()); - //REG_FUNC(0xA873D7F9, std::length_error::~length_error()); - //REG_FUNC(0x0BB12C75, std::length_error::~length_error()); - //REG_FUNC(0x299AA587, std::out_of_range::out_of_range(std::out_of_range const&)); - //REG_FUNC(0xC8BA5522, std::out_of_range::out_of_range(std::string const&)); - //REG_FUNC(0xA8C470A4, std::out_of_range::~out_of_range()); - //REG_FUNC(0x5FAE79BF, std::out_of_range::~out_of_range()); - //REG_FUNC(0x7908CBAB, std::out_of_range::~out_of_range()); - //REG_FUNC(0xDCCE6368, std::strstreambuf::_Init(int, char*, char*, int)); - //REG_FUNC(0xD85AE271, std::strstreambuf::_Tidy()); - //REG_FUNC(0xD189E6CC, std::strstreambuf::freeze(bool)); - //REG_FUNC(0xFA6BDF33, std::strstreambuf::seekoff(long, std::_Iosb::_Seekdir, std::_Iosb::_Openmode)); - //REG_FUNC(0x97A9813A, std::strstreambuf::seekpos(std::fpos, std::_Iosb::_Openmode)); - //REG_FUNC(0xED2539E2, std::strstreambuf::overflow(int)); - //REG_FUNC(0xC725F896, std::strstreambuf::pbackfail(int)); - //REG_FUNC(0xA9F4FABF, std::strstreambuf::underflow()); - //REG_FUNC(0x1C887DDE, std::strstreambuf::~strstreambuf()); - //REG_FUNC(0x29E1E930, std::strstreambuf::~strstreambuf()); - //REG_FUNC(0x0A140889, std::strstreambuf::~strstreambuf()); - //REG_FUNC(0xA8FE6FC4, std::_codecvt_base::~_codecvt_base()); - //REG_FUNC(0xB0E47AE4, std::_codecvt_base::~_codecvt_base()); - //REG_FUNC(0xB7EE9CC2, std::bad_exception::bad_exception(std::bad_exception const&)); - //REG_FUNC(0xD719280E, std::bad_exception::bad_exception()); - //REG_FUNC(0x37D2017F, std::bad_exception::bad_exception(std::bad_exception const&)); - //REG_FUNC(0x3DE54D83, std::bad_exception::bad_exception()); - //REG_FUNC(0xC7880D1A, std::bad_exception::~bad_exception()); - //REG_FUNC(0x486B59CE, std::bad_exception::~bad_exception()); - //REG_FUNC(0xD04E0BAB, std::bad_exception::~bad_exception()); - //REG_FUNC(0x792097AA, std::bad_exception::operator=(std::bad_exception const&)); - //REG_FUNC(0xCC369863, std::basic_filebuf >::sync()); - //REG_FUNC(0xC8BAB41E, std::basic_filebuf >::_Lock()); - //REG_FUNC(0xD5F03A74, std::basic_filebuf >::uflow()); - //REG_FUNC(0x413E813E, std::basic_filebuf >::setbuf(char*, int)); - //REG_FUNC(0x9D193B65, std::basic_filebuf >::_Unlock()); - //REG_FUNC(0x52E47FB5, std::basic_filebuf >::seekoff(long, std::_Iosb::_Seekdir, std::_Iosb::_Openmode)); - //REG_FUNC(0x0E119B37, std::basic_filebuf >::seekpos(std::fpos, std::_Iosb::_Openmode)); - //REG_FUNC(0x616754BC, std::basic_filebuf >::overflow(int)); - //REG_FUNC(0xCD5BD2E1, std::basic_filebuf >::_Endwrite()); - //REG_FUNC(0xFC1C7F3A, std::basic_filebuf >::pbackfail(int)); - //REG_FUNC(0x31693B42, std::basic_filebuf >::underflow()); - //REG_FUNC(0xC2F03DFD, std::basic_filebuf >::~basic_filebuf()); - //REG_FUNC(0x54A77A0D, std::basic_filebuf >::~basic_filebuf()); - //REG_FUNC(0x253888BD, std::basic_filebuf >::sync()); - //REG_FUNC(0x4EC524DC, std::basic_filebuf >::_Lock()); - //REG_FUNC(0xE777348C, std::basic_filebuf >::uflow()); - //REG_FUNC(0x1E1E8BBF, std::basic_filebuf >::setbuf(wchar_t*, int)); - //REG_FUNC(0x281D0191, std::basic_filebuf >::_Unlock()); - //REG_FUNC(0x9C87B03F, std::basic_filebuf >::seekoff(long, std::_Iosb::_Seekdir, std::_Iosb::_Openmode)); - //REG_FUNC(0x8021D69B, std::basic_filebuf >::seekpos(std::fpos, std::_Iosb::_Openmode)); - //REG_FUNC(0xD8127E0A, std::basic_filebuf >::overflow(unsigned int)); - //REG_FUNC(0x99FDEB76, std::basic_filebuf >::_Endwrite()); - //REG_FUNC(0x950786D7, std::basic_filebuf >::pbackfail(unsigned int)); - //REG_FUNC(0x572A65D3, std::basic_filebuf >::underflow()); - //REG_FUNC(0x96D09EA4, std::basic_filebuf >::~basic_filebuf()); - //REG_FUNC(0xD434F085, std::basic_filebuf >::~basic_filebuf()); - //REG_FUNC(0xFFFA683E, std::basic_istream >::~basic_istream()); - //REG_FUNC(0xB58839C5, std::basic_istream >::~basic_istream()); - //REG_FUNC(0x9BF8855B, std::basic_ostream >::basic_ostream(std::basic_streambuf >*, bool)); - //REG_FUNC(0x0D74F56E, std::basic_ostream >::~basic_ostream()); - //REG_FUNC(0x9B831B60, std::basic_ostream >::~basic_ostream()); - //REG_FUNC(0x396337CE, std::runtime_error::runtime_error(std::runtime_error const&)); - //REG_FUNC(0xDAD26367, std::runtime_error::~runtime_error()); - //REG_FUNC(0x7F1FDAEA, std::runtime_error::~runtime_error()); - //REG_FUNC(0xECC19AEB, std::runtime_error::~runtime_error()); - //REG_FUNC(0xE67F3768, std::overflow_error::overflow_error(std::overflow_error const&)); - //REG_FUNC(0xF7C46A5D, std::overflow_error::~overflow_error()); - //REG_FUNC(0x5C666F7E, std::overflow_error::~overflow_error()); - //REG_FUNC(0x4E45F680, std::overflow_error::~overflow_error()); - //REG_FUNC(0x626515E3, std::basic_streambuf >::sync()); - //REG_FUNC(0x2E55F15A, std::basic_streambuf >::_Lock()); - //REG_FUNC(0x0F8535AB, std::basic_streambuf >::uflow()); - //REG_FUNC(0xD7933D06, std::basic_streambuf >::setbuf(char*, int)); - //REG_FUNC(0xB8BCCC8D, std::basic_streambuf >::xsgetn(char*, int)); - //REG_FUNC(0x43E5D0F1, std::basic_streambuf >::xsputn(char const*, int)); - //REG_FUNC(0x149B193A, std::basic_streambuf >::_Unlock()); - //REG_FUNC(0x600998EC, std::basic_streambuf >::seekoff(long, std::_Iosb::_Seekdir, std::_Iosb::_Openmode)); - //REG_FUNC(0x01DEFFD6, std::basic_streambuf >::seekpos(std::fpos, std::_Iosb::_Openmode)); - //REG_FUNC(0xF5F44352, std::basic_streambuf >::overflow(int)); - //REG_FUNC(0xCA79344F, std::basic_streambuf >::pbackfail(int)); - //REG_FUNC(0x441788B1, std::basic_streambuf >::showmanyc()); - //REG_FUNC(0x797DAE94, std::basic_streambuf >::underflow()); - //REG_FUNC(0x074AD52E, std::basic_streambuf >::~basic_streambuf()); - //REG_FUNC(0xE449E2BF, std::basic_streambuf >::~basic_streambuf()); - //REG_FUNC(0x09FAA0AA, std::basic_streambuf >::sync()); - //REG_FUNC(0xA596C88C, std::basic_streambuf >::_Lock()); - //REG_FUNC(0x373C2CD8, std::basic_streambuf >::uflow()); - //REG_FUNC(0x3F363796, std::basic_streambuf >::setbuf(wchar_t*, int)); - //REG_FUNC(0xABE96E40, std::basic_streambuf >::xsgetn(wchar_t*, int)); - //REG_FUNC(0x506D0DAE, std::basic_streambuf >::xsputn(wchar_t const*, int)); - //REG_FUNC(0xBD378207, std::basic_streambuf >::_Unlock()); - //REG_FUNC(0x924BD940, std::basic_streambuf >::seekoff(long, std::_Iosb::_Seekdir, std::_Iosb::_Openmode)); - //REG_FUNC(0x2CD1C1AF, std::basic_streambuf >::seekpos(std::fpos, std::_Iosb::_Openmode)); - //REG_FUNC(0xB0DD9881, std::basic_streambuf >::overflow(unsigned int)); - //REG_FUNC(0xDD04652F, std::basic_streambuf >::pbackfail(unsigned int)); - //REG_FUNC(0x9DCBD6A5, std::basic_streambuf >::showmanyc()); - //REG_FUNC(0xC3892DE5, std::basic_streambuf >::underflow()); - //REG_FUNC(0x8DFACE66, std::basic_streambuf >::~basic_streambuf()); - //REG_FUNC(0x868E865C, std::basic_streambuf >::~basic_streambuf()); - //REG_FUNC(0x9A59BC50, std::underflow_error::underflow_error(std::underflow_error const&)); - //REG_FUNC(0x47A589A4, std::underflow_error::~underflow_error()); - //REG_FUNC(0xCED74DE7, std::underflow_error::~underflow_error()); - //REG_FUNC(0xA76F038A, std::underflow_error::~underflow_error()); - //REG_FUNC(0x6332FA62, std::invalid_argument::invalid_argument(std::invalid_argument const&)); - //REG_FUNC(0x188D86CF, std::invalid_argument::~invalid_argument()); - //REG_FUNC(0x9982A4FC, std::invalid_argument::~invalid_argument()); - //REG_FUNC(0x1AB2B1AC, std::invalid_argument::~invalid_argument()); - //REG_FUNC(0xF9FAB558, std::_Mutex::_Lock()); - //REG_FUNC(0x0402C9F8, std::_Mutex::_Unlock()); - //REG_FUNC(0x9DA92617, std::_Mutex::_Mutex(std::_Uninitialized)); - //REG_FUNC(0xA4F99AE7, std::_Mutex::_Mutex()); - //REG_FUNC(0x7B5A6B7F, std::_Mutex::_Mutex(std::_Uninitialized)); - //REG_FUNC(0x5C5CD6B9, std::_Mutex::_Mutex()); - //REG_FUNC(0x9B37CAD9, std::_Mutex::~_Mutex()); - //REG_FUNC(0x3E6A67FE, std::_Mutex::~_Mutex()); - //REG_FUNC(0xABB11CF9, std::_Winit::_Winit()); - //REG_FUNC(0x90DD73C3, std::_Winit::_Winit()); - //REG_FUNC(0x579C349B, std::_Winit::~_Winit()); - //REG_FUNC(0x3794ED15, std::_Winit::~_Winit()); - //REG_FUNC(0x24DA6258, std::_ctype::~_ctype()); - //REG_FUNC(0xF9C92C6A, std::_ctype::~_ctype()); - //REG_FUNC(0x554E4742, std::_ctype::~_ctype()); - //REG_FUNC(0xD4AEA4D3, std::_ctype::~_ctype()); - //REG_FUNC(0x5A7D89F0, std::_codecvt::~_codecvt()); - //REG_FUNC(0xB613F281, std::_codecvt::~_codecvt()); - //REG_FUNC(0x1E11185A, std::_codecvt::~_codecvt()); - //REG_FUNC(0x14125DF4, std::_codecvt::~_codecvt()); - //REG_FUNC(0xD2A4428D, std::bad_cast::bad_cast(std::bad_cast const&)); - //REG_FUNC(0x7922CC7C, std::bad_cast::bad_cast()); - //REG_FUNC(0x6DC64647, std::bad_cast::bad_cast(std::bad_cast const&)); - //REG_FUNC(0x596BA786, std::bad_cast::bad_cast()); - //REG_FUNC(0x5416699C, std::bad_cast::~bad_cast()); - //REG_FUNC(0x1D09710D, std::bad_cast::~bad_cast()); - //REG_FUNC(0x3C6B52E7, std::bad_cast::~bad_cast()); - //REG_FUNC(0x95966020, std::bad_cast::operator=(std::bad_cast const&)); - //REG_FUNC(0xF81D3B86, std::ios_base::register_callback(void (*)(std::ios_base::event, std::ios_base&, int), int)); - //REG_FUNC(0x5E60B2B3, std::ios_base::Init::Init()); - //REG_FUNC(0x5ED60DEE, std::ios_base::Init::Init()); - //REG_FUNC(0x65D88619, std::ios_base::Init::~Init()); - //REG_FUNC(0x3483E01D, std::ios_base::Init::~Init()); - //REG_FUNC(0x78CB190E, std::ios_base::_Init()); - //REG_FUNC(0x023B8BEE, std::ios_base::_Tidy()); - //REG_FUNC(0xC9DE8208, std::ios_base::clear(std::_Iosb::_Iostate, bool)); - //REG_FUNC(0xAA9171FB, std::ios_base::_Addstd()); - //REG_FUNC(0x0FC58778, std::ios_base::copyfmt(std::ios_base const&)); - //REG_FUNC(0x2DF76755, std::ios_base::failure::failure(std::ios_base::failure const&)); - //REG_FUNC(0x094048F7, std::ios_base::failure::failure(std::string const&)); - //REG_FUNC(0x20AAAB95, std::ios_base::failure::~failure()); - //REG_FUNC(0x31D0197A, std::ios_base::failure::~failure()); - //REG_FUNC(0x7736E940, std::ios_base::_Callfns(std::ios_base::event)); - //REG_FUNC(0xE8C4640A, std::ios_base::_Findarr(int)); - //REG_FUNC(0xB8CFFB8D, std::ios_base::~ios_base()); - //REG_FUNC(0x40EA90D5, std::ios_base::~ios_base()); - //REG_FUNC(0xDCE89E71, std::ios_base::~ios_base()); - //REG_FUNC(0xE15EEC2A, std::bad_alloc::bad_alloc(std::bad_alloc const&)); - //REG_FUNC(0xEC3804D2, std::bad_alloc::bad_alloc()); - //REG_FUNC(0x6AF75467, std::bad_alloc::bad_alloc(std::bad_alloc const&)); - //REG_FUNC(0x57096162, std::bad_alloc::bad_alloc()); - //REG_FUNC(0xB2DAA408, std::bad_alloc::~bad_alloc()); - //REG_FUNC(0x07AEE736, std::bad_alloc::~bad_alloc()); - //REG_FUNC(0xA9E9B7B7, std::bad_alloc::~bad_alloc()); - //REG_FUNC(0x7853E8E5, std::bad_alloc::operator=(std::bad_alloc const&)); - //REG_FUNC(0xF78468EB, std::basic_ios >::~basic_ios()); - //REG_FUNC(0x03150182, std::basic_ios >::~basic_ios()); - //REG_FUNC(0x9654168A, std::basic_ios >::~basic_ios()); - //REG_FUNC(0x8FFB8524, std::basic_ios >::~basic_ios()); - //REG_FUNC(0x7AF1BB16, std::exception::_Set_raise_handler(void (*)(std::exception const&))); - //REG_FUNC(0x8C5A4417, std::exception::exception(std::exception const&)); - //REG_FUNC(0xFC169D71, std::exception::exception()); - //REG_FUNC(0x59758E74, std::exception::exception(std::exception const&)); - //REG_FUNC(0x00E08376, std::exception::exception()); - //REG_FUNC(0x82EEA67E, std::exception::~exception()); - //REG_FUNC(0x30405D88, std::exception::~exception()); - //REG_FUNC(0xAF7A7081, std::exception::~exception()); - //REG_FUNC(0x6CE63118, std::exception::operator=(std::exception const&)); - //REG_FUNC(0x911F5A80, std::strstream::strstream(char*, int, std::_Iosb::_Openmode)); - //REG_FUNC(0x27166DDA, std::strstream::strstream(char*, int, std::_Iosb::_Openmode)); - //REG_FUNC(0xC4099868, std::strstream::~strstream()); - //REG_FUNC(0x98BD8AE1, std::strstream::~strstream()); - //REG_FUNC(0x7D8DFE43, std::strstream::~strstream()); - //REG_FUNC(0x8D4B1A13, std::type_info::~type_info()); - //REG_FUNC(0xBD786240, std::type_info::~type_info()); - //REG_FUNC(0x00C04303, std::type_info::~type_info()); - //REG_FUNC(0x9983D8B9, std::unexpected()); - //REG_FUNC(0x385D19B2, std::setiosflags(std::_Iosb::_Fmtflags)); - //REG_FUNC(0xD8A78A61, std::setprecision(int)); - //REG_FUNC(0x994DDF94, std::resetiosflags(std::_Iosb::_Fmtflags)); - //REG_FUNC(0x13BAEE11, std::set_terminate(void (*)())); - //REG_FUNC(0x644CBAA2, std::_Debug_message(char const*, char const*)); - //REG_FUNC(0x9B2F0CA6, std::set_unexpected(void (*)())); - //REG_FUNC(0xC107B555, std::set_new_handler(void (*)())); - //REG_FUNC(0x011CEB00, std::uncaught_exception()); - //REG_FUNC(0x36282336, std::__gen_dummy_typeinfos()); - //REG_FUNC(0x3622003F, std::setw(int)); - //REG_FUNC(0x6CAFA8EF, std::_Throw(std::exception const&)); - //REG_FUNC(0xFD276300, std::_Fiopen(char const*, std::_Iosb::_Openmode, int)); - //REG_FUNC(0x1419E1DF, std::_Fiopen(wchar_t const*, std::_Iosb::_Openmode, int)); - //REG_FUNC(0x39587D21, std::setbase(int)); - //REG_FUNC(0x978EC4DC, std::terminate()); - //REG_FUNC(0x4A804953, non-virtual thunk to std::basic_iostream >::~basic_iostream()); - //REG_FUNC(0xABFBB0B4, non-virtual thunk to std::basic_iostream >::~basic_iostream()); - //REG_FUNC(0x6577F8FA, non-virtual thunk to std::strstream::~strstream()); - //REG_FUNC(0x77812119, non-virtual thunk to std::strstream::~strstream()); - //REG_FUNC(0xE4BD5E6A, virtual thunk to std::basic_iostream >::~basic_iostream()); - //REG_FUNC(0x1081224F, virtual thunk to std::basic_iostream >::~basic_iostream()); - //REG_FUNC(0x7CC8951D, virtual thunk to std::basic_istream >::~basic_istream()); - //REG_FUNC(0xC46CA5C9, virtual thunk to std::basic_istream >::~basic_istream()); - //REG_FUNC(0x699E7717, virtual thunk to std::basic_ostream >::~basic_ostream()); - //REG_FUNC(0x41DBA7E0, virtual thunk to std::basic_ostream >::~basic_ostream()); - //REG_FUNC(0x6FC84131, virtual thunk to std::istrstream::~istrstream()); - //REG_FUNC(0x7B4D8616, virtual thunk to std::istrstream::~istrstream()); - //REG_FUNC(0xD82D58BA, virtual thunk to std::ostrstream::~ostrstream()); - //REG_FUNC(0x5D4F7F7B, virtual thunk to std::ostrstream::~ostrstream()); - //REG_FUNC(0x10E7966F, virtual thunk to std::basic_istream >::~basic_istream()); - //REG_FUNC(0xC3718A8D, virtual thunk to std::basic_istream >::~basic_istream()); - //REG_FUNC(0x159261D1, virtual thunk to std::basic_ostream >::~basic_ostream()); - //REG_FUNC(0xB54EC1E5, virtual thunk to std::basic_ostream >::~basic_ostream()); - //REG_FUNC(0x2FB87ED7, virtual thunk to std::strstream::~strstream()); - //REG_FUNC(0xECEDE119, virtual thunk to std::strstream::~strstream()); - //REG_FUNC(0x91B0DC47, operator delete[](void*)); - //REG_FUNC(0xA7241F09, operator delete[](void*, std::nothrow_t const&)); - //REG_FUNC(0x3688FFDA, operator delete[](void*, void*)); - //REG_FUNC(0x72293931, operator delete(void*)); - //REG_FUNC(0x87EF85FF, operator delete(void*, std::nothrow_t const&)); - //REG_FUNC(0x1EB89099, operator delete(void*, void*)); - //REG_FUNC(0xE7FB2BF4, operator new[](unsigned int)); - //REG_FUNC(0x31C62481, operator new[](unsigned int, std::nothrow_t const&)); - //REG_FUNC(0xF99ED5AC, operator new(unsigned int)); - //REG_FUNC(0x0AE71DC3, operator new(unsigned int, std::nothrow_t const&)); - //REG_FUNC(0x1818C323, _SNC_get_global_vars); - //REG_FUNC(0x2CFA1F15, _SNC_get_tlocal_vars); - //REG_FUNC(0x7742D916, _Unwind_Backtrace); - //REG_FUNC(0x32748B78, _Unwind_Complete); - //REG_FUNC(0xF6EA5CDE, _Unwind_DeleteException); - //REG_FUNC(0xCCD903C4, _Unwind_RaiseException); - //REG_FUNC(0x13D5D5A1, _Unwind_Resume); - //REG_FUNC(0xE7889A5B, _Unwind_VRS_Get); - //REG_FUNC(0xF106D050, _Unwind_VRS_Pop); - //REG_FUNC(0x91CDA2F9, _Unwind_VRS_Set); - REG_FUNC(0x173E7421, __aeabi_unwind_cpp_pr0, "__aeabi_unwind_cpp_pr0"); - REG_FUNC(0x3C78DDE3, __aeabi_unwind_cpp_pr1, "__aeabi_unwind_cpp_pr1"); - REG_FUNC(0xF95BDD36, __aeabi_unwind_cpp_pr2, "__aeabi_unwind_cpp_pr2"); - //REG_FUNC(0x8C93EFDA, __cxa_allocate_exception); - //REG_FUNC(0x6165EE89, __cxa_begin_catch); - //REG_FUNC(0x5D74285C, __cxa_begin_cleanup); - //REG_FUNC(0x4E4CC399, __cxa_call_terminate); - //REG_FUNC(0x7C1A0217, __cxa_call_unexpected); - //REG_FUNC(0xF7BF277C, __cxa_current_exception_type); - //REG_FUNC(0x3438F773, __cxa_end_catch); - //REG_FUNC(0xD7C1E113, __cxa_end_cleanup); - //REG_FUNC(0x1FFD5FFF, __cxa_free_exception); - //REG_FUNC(0xBFFC0ED7, __cxa_get_exception_ptr); - //REG_FUNC(0x96656BBA, __cxa_get_globals); - //REG_FUNC(0x21D6C279, __cxa_rethrow); - //REG_FUNC(0xF87E6098, __cxa_throw); - //REG_FUNC(0x30D908F2, __cxa_type_match); - //REG_FUNC(0xAE42C1D5, __snc_personality_v0); - //REG_FUNC(0xDD200A6F, __cxxabiv1::__enum_type_info::~__enum_type_info()); - //REG_FUNC(0x436D61AD, __cxxabiv1::__enum_type_info::~__enum_type_info()); - //REG_FUNC(0x34854DA4, __cxxabiv1::__enum_type_info::~__enum_type_info()); - //REG_FUNC(0x9D5EDD21, __cxxabiv1::__array_type_info::~__array_type_info()); - //REG_FUNC(0xD6375908, __cxxabiv1::__array_type_info::~__array_type_info()); - //REG_FUNC(0xFDC450D4, __cxxabiv1::__array_type_info::~__array_type_info()); - //REG_FUNC(0x5CCFD0C0, __cxxabiv1::__class_type_info::~__class_type_info()); - //REG_FUNC(0xFBBFFF15, __cxxabiv1::__class_type_info::~__class_type_info()); - //REG_FUNC(0xA92DD3D2, __cxxabiv1::__class_type_info::~__class_type_info()); - //REG_FUNC(0x6C14868D, __cxxabiv1::__pbase_type_info::~__pbase_type_info()); - //REG_FUNC(0xC1869E57, __cxxabiv1::__pbase_type_info::~__pbase_type_info()); - //REG_FUNC(0x2DF92DB7, __cxxabiv1::__pbase_type_info::~__pbase_type_info()); - //REG_FUNC(0xA9654DFD, __cxxabiv1::__pointer_type_info::~__pointer_type_info()); - //REG_FUNC(0x703A2C05, __cxxabiv1::__pointer_type_info::~__pointer_type_info()); - //REG_FUNC(0x509AAD21, __cxxabiv1::__pointer_type_info::~__pointer_type_info()); - //REG_FUNC(0xB7DFB274, __cxxabiv1::__function_type_info::~__function_type_info()); - //REG_FUNC(0x19EA26FF, __cxxabiv1::__function_type_info::~__function_type_info()); - //REG_FUNC(0xF882187E, __cxxabiv1::__function_type_info::~__function_type_info()); - //REG_FUNC(0xE67722C3, __cxxabiv1::__si_class_type_info::~__si_class_type_info()); - //REG_FUNC(0xA7E25E3E, __cxxabiv1::__si_class_type_info::~__si_class_type_info()); - //REG_FUNC(0xACD6D901, __cxxabiv1::__si_class_type_info::~__si_class_type_info()); - //REG_FUNC(0x986F12C7, __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info()); - //REG_FUNC(0x4B5BC979, __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info()); - //REG_FUNC(0xA7B9AB93, __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info()); - //REG_FUNC(0x7436C981, __cxxabiv1::__fundamental_type_info::~__fundamental_type_info()); - //REG_FUNC(0x4EFBF43A, __cxxabiv1::__fundamental_type_info::~__fundamental_type_info()); - //REG_FUNC(0xF49AA0D3, __cxxabiv1::__fundamental_type_info::~__fundamental_type_info()); - //REG_FUNC(0x6199ACC9, __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member_type_info()); - //REG_FUNC(0xDD076510, __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member_type_info()); - //REG_FUNC(0xD4C11B17, __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member_type_info()); - //REG_FUNC(0xBF90A45A, _PJP_CPP_Copyright); - //REG_FUNC(0x3B6D9752, std::basic_string, std::allocator >::npos); - //REG_FUNC(0xA3498140, std::string::npos); - //REG_FUNC(0x05273EA3, std::_Num_int_base::is_bounded); - //REG_FUNC(0x8A0994F8, std::_Num_int_base::is_integer); - //REG_FUNC(0x401F1224, std::_Num_int_base::is_specialized); - //REG_FUNC(0xA65FE916, std::_Num_int_base::radix); - //REG_FUNC(0xF2AA872E, std::_Num_int_base::is_exact); - //REG_FUNC(0x08FE5A4F, std::_Num_int_base::is_modulo); - //REG_FUNC(0x7D4C55EC, std::numeric_limits::digits); - //REG_FUNC(0xA4E5BF5E, std::numeric_limits::digits10); - //REG_FUNC(0xD9938B84, std::numeric_limits::is_signed); - //REG_FUNC(0x56198D65, std::numeric_limits::digits); - //REG_FUNC(0xF52E5F76, std::numeric_limits::digits10); - //REG_FUNC(0x81B82E0E, std::numeric_limits::is_modulo); - //REG_FUNC(0x9E6D2025, std::numeric_limits::is_signed); - //REG_FUNC(0x810ED593, std::numeric_limits::digits); - //REG_FUNC(0x0AC1A819, std::numeric_limits::digits10); - //REG_FUNC(0x660E14E1, std::numeric_limits::is_signed); - //REG_FUNC(0x3EEB3B23, std::numeric_limits::max_exponent); - //REG_FUNC(0x13B634BE, std::numeric_limits::min_exponent); - //REG_FUNC(0xDB4218A0, std::numeric_limits::max_exponent10); - //REG_FUNC(0x770B1CAC, std::numeric_limits::min_exponent10); - //REG_FUNC(0xD175A556, std::numeric_limits::digits); - //REG_FUNC(0xA5349445, std::numeric_limits::digits10); - //REG_FUNC(0x2F59E7FF, std::numeric_limits::max_exponent); - //REG_FUNC(0xC9C10644, std::numeric_limits::min_exponent); - //REG_FUNC(0xC80072AC, std::numeric_limits::max_exponent10); - //REG_FUNC(0xCA8B1B9E, std::numeric_limits::min_exponent10); - //REG_FUNC(0x7E9AFD39, std::numeric_limits::digits); - //REG_FUNC(0x6122F9BF, std::numeric_limits::digits10); - //REG_FUNC(0xA83B5FE2, std::numeric_limits::max_exponent); - //REG_FUNC(0x9347B146, std::numeric_limits::min_exponent); - //REG_FUNC(0x371BCFA6, std::numeric_limits::max_exponent10); - //REG_FUNC(0x6E6746EB, std::numeric_limits::min_exponent10); - //REG_FUNC(0xB102353D, std::numeric_limits::digits); - //REG_FUNC(0x781201BB, std::numeric_limits::digits10); - //REG_FUNC(0x26D618B8, std::numeric_limits::digits); - //REG_FUNC(0x8D593267, std::numeric_limits::digits10); - //REG_FUNC(0x96B86E89, std::numeric_limits::is_signed); - //REG_FUNC(0x9CDAA1F0, std::numeric_limits::digits); - //REG_FUNC(0xE8EB3133, std::numeric_limits::digits10); - //REG_FUNC(0x3AB38CDA, std::numeric_limits::is_signed); - //REG_FUNC(0xEEB7B642, std::numeric_limits::digits); - //REG_FUNC(0xBCDE68B3, std::numeric_limits::digits10); - //REG_FUNC(0x0DA8EFB0, std::numeric_limits::is_signed); - //REG_FUNC(0x65DAD8D6, std::numeric_limits::digits); - //REG_FUNC(0xFB52BC0A, std::numeric_limits::digits10); - //REG_FUNC(0x063544FC, std::numeric_limits::is_signed); - //REG_FUNC(0x441D097A, std::numeric_limits::digits); - //REG_FUNC(0xB56F1B07, std::numeric_limits::digits10); - //REG_FUNC(0xA9799886, std::numeric_limits::is_signed); - //REG_FUNC(0x45C6A036, std::numeric_limits::digits); - //REG_FUNC(0xCDE02D9C, std::numeric_limits::digits10); - //REG_FUNC(0xB13AEAC3, std::numeric_limits::is_signed); - //REG_FUNC(0xBD813100, std::numeric_limits::digits); - //REG_FUNC(0x242C5313, std::numeric_limits::digits10); - //REG_FUNC(0x175A29B4, std::numeric_limits::is_signed); - //REG_FUNC(0x7E91BCD7, std::numeric_limits::digits); - //REG_FUNC(0x6B1CB79E, std::numeric_limits::digits10); - //REG_FUNC(0x9181475F, std::numeric_limits::is_signed); - //REG_FUNC(0x22F8FF46, std::numeric_limits::digits); - //REG_FUNC(0xF6E69A0D, std::numeric_limits::digits10); - //REG_FUNC(0xD01E5E34, std::numeric_limits::is_signed); - //REG_FUNC(0x4AB058B0, std::numeric_limits::digits); - //REG_FUNC(0x85F2F2D2, std::numeric_limits::digits10); - //REG_FUNC(0xDEDE9061, std::numeric_limits::is_signed); - //REG_FUNC(0x1CBE5DCB, std::_Num_float_base::has_denorm); - //REG_FUNC(0x616E0E6F, std::_Num_float_base::is_bounded); - //REG_FUNC(0xDFDE8E2C, std::_Num_float_base::is_integer); - //REG_FUNC(0x59668916, std::_Num_float_base::round_style); - //REG_FUNC(0x2FA7A240, std::_Num_float_base::has_infinity); - //REG_FUNC(0x4E98DCA0, std::_Num_float_base::has_quiet_NaN); - //REG_FUNC(0x87EB5304, std::_Num_float_base::is_specialized); - //REG_FUNC(0x1B36956D, std::_Num_float_base::has_denorm_loss); - //REG_FUNC(0xD3E2D87B, std::_Num_float_base::tinyness_before); - //REG_FUNC(0xBCEB9093, std::_Num_float_base::has_signaling_NaN); - //REG_FUNC(0x132F3288, std::_Num_float_base::radix); - //REG_FUNC(0xF8060433, std::_Num_float_base::traps); - //REG_FUNC(0x3C4A2891, std::_Num_float_base::is_exact); - //REG_FUNC(0xA3F55094, std::_Num_float_base::is_iec559); - //REG_FUNC(0xC8CB7207, std::_Num_float_base::is_modulo); - //REG_FUNC(0x1242E399, std::_Num_float_base::is_signed); - //REG_FUNC(0x762C3159, std::fpos::_Stz); - //REG_FUNC(0xFED4A09B, std::_Iosb::_Noreplace); - //REG_FUNC(0xE615A657, std::_Iosb::in); - //REG_FUNC(0x759FD02E, std::_Iosb::app); - //REG_FUNC(0x6F410A00, std::_Iosb::ate); - //REG_FUNC(0xD2A42D0C, std::_Iosb::beg); - //REG_FUNC(0x09B45C3B, std::_Iosb::cur); - //REG_FUNC(0x121A8952, std::_Iosb::dec); - //REG_FUNC(0x7CC027CD, std::_Iosb::end); - //REG_FUNC(0x6E2FF90B, std::_Iosb::hex); - //REG_FUNC(0xB4A55C29, std::_Iosb::oct); - //REG_FUNC(0x2CB2DC70, std::_Iosb::out); - //REG_FUNC(0x078E34A9, std::_Iosb::trunc); - //REG_FUNC(0xB5EFA1B3, std::_Iosb::badbit); - //REG_FUNC(0x5312A538, std::_Iosb::binary); - //REG_FUNC(0xD9D32526, std::_Iosb::skipws); - //REG_FUNC(0xAE6CA555, std::_Iosb::failbit); - //REG_FUNC(0x139E2D21, std::_Iosb::goodbit); - //REG_FUNC(0x7021DFF0, std::_Iosb::unitbuf); - //REG_FUNC(0x2AD61AAD, std::_Iosb::_Nocreate); - //REG_FUNC(0x60B16E4E, std::_Iosb::basefield); - //REG_FUNC(0x8137F8D7, std::_Winit::_Init_cnt); - //REG_FUNC(0x554B7625, std::ios_base::Init::_Init_cnt); - //REG_FUNC(0x57CF916C, std::ios_base::_Sync); - //REG_FUNC(0xF2D3416A, std::ios_base::_Index); - //REG_FUNC(0x3D219F98, std::_Num_base::has_denorm); - //REG_FUNC(0xD93E4A6C, std::_Num_base::is_bounded); - //REG_FUNC(0xB65169EF, std::_Num_base::is_integer); - //REG_FUNC(0x13B38354, std::_Num_base::round_style); - //REG_FUNC(0xB11D20E2, std::_Num_base::has_infinity); - //REG_FUNC(0x3E169F74, std::_Num_base::max_exponent); - //REG_FUNC(0xD7C041E0, std::_Num_base::min_exponent); - //REG_FUNC(0x02DA0D59, std::_Num_base::has_quiet_NaN); - //REG_FUNC(0xBE06BD79, std::_Num_base::is_specialized); - //REG_FUNC(0xEBBC4DDD, std::_Num_base::max_exponent10); - //REG_FUNC(0x0FFCF7FC, std::_Num_base::min_exponent10); - //REG_FUNC(0xB317DDDF, std::_Num_base::has_denorm_loss); - //REG_FUNC(0x245D399E, std::_Num_base::tinyness_before); - //REG_FUNC(0xBD5F0B8A, std::_Num_base::has_signaling_NaN); - //REG_FUNC(0xE23BAE9E, std::_Num_base::radix); - //REG_FUNC(0x9237A154, std::_Num_base::traps); - //REG_FUNC(0xE8421A12, std::_Num_base::digits); - //REG_FUNC(0x80698934, std::_Num_base::digits10); - //REG_FUNC(0xB338C222, std::_Num_base::is_exact); - //REG_FUNC(0x1F5A7860, std::_Num_base::is_iec559); - //REG_FUNC(0x840107AA, std::_Num_base::is_modulo); - //REG_FUNC(0xABD7AE16, std::_Num_base::is_signed); - //REG_FUNC(0x4A1AB5B4, std::_Raise_handler); - //REG_FUNC(0x725EAC50, std::__dummy_typeinfo); - //REG_FUNC(0x768F2944, std::cin); - //REG_FUNC(0xD9478DCF, std::_Fpz); - //REG_FUNC(0x14B35A37, std::cerr); - //REG_FUNC(0xD361A52A, std::clog); - //REG_FUNC(0xB3867BB4, std::cout); - //REG_FUNC(0x8054BC8E, std::wcin); - //REG_FUNC(0x8B2001F7, std::wcerr); - //REG_FUNC(0x8E04C18C, std::wclog); - //REG_FUNC(0x4F726424, std::wcout); - //REG_FUNC(0x9C449444, std::_BADOFF); - //REG_FUNC(0xBFEF56B5, std::nothrow); - //REG_FUNC(0xDC18EF42, typeinfo for __simd64_int8_t); - //REG_FUNC(0x2207D305, typeinfo for __simd128_int8_t); - //REG_FUNC(0x869FEDA9, typeinfo for __simd64_int16_t); - //REG_FUNC(0x7CEF3DB5, typeinfo for __simd64_int32_t); - //REG_FUNC(0xFE09AD25, typeinfo for __simd64_poly8_t); - //REG_FUNC(0x14A3598E, typeinfo for __simd64_uint8_t); - //REG_FUNC(0xF4B098DD, typeinfo for __simd128_int16_t); - //REG_FUNC(0xAABF056C, typeinfo for __simd128_int32_t); - //REG_FUNC(0x305068B1, typeinfo for __simd128_poly8_t); - //REG_FUNC(0x74813D4D, typeinfo for __simd128_uint8_t); - //REG_FUNC(0xE118AB78, typeinfo for __simd64_poly16_t); - //REG_FUNC(0x67E05799, typeinfo for __simd64_uint16_t); - //REG_FUNC(0x1617E8CB, typeinfo for __simd64_uint32_t); - //REG_FUNC(0x2FACB1EF, typeinfo for __simd128_poly16_t); - //REG_FUNC(0xC089FED3, typeinfo for __simd128_uint16_t); - //REG_FUNC(0xFC00EC48, typeinfo for __simd128_uint32_t); - //REG_FUNC(0x237AF69B, typeinfo for __simd64_float16_t); - //REG_FUNC(0xF7FDBBED, typeinfo for __simd64_float32_t); - //REG_FUNC(0x525557F3, typeinfo for __simd128_float16_t); - //REG_FUNC(0xA4018B84, typeinfo for __simd128_float32_t); - //REG_FUNC(0xA1FE4058, typeinfo for half); - //REG_FUNC(0x5351829B, typeinfo for std::ios_base::failure); - //REG_FUNC(0x00AC6C8F, typeinfo for __simd64_int8_t*); - //REG_FUNC(0xD5B056B8, typeinfo for __simd128_int8_t*); - //REG_FUNC(0x13975DAE, typeinfo for __simd64_int16_t*); - //REG_FUNC(0x963C04E3, typeinfo for __simd64_int32_t*); - //REG_FUNC(0x9F43A559, typeinfo for __simd64_poly8_t*); - //REG_FUNC(0xD8079FA9, typeinfo for __simd64_uint8_t*); - //REG_FUNC(0xEF53FE1F, typeinfo for __simd128_int16_t*); - //REG_FUNC(0xA5094302, typeinfo for __simd128_int32_t*); - //REG_FUNC(0x9CAF5E5A, typeinfo for __simd128_poly8_t*); - //REG_FUNC(0x264B0978, typeinfo for __simd128_uint8_t*); - //REG_FUNC(0x214A0488, typeinfo for __simd64_poly16_t*); - //REG_FUNC(0xA96D02B1, typeinfo for __simd64_uint16_t*); - //REG_FUNC(0xEE862280, typeinfo for __simd64_uint32_t*); - //REG_FUNC(0xB5CEC4FF, typeinfo for __simd128_poly16_t*); - //REG_FUNC(0x46124E82, typeinfo for __simd128_uint16_t*); - //REG_FUNC(0x07E6CC17, typeinfo for __simd128_uint32_t*); - //REG_FUNC(0x588EBCAD, typeinfo for __simd64_float16_t*); - //REG_FUNC(0xDFCB2417, typeinfo for __simd64_float32_t*); - //REG_FUNC(0x9502D3C0, typeinfo for __simd128_float16_t*); - //REG_FUNC(0xFB84796C, typeinfo for __simd128_float32_t*); - //REG_FUNC(0xA43ABF14, typeinfo for half*); - //REG_FUNC(0x37A74E46, typeinfo for __simd64_int8_t const*); - //REG_FUNC(0x60D7D920, typeinfo for __simd128_int8_t const*); - //REG_FUNC(0x52A04C47, typeinfo for __simd64_int16_t const*); - //REG_FUNC(0xBB64CCF1, typeinfo for __simd64_int32_t const*); - //REG_FUNC(0x7C9D0C33, typeinfo for __simd64_poly8_t const*); - //REG_FUNC(0x021A57A1, typeinfo for __simd64_uint8_t const*); - //REG_FUNC(0x021E3DD1, typeinfo for __simd128_int16_t const*); - //REG_FUNC(0xFF8DDBE7, typeinfo for __simd128_int32_t const*); - //REG_FUNC(0xB30AB3B5, typeinfo for __simd128_poly8_t const*); - //REG_FUNC(0xC8721E86, typeinfo for __simd128_uint8_t const*); - //REG_FUNC(0x610983B7, typeinfo for __simd64_poly16_t const*); - //REG_FUNC(0x486A3970, typeinfo for __simd64_uint16_t const*); - //REG_FUNC(0x9577D4FD, typeinfo for __simd64_uint32_t const*); - //REG_FUNC(0x192861D3, typeinfo for __simd128_poly16_t const*); - //REG_FUNC(0x9C721F27, typeinfo for __simd128_uint16_t const*); - //REG_FUNC(0xC0A37F8F, typeinfo for __simd128_uint32_t const*); - //REG_FUNC(0xF2FCDEFC, typeinfo for __simd64_float16_t const*); - //REG_FUNC(0x2D2B93F7, typeinfo for __simd64_float32_t const*); - //REG_FUNC(0x6B7DA1FD, typeinfo for __simd128_float16_t const*); - //REG_FUNC(0x15CA84E1, typeinfo for __simd128_float32_t const*); - //REG_FUNC(0x6195F016, typeinfo for half const*); - //REG_FUNC(0x2059F4C0, typeinfo for long long __vector const*); - //REG_FUNC(0xFCC4EE61, typeinfo for unsigned long long __vector const*); - //REG_FUNC(0x63E0CE97, typeinfo for signed char const*); - //REG_FUNC(0x47A13017, typeinfo for bool const*); - //REG_FUNC(0x8C375D81, typeinfo for char const*); - //REG_FUNC(0x841645BA, typeinfo for double const*); - //REG_FUNC(0x179015C1, typeinfo for long double const*); - //REG_FUNC(0xF7F85635, typeinfo for float const*); - //REG_FUNC(0x54CF62A4, typeinfo for unsigned char const*); - //REG_FUNC(0x33DAF949, typeinfo for int const*); - //REG_FUNC(0x703C1962, typeinfo for unsigned int const*); - //REG_FUNC(0xF353DAF3, typeinfo for long const*); - //REG_FUNC(0x67092852, typeinfo for unsigned long const*); - //REG_FUNC(0xDAAEEAD0, typeinfo for short const*); - //REG_FUNC(0x39790E0A, typeinfo for unsigned short const*); - //REG_FUNC(0xEE47C447, typeinfo for void const*); - //REG_FUNC(0xECDB6B05, typeinfo for wchar_t const*); - //REG_FUNC(0xC20CF55C, typeinfo for long long const*); - //REG_FUNC(0xA0F5E8F5, typeinfo for unsigned long long const*); - //REG_FUNC(0xA6C2A25C, typeinfo for long long __vector*); - //REG_FUNC(0x81B51915, typeinfo for unsigned long long __vector*); - //REG_FUNC(0xA7CB4EAA, typeinfo for signed char*); - //REG_FUNC(0x087B0FB6, typeinfo for bool*); - //REG_FUNC(0xE4D24E14, typeinfo for char*); - //REG_FUNC(0x6825FFE6, typeinfo for double*); - //REG_FUNC(0x926B9A3A, typeinfo for long double*); - //REG_FUNC(0x24072F3E, typeinfo for float*); - //REG_FUNC(0x08B5247B, typeinfo for unsigned char*); - //REG_FUNC(0x15C21CC8, typeinfo for int*); - //REG_FUNC(0xD234CF18, typeinfo for unsigned int*); - //REG_FUNC(0x50E25810, typeinfo for long*); - //REG_FUNC(0x9D0DBB1A, typeinfo for unsigned long*); - //REG_FUNC(0xDCB7CD94, typeinfo for short*); - //REG_FUNC(0x7FC4B19D, typeinfo for unsigned short*); - //REG_FUNC(0x4722F2AE, typeinfo for void*); - //REG_FUNC(0x2208C899, typeinfo for wchar_t*); - //REG_FUNC(0xE64F5994, typeinfo for long long*); - //REG_FUNC(0xC1C20AC0, typeinfo for unsigned long long*); - //REG_FUNC(0xD7A9284F, typeinfo for std::iostream); - //REG_FUNC(0xE302D51A, typeinfo for std::istream); - //REG_FUNC(0xF9426257, typeinfo for std::ostream); - //REG_FUNC(0x7242603B, typeinfo for std::bad_typeid); - //REG_FUNC(0x67B82DEF, typeinfo for std::istrstream); - //REG_FUNC(0x9F17589B, typeinfo for std::ostrstream); - //REG_FUNC(0xE0E3C75A, typeinfo for std::_ctype_base); - //REG_FUNC(0x87457513, typeinfo for std::logic_error); - //REG_FUNC(0x2B71045A, typeinfo for std::range_error); - //REG_FUNC(0x9A72EBFE, typeinfo for std::domain_error); - //REG_FUNC(0x15E6C91C, typeinfo for std::length_error); - //REG_FUNC(0xBAC29E4D, typeinfo for std::out_of_range); - //REG_FUNC(0x8257DFA2, typeinfo for std::strstreambuf); - //REG_FUNC(0x34455CAF, typeinfo for std::_codecvt_base); - //REG_FUNC(0xF4A5A537, typeinfo for std::bad_exception); - //REG_FUNC(0x33C19D3B, typeinfo for std::basic_filebuf >); - //REG_FUNC(0x83DB8917, typeinfo for std::basic_filebuf >); - //REG_FUNC(0x1582929A, typeinfo for std::basic_istream >); - //REG_FUNC(0xF4062B77, typeinfo for std::basic_ostream >); - //REG_FUNC(0x2451AF0A, typeinfo for std::runtime_error); - //REG_FUNC(0x3EE22853, typeinfo for std::overflow_error); - //REG_FUNC(0x758B452B, typeinfo for std::basic_streambuf >); - //REG_FUNC(0x52B5EC73, typeinfo for std::basic_streambuf >); - //REG_FUNC(0xCD0A98ED, typeinfo for std::underflow_error); - //REG_FUNC(0xA128D5A0, typeinfo for std::invalid_argument); - //REG_FUNC(0xE2AB6BF9, typeinfo for std::_Iosb); - //REG_FUNC(0x3FD78B17, typeinfo for std::_ctype); - //REG_FUNC(0xA8CD5D05, typeinfo for std::_ctype); - //REG_FUNC(0xAFB2B7FB, typeinfo for std::_codecvt); - //REG_FUNC(0xCA25D9BE, typeinfo for std::_codecvt); - //REG_FUNC(0xA7CA7C93, typeinfo for std::bad_cast); - //REG_FUNC(0xB93721C7, typeinfo for std::ios_base); - //REG_FUNC(0x35E135A0, typeinfo for std::bad_alloc); - //REG_FUNC(0x7BA61382, typeinfo for std::basic_ios >); - //REG_FUNC(0x0905B8B0, typeinfo for std::basic_ios >); - //REG_FUNC(0x1E8C6100, typeinfo for std::exception); - //REG_FUNC(0x1CC15F54, typeinfo for std::strstream); - //REG_FUNC(0x8A026EAD, typeinfo for std::type_info); - //REG_FUNC(0xE128260C, typeinfo for long long __vector); - //REG_FUNC(0x44C2FA39, typeinfo for unsigned long long __vector); - //REG_FUNC(0x4F416B30, typeinfo for signed char); - //REG_FUNC(0x3081D959, typeinfo for bool); - //REG_FUNC(0x942D2342, typeinfo for char); - //REG_FUNC(0x685BA1E8, typeinfo for double); - //REG_FUNC(0xFCE46A43, typeinfo for long double); - //REG_FUNC(0x64AEB8AF, typeinfo for float); - //REG_FUNC(0x606676D4, typeinfo for unsigned char); - //REG_FUNC(0xA58E84A3, typeinfo for int); - //REG_FUNC(0x9B0CBEC0, typeinfo for unsigned int); - //REG_FUNC(0xD589E8AE, typeinfo for long); - //REG_FUNC(0xD39774A5, typeinfo for unsigned long); - //REG_FUNC(0xDC2C85B0, typeinfo for short); - //REG_FUNC(0xEA3FB57B, typeinfo for unsigned short); - //REG_FUNC(0x76C6BDCE, typeinfo for void); - //REG_FUNC(0x8BFC9260, typeinfo for wchar_t); - //REG_FUNC(0x90B0194C, typeinfo for long long); - //REG_FUNC(0x16DACFBF, typeinfo for unsigned long long); - //REG_FUNC(0x720678AD, typeinfo name for __simd64_int8_t); - //REG_FUNC(0x5B9F1D83, typeinfo name for __simd128_int8_t); - //REG_FUNC(0x953ECE43, typeinfo name for __simd64_int16_t); - //REG_FUNC(0xCE27612E, typeinfo name for __simd64_int32_t); - //REG_FUNC(0x72BC6CD9, typeinfo name for __simd64_poly8_t); - //REG_FUNC(0xCD2802B5, typeinfo name for __simd64_uint8_t); - //REG_FUNC(0xC3FA8530, typeinfo name for __simd128_int16_t); - //REG_FUNC(0x67A63A08, typeinfo name for __simd128_int32_t); - //REG_FUNC(0x6B26EFF8, typeinfo name for __simd128_poly8_t); - //REG_FUNC(0x08C4C69F, typeinfo name for __simd128_uint8_t); - //REG_FUNC(0x40BC2E0E, typeinfo name for __simd64_poly16_t); - //REG_FUNC(0x8D1AE4A7, typeinfo name for __simd64_uint16_t); - //REG_FUNC(0xC4096952, typeinfo name for __simd64_uint32_t); - //REG_FUNC(0x16D366F1, typeinfo name for __simd128_poly16_t); - //REG_FUNC(0x045552A1, typeinfo name for __simd128_uint16_t); - //REG_FUNC(0x7DBF4FFF, typeinfo name for __simd128_uint32_t); - //REG_FUNC(0x0ED26DE1, typeinfo name for __simd64_float16_t); - //REG_FUNC(0xAB0D789A, typeinfo name for __simd64_float32_t); - //REG_FUNC(0x03200DDB, typeinfo name for __simd128_float16_t); - //REG_FUNC(0xD54CBD7C, typeinfo name for __simd128_float32_t); - //REG_FUNC(0xA8E6842E, typeinfo name for half); - //REG_FUNC(0x5246E71E, typeinfo name for std::ios_base::failure); - //REG_FUNC(0xF98AAA03, typeinfo name for __simd64_int8_t*); - //REG_FUNC(0xAF5AA646, typeinfo name for __simd128_int8_t*); - //REG_FUNC(0x73874089, typeinfo name for __simd64_int16_t*); - //REG_FUNC(0xAD912141, typeinfo name for __simd64_int32_t*); - //REG_FUNC(0x67D1351B, typeinfo name for __simd64_poly8_t*); - //REG_FUNC(0x9FDDB92F, typeinfo name for __simd64_uint8_t*); - //REG_FUNC(0xA9B31841, typeinfo name for __simd128_int16_t*); - //REG_FUNC(0x244C742C, typeinfo name for __simd128_int32_t*); - //REG_FUNC(0x31AFE1A0, typeinfo name for __simd128_poly8_t*); - //REG_FUNC(0x5CF817B0, typeinfo name for __simd128_uint8_t*); - //REG_FUNC(0xB524B325, typeinfo name for __simd64_poly16_t*); - //REG_FUNC(0x51A1F225, typeinfo name for __simd64_uint16_t*); - //REG_FUNC(0x9C3431DD, typeinfo name for __simd64_uint32_t*); - //REG_FUNC(0x937A4F2F, typeinfo name for __simd128_poly16_t*); - //REG_FUNC(0x33549DB5, typeinfo name for __simd128_uint16_t*); - //REG_FUNC(0xFC19AC06, typeinfo name for __simd128_uint32_t*); - //REG_FUNC(0xD9A43D3A, typeinfo name for __simd64_float16_t*); - //REG_FUNC(0xFAB5D659, typeinfo name for __simd64_float32_t*); - //REG_FUNC(0x7E694471, typeinfo name for __simd128_float16_t*); - //REG_FUNC(0xA9AF9CE8, typeinfo name for __simd128_float32_t*); - //REG_FUNC(0xDAE584EC, typeinfo name for half*); - //REG_FUNC(0x2B017F22, typeinfo name for __simd64_int8_t const*); - //REG_FUNC(0x4A7149C9, typeinfo name for __simd128_int8_t const*); - //REG_FUNC(0xAC116166, typeinfo name for __simd64_int16_t const*); - //REG_FUNC(0x6A472A63, typeinfo name for __simd64_int32_t const*); - //REG_FUNC(0xC356ACF6, typeinfo name for __simd64_poly8_t const*); - //REG_FUNC(0x878C75F4, typeinfo name for __simd64_uint8_t const*); - //REG_FUNC(0x68B777E3, typeinfo name for __simd128_int16_t const*); - //REG_FUNC(0x061188BD, typeinfo name for __simd128_int32_t const*); - //REG_FUNC(0xC7733F13, typeinfo name for __simd128_poly8_t const*); - //REG_FUNC(0x3D8A69EC, typeinfo name for __simd128_uint8_t const*); - //REG_FUNC(0xCC081D58, typeinfo name for __simd64_poly16_t const*); - //REG_FUNC(0xEB50ABA7, typeinfo name for __simd64_uint16_t const*); - //REG_FUNC(0x25EC8CE5, typeinfo name for __simd64_uint32_t const*); - //REG_FUNC(0x5C61F109, typeinfo name for __simd128_poly16_t const*); - //REG_FUNC(0x9B085E3F, typeinfo name for __simd128_uint16_t const*); - //REG_FUNC(0x721902EF, typeinfo name for __simd128_uint32_t const*); - //REG_FUNC(0x1C618B7E, typeinfo name for __simd64_float16_t const*); - //REG_FUNC(0x89B6EDD3, typeinfo name for __simd64_float32_t const*); - //REG_FUNC(0x9BC380FF, typeinfo name for __simd128_float16_t const*); - //REG_FUNC(0xC951A9C5, typeinfo name for __simd128_float32_t const*); - //REG_FUNC(0x2796C952, typeinfo name for half const*); - //REG_FUNC(0xC33238AA, typeinfo name for long long __vector const*); - //REG_FUNC(0x208CEEA8, typeinfo name for unsigned long long __vector const*); - //REG_FUNC(0xBAD19257, typeinfo name for signed char const*); - //REG_FUNC(0x6CB2F5A4, typeinfo name for bool const*); - //REG_FUNC(0xE242CC59, typeinfo name for char const*); - //REG_FUNC(0xA0C8CCE9, typeinfo name for double const*); - //REG_FUNC(0x5C69903D, typeinfo name for long double const*); - //REG_FUNC(0xDBF8E0D1, typeinfo name for float const*); - //REG_FUNC(0x1BC277F5, typeinfo name for unsigned char const*); - //REG_FUNC(0xF09F6E45, typeinfo name for int const*); - //REG_FUNC(0x5C6D9EDD, typeinfo name for unsigned int const*); - //REG_FUNC(0x12416EBE, typeinfo name for long const*); - //REG_FUNC(0x199F6347, typeinfo name for unsigned long const*); - //REG_FUNC(0xA1D68767, typeinfo name for short const*); - //REG_FUNC(0xE6498BCD, typeinfo name for unsigned short const*); - //REG_FUNC(0xF0FF237E, typeinfo name for void const*); - //REG_FUNC(0xD255293A, typeinfo name for wchar_t const*); - //REG_FUNC(0x2EADF5EC, typeinfo name for long long const*); - //REG_FUNC(0xEC3461AB, typeinfo name for unsigned long long const*); - //REG_FUNC(0xB3EDCB7F, typeinfo name for long long __vector*); - //REG_FUNC(0x6D11C7D6, typeinfo name for unsigned long long __vector*); - //REG_FUNC(0xC5AC688C, typeinfo name for signed char*); - //REG_FUNC(0xE4EB3C43, typeinfo name for bool*); - //REG_FUNC(0xAEF69715, typeinfo name for char*); - //REG_FUNC(0x6F81469F, typeinfo name for double*); - //REG_FUNC(0xFD38BF3B, typeinfo name for long double*); - //REG_FUNC(0xFCB96733, typeinfo name for float*); - //REG_FUNC(0x5BFE19AB, typeinfo name for unsigned char*); - //REG_FUNC(0x187E3B47, typeinfo name for int*); - //REG_FUNC(0x2F4A5390, typeinfo name for unsigned int*); - //REG_FUNC(0x651D020E, typeinfo name for long*); - //REG_FUNC(0x6E4D412D, typeinfo name for unsigned long*); - //REG_FUNC(0x982D9703, typeinfo name for short*); - //REG_FUNC(0xE2A0B0A8, typeinfo name for unsigned short*); - //REG_FUNC(0xF7B6B02A, typeinfo name for void*); - //REG_FUNC(0xF1C9A755, typeinfo name for wchar_t*); - //REG_FUNC(0x0968B212, typeinfo name for long long*); - //REG_FUNC(0x09787CAD, typeinfo name for unsigned long long*); - //REG_FUNC(0xF86F5756, typeinfo name for std::iostream); - //REG_FUNC(0x999300E0, typeinfo name for std::istream); - //REG_FUNC(0x591C25A3, typeinfo name for std::ostream); - //REG_FUNC(0x0FC9D21B, typeinfo name for std::bad_typeid); - //REG_FUNC(0x867D109E, typeinfo name for std::istrstream); - //REG_FUNC(0x88BFC745, typeinfo name for std::ostrstream); - //REG_FUNC(0xB315CE7A, typeinfo name for std::_ctype_base); - //REG_FUNC(0xA65DACDF, typeinfo name for std::logic_error); - //REG_FUNC(0x1B8E7108, typeinfo name for std::range_error); - //REG_FUNC(0xBE23707A, typeinfo name for std::domain_error); - //REG_FUNC(0x9E317CE1, typeinfo name for std::length_error); - //REG_FUNC(0xD8DAD98D, typeinfo name for std::out_of_range); - //REG_FUNC(0x1C929309, typeinfo name for std::strstreambuf); - //REG_FUNC(0x0E17E4D6, typeinfo name for std::_codecvt_base); - //REG_FUNC(0x918FE198, typeinfo name for std::bad_exception); - //REG_FUNC(0x227B4568, typeinfo name for std::basic_filebuf >); - //REG_FUNC(0xD34BAF59, typeinfo name for std::basic_filebuf >); - //REG_FUNC(0x4381D6B0, typeinfo name for std::basic_istream >); - //REG_FUNC(0x8D487027, typeinfo name for std::basic_ostream >); - //REG_FUNC(0xCAA9B21D, typeinfo name for std::runtime_error); - //REG_FUNC(0xA21B1185, typeinfo name for std::overflow_error); - //REG_FUNC(0x4A1A1314, typeinfo name for std::basic_streambuf >); - //REG_FUNC(0x26C1C38F, typeinfo name for std::basic_streambuf >); - //REG_FUNC(0x140AE4BB, typeinfo name for std::underflow_error); - //REG_FUNC(0xC3CD5E06, typeinfo name for std::invalid_argument); - //REG_FUNC(0xB07DF922, typeinfo name for std::_Iosb); - //REG_FUNC(0xED549839, typeinfo name for std::_ctype); - //REG_FUNC(0x89304937, typeinfo name for std::_ctype); - //REG_FUNC(0x17AAF611, typeinfo name for std::_codecvt); - //REG_FUNC(0xB4C66A72, typeinfo name for std::_codecvt); - //REG_FUNC(0x4C50F26D, typeinfo name for std::bad_cast); - //REG_FUNC(0xA263F3D5, typeinfo name for std::ios_base); - //REG_FUNC(0x8DA9C17C, typeinfo name for std::_numpunct); - //REG_FUNC(0xC4F9C216, typeinfo name for std::_numpunct); - //REG_FUNC(0xDF0FFCD2, typeinfo name for std::bad_alloc); - //REG_FUNC(0xB37BE412, typeinfo name for std::basic_ios >); - //REG_FUNC(0xCA50ACCA, typeinfo name for std::basic_ios >); - //REG_FUNC(0x45FD9715, typeinfo name for std::exception); - //REG_FUNC(0xE5C789D4, typeinfo name for std::strstream); - //REG_FUNC(0x2856DCD6, typeinfo name for std::type_info); - //REG_FUNC(0x75A1CED4, typeinfo name for long long __vector); - //REG_FUNC(0x508FF61E, typeinfo name for unsigned long long __vector); - //REG_FUNC(0x08E6A51A, typeinfo name for signed char); - //REG_FUNC(0x491DB7D3, typeinfo name for bool); - //REG_FUNC(0xD657B5A0, typeinfo name for char); - //REG_FUNC(0x322C7CB5, typeinfo name for double); - //REG_FUNC(0x596C02C7, typeinfo name for long double); - //REG_FUNC(0x2434A5DD, typeinfo name for float); - //REG_FUNC(0x890DE9E8, typeinfo name for unsigned char); - //REG_FUNC(0x4B9F21DF, typeinfo name for int); - //REG_FUNC(0x4C2D1984, typeinfo name for unsigned int); - //REG_FUNC(0x46E67574, typeinfo name for long); - //REG_FUNC(0xEE238074, typeinfo name for unsigned long); - //REG_FUNC(0x8C9CDB9C, typeinfo name for short); - //REG_FUNC(0xED2E996A, typeinfo name for unsigned short); - //REG_FUNC(0xD4744378, typeinfo name for void); - //REG_FUNC(0x2C50C827, typeinfo name for wchar_t); - //REG_FUNC(0x9574359B, typeinfo name for long long); - //REG_FUNC(0x402717E4, typeinfo name for unsigned long long); - //REG_FUNC(0x51B29810, VTT for std::iostream); - //REG_FUNC(0x52128B13, VTT for std::istream); - //REG_FUNC(0x3C508708, VTT for std::ostream); - //REG_FUNC(0x087753F6, VTT for std::istrstream); - //REG_FUNC(0xE3D7CB30, VTT for std::ostrstream); - //REG_FUNC(0xBC326B50, VTT for std::basic_istream >); - //REG_FUNC(0x16E32018, VTT for std::basic_ostream >); - //REG_FUNC(0xC91F7671, VTT for std::strstream); - //REG_FUNC(0x648213CC, vtable for std::ios_base::failure); - //REG_FUNC(0x796EA5C0, vtable for std::iostream); - //REG_FUNC(0xC5D326CB, _ZTVSd__St9strstream); - //REG_FUNC(0xB02CB03C, vtable for std::istream); - //REG_FUNC(0xF4400A94, _ZTVSiSd__St9strstream); - //REG_FUNC(0xF2A1132D, _ZTVSi__Sd); - //REG_FUNC(0xDFF04427, _ZTVSi__St10istrstream); - //REG_FUNC(0xD430E6D2, vtable for std::ostream); - //REG_FUNC(0x3CAA5F50, _ZTVSoSd__St9strstream); - //REG_FUNC(0x6D6BCA93, _ZTVSo__Sd); - //REG_FUNC(0xBA833AE3, _ZTVSo__Sd__St9strstream); - //REG_FUNC(0x65069CB5, _ZTVSo__St10ostrstream); - //REG_FUNC(0x76BDD7CC, vtable for std::bad_typeid); - //REG_FUNC(0xFBACB296, vtable for std::istrstream); - //REG_FUNC(0xA81AD21D, vtable for std::ostrstream); - //REG_FUNC(0x82A84E5E, vtable for std::logic_error); - //REG_FUNC(0x1D583475, vtable for std::range_error); - //REG_FUNC(0x80C77E16, vtable for std::domain_error); - //REG_FUNC(0x064ADA35, vtable for std::length_error); - //REG_FUNC(0xDDAE7CBE, vtable for std::out_of_range); - //REG_FUNC(0x11B2781A, vtable for std::strstreambuf); - //REG_FUNC(0x75D16BD0, vtable for std::_codecvt_base); - //REG_FUNC(0x4AA9C954, vtable for std::bad_exception); - //REG_FUNC(0xC3233C50, vtable for std::basic_filebuf >); - //REG_FUNC(0xF269A8EB, vtable for std::basic_filebuf >); - //REG_FUNC(0xB952752B, vtable for std::basic_istream >); - //REG_FUNC(0x48F3405B, vtable for std::basic_ostream >); - //REG_FUNC(0x53F02A18, vtable for std::runtime_error); - //REG_FUNC(0x177FCCDC, vtable for std::overflow_error); - //REG_FUNC(0x05548FF7, vtable for std::basic_streambuf >); - //REG_FUNC(0xE8A9F32E, vtable for std::basic_streambuf >); - //REG_FUNC(0x515AE097, vtable for std::underflow_error); - //REG_FUNC(0x23EEDAF0, vtable for std::invalid_argument); - //REG_FUNC(0x214E1395, vtable for std::_ctype); - //REG_FUNC(0x798E7C29, vtable for std::_ctype); - //REG_FUNC(0x9B3E5D29, vtable for std::_codecvt); - //REG_FUNC(0x95405266, vtable for std::_codecvt); - //REG_FUNC(0xAA09FD32, vtable for std::bad_cast); - //REG_FUNC(0xD58C5F52, vtable for std::ios_base); - //REG_FUNC(0xA27EFBA3, vtable for std::bad_alloc); - //REG_FUNC(0x147996ED, vtable for std::basic_ios >); - //REG_FUNC(0x0DE4AFE9, _ZTVSt9basic_iosIcSt11char_traitsIcEE__Sd__St9strstream); - //REG_FUNC(0x87D18300, _ZTVSt9basic_iosIcSt11char_traitsIcEE__SiSd__St9strstream); - //REG_FUNC(0x3D6A38D3, _ZTVSt9basic_iosIcSt11char_traitsIcEE__Si__Sd); - //REG_FUNC(0xA8E795AF, _ZTVSt9basic_iosIcSt11char_traitsIcEE__Si__St10istrstream); - //REG_FUNC(0xB7CD4C0E, _ZTVSt9basic_iosIcSt11char_traitsIcEE__SoSd__St9strstream); - //REG_FUNC(0x21FDA8D0, _ZTVSt9basic_iosIcSt11char_traitsIcEE__So__Sd); - //REG_FUNC(0xA8AAEABA, _ZTVSt9basic_iosIcSt11char_traitsIcEE__So__St10ostrstream); - //REG_FUNC(0xCC03F184, vtable for std::basic_ios >); - //REG_FUNC(0xBC97F7D6, vtable for std::exception); - //REG_FUNC(0xFD21E1F1, vtable for std::strstream); - //REG_FUNC(0x8E9879A7, vtable for std::type_info); - //REG_FUNC(0xE63750C1, std::basic_filebuf >::_Init(std::_Dnk_filet*, std::basic_filebuf >::_Initfl)::_Stinit); - //REG_FUNC(0x1D4E29BC, std::basic_filebuf >::_Init(std::_Dnk_filet*, std::basic_filebuf >::_Initfl)::_Stinit); - //REG_FUNC(0x08A37475, typeinfo for __cxxabiv1::__enum_type_info); - //REG_FUNC(0x66CC7DBB, typeinfo for __cxxabiv1::__array_type_info); - //REG_FUNC(0x81C44513, typeinfo for __cxxabiv1::__class_type_info); - //REG_FUNC(0xC35024DA, typeinfo for __cxxabiv1::__pbase_type_info); - //REG_FUNC(0x835E9E78, typeinfo for __cxxabiv1::__pointer_type_info); - //REG_FUNC(0x62941235, typeinfo for __cxxabiv1::__function_type_info); - //REG_FUNC(0x461E17F0, typeinfo for __cxxabiv1::__si_class_type_info); - //REG_FUNC(0xB80BFF06, typeinfo for __cxxabiv1::__vmi_class_type_info); - //REG_FUNC(0x7373F517, typeinfo for __cxxabiv1::__fundamental_type_info); - //REG_FUNC(0xDF23E7B5, typeinfo for __cxxabiv1::__pointer_to_member_type_info); - //REG_FUNC(0x74F19FF2, typeinfo name for __cxxabiv1::__enum_type_info); - //REG_FUNC(0x9BF7C72D, typeinfo name for __cxxabiv1::__array_type_info); - //REG_FUNC(0xCB5063F1, typeinfo name for __cxxabiv1::__class_type_info); - //REG_FUNC(0x4F5C24A6, typeinfo name for __cxxabiv1::__pbase_type_info); - //REG_FUNC(0x832019EE, typeinfo name for __cxxabiv1::__pointer_type_info); - //REG_FUNC(0xFB8956D8, typeinfo name for __cxxabiv1::__function_type_info); - //REG_FUNC(0xEAC164EC, typeinfo name for __cxxabiv1::__si_class_type_info); - //REG_FUNC(0x4106109E, typeinfo name for __cxxabiv1::__vmi_class_type_info); - //REG_FUNC(0x1FD93E3A, typeinfo name for __cxxabiv1::__fundamental_type_info); - //REG_FUNC(0xB64B4F55, typeinfo name for __cxxabiv1::__pointer_to_member_type_info); - //REG_FUNC(0x4937B673, vtable for __cxxabiv1::__enum_type_info); - //REG_FUNC(0x9383FBD6, vtable for __cxxabiv1::__array_type_info); - //REG_FUNC(0xF79AE8E1, vtable for __cxxabiv1::__class_type_info); - //REG_FUNC(0xFEAD4BDA, vtable for __cxxabiv1::__pbase_type_info); - //REG_FUNC(0xAA57484D, vtable for __cxxabiv1::__pointer_type_info); - //REG_FUNC(0x897B54E3, vtable for __cxxabiv1::__function_type_info); - //REG_FUNC(0x6BC74629, vtable for __cxxabiv1::__si_class_type_info); - //REG_FUNC(0x7321E731, vtable for __cxxabiv1::__vmi_class_type_info); - //REG_FUNC(0x33836375, vtable for __cxxabiv1::__fundamental_type_info); - //REG_FUNC(0x94664DEB, vtable for __cxxabiv1::__pointer_to_member_type_info); -}); - -/* -// original names - -REG_FUNC(0x173E7421, __aeabi_unwind_cpp_pr0); -REG_FUNC(0x52B0C625, _ZNKSt10bad_typeid4whatEv); -REG_FUNC(0x64D7D074, _ZNKSt10bad_typeid8_DoraiseEv); -REG_FUNC(0x15FB88E2, _ZNKSt11logic_error4whatEv); -REG_FUNC(0x492D1209, _ZNKSt11logic_error8_DoraiseEv); -REG_FUNC(0xDBDFF9D0, _ZNKSt11range_error8_DoraiseEv); -REG_FUNC(0xE8D59AB5, _ZNKSt12_String_base5_XlenEv); -REG_FUNC(0x473DC636, _ZNKSt12_String_base5_XranEv); -REG_FUNC(0x481ECB76, _ZNKSt12domain_error8_DoraiseEv); -REG_FUNC(0xB03E909C, _ZNKSt12length_error8_DoraiseEv); -REG_FUNC(0x38CF41AC, _ZNKSt12out_of_range8_DoraiseEv); -REG_FUNC(0x55AE5502, _ZNKSt13_codecvt_base11do_encodingEv); -REG_FUNC(0x5522293F, _ZNKSt13_codecvt_base13do_max_lengthEv); -REG_FUNC(0xCF5643A9, _ZNKSt13_codecvt_base16do_always_noconvEv); -REG_FUNC(0x51FCD56B, _ZNKSt13bad_exception4whatEv); -REG_FUNC(0x109E54C9, _ZNKSt13bad_exception8_DoraiseEv); -REG_FUNC(0xAE85C2EE, _ZNKSt13runtime_error4whatEv); -REG_FUNC(0x1D878503, _ZNKSt13runtime_error8_DoraiseEv); -REG_FUNC(0xEED101C6, _ZNKSt14overflow_error8_DoraiseEv); -REG_FUNC(0xB1AE6F9E, _ZNKSt15underflow_error8_DoraiseEv); -REG_FUNC(0x16F56E8D, _ZNKSt16invalid_argument8_DoraiseEv); -REG_FUNC(0x6C568D20, _ZNKSt6_ctypeIcE10do_tolowerEPcPKc); -REG_FUNC(0xC334DE66, _ZNKSt6_ctypeIcE10do_tolowerEc); -REG_FUNC(0x02DD808E, _ZNKSt6_ctypeIcE10do_toupperEPcPKc); -REG_FUNC(0xF6AF33EA, _ZNKSt6_ctypeIcE10do_toupperEc); -REG_FUNC(0x1B81D726, _ZNKSt6_ctypeIcE8do_widenEPKcS2_Pc); -REG_FUNC(0x6471CC01, _ZNKSt6_ctypeIcE8do_widenEc); -REG_FUNC(0x9CFA56E5, _ZNKSt6_ctypeIcE9do_narrowEPKcS2_cPc); -REG_FUNC(0x718669AB, _ZNKSt6_ctypeIcE9do_narrowEcc); -REG_FUNC(0x759F105D, _ZNKSt6_ctypeIwE10do_scan_isEsPKwS2_); -REG_FUNC(0x0056443F, _ZNKSt6_ctypeIwE10do_tolowerEPwPKw); -REG_FUNC(0x33E9ECDD, _ZNKSt6_ctypeIwE10do_tolowerEw); -REG_FUNC(0x1256E6A5, _ZNKSt6_ctypeIwE10do_toupperEPwPKw); -REG_FUNC(0x64072C2E, _ZNKSt6_ctypeIwE10do_toupperEw); -REG_FUNC(0x339766BF, _ZNKSt6_ctypeIwE11do_scan_notEsPKwS2_); -REG_FUNC(0xDA4E1651, _ZNKSt6_ctypeIwE5do_isEPKwS2_Ps); -REG_FUNC(0x5A06C0E8, _ZNKSt6_ctypeIwE5do_isEsw); -REG_FUNC(0x609036C7, _ZNKSt6_ctypeIwE8do_widenEPKcS2_Pw); -REG_FUNC(0xA2896AA8, _ZNKSt6_ctypeIwE8do_widenEc); -REG_FUNC(0x631687B9, _ZNKSt6_ctypeIwE9do_narrowEPKwS2_cPc); -REG_FUNC(0xB4D8D2F0, _ZNKSt6_ctypeIwE9do_narrowEwc); -REG_FUNC(0xD9070137, _ZNKSt8_codecvtIccSt9_MbstatetE10do_unshiftERS0_PcS3_RS3_); -REG_FUNC(0xABA0412F, _ZNKSt8_codecvtIccSt9_MbstatetE5do_inERS0_PKcS4_RS4_PcS6_RS6_); -REG_FUNC(0x51052F04, _ZNKSt8_codecvtIccSt9_MbstatetE6do_outERS0_PKcS4_RS4_PcS6_RS6_); -REG_FUNC(0x39F062BE, _ZNKSt8_codecvtIccSt9_MbstatetE9do_lengthERKS0_PKcS5_j); -REG_FUNC(0xF07CC89F, _ZNKSt8_codecvtIwcSt9_MbstatetE10do_unshiftERS0_PcS3_RS3_); -REG_FUNC(0xF3A2E837, _ZNKSt8_codecvtIwcSt9_MbstatetE11do_encodingEv); -REG_FUNC(0x1F133D1E, _ZNKSt8_codecvtIwcSt9_MbstatetE13do_max_lengthEv); -REG_FUNC(0x27716D17, _ZNKSt8_codecvtIwcSt9_MbstatetE16do_always_noconvEv); -REG_FUNC(0x1C1AFE42, _ZNKSt8_codecvtIwcSt9_MbstatetE5do_inERS0_PKcS4_RS4_PwS6_RS6_); -REG_FUNC(0xCBDE5500, _ZNKSt8_codecvtIwcSt9_MbstatetE6do_outERS0_PKwS4_RS4_PcS6_RS6_); -REG_FUNC(0xF4D38990, _ZNKSt8_codecvtIwcSt9_MbstatetE9do_lengthERKS0_PKcS5_j); -REG_FUNC(0x46A9143F, _ZNKSt8bad_cast4whatEv); -REG_FUNC(0x8D129D3F, _ZNKSt8bad_cast8_DoraiseEv); -REG_FUNC(0xF877F51E, _ZNKSt8ios_base7failure8_DoraiseEv); -REG_FUNC(0x664750EE, _ZNKSt9bad_alloc4whatEv); -REG_FUNC(0xBA89FBE7, _ZNKSt9bad_alloc8_DoraiseEv); -REG_FUNC(0xC133E331, _ZNKSt9exception4whatEv); -REG_FUNC(0x0656BE32, _ZNKSt9exception6_RaiseEv); -REG_FUNC(0x47A5CDA2, _ZNKSt9exception8_DoraiseEv); -REG_FUNC(0xBAE38DF9, _ZNKSt9type_info4nameEv); -REG_FUNC(0x1F260F10, _ZNKSt9type_info6beforeERKS_); -REG_FUNC(0xDB15F0FC, _ZNKSt9type_infoeqERKS_); -REG_FUNC(0x9994F9FE, _ZNKSt9type_infoneERKS_); -REG_FUNC(0x2DA9FCEC, _ZNSdD0Ev); -REG_FUNC(0x6C2D3707, _ZNSdD1Ev); -REG_FUNC(0x9BA8786E, _ZNSiD0Ev); -REG_FUNC(0xD089A7C9, _ZNSiD1Ev); -REG_FUNC(0x3EE0611A, _ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEEb); -REG_FUNC(0x6489E51D, _ZNSoD0Ev); -REG_FUNC(0xEF21C386, _ZNSoD1Ev); -REG_FUNC(0x10D794D4, _ZNSs5_GrowEjb); -REG_FUNC(0x846D0286, _ZNSs6assignERKSsjj); -REG_FUNC(0x2AF7786D, _ZNSsC1EPKc); -REG_FUNC(0x92F661CF, _ZNSsC1ERKSs); -REG_FUNC(0xECC3B9C2, _ZNSt10bad_typeidC1ERKS_); -REG_FUNC(0x9F4CD196, _ZNSt10bad_typeidC1Ev); -REG_FUNC(0x7AE1631B, _ZNSt10bad_typeidC2ERKS_); -REG_FUNC(0x33377802, _ZNSt10bad_typeidC2Ev); -REG_FUNC(0x2CE020C7, _ZNSt10bad_typeidD0Ev); -REG_FUNC(0x625460B9, _ZNSt10bad_typeidD1Ev); -REG_FUNC(0xB4F5C5A7, _ZNSt10bad_typeidD2Ev); -REG_FUNC(0x55AAD6A6, _ZNSt10bad_typeidaSERKS_); -REG_FUNC(0x9CF31703, _ZNSt10istrstreamD0Ev); -REG_FUNC(0x71D13A36, _ZNSt10istrstreamD1Ev); -REG_FUNC(0xAF5DF8C3, _ZNSt10istrstreamD2Ev); -REG_FUNC(0x0C1E7C7A, _ZNSt10ostrstreamC1EPciNSt5_IosbIiE9_OpenmodeE); -REG_FUNC(0x0C09B290, _ZNSt10ostrstreamC2EPciNSt5_IosbIiE9_OpenmodeE); -REG_FUNC(0x4B8BA644, _ZNSt10ostrstreamD0Ev); -REG_FUNC(0x0E463FB3, _ZNSt10ostrstreamD1Ev); -REG_FUNC(0xA0A34FEF, _ZNSt10ostrstreamD2Ev); -REG_FUNC(0xC9F632FF, _ZNSt11logic_errorC1ERKS_); -REG_FUNC(0xE6356C5C, _ZNSt11logic_errorC2ERKSs); -REG_FUNC(0x6322FEB0, _ZNSt11logic_errorD0Ev); -REG_FUNC(0x35ED9C5A, _ZNSt11logic_errorD1Ev); -REG_FUNC(0x1FFC4420, _ZNSt11logic_errorD2Ev); -REG_FUNC(0x6F6E3A52, _ZNSt11range_errorC1ERKS_); -REG_FUNC(0xFD97D28A, _ZNSt11range_errorD0Ev); -REG_FUNC(0x1C86405F, _ZNSt11range_errorD1Ev); -REG_FUNC(0xEF754EBD, _ZNSt11range_errorD2Ev); -REG_FUNC(0x7D5412EF, _ZNSt12domain_errorC1ERKS_); -REG_FUNC(0x803A7D3E, _ZNSt12domain_errorD0Ev); -REG_FUNC(0xA6BCA2AD, _ZNSt12domain_errorD1Ev); -REG_FUNC(0x036F9D2A, _ZNSt12domain_errorD2Ev); -REG_FUNC(0x5F3428AD, _ZNSt12length_errorC1ERKS_); -REG_FUNC(0xF6FB801D, _ZNSt12length_errorC1ERKSs); -REG_FUNC(0xF83AA7DA, _ZNSt12length_errorD0Ev); -REG_FUNC(0xA873D7F9, _ZNSt12length_errorD1Ev); -REG_FUNC(0x0BB12C75, _ZNSt12length_errorD2Ev); -REG_FUNC(0x299AA587, _ZNSt12out_of_rangeC1ERKS_); -REG_FUNC(0xC8BA5522, _ZNSt12out_of_rangeC1ERKSs); -REG_FUNC(0xA8C470A4, _ZNSt12out_of_rangeD0Ev); -REG_FUNC(0x5FAE79BF, _ZNSt12out_of_rangeD1Ev); -REG_FUNC(0x7908CBAB, _ZNSt12out_of_rangeD2Ev); -REG_FUNC(0xDCCE6368, _ZNSt12strstreambuf5_InitEiPcS0_i); -REG_FUNC(0xD85AE271, _ZNSt12strstreambuf5_TidyEv); -REG_FUNC(0xD189E6CC, _ZNSt12strstreambuf6freezeEb); -REG_FUNC(0xFA6BDF33, _ZNSt12strstreambuf7seekoffElNSt5_IosbIiE8_SeekdirENS1_9_OpenmodeE); -REG_FUNC(0x97A9813A, _ZNSt12strstreambuf7seekposESt4fposISt9_MbstatetENSt5_IosbIiE9_OpenmodeE); -REG_FUNC(0xED2539E2, _ZNSt12strstreambuf8overflowEi); -REG_FUNC(0xC725F896, _ZNSt12strstreambuf9pbackfailEi); -REG_FUNC(0xA9F4FABF, _ZNSt12strstreambuf9underflowEv); -REG_FUNC(0x1C887DDE, _ZNSt12strstreambufD0Ev); -REG_FUNC(0x29E1E930, _ZNSt12strstreambufD1Ev); -REG_FUNC(0x0A140889, _ZNSt12strstreambufD2Ev); -REG_FUNC(0xA8FE6FC4, _ZNSt13_codecvt_baseD0Ev); -REG_FUNC(0xB0E47AE4, _ZNSt13_codecvt_baseD1Ev); -REG_FUNC(0xB7EE9CC2, _ZNSt13bad_exceptionC1ERKS_); -REG_FUNC(0xD719280E, _ZNSt13bad_exceptionC1Ev); -REG_FUNC(0x37D2017F, _ZNSt13bad_exceptionC2ERKS_); -REG_FUNC(0x3DE54D83, _ZNSt13bad_exceptionC2Ev); -REG_FUNC(0xC7880D1A, _ZNSt13bad_exceptionD0Ev); -REG_FUNC(0x486B59CE, _ZNSt13bad_exceptionD1Ev); -REG_FUNC(0xD04E0BAB, _ZNSt13bad_exceptionD2Ev); -REG_FUNC(0x792097AA, _ZNSt13bad_exceptionaSERKS_); -REG_FUNC(0xCC369863, _ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv); -REG_FUNC(0xC8BAB41E, _ZNSt13basic_filebufIcSt11char_traitsIcEE5_LockEv); -REG_FUNC(0xD5F03A74, _ZNSt13basic_filebufIcSt11char_traitsIcEE5uflowEv); -REG_FUNC(0x413E813E, _ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci); -REG_FUNC(0x9D193B65, _ZNSt13basic_filebufIcSt11char_traitsIcEE7_UnlockEv); -REG_FUNC(0x52E47FB5, _ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElNSt5_IosbIiE8_SeekdirENS4_9_OpenmodeE); -REG_FUNC(0x0E119B37, _ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposISt9_MbstatetENSt5_IosbIiE9_OpenmodeE); -REG_FUNC(0x616754BC, _ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi); -REG_FUNC(0xCD5BD2E1, _ZNSt13basic_filebufIcSt11char_traitsIcEE9_EndwriteEv); -REG_FUNC(0xFC1C7F3A, _ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi); -REG_FUNC(0x31693B42, _ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv); -REG_FUNC(0xC2F03DFD, _ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev); -REG_FUNC(0x54A77A0D, _ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev); -REG_FUNC(0x253888BD, _ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv); -REG_FUNC(0x4EC524DC, _ZNSt13basic_filebufIwSt11char_traitsIwEE5_LockEv); -REG_FUNC(0xE777348C, _ZNSt13basic_filebufIwSt11char_traitsIwEE5uflowEv); -REG_FUNC(0x1E1E8BBF, _ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwi); -REG_FUNC(0x281D0191, _ZNSt13basic_filebufIwSt11char_traitsIwEE7_UnlockEv); -REG_FUNC(0x9C87B03F, _ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffElNSt5_IosbIiE8_SeekdirENS4_9_OpenmodeE); -REG_FUNC(0x8021D69B, _ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposISt9_MbstatetENSt5_IosbIiE9_OpenmodeE); -REG_FUNC(0xD8127E0A, _ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj); -REG_FUNC(0x99FDEB76, _ZNSt13basic_filebufIwSt11char_traitsIwEE9_EndwriteEv); -REG_FUNC(0x950786D7, _ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj); -REG_FUNC(0x572A65D3, _ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv); -REG_FUNC(0x96D09EA4, _ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev); -REG_FUNC(0xD434F085, _ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev); -REG_FUNC(0xFFFA683E, _ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev); -REG_FUNC(0xB58839C5, _ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev); -REG_FUNC(0x9BF8855B, _ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_Eb); -REG_FUNC(0x0D74F56E, _ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev); -REG_FUNC(0x9B831B60, _ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev); -REG_FUNC(0x396337CE, _ZNSt13runtime_errorC1ERKS_); -REG_FUNC(0xDAD26367, _ZNSt13runtime_errorD0Ev); -REG_FUNC(0x7F1FDAEA, _ZNSt13runtime_errorD1Ev); -REG_FUNC(0xECC19AEB, _ZNSt13runtime_errorD2Ev); -REG_FUNC(0xE67F3768, _ZNSt14overflow_errorC1ERKS_); -REG_FUNC(0xF7C46A5D, _ZNSt14overflow_errorD0Ev); -REG_FUNC(0x5C666F7E, _ZNSt14overflow_errorD1Ev); -REG_FUNC(0x4E45F680, _ZNSt14overflow_errorD2Ev); -REG_FUNC(0x626515E3, _ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv); -REG_FUNC(0x2E55F15A, _ZNSt15basic_streambufIcSt11char_traitsIcEE5_LockEv); -REG_FUNC(0x0F8535AB, _ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv); -REG_FUNC(0xD7933D06, _ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci); -REG_FUNC(0xB8BCCC8D, _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci); -REG_FUNC(0x43E5D0F1, _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci); -REG_FUNC(0x149B193A, _ZNSt15basic_streambufIcSt11char_traitsIcEE7_UnlockEv); -REG_FUNC(0x600998EC, _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElNSt5_IosbIiE8_SeekdirENS4_9_OpenmodeE); -REG_FUNC(0x01DEFFD6, _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposISt9_MbstatetENSt5_IosbIiE9_OpenmodeE); -REG_FUNC(0xF5F44352, _ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi); -REG_FUNC(0xCA79344F, _ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi); -REG_FUNC(0x441788B1, _ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv); -REG_FUNC(0x797DAE94, _ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv); -REG_FUNC(0x074AD52E, _ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev); -REG_FUNC(0xE449E2BF, _ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev); -REG_FUNC(0x09FAA0AA, _ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv); -REG_FUNC(0xA596C88C, _ZNSt15basic_streambufIwSt11char_traitsIwEE5_LockEv); -REG_FUNC(0x373C2CD8, _ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv); -REG_FUNC(0x3F363796, _ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwi); -REG_FUNC(0xABE96E40, _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwi); -REG_FUNC(0x506D0DAE, _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwi); -REG_FUNC(0xBD378207, _ZNSt15basic_streambufIwSt11char_traitsIwEE7_UnlockEv); -REG_FUNC(0x924BD940, _ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElNSt5_IosbIiE8_SeekdirENS4_9_OpenmodeE); -REG_FUNC(0x2CD1C1AF, _ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposISt9_MbstatetENSt5_IosbIiE9_OpenmodeE); -REG_FUNC(0xB0DD9881, _ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj); -REG_FUNC(0xDD04652F, _ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj); -REG_FUNC(0x9DCBD6A5, _ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv); -REG_FUNC(0xC3892DE5, _ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv); -REG_FUNC(0x8DFACE66, _ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev); -REG_FUNC(0x868E865C, _ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev); -REG_FUNC(0x9A59BC50, _ZNSt15underflow_errorC1ERKS_); -REG_FUNC(0x47A589A4, _ZNSt15underflow_errorD0Ev); -REG_FUNC(0xCED74DE7, _ZNSt15underflow_errorD1Ev); -REG_FUNC(0xA76F038A, _ZNSt15underflow_errorD2Ev); -REG_FUNC(0x6332FA62, _ZNSt16invalid_argumentC1ERKS_); -REG_FUNC(0x188D86CF, _ZNSt16invalid_argumentD0Ev); -REG_FUNC(0x9982A4FC, _ZNSt16invalid_argumentD1Ev); -REG_FUNC(0x1AB2B1AC, _ZNSt16invalid_argumentD2Ev); -REG_FUNC(0xF9FAB558, _ZNSt6_Mutex5_LockEv); -REG_FUNC(0x0402C9F8, _ZNSt6_Mutex7_UnlockEv); -REG_FUNC(0x9DA92617, _ZNSt6_MutexC1ESt14_Uninitialized); -REG_FUNC(0xA4F99AE7, _ZNSt6_MutexC1Ev); -REG_FUNC(0x7B5A6B7F, _ZNSt6_MutexC2ESt14_Uninitialized); -REG_FUNC(0x5C5CD6B9, _ZNSt6_MutexC2Ev); -REG_FUNC(0x9B37CAD9, _ZNSt6_MutexD1Ev); -REG_FUNC(0x3E6A67FE, _ZNSt6_MutexD2Ev); -REG_FUNC(0xABB11CF9, _ZNSt6_WinitC1Ev); -REG_FUNC(0x90DD73C3, _ZNSt6_WinitC2Ev); -REG_FUNC(0x579C349B, _ZNSt6_WinitD1Ev); -REG_FUNC(0x3794ED15, _ZNSt6_WinitD2Ev); -REG_FUNC(0x24DA6258, _ZNSt6_ctypeIcED0Ev); -REG_FUNC(0xF9C92C6A, _ZNSt6_ctypeIcED1Ev); -REG_FUNC(0x554E4742, _ZNSt6_ctypeIwED0Ev); -REG_FUNC(0xD4AEA4D3, _ZNSt6_ctypeIwED1Ev); -REG_FUNC(0x5A7D89F0, _ZNSt8_codecvtIccSt9_MbstatetED0Ev); -REG_FUNC(0xB613F281, _ZNSt8_codecvtIccSt9_MbstatetED1Ev); -REG_FUNC(0x1E11185A, _ZNSt8_codecvtIwcSt9_MbstatetED0Ev); -REG_FUNC(0x14125DF4, _ZNSt8_codecvtIwcSt9_MbstatetED1Ev); -REG_FUNC(0xD2A4428D, _ZNSt8bad_castC1ERKS_); -REG_FUNC(0x7922CC7C, _ZNSt8bad_castC1Ev); -REG_FUNC(0x6DC64647, _ZNSt8bad_castC2ERKS_); -REG_FUNC(0x596BA786, _ZNSt8bad_castC2Ev); -REG_FUNC(0x5416699C, _ZNSt8bad_castD0Ev); -REG_FUNC(0x1D09710D, _ZNSt8bad_castD1Ev); -REG_FUNC(0x3C6B52E7, _ZNSt8bad_castD2Ev); -REG_FUNC(0x95966020, _ZNSt8bad_castaSERKS_); -REG_FUNC(0xF81D3B86, _ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi); -REG_FUNC(0x5E60B2B3, _ZNSt8ios_base4InitC1Ev); -REG_FUNC(0x5ED60DEE, _ZNSt8ios_base4InitC2Ev); -REG_FUNC(0x65D88619, _ZNSt8ios_base4InitD1Ev); -REG_FUNC(0x3483E01D, _ZNSt8ios_base4InitD2Ev); -REG_FUNC(0x78CB190E, _ZNSt8ios_base5_InitEv); -REG_FUNC(0x023B8BEE, _ZNSt8ios_base5_TidyEv); -REG_FUNC(0xC9DE8208, _ZNSt8ios_base5clearENSt5_IosbIiE8_IostateEb); -REG_FUNC(0xAA9171FB, _ZNSt8ios_base7_AddstdEv); -REG_FUNC(0x0FC58778, _ZNSt8ios_base7copyfmtERKS_); -REG_FUNC(0x2DF76755, _ZNSt8ios_base7failureC1ERKS0_); -REG_FUNC(0x094048F7, _ZNSt8ios_base7failureC1ERKSs); -REG_FUNC(0x20AAAB95, _ZNSt8ios_base7failureD0Ev); -REG_FUNC(0x31D0197A, _ZNSt8ios_base7failureD1Ev); -REG_FUNC(0x7736E940, _ZNSt8ios_base8_CallfnsENS_5eventE); -REG_FUNC(0xE8C4640A, _ZNSt8ios_base8_FindarrEi); -REG_FUNC(0xB8CFFB8D, _ZNSt8ios_baseD0Ev); -REG_FUNC(0x40EA90D5, _ZNSt8ios_baseD1Ev); -REG_FUNC(0xDCE89E71, _ZNSt8ios_baseD2Ev); -REG_FUNC(0xE15EEC2A, _ZNSt9bad_allocC1ERKS_); -REG_FUNC(0xEC3804D2, _ZNSt9bad_allocC1Ev); -REG_FUNC(0x6AF75467, _ZNSt9bad_allocC2ERKS_); -REG_FUNC(0x57096162, _ZNSt9bad_allocC2Ev); -REG_FUNC(0xB2DAA408, _ZNSt9bad_allocD0Ev); -REG_FUNC(0x07AEE736, _ZNSt9bad_allocD1Ev); -REG_FUNC(0xA9E9B7B7, _ZNSt9bad_allocD2Ev); -REG_FUNC(0x7853E8E5, _ZNSt9bad_allocaSERKS_); -REG_FUNC(0xF78468EB, _ZNSt9basic_iosIcSt11char_traitsIcEED0Ev); -REG_FUNC(0x03150182, _ZNSt9basic_iosIcSt11char_traitsIcEED1Ev); -REG_FUNC(0x9654168A, _ZNSt9basic_iosIwSt11char_traitsIwEED0Ev); -REG_FUNC(0x8FFB8524, _ZNSt9basic_iosIwSt11char_traitsIwEED1Ev); -REG_FUNC(0x7AF1BB16, _ZNSt9exception18_Set_raise_handlerEPFvRKS_E); -REG_FUNC(0x8C5A4417, _ZNSt9exceptionC1ERKS_); -REG_FUNC(0xFC169D71, _ZNSt9exceptionC1Ev); -REG_FUNC(0x59758E74, _ZNSt9exceptionC2ERKS_); -REG_FUNC(0x00E08376, _ZNSt9exceptionC2Ev); -REG_FUNC(0x82EEA67E, _ZNSt9exceptionD0Ev); -REG_FUNC(0x30405D88, _ZNSt9exceptionD1Ev); -REG_FUNC(0xAF7A7081, _ZNSt9exceptionD2Ev); -REG_FUNC(0x6CE63118, _ZNSt9exceptionaSERKS_); -REG_FUNC(0x911F5A80, _ZNSt9strstreamC1EPciNSt5_IosbIiE9_OpenmodeE); -REG_FUNC(0x27166DDA, _ZNSt9strstreamC2EPciNSt5_IosbIiE9_OpenmodeE); -REG_FUNC(0xC4099868, _ZNSt9strstreamD0Ev); -REG_FUNC(0x98BD8AE1, _ZNSt9strstreamD1Ev); -REG_FUNC(0x7D8DFE43, _ZNSt9strstreamD2Ev); -REG_FUNC(0x8D4B1A13, _ZNSt9type_infoD0Ev); -REG_FUNC(0xBD786240, _ZNSt9type_infoD1Ev); -REG_FUNC(0x00C04303, _ZNSt9type_infoD2Ev); -REG_FUNC(0x9983D8B9, _ZSt10unexpectedv); -REG_FUNC(0x385D19B2, _ZSt11setiosflagsNSt5_IosbIiE9_FmtflagsE); -REG_FUNC(0xD8A78A61, _ZSt12setprecisioni); -REG_FUNC(0x994DDF94, _ZSt13resetiosflagsNSt5_IosbIiE9_FmtflagsE); -REG_FUNC(0x13BAEE11, _ZSt13set_terminatePFvvE); -REG_FUNC(0x644CBAA2, _ZSt14_Debug_messagePKcS0_); -REG_FUNC(0x9B2F0CA6, _ZSt14set_unexpectedPFvvE); -REG_FUNC(0xC107B555, _ZSt15set_new_handlerPFvvE); -REG_FUNC(0x011CEB00, _ZSt18uncaught_exceptionv); -REG_FUNC(0x36282336, _ZSt21__gen_dummy_typeinfosv); -REG_FUNC(0x3622003F, _ZSt4setwi); -REG_FUNC(0x6CAFA8EF, _ZSt6_ThrowRKSt9exception); -REG_FUNC(0xFD276300, _ZSt7_FiopenPKcNSt5_IosbIiE9_OpenmodeEi); -REG_FUNC(0x1419E1DF, _ZSt7_FiopenPKwNSt5_IosbIiE9_OpenmodeEi); -REG_FUNC(0x39587D21, _ZSt7setbasei); -REG_FUNC(0x978EC4DC, _ZSt9terminatev); -REG_FUNC(0x4A804953, _ZThn8_NSdD0Ev); -REG_FUNC(0xABFBB0B4, _ZThn8_NSdD1Ev); -REG_FUNC(0x6577F8FA, _ZThn8_NSt9strstreamD0Ev); -REG_FUNC(0x77812119, _ZThn8_NSt9strstreamD1Ev); -REG_FUNC(0xE4BD5E6A, _ZTv0_n12_NSdD0Ev); -REG_FUNC(0x1081224F, _ZTv0_n12_NSdD1Ev); -REG_FUNC(0x7CC8951D, _ZTv0_n12_NSiD0Ev); -REG_FUNC(0xC46CA5C9, _ZTv0_n12_NSiD1Ev); -REG_FUNC(0x699E7717, _ZTv0_n12_NSoD0Ev); -REG_FUNC(0x41DBA7E0, _ZTv0_n12_NSoD1Ev); -REG_FUNC(0x6FC84131, _ZTv0_n12_NSt10istrstreamD0Ev); -REG_FUNC(0x7B4D8616, _ZTv0_n12_NSt10istrstreamD1Ev); -REG_FUNC(0xD82D58BA, _ZTv0_n12_NSt10ostrstreamD0Ev); -REG_FUNC(0x5D4F7F7B, _ZTv0_n12_NSt10ostrstreamD1Ev); -REG_FUNC(0x10E7966F, _ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev); -REG_FUNC(0xC3718A8D, _ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev); -REG_FUNC(0x159261D1, _ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev); -REG_FUNC(0xB54EC1E5, _ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev); -REG_FUNC(0x2FB87ED7, _ZTv0_n12_NSt9strstreamD0Ev); -REG_FUNC(0xECEDE119, _ZTv0_n12_NSt9strstreamD1Ev); -REG_FUNC(0x91B0DC47, _ZdaPv); -REG_FUNC(0xA7241F09, _ZdaPvRKSt9nothrow_t); -REG_FUNC(0x3688FFDA, _ZdaPvS_); -REG_FUNC(0x72293931, _ZdlPv); -REG_FUNC(0x87EF85FF, _ZdlPvRKSt9nothrow_t); -REG_FUNC(0x1EB89099, _ZdlPvS_); -REG_FUNC(0xE7FB2BF4, _Znaj); -REG_FUNC(0x31C62481, _ZnajRKSt9nothrow_t); -REG_FUNC(0xF99ED5AC, _Znwj); -REG_FUNC(0x0AE71DC3, _ZnwjRKSt9nothrow_t); -REG_FUNC(0x1818C323, _SNC_get_global_vars); -REG_FUNC(0x2CFA1F15, _SNC_get_tlocal_vars); -REG_FUNC(0x7742D916, _Unwind_Backtrace); -REG_FUNC(0x32748B78, _Unwind_Complete); -REG_FUNC(0xF6EA5CDE, _Unwind_DeleteException); -REG_FUNC(0xCCD903C4, _Unwind_RaiseException); -REG_FUNC(0x13D5D5A1, _Unwind_Resume); -REG_FUNC(0xE7889A5B, _Unwind_VRS_Get); -REG_FUNC(0xF106D050, _Unwind_VRS_Pop); -REG_FUNC(0x91CDA2F9, _Unwind_VRS_Set); -REG_FUNC(0x173E7421, __aeabi_unwind_cpp_pr0); -REG_FUNC(0x3C78DDE3, __aeabi_unwind_cpp_pr1); -REG_FUNC(0xF95BDD36, __aeabi_unwind_cpp_pr2); -REG_FUNC(0x8C93EFDA, __cxa_allocate_exception); -REG_FUNC(0x6165EE89, __cxa_begin_catch); -REG_FUNC(0x5D74285C, __cxa_begin_cleanup); -REG_FUNC(0x4E4CC399, __cxa_call_terminate); -REG_FUNC(0x7C1A0217, __cxa_call_unexpected); -REG_FUNC(0xF7BF277C, __cxa_current_exception_type); -REG_FUNC(0x3438F773, __cxa_end_catch); -REG_FUNC(0xD7C1E113, __cxa_end_cleanup); -REG_FUNC(0x1FFD5FFF, __cxa_free_exception); -REG_FUNC(0xBFFC0ED7, __cxa_get_exception_ptr); -REG_FUNC(0x96656BBA, __cxa_get_globals); -REG_FUNC(0x21D6C279, __cxa_rethrow); -REG_FUNC(0xF87E6098, __cxa_throw); -REG_FUNC(0x30D908F2, __cxa_type_match); -REG_FUNC(0xAE42C1D5, __snc_personality_v0); -REG_FUNC(0xDD200A6F, _ZN10__cxxabiv116__enum_type_infoD0Ev); -REG_FUNC(0x436D61AD, _ZN10__cxxabiv116__enum_type_infoD1Ev); -REG_FUNC(0x34854DA4, _ZN10__cxxabiv116__enum_type_infoD2Ev); -REG_FUNC(0x9D5EDD21, _ZN10__cxxabiv117__array_type_infoD0Ev); -REG_FUNC(0xD6375908, _ZN10__cxxabiv117__array_type_infoD1Ev); -REG_FUNC(0xFDC450D4, _ZN10__cxxabiv117__array_type_infoD2Ev); -REG_FUNC(0x5CCFD0C0, _ZN10__cxxabiv117__class_type_infoD0Ev); -REG_FUNC(0xFBBFFF15, _ZN10__cxxabiv117__class_type_infoD1Ev); -REG_FUNC(0xA92DD3D2, _ZN10__cxxabiv117__class_type_infoD2Ev); -REG_FUNC(0x6C14868D, _ZN10__cxxabiv117__pbase_type_infoD0Ev); -REG_FUNC(0xC1869E57, _ZN10__cxxabiv117__pbase_type_infoD1Ev); -REG_FUNC(0x2DF92DB7, _ZN10__cxxabiv117__pbase_type_infoD2Ev); -REG_FUNC(0xA9654DFD, _ZN10__cxxabiv119__pointer_type_infoD0Ev); -REG_FUNC(0x703A2C05, _ZN10__cxxabiv119__pointer_type_infoD1Ev); -REG_FUNC(0x509AAD21, _ZN10__cxxabiv119__pointer_type_infoD2Ev); -REG_FUNC(0xB7DFB274, _ZN10__cxxabiv120__function_type_infoD0Ev); -REG_FUNC(0x19EA26FF, _ZN10__cxxabiv120__function_type_infoD1Ev); -REG_FUNC(0xF882187E, _ZN10__cxxabiv120__function_type_infoD2Ev); -REG_FUNC(0xE67722C3, _ZN10__cxxabiv120__si_class_type_infoD0Ev); -REG_FUNC(0xA7E25E3E, _ZN10__cxxabiv120__si_class_type_infoD1Ev); -REG_FUNC(0xACD6D901, _ZN10__cxxabiv120__si_class_type_infoD2Ev); -REG_FUNC(0x986F12C7, _ZN10__cxxabiv121__vmi_class_type_infoD0Ev); -REG_FUNC(0x4B5BC979, _ZN10__cxxabiv121__vmi_class_type_infoD1Ev); -REG_FUNC(0xA7B9AB93, _ZN10__cxxabiv121__vmi_class_type_infoD2Ev); -REG_FUNC(0x7436C981, _ZN10__cxxabiv123__fundamental_type_infoD0Ev); -REG_FUNC(0x4EFBF43A, _ZN10__cxxabiv123__fundamental_type_infoD1Ev); -REG_FUNC(0xF49AA0D3, _ZN10__cxxabiv123__fundamental_type_infoD2Ev); -REG_FUNC(0x6199ACC9, _ZN10__cxxabiv129__pointer_to_member_type_infoD0Ev); -REG_FUNC(0xDD076510, _ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev); -REG_FUNC(0xD4C11B17, _ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev); -REG_FUNC(0xBF90A45A, _PJP_CPP_Copyright); -REG_FUNC(0x3B6D9752, _ZNSbIwSt11char_traitsIwESaIwEE4nposE); -REG_FUNC(0xA3498140, _ZNSs4nposE); -REG_FUNC(0x05273EA3, _ZNSt13_Num_int_base10is_boundedE); -REG_FUNC(0x8A0994F8, _ZNSt13_Num_int_base10is_integerE); -REG_FUNC(0x401F1224, _ZNSt13_Num_int_base14is_specializedE); -REG_FUNC(0xA65FE916, _ZNSt13_Num_int_base5radixE); -REG_FUNC(0xF2AA872E, _ZNSt13_Num_int_base8is_exactE); -REG_FUNC(0x08FE5A4F, _ZNSt13_Num_int_base9is_moduloE); -REG_FUNC(0x7D4C55EC, _ZNSt14numeric_limitsIaE6digitsE); -REG_FUNC(0xA4E5BF5E, _ZNSt14numeric_limitsIaE8digits10E); -REG_FUNC(0xD9938B84, _ZNSt14numeric_limitsIaE9is_signedE); -REG_FUNC(0x56198D65, _ZNSt14numeric_limitsIbE6digitsE); -REG_FUNC(0xF52E5F76, _ZNSt14numeric_limitsIbE8digits10E); -REG_FUNC(0x81B82E0E, _ZNSt14numeric_limitsIbE9is_moduloE); -REG_FUNC(0x9E6D2025, _ZNSt14numeric_limitsIbE9is_signedE); -REG_FUNC(0x810ED593, _ZNSt14numeric_limitsIcE6digitsE); -REG_FUNC(0x0AC1A819, _ZNSt14numeric_limitsIcE8digits10E); -REG_FUNC(0x660E14E1, _ZNSt14numeric_limitsIcE9is_signedE); -REG_FUNC(0x3EEB3B23, _ZNSt14numeric_limitsIdE12max_exponentE); -REG_FUNC(0x13B634BE, _ZNSt14numeric_limitsIdE12min_exponentE); -REG_FUNC(0xDB4218A0, _ZNSt14numeric_limitsIdE14max_exponent10E); -REG_FUNC(0x770B1CAC, _ZNSt14numeric_limitsIdE14min_exponent10E); -REG_FUNC(0xD175A556, _ZNSt14numeric_limitsIdE6digitsE); -REG_FUNC(0xA5349445, _ZNSt14numeric_limitsIdE8digits10E); -REG_FUNC(0x2F59E7FF, _ZNSt14numeric_limitsIeE12max_exponentE); -REG_FUNC(0xC9C10644, _ZNSt14numeric_limitsIeE12min_exponentE); -REG_FUNC(0xC80072AC, _ZNSt14numeric_limitsIeE14max_exponent10E); -REG_FUNC(0xCA8B1B9E, _ZNSt14numeric_limitsIeE14min_exponent10E); -REG_FUNC(0x7E9AFD39, _ZNSt14numeric_limitsIeE6digitsE); -REG_FUNC(0x6122F9BF, _ZNSt14numeric_limitsIeE8digits10E); -REG_FUNC(0xA83B5FE2, _ZNSt14numeric_limitsIfE12max_exponentE); -REG_FUNC(0x9347B146, _ZNSt14numeric_limitsIfE12min_exponentE); -REG_FUNC(0x371BCFA6, _ZNSt14numeric_limitsIfE14max_exponent10E); -REG_FUNC(0x6E6746EB, _ZNSt14numeric_limitsIfE14min_exponent10E); -REG_FUNC(0xB102353D, _ZNSt14numeric_limitsIfE6digitsE); -REG_FUNC(0x781201BB, _ZNSt14numeric_limitsIfE8digits10E); -REG_FUNC(0x26D618B8, _ZNSt14numeric_limitsIhE6digitsE); -REG_FUNC(0x8D593267, _ZNSt14numeric_limitsIhE8digits10E); -REG_FUNC(0x96B86E89, _ZNSt14numeric_limitsIhE9is_signedE); -REG_FUNC(0x9CDAA1F0, _ZNSt14numeric_limitsIiE6digitsE); -REG_FUNC(0xE8EB3133, _ZNSt14numeric_limitsIiE8digits10E); -REG_FUNC(0x3AB38CDA, _ZNSt14numeric_limitsIiE9is_signedE); -REG_FUNC(0xEEB7B642, _ZNSt14numeric_limitsIjE6digitsE); -REG_FUNC(0xBCDE68B3, _ZNSt14numeric_limitsIjE8digits10E); -REG_FUNC(0x0DA8EFB0, _ZNSt14numeric_limitsIjE9is_signedE); -REG_FUNC(0x65DAD8D6, _ZNSt14numeric_limitsIlE6digitsE); -REG_FUNC(0xFB52BC0A, _ZNSt14numeric_limitsIlE8digits10E); -REG_FUNC(0x063544FC, _ZNSt14numeric_limitsIlE9is_signedE); -REG_FUNC(0x441D097A, _ZNSt14numeric_limitsImE6digitsE); -REG_FUNC(0xB56F1B07, _ZNSt14numeric_limitsImE8digits10E); -REG_FUNC(0xA9799886, _ZNSt14numeric_limitsImE9is_signedE); -REG_FUNC(0x45C6A036, _ZNSt14numeric_limitsIsE6digitsE); -REG_FUNC(0xCDE02D9C, _ZNSt14numeric_limitsIsE8digits10E); -REG_FUNC(0xB13AEAC3, _ZNSt14numeric_limitsIsE9is_signedE); -REG_FUNC(0xBD813100, _ZNSt14numeric_limitsItE6digitsE); -REG_FUNC(0x242C5313, _ZNSt14numeric_limitsItE8digits10E); -REG_FUNC(0x175A29B4, _ZNSt14numeric_limitsItE9is_signedE); -REG_FUNC(0x7E91BCD7, _ZNSt14numeric_limitsIwE6digitsE); -REG_FUNC(0x6B1CB79E, _ZNSt14numeric_limitsIwE8digits10E); -REG_FUNC(0x9181475F, _ZNSt14numeric_limitsIwE9is_signedE); -REG_FUNC(0x22F8FF46, _ZNSt14numeric_limitsIxE6digitsE); -REG_FUNC(0xF6E69A0D, _ZNSt14numeric_limitsIxE8digits10E); -REG_FUNC(0xD01E5E34, _ZNSt14numeric_limitsIxE9is_signedE); -REG_FUNC(0x4AB058B0, _ZNSt14numeric_limitsIyE6digitsE); -REG_FUNC(0x85F2F2D2, _ZNSt14numeric_limitsIyE8digits10E); -REG_FUNC(0xDEDE9061, _ZNSt14numeric_limitsIyE9is_signedE); -REG_FUNC(0x1CBE5DCB, _ZNSt15_Num_float_base10has_denormE); -REG_FUNC(0x616E0E6F, _ZNSt15_Num_float_base10is_boundedE); -REG_FUNC(0xDFDE8E2C, _ZNSt15_Num_float_base10is_integerE); -REG_FUNC(0x59668916, _ZNSt15_Num_float_base11round_styleE); -REG_FUNC(0x2FA7A240, _ZNSt15_Num_float_base12has_infinityE); -REG_FUNC(0x4E98DCA0, _ZNSt15_Num_float_base13has_quiet_NaNE); -REG_FUNC(0x87EB5304, _ZNSt15_Num_float_base14is_specializedE); -REG_FUNC(0x1B36956D, _ZNSt15_Num_float_base15has_denorm_lossE); -REG_FUNC(0xD3E2D87B, _ZNSt15_Num_float_base15tinyness_beforeE); -REG_FUNC(0xBCEB9093, _ZNSt15_Num_float_base17has_signaling_NaNE); -REG_FUNC(0x132F3288, _ZNSt15_Num_float_base5radixE); -REG_FUNC(0xF8060433, _ZNSt15_Num_float_base5trapsE); -REG_FUNC(0x3C4A2891, _ZNSt15_Num_float_base8is_exactE); -REG_FUNC(0xA3F55094, _ZNSt15_Num_float_base9is_iec559E); -REG_FUNC(0xC8CB7207, _ZNSt15_Num_float_base9is_moduloE); -REG_FUNC(0x1242E399, _ZNSt15_Num_float_base9is_signedE); -REG_FUNC(0x762C3159, _ZNSt4fposISt9_MbstatetE4_StzE); -REG_FUNC(0xFED4A09B, _ZNSt5_IosbIiE10_NoreplaceE); -REG_FUNC(0xE615A657, _ZNSt5_IosbIiE2inE); -REG_FUNC(0x759FD02E, _ZNSt5_IosbIiE3appE); -REG_FUNC(0x6F410A00, _ZNSt5_IosbIiE3ateE); -REG_FUNC(0xD2A42D0C, _ZNSt5_IosbIiE3begE); -REG_FUNC(0x09B45C3B, _ZNSt5_IosbIiE3curE); -REG_FUNC(0x121A8952, _ZNSt5_IosbIiE3decE); -REG_FUNC(0x7CC027CD, _ZNSt5_IosbIiE3endE); -REG_FUNC(0x6E2FF90B, _ZNSt5_IosbIiE3hexE); -REG_FUNC(0xB4A55C29, _ZNSt5_IosbIiE3octE); -REG_FUNC(0x2CB2DC70, _ZNSt5_IosbIiE3outE); -REG_FUNC(0x078E34A9, _ZNSt5_IosbIiE5truncE); -REG_FUNC(0xB5EFA1B3, _ZNSt5_IosbIiE6badbitE); -REG_FUNC(0x5312A538, _ZNSt5_IosbIiE6binaryE); -REG_FUNC(0xD9D32526, _ZNSt5_IosbIiE6skipwsE); -REG_FUNC(0xAE6CA555, _ZNSt5_IosbIiE7failbitE); -REG_FUNC(0x139E2D21, _ZNSt5_IosbIiE7goodbitE); -REG_FUNC(0x7021DFF0, _ZNSt5_IosbIiE7unitbufE); -REG_FUNC(0x2AD61AAD, _ZNSt5_IosbIiE9_NocreateE); -REG_FUNC(0x60B16E4E, _ZNSt5_IosbIiE9basefieldE); -REG_FUNC(0x8137F8D7, _ZNSt6_Winit9_Init_cntE); -REG_FUNC(0x554B7625, _ZNSt8ios_base4Init9_Init_cntE); -REG_FUNC(0x57CF916C, _ZNSt8ios_base5_SyncE); -REG_FUNC(0xF2D3416A, _ZNSt8ios_base6_IndexE); -REG_FUNC(0x3D219F98, _ZNSt9_Num_base10has_denormE); -REG_FUNC(0xD93E4A6C, _ZNSt9_Num_base10is_boundedE); -REG_FUNC(0xB65169EF, _ZNSt9_Num_base10is_integerE); -REG_FUNC(0x13B38354, _ZNSt9_Num_base11round_styleE); -REG_FUNC(0xB11D20E2, _ZNSt9_Num_base12has_infinityE); -REG_FUNC(0x3E169F74, _ZNSt9_Num_base12max_exponentE); -REG_FUNC(0xD7C041E0, _ZNSt9_Num_base12min_exponentE); -REG_FUNC(0x02DA0D59, _ZNSt9_Num_base13has_quiet_NaNE); -REG_FUNC(0xBE06BD79, _ZNSt9_Num_base14is_specializedE); -REG_FUNC(0xEBBC4DDD, _ZNSt9_Num_base14max_exponent10E); -REG_FUNC(0x0FFCF7FC, _ZNSt9_Num_base14min_exponent10E); -REG_FUNC(0xB317DDDF, _ZNSt9_Num_base15has_denorm_lossE); -REG_FUNC(0x245D399E, _ZNSt9_Num_base15tinyness_beforeE); -REG_FUNC(0xBD5F0B8A, _ZNSt9_Num_base17has_signaling_NaNE); -REG_FUNC(0xE23BAE9E, _ZNSt9_Num_base5radixE); -REG_FUNC(0x9237A154, _ZNSt9_Num_base5trapsE); -REG_FUNC(0xE8421A12, _ZNSt9_Num_base6digitsE); -REG_FUNC(0x80698934, _ZNSt9_Num_base8digits10E); -REG_FUNC(0xB338C222, _ZNSt9_Num_base8is_exactE); -REG_FUNC(0x1F5A7860, _ZNSt9_Num_base9is_iec559E); -REG_FUNC(0x840107AA, _ZNSt9_Num_base9is_moduloE); -REG_FUNC(0xABD7AE16, _ZNSt9_Num_base9is_signedE); -REG_FUNC(0x4A1AB5B4, _ZSt14_Raise_handler); -REG_FUNC(0x725EAC50, _ZSt16__dummy_typeinfo); -REG_FUNC(0x768F2944, _ZSt3cin); -REG_FUNC(0xD9478DCF, _ZSt4_Fpz); -REG_FUNC(0x14B35A37, _ZSt4cerr); -REG_FUNC(0xD361A52A, _ZSt4clog); -REG_FUNC(0xB3867BB4, _ZSt4cout); -REG_FUNC(0x8054BC8E, _ZSt4wcin); -REG_FUNC(0x8B2001F7, _ZSt5wcerr); -REG_FUNC(0x8E04C18C, _ZSt5wclog); -REG_FUNC(0x4F726424, _ZSt5wcout); -REG_FUNC(0x9C449444, _ZSt7_BADOFF); -REG_FUNC(0xBFEF56B5, _ZSt7nothrow); -REG_FUNC(0xDC18EF42, _ZTI15__simd64_int8_t); -REG_FUNC(0x2207D305, _ZTI16__simd128_int8_t); -REG_FUNC(0x869FEDA9, _ZTI16__simd64_int16_t); -REG_FUNC(0x7CEF3DB5, _ZTI16__simd64_int32_t); -REG_FUNC(0xFE09AD25, _ZTI16__simd64_poly8_t); -REG_FUNC(0x14A3598E, _ZTI16__simd64_uint8_t); -REG_FUNC(0xF4B098DD, _ZTI17__simd128_int16_t); -REG_FUNC(0xAABF056C, _ZTI17__simd128_int32_t); -REG_FUNC(0x305068B1, _ZTI17__simd128_poly8_t); -REG_FUNC(0x74813D4D, _ZTI17__simd128_uint8_t); -REG_FUNC(0xE118AB78, _ZTI17__simd64_poly16_t); -REG_FUNC(0x67E05799, _ZTI17__simd64_uint16_t); -REG_FUNC(0x1617E8CB, _ZTI17__simd64_uint32_t); -REG_FUNC(0x2FACB1EF, _ZTI18__simd128_poly16_t); -REG_FUNC(0xC089FED3, _ZTI18__simd128_uint16_t); -REG_FUNC(0xFC00EC48, _ZTI18__simd128_uint32_t); -REG_FUNC(0x237AF69B, _ZTI18__simd64_float16_t); -REG_FUNC(0xF7FDBBED, _ZTI18__simd64_float32_t); -REG_FUNC(0x525557F3, _ZTI19__simd128_float16_t); -REG_FUNC(0xA4018B84, _ZTI19__simd128_float32_t); -REG_FUNC(0xA1FE4058, _ZTIDh); -REG_FUNC(0x5351829B, _ZTINSt8ios_base7failureE); -REG_FUNC(0x00AC6C8F, _ZTIP15__simd64_int8_t); -REG_FUNC(0xD5B056B8, _ZTIP16__simd128_int8_t); -REG_FUNC(0x13975DAE, _ZTIP16__simd64_int16_t); -REG_FUNC(0x963C04E3, _ZTIP16__simd64_int32_t); -REG_FUNC(0x9F43A559, _ZTIP16__simd64_poly8_t); -REG_FUNC(0xD8079FA9, _ZTIP16__simd64_uint8_t); -REG_FUNC(0xEF53FE1F, _ZTIP17__simd128_int16_t); -REG_FUNC(0xA5094302, _ZTIP17__simd128_int32_t); -REG_FUNC(0x9CAF5E5A, _ZTIP17__simd128_poly8_t); -REG_FUNC(0x264B0978, _ZTIP17__simd128_uint8_t); -REG_FUNC(0x214A0488, _ZTIP17__simd64_poly16_t); -REG_FUNC(0xA96D02B1, _ZTIP17__simd64_uint16_t); -REG_FUNC(0xEE862280, _ZTIP17__simd64_uint32_t); -REG_FUNC(0xB5CEC4FF, _ZTIP18__simd128_poly16_t); -REG_FUNC(0x46124E82, _ZTIP18__simd128_uint16_t); -REG_FUNC(0x07E6CC17, _ZTIP18__simd128_uint32_t); -REG_FUNC(0x588EBCAD, _ZTIP18__simd64_float16_t); -REG_FUNC(0xDFCB2417, _ZTIP18__simd64_float32_t); -REG_FUNC(0x9502D3C0, _ZTIP19__simd128_float16_t); -REG_FUNC(0xFB84796C, _ZTIP19__simd128_float32_t); -REG_FUNC(0xA43ABF14, _ZTIPDh); -REG_FUNC(0x37A74E46, _ZTIPK15__simd64_int8_t); -REG_FUNC(0x60D7D920, _ZTIPK16__simd128_int8_t); -REG_FUNC(0x52A04C47, _ZTIPK16__simd64_int16_t); -REG_FUNC(0xBB64CCF1, _ZTIPK16__simd64_int32_t); -REG_FUNC(0x7C9D0C33, _ZTIPK16__simd64_poly8_t); -REG_FUNC(0x021A57A1, _ZTIPK16__simd64_uint8_t); -REG_FUNC(0x021E3DD1, _ZTIPK17__simd128_int16_t); -REG_FUNC(0xFF8DDBE7, _ZTIPK17__simd128_int32_t); -REG_FUNC(0xB30AB3B5, _ZTIPK17__simd128_poly8_t); -REG_FUNC(0xC8721E86, _ZTIPK17__simd128_uint8_t); -REG_FUNC(0x610983B7, _ZTIPK17__simd64_poly16_t); -REG_FUNC(0x486A3970, _ZTIPK17__simd64_uint16_t); -REG_FUNC(0x9577D4FD, _ZTIPK17__simd64_uint32_t); -REG_FUNC(0x192861D3, _ZTIPK18__simd128_poly16_t); -REG_FUNC(0x9C721F27, _ZTIPK18__simd128_uint16_t); -REG_FUNC(0xC0A37F8F, _ZTIPK18__simd128_uint32_t); -REG_FUNC(0xF2FCDEFC, _ZTIPK18__simd64_float16_t); -REG_FUNC(0x2D2B93F7, _ZTIPK18__simd64_float32_t); -REG_FUNC(0x6B7DA1FD, _ZTIPK19__simd128_float16_t); -REG_FUNC(0x15CA84E1, _ZTIPK19__simd128_float32_t); -REG_FUNC(0x6195F016, _ZTIPKDh); -REG_FUNC(0x2059F4C0, _ZTIPKU8__vectorx); -REG_FUNC(0xFCC4EE61, _ZTIPKU8__vectory); -REG_FUNC(0x63E0CE97, _ZTIPKa); -REG_FUNC(0x47A13017, _ZTIPKb); -REG_FUNC(0x8C375D81, _ZTIPKc); -REG_FUNC(0x841645BA, _ZTIPKd); -REG_FUNC(0x179015C1, _ZTIPKe); -REG_FUNC(0xF7F85635, _ZTIPKf); -REG_FUNC(0x54CF62A4, _ZTIPKh); -REG_FUNC(0x33DAF949, _ZTIPKi); -REG_FUNC(0x703C1962, _ZTIPKj); -REG_FUNC(0xF353DAF3, _ZTIPKl); -REG_FUNC(0x67092852, _ZTIPKm); -REG_FUNC(0xDAAEEAD0, _ZTIPKs); -REG_FUNC(0x39790E0A, _ZTIPKt); -REG_FUNC(0xEE47C447, _ZTIPKv); -REG_FUNC(0xECDB6B05, _ZTIPKw); -REG_FUNC(0xC20CF55C, _ZTIPKx); -REG_FUNC(0xA0F5E8F5, _ZTIPKy); -REG_FUNC(0xA6C2A25C, _ZTIPU8__vectorx); -REG_FUNC(0x81B51915, _ZTIPU8__vectory); -REG_FUNC(0xA7CB4EAA, _ZTIPa); -REG_FUNC(0x087B0FB6, _ZTIPb); -REG_FUNC(0xE4D24E14, _ZTIPc); -REG_FUNC(0x6825FFE6, _ZTIPd); -REG_FUNC(0x926B9A3A, _ZTIPe); -REG_FUNC(0x24072F3E, _ZTIPf); -REG_FUNC(0x08B5247B, _ZTIPh); -REG_FUNC(0x15C21CC8, _ZTIPi); -REG_FUNC(0xD234CF18, _ZTIPj); -REG_FUNC(0x50E25810, _ZTIPl); -REG_FUNC(0x9D0DBB1A, _ZTIPm); -REG_FUNC(0xDCB7CD94, _ZTIPs); -REG_FUNC(0x7FC4B19D, _ZTIPt); -REG_FUNC(0x4722F2AE, _ZTIPv); -REG_FUNC(0x2208C899, _ZTIPw); -REG_FUNC(0xE64F5994, _ZTIPx); -REG_FUNC(0xC1C20AC0, _ZTIPy); -REG_FUNC(0xD7A9284F, _ZTISd); -REG_FUNC(0xE302D51A, _ZTISi); -REG_FUNC(0xF9426257, _ZTISo); -REG_FUNC(0x7242603B, _ZTISt10bad_typeid); -REG_FUNC(0x67B82DEF, _ZTISt10istrstream); -REG_FUNC(0x9F17589B, _ZTISt10ostrstream); -REG_FUNC(0xE0E3C75A, _ZTISt11_ctype_base); -REG_FUNC(0x87457513, _ZTISt11logic_error); -REG_FUNC(0x2B71045A, _ZTISt11range_error); -REG_FUNC(0x9A72EBFE, _ZTISt12domain_error); -REG_FUNC(0x15E6C91C, _ZTISt12length_error); -REG_FUNC(0xBAC29E4D, _ZTISt12out_of_range); -REG_FUNC(0x8257DFA2, _ZTISt12strstreambuf); -REG_FUNC(0x34455CAF, _ZTISt13_codecvt_base); -REG_FUNC(0xF4A5A537, _ZTISt13bad_exception); -REG_FUNC(0x33C19D3B, _ZTISt13basic_filebufIcSt11char_traitsIcEE); -REG_FUNC(0x83DB8917, _ZTISt13basic_filebufIwSt11char_traitsIwEE); -REG_FUNC(0x1582929A, _ZTISt13basic_istreamIwSt11char_traitsIwEE); -REG_FUNC(0xF4062B77, _ZTISt13basic_ostreamIwSt11char_traitsIwEE); -REG_FUNC(0x2451AF0A, _ZTISt13runtime_error); -REG_FUNC(0x3EE22853, _ZTISt14overflow_error); -REG_FUNC(0x758B452B, _ZTISt15basic_streambufIcSt11char_traitsIcEE); -REG_FUNC(0x52B5EC73, _ZTISt15basic_streambufIwSt11char_traitsIwEE); -REG_FUNC(0xCD0A98ED, _ZTISt15underflow_error); -REG_FUNC(0xA128D5A0, _ZTISt16invalid_argument); -REG_FUNC(0xE2AB6BF9, _ZTISt5_IosbIiE); -REG_FUNC(0x3FD78B17, _ZTISt6_ctypeIcE); -REG_FUNC(0xA8CD5D05, _ZTISt6_ctypeIwE); -REG_FUNC(0xAFB2B7FB, _ZTISt8_codecvtIccSt9_MbstatetE); -REG_FUNC(0xCA25D9BE, _ZTISt8_codecvtIwcSt9_MbstatetE); -REG_FUNC(0xA7CA7C93, _ZTISt8bad_cast); -REG_FUNC(0xB93721C7, _ZTISt8ios_base); -REG_FUNC(0x35E135A0, _ZTISt9bad_alloc); -REG_FUNC(0x7BA61382, _ZTISt9basic_iosIcSt11char_traitsIcEE); -REG_FUNC(0x0905B8B0, _ZTISt9basic_iosIwSt11char_traitsIwEE); -REG_FUNC(0x1E8C6100, _ZTISt9exception); -REG_FUNC(0x1CC15F54, _ZTISt9strstream); -REG_FUNC(0x8A026EAD, _ZTISt9type_info); -REG_FUNC(0xE128260C, _ZTIU8__vectorx); -REG_FUNC(0x44C2FA39, _ZTIU8__vectory); -REG_FUNC(0x4F416B30, _ZTIa); -REG_FUNC(0x3081D959, _ZTIb); -REG_FUNC(0x942D2342, _ZTIc); -REG_FUNC(0x685BA1E8, _ZTId); -REG_FUNC(0xFCE46A43, _ZTIe); -REG_FUNC(0x64AEB8AF, _ZTIf); -REG_FUNC(0x606676D4, _ZTIh); -REG_FUNC(0xA58E84A3, _ZTIi); -REG_FUNC(0x9B0CBEC0, _ZTIj); -REG_FUNC(0xD589E8AE, _ZTIl); -REG_FUNC(0xD39774A5, _ZTIm); -REG_FUNC(0xDC2C85B0, _ZTIs); -REG_FUNC(0xEA3FB57B, _ZTIt); -REG_FUNC(0x76C6BDCE, _ZTIv); -REG_FUNC(0x8BFC9260, _ZTIw); -REG_FUNC(0x90B0194C, _ZTIx); -REG_FUNC(0x16DACFBF, _ZTIy); -REG_FUNC(0x720678AD, _ZTS15__simd64_int8_t); -REG_FUNC(0x5B9F1D83, _ZTS16__simd128_int8_t); -REG_FUNC(0x953ECE43, _ZTS16__simd64_int16_t); -REG_FUNC(0xCE27612E, _ZTS16__simd64_int32_t); -REG_FUNC(0x72BC6CD9, _ZTS16__simd64_poly8_t); -REG_FUNC(0xCD2802B5, _ZTS16__simd64_uint8_t); -REG_FUNC(0xC3FA8530, _ZTS17__simd128_int16_t); -REG_FUNC(0x67A63A08, _ZTS17__simd128_int32_t); -REG_FUNC(0x6B26EFF8, _ZTS17__simd128_poly8_t); -REG_FUNC(0x08C4C69F, _ZTS17__simd128_uint8_t); -REG_FUNC(0x40BC2E0E, _ZTS17__simd64_poly16_t); -REG_FUNC(0x8D1AE4A7, _ZTS17__simd64_uint16_t); -REG_FUNC(0xC4096952, _ZTS17__simd64_uint32_t); -REG_FUNC(0x16D366F1, _ZTS18__simd128_poly16_t); -REG_FUNC(0x045552A1, _ZTS18__simd128_uint16_t); -REG_FUNC(0x7DBF4FFF, _ZTS18__simd128_uint32_t); -REG_FUNC(0x0ED26DE1, _ZTS18__simd64_float16_t); -REG_FUNC(0xAB0D789A, _ZTS18__simd64_float32_t); -REG_FUNC(0x03200DDB, _ZTS19__simd128_float16_t); -REG_FUNC(0xD54CBD7C, _ZTS19__simd128_float32_t); -REG_FUNC(0xA8E6842E, _ZTSDh); -REG_FUNC(0x5246E71E, _ZTSNSt8ios_base7failureE); -REG_FUNC(0xF98AAA03, _ZTSP15__simd64_int8_t); -REG_FUNC(0xAF5AA646, _ZTSP16__simd128_int8_t); -REG_FUNC(0x73874089, _ZTSP16__simd64_int16_t); -REG_FUNC(0xAD912141, _ZTSP16__simd64_int32_t); -REG_FUNC(0x67D1351B, _ZTSP16__simd64_poly8_t); -REG_FUNC(0x9FDDB92F, _ZTSP16__simd64_uint8_t); -REG_FUNC(0xA9B31841, _ZTSP17__simd128_int16_t); -REG_FUNC(0x244C742C, _ZTSP17__simd128_int32_t); -REG_FUNC(0x31AFE1A0, _ZTSP17__simd128_poly8_t); -REG_FUNC(0x5CF817B0, _ZTSP17__simd128_uint8_t); -REG_FUNC(0xB524B325, _ZTSP17__simd64_poly16_t); -REG_FUNC(0x51A1F225, _ZTSP17__simd64_uint16_t); -REG_FUNC(0x9C3431DD, _ZTSP17__simd64_uint32_t); -REG_FUNC(0x937A4F2F, _ZTSP18__simd128_poly16_t); -REG_FUNC(0x33549DB5, _ZTSP18__simd128_uint16_t); -REG_FUNC(0xFC19AC06, _ZTSP18__simd128_uint32_t); -REG_FUNC(0xD9A43D3A, _ZTSP18__simd64_float16_t); -REG_FUNC(0xFAB5D659, _ZTSP18__simd64_float32_t); -REG_FUNC(0x7E694471, _ZTSP19__simd128_float16_t); -REG_FUNC(0xA9AF9CE8, _ZTSP19__simd128_float32_t); -REG_FUNC(0xDAE584EC, _ZTSPDh); -REG_FUNC(0x2B017F22, _ZTSPK15__simd64_int8_t); -REG_FUNC(0x4A7149C9, _ZTSPK16__simd128_int8_t); -REG_FUNC(0xAC116166, _ZTSPK16__simd64_int16_t); -REG_FUNC(0x6A472A63, _ZTSPK16__simd64_int32_t); -REG_FUNC(0xC356ACF6, _ZTSPK16__simd64_poly8_t); -REG_FUNC(0x878C75F4, _ZTSPK16__simd64_uint8_t); -REG_FUNC(0x68B777E3, _ZTSPK17__simd128_int16_t); -REG_FUNC(0x061188BD, _ZTSPK17__simd128_int32_t); -REG_FUNC(0xC7733F13, _ZTSPK17__simd128_poly8_t); -REG_FUNC(0x3D8A69EC, _ZTSPK17__simd128_uint8_t); -REG_FUNC(0xCC081D58, _ZTSPK17__simd64_poly16_t); -REG_FUNC(0xEB50ABA7, _ZTSPK17__simd64_uint16_t); -REG_FUNC(0x25EC8CE5, _ZTSPK17__simd64_uint32_t); -REG_FUNC(0x5C61F109, _ZTSPK18__simd128_poly16_t); -REG_FUNC(0x9B085E3F, _ZTSPK18__simd128_uint16_t); -REG_FUNC(0x721902EF, _ZTSPK18__simd128_uint32_t); -REG_FUNC(0x1C618B7E, _ZTSPK18__simd64_float16_t); -REG_FUNC(0x89B6EDD3, _ZTSPK18__simd64_float32_t); -REG_FUNC(0x9BC380FF, _ZTSPK19__simd128_float16_t); -REG_FUNC(0xC951A9C5, _ZTSPK19__simd128_float32_t); -REG_FUNC(0x2796C952, _ZTSPKDh); -REG_FUNC(0xC33238AA, _ZTSPKU8__vectorx); -REG_FUNC(0x208CEEA8, _ZTSPKU8__vectory); -REG_FUNC(0xBAD19257, _ZTSPKa); -REG_FUNC(0x6CB2F5A4, _ZTSPKb); -REG_FUNC(0xE242CC59, _ZTSPKc); -REG_FUNC(0xA0C8CCE9, _ZTSPKd); -REG_FUNC(0x5C69903D, _ZTSPKe); -REG_FUNC(0xDBF8E0D1, _ZTSPKf); -REG_FUNC(0x1BC277F5, _ZTSPKh); -REG_FUNC(0xF09F6E45, _ZTSPKi); -REG_FUNC(0x5C6D9EDD, _ZTSPKj); -REG_FUNC(0x12416EBE, _ZTSPKl); -REG_FUNC(0x199F6347, _ZTSPKm); -REG_FUNC(0xA1D68767, _ZTSPKs); -REG_FUNC(0xE6498BCD, _ZTSPKt); -REG_FUNC(0xF0FF237E, _ZTSPKv); -REG_FUNC(0xD255293A, _ZTSPKw); -REG_FUNC(0x2EADF5EC, _ZTSPKx); -REG_FUNC(0xEC3461AB, _ZTSPKy); -REG_FUNC(0xB3EDCB7F, _ZTSPU8__vectorx); -REG_FUNC(0x6D11C7D6, _ZTSPU8__vectory); -REG_FUNC(0xC5AC688C, _ZTSPa); -REG_FUNC(0xE4EB3C43, _ZTSPb); -REG_FUNC(0xAEF69715, _ZTSPc); -REG_FUNC(0x6F81469F, _ZTSPd); -REG_FUNC(0xFD38BF3B, _ZTSPe); -REG_FUNC(0xFCB96733, _ZTSPf); -REG_FUNC(0x5BFE19AB, _ZTSPh); -REG_FUNC(0x187E3B47, _ZTSPi); -REG_FUNC(0x2F4A5390, _ZTSPj); -REG_FUNC(0x651D020E, _ZTSPl); -REG_FUNC(0x6E4D412D, _ZTSPm); -REG_FUNC(0x982D9703, _ZTSPs); -REG_FUNC(0xE2A0B0A8, _ZTSPt); -REG_FUNC(0xF7B6B02A, _ZTSPv); -REG_FUNC(0xF1C9A755, _ZTSPw); -REG_FUNC(0x0968B212, _ZTSPx); -REG_FUNC(0x09787CAD, _ZTSPy); -REG_FUNC(0xF86F5756, _ZTSSd); -REG_FUNC(0x999300E0, _ZTSSi); -REG_FUNC(0x591C25A3, _ZTSSo); -REG_FUNC(0x0FC9D21B, _ZTSSt10bad_typeid); -REG_FUNC(0x867D109E, _ZTSSt10istrstream); -REG_FUNC(0x88BFC745, _ZTSSt10ostrstream); -REG_FUNC(0xB315CE7A, _ZTSSt11_ctype_base); -REG_FUNC(0xA65DACDF, _ZTSSt11logic_error); -REG_FUNC(0x1B8E7108, _ZTSSt11range_error); -REG_FUNC(0xBE23707A, _ZTSSt12domain_error); -REG_FUNC(0x9E317CE1, _ZTSSt12length_error); -REG_FUNC(0xD8DAD98D, _ZTSSt12out_of_range); -REG_FUNC(0x1C929309, _ZTSSt12strstreambuf); -REG_FUNC(0x0E17E4D6, _ZTSSt13_codecvt_base); -REG_FUNC(0x918FE198, _ZTSSt13bad_exception); -REG_FUNC(0x227B4568, _ZTSSt13basic_filebufIcSt11char_traitsIcEE); -REG_FUNC(0xD34BAF59, _ZTSSt13basic_filebufIwSt11char_traitsIwEE); -REG_FUNC(0x4381D6B0, _ZTSSt13basic_istreamIwSt11char_traitsIwEE); -REG_FUNC(0x8D487027, _ZTSSt13basic_ostreamIwSt11char_traitsIwEE); -REG_FUNC(0xCAA9B21D, _ZTSSt13runtime_error); -REG_FUNC(0xA21B1185, _ZTSSt14overflow_error); -REG_FUNC(0x4A1A1314, _ZTSSt15basic_streambufIcSt11char_traitsIcEE); -REG_FUNC(0x26C1C38F, _ZTSSt15basic_streambufIwSt11char_traitsIwEE); -REG_FUNC(0x140AE4BB, _ZTSSt15underflow_error); -REG_FUNC(0xC3CD5E06, _ZTSSt16invalid_argument); -REG_FUNC(0xB07DF922, _ZTSSt5_IosbIiE); -REG_FUNC(0xED549839, _ZTSSt6_ctypeIcE); -REG_FUNC(0x89304937, _ZTSSt6_ctypeIwE); -REG_FUNC(0x17AAF611, _ZTSSt8_codecvtIccSt9_MbstatetE); -REG_FUNC(0xB4C66A72, _ZTSSt8_codecvtIwcSt9_MbstatetE); -REG_FUNC(0x4C50F26D, _ZTSSt8bad_cast); -REG_FUNC(0xA263F3D5, _ZTSSt8ios_base); -REG_FUNC(0x8DA9C17C, _ZTSSt9_numpunctIcE); -REG_FUNC(0xC4F9C216, _ZTSSt9_numpunctIwE); -REG_FUNC(0xDF0FFCD2, _ZTSSt9bad_alloc); -REG_FUNC(0xB37BE412, _ZTSSt9basic_iosIcSt11char_traitsIcEE); -REG_FUNC(0xCA50ACCA, _ZTSSt9basic_iosIwSt11char_traitsIwEE); -REG_FUNC(0x45FD9715, _ZTSSt9exception); -REG_FUNC(0xE5C789D4, _ZTSSt9strstream); -REG_FUNC(0x2856DCD6, _ZTSSt9type_info); -REG_FUNC(0x75A1CED4, _ZTSU8__vectorx); -REG_FUNC(0x508FF61E, _ZTSU8__vectory); -REG_FUNC(0x08E6A51A, _ZTSa); -REG_FUNC(0x491DB7D3, _ZTSb); -REG_FUNC(0xD657B5A0, _ZTSc); -REG_FUNC(0x322C7CB5, _ZTSd); -REG_FUNC(0x596C02C7, _ZTSe); -REG_FUNC(0x2434A5DD, _ZTSf); -REG_FUNC(0x890DE9E8, _ZTSh); -REG_FUNC(0x4B9F21DF, _ZTSi); -REG_FUNC(0x4C2D1984, _ZTSj); -REG_FUNC(0x46E67574, _ZTSl); -REG_FUNC(0xEE238074, _ZTSm); -REG_FUNC(0x8C9CDB9C, _ZTSs); -REG_FUNC(0xED2E996A, _ZTSt); -REG_FUNC(0xD4744378, _ZTSv); -REG_FUNC(0x2C50C827, _ZTSw); -REG_FUNC(0x9574359B, _ZTSx); -REG_FUNC(0x402717E4, _ZTSy); -REG_FUNC(0x51B29810, _ZTTSd); -REG_FUNC(0x52128B13, _ZTTSi); -REG_FUNC(0x3C508708, _ZTTSo); -REG_FUNC(0x087753F6, _ZTTSt10istrstream); -REG_FUNC(0xE3D7CB30, _ZTTSt10ostrstream); -REG_FUNC(0xBC326B50, _ZTTSt13basic_istreamIwSt11char_traitsIwEE); -REG_FUNC(0x16E32018, _ZTTSt13basic_ostreamIwSt11char_traitsIwEE); -REG_FUNC(0xC91F7671, _ZTTSt9strstream); -REG_FUNC(0x648213CC, _ZTVNSt8ios_base7failureE); -REG_FUNC(0x796EA5C0, _ZTVSd); -REG_FUNC(0xC5D326CB, _ZTVSd__St9strstream); -REG_FUNC(0xB02CB03C, _ZTVSi); -REG_FUNC(0xF4400A94, _ZTVSiSd__St9strstream); -REG_FUNC(0xF2A1132D, _ZTVSi__Sd); -REG_FUNC(0xDFF04427, _ZTVSi__St10istrstream); -REG_FUNC(0xD430E6D2, _ZTVSo); -REG_FUNC(0x3CAA5F50, _ZTVSoSd__St9strstream); -REG_FUNC(0x6D6BCA93, _ZTVSo__Sd); -REG_FUNC(0xBA833AE3, _ZTVSo__Sd__St9strstream); -REG_FUNC(0x65069CB5, _ZTVSo__St10ostrstream); -REG_FUNC(0x76BDD7CC, _ZTVSt10bad_typeid); -REG_FUNC(0xFBACB296, _ZTVSt10istrstream); -REG_FUNC(0xA81AD21D, _ZTVSt10ostrstream); -REG_FUNC(0x82A84E5E, _ZTVSt11logic_error); -REG_FUNC(0x1D583475, _ZTVSt11range_error); -REG_FUNC(0x80C77E16, _ZTVSt12domain_error); -REG_FUNC(0x064ADA35, _ZTVSt12length_error); -REG_FUNC(0xDDAE7CBE, _ZTVSt12out_of_range); -REG_FUNC(0x11B2781A, _ZTVSt12strstreambuf); -REG_FUNC(0x75D16BD0, _ZTVSt13_codecvt_base); -REG_FUNC(0x4AA9C954, _ZTVSt13bad_exception); -REG_FUNC(0xC3233C50, _ZTVSt13basic_filebufIcSt11char_traitsIcEE); -REG_FUNC(0xF269A8EB, _ZTVSt13basic_filebufIwSt11char_traitsIwEE); -REG_FUNC(0xB952752B, _ZTVSt13basic_istreamIwSt11char_traitsIwEE); -REG_FUNC(0x48F3405B, _ZTVSt13basic_ostreamIwSt11char_traitsIwEE); -REG_FUNC(0x53F02A18, _ZTVSt13runtime_error); -REG_FUNC(0x177FCCDC, _ZTVSt14overflow_error); -REG_FUNC(0x05548FF7, _ZTVSt15basic_streambufIcSt11char_traitsIcEE); -REG_FUNC(0xE8A9F32E, _ZTVSt15basic_streambufIwSt11char_traitsIwEE); -REG_FUNC(0x515AE097, _ZTVSt15underflow_error); -REG_FUNC(0x23EEDAF0, _ZTVSt16invalid_argument); -REG_FUNC(0x214E1395, _ZTVSt6_ctypeIcE); -REG_FUNC(0x798E7C29, _ZTVSt6_ctypeIwE); -REG_FUNC(0x9B3E5D29, _ZTVSt8_codecvtIccSt9_MbstatetE); -REG_FUNC(0x95405266, _ZTVSt8_codecvtIwcSt9_MbstatetE); -REG_FUNC(0xAA09FD32, _ZTVSt8bad_cast); -REG_FUNC(0xD58C5F52, _ZTVSt8ios_base); -REG_FUNC(0xA27EFBA3, _ZTVSt9bad_alloc); -REG_FUNC(0x147996ED, _ZTVSt9basic_iosIcSt11char_traitsIcEE); -REG_FUNC(0x0DE4AFE9, _ZTVSt9basic_iosIcSt11char_traitsIcEE__Sd__St9strstream); -REG_FUNC(0x87D18300, _ZTVSt9basic_iosIcSt11char_traitsIcEE__SiSd__St9strstream); -REG_FUNC(0x3D6A38D3, _ZTVSt9basic_iosIcSt11char_traitsIcEE__Si__Sd); -REG_FUNC(0xA8E795AF, _ZTVSt9basic_iosIcSt11char_traitsIcEE__Si__St10istrstream); -REG_FUNC(0xB7CD4C0E, _ZTVSt9basic_iosIcSt11char_traitsIcEE__SoSd__St9strstream); -REG_FUNC(0x21FDA8D0, _ZTVSt9basic_iosIcSt11char_traitsIcEE__So__Sd); -REG_FUNC(0xA8AAEABA, _ZTVSt9basic_iosIcSt11char_traitsIcEE__So__St10ostrstream); -REG_FUNC(0xCC03F184, _ZTVSt9basic_iosIwSt11char_traitsIwEE); -REG_FUNC(0xBC97F7D6, _ZTVSt9exception); -REG_FUNC(0xFD21E1F1, _ZTVSt9strstream); -REG_FUNC(0x8E9879A7, _ZTVSt9type_info); -REG_FUNC(0xE63750C1, _ZZNSt13basic_filebufIcSt11char_traitsIcEE5_InitEPSt10_Dnk_filetNS2_7_InitflEE7_Stinit); -REG_FUNC(0x1D4E29BC, _ZZNSt13basic_filebufIwSt11char_traitsIwEE5_InitEPSt10_Dnk_filetNS2_7_InitflEE7_Stinit); -REG_FUNC(0x08A37475, _ZTIN10__cxxabiv116__enum_type_infoE); -REG_FUNC(0x66CC7DBB, _ZTIN10__cxxabiv117__array_type_infoE); -REG_FUNC(0x81C44513, _ZTIN10__cxxabiv117__class_type_infoE); -REG_FUNC(0xC35024DA, _ZTIN10__cxxabiv117__pbase_type_infoE); -REG_FUNC(0x835E9E78, _ZTIN10__cxxabiv119__pointer_type_infoE); -REG_FUNC(0x62941235, _ZTIN10__cxxabiv120__function_type_infoE); -REG_FUNC(0x461E17F0, _ZTIN10__cxxabiv120__si_class_type_infoE); -REG_FUNC(0xB80BFF06, _ZTIN10__cxxabiv121__vmi_class_type_infoE); -REG_FUNC(0x7373F517, _ZTIN10__cxxabiv123__fundamental_type_infoE); -REG_FUNC(0xDF23E7B5, _ZTIN10__cxxabiv129__pointer_to_member_type_infoE); -REG_FUNC(0x74F19FF2, _ZTSN10__cxxabiv116__enum_type_infoE); -REG_FUNC(0x9BF7C72D, _ZTSN10__cxxabiv117__array_type_infoE); -REG_FUNC(0xCB5063F1, _ZTSN10__cxxabiv117__class_type_infoE); -REG_FUNC(0x4F5C24A6, _ZTSN10__cxxabiv117__pbase_type_infoE); -REG_FUNC(0x832019EE, _ZTSN10__cxxabiv119__pointer_type_infoE); -REG_FUNC(0xFB8956D8, _ZTSN10__cxxabiv120__function_type_infoE); -REG_FUNC(0xEAC164EC, _ZTSN10__cxxabiv120__si_class_type_infoE); -REG_FUNC(0x4106109E, _ZTSN10__cxxabiv121__vmi_class_type_infoE); -REG_FUNC(0x1FD93E3A, _ZTSN10__cxxabiv123__fundamental_type_infoE); -REG_FUNC(0xB64B4F55, _ZTSN10__cxxabiv129__pointer_to_member_type_infoE); -REG_FUNC(0x4937B673, _ZTVN10__cxxabiv116__enum_type_infoE); -REG_FUNC(0x9383FBD6, _ZTVN10__cxxabiv117__array_type_infoE); -REG_FUNC(0xF79AE8E1, _ZTVN10__cxxabiv117__class_type_infoE); -REG_FUNC(0xFEAD4BDA, _ZTVN10__cxxabiv117__pbase_type_infoE); -REG_FUNC(0xAA57484D, _ZTVN10__cxxabiv119__pointer_type_infoE); -REG_FUNC(0x897B54E3, _ZTVN10__cxxabiv120__function_type_infoE); -REG_FUNC(0x6BC74629, _ZTVN10__cxxabiv120__si_class_type_infoE); -REG_FUNC(0x7321E731, _ZTVN10__cxxabiv121__vmi_class_type_infoE); -REG_FUNC(0x33836375, _ZTVN10__cxxabiv123__fundamental_type_infoE); -REG_FUNC(0x94664DEB, _ZTVN10__cxxabiv129__pointer_to_member_type_infoE); -*/ diff --git a/rpcs3/Emu/PSP2/Modules/sceLibstdcxx.h b/rpcs3/Emu/PSP2/Modules/sceLibstdcxx.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLibstdcxx.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/rpcs3/Emu/PSP2/Modules/sceLiveArea.cpp b/rpcs3/Emu/PSP2/Modules/sceLiveArea.cpp deleted file mode 100644 index 95b62b6fbe..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLiveArea.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceLiveArea.h" - -logs::channel sceLiveArea("sceLiveArea"); - -s32 sceLiveAreaResourceReplaceAll(vm::cptr dirpath) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLiveAreaResourceGetStatus() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(SceLiveArea, nid, name) - -DECLARE(arm_module_manager::SceLiveArea)("SceLiveArea", []() -{ - REG_FUNC(0xA4B506F9, sceLiveAreaResourceReplaceAll); - REG_FUNC(0x54A395FB, sceLiveAreaResourceGetStatus); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceLiveArea.h b/rpcs3/Emu/PSP2/Modules/sceLiveArea.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLiveArea.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/rpcs3/Emu/PSP2/Modules/sceLocation.cpp b/rpcs3/Emu/PSP2/Modules/sceLocation.cpp deleted file mode 100644 index 5011703fa4..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLocation.cpp +++ /dev/null @@ -1,118 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceLocation.h" - -logs::channel sceLocation("sceLocation"); - -s32 sceLocationOpen(vm::ptr handle, SceLocationLocationMethod lmethod, SceLocationHeadingMethod hmethod) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationClose(u8 handle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationReopen(u8 handle, SceLocationLocationMethod lmethod, SceLocationHeadingMethod hmethod) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationGetMethod(u8 handle, vm::ptr lmethod, vm::ptr hmethod) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationGetLocation(u8 handle, vm::ptr linfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationCancelGetLocation(u8 handle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationStartLocationCallback(u8 handle, u32 distance, vm::ptr callback, vm::ptr userdata) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationStopLocationCallback(u8 handle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationGetHeading(u8 handle, vm::ptr hinfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationStartHeadingCallback(u8 handle, u32 difference, vm::ptr callback, vm::ptr userdata) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationStopHeadingCallback(u8 handle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationConfirm(u8 handle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationConfirmGetStatus(u8 handle, vm::ptr status) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationConfirmGetResult(u8 handle, vm::ptr result) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationConfirmAbort(u8 handle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationGetPermission(u8 handle, vm::ptr info) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceLocationSetGpsEmulationFile(vm::ptr filename) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceLibLocation, nid, name) - -DECLARE(arm_module_manager::SceLocation)("SceLibLocation", []() -{ - REG_FUNC(0xDD271661, sceLocationOpen); - REG_FUNC(0x14FE76E8, sceLocationClose); - REG_FUNC(0xB1F55065, sceLocationReopen); - REG_FUNC(0x188CE004, sceLocationGetMethod); - REG_FUNC(0x15BC27C8, sceLocationGetLocation); - REG_FUNC(0x71503251, sceLocationCancelGetLocation); - REG_FUNC(0x12D1F0EA, sceLocationStartLocationCallback); - REG_FUNC(0xED378700, sceLocationStopLocationCallback); - REG_FUNC(0x4E9E5ED9, sceLocationGetHeading); - REG_FUNC(0x07D4DFE0, sceLocationStartHeadingCallback); - REG_FUNC(0x92E53F94, sceLocationStopHeadingCallback); - //REG_FUNC(0xE055BCF5, sceLocationSetHeapAllocator); - REG_FUNC(0xC895E567, sceLocationConfirm); - REG_FUNC(0x730FF842, sceLocationConfirmGetStatus); - REG_FUNC(0xFF016C13, sceLocationConfirmGetResult); - REG_FUNC(0xE3CBF875, sceLocationConfirmAbort); - REG_FUNC(0x482622C6, sceLocationGetPermission); - REG_FUNC(0xDE0A9EA4, sceLocationSetGpsEmulationFile); - //REG_FUNC(0x760D08FF, sceLocationConfirmSetMessage); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceLocation.h b/rpcs3/Emu/PSP2/Modules/sceLocation.h deleted file mode 100644 index f6eccc0fac..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceLocation.h +++ /dev/null @@ -1,81 +0,0 @@ -#pragma once - -enum SceLocationLocationMethod : s32 -{ - SCE_LOCATION_LMETHOD_NONE = 0, - SCE_LOCATION_LMETHOD_AGPS_AND_3G_AND_WIFI = 1, - SCE_LOCATION_LMETHOD_GPS_AND_WIFI = 2, - SCE_LOCATION_LMETHOD_WIFI = 3, - SCE_LOCATION_LMETHOD_3G = 4, - SCE_LOCATION_LMETHOD_GPS = 5 -}; - -enum SceLocationHeadingMethod : s32 -{ - SCE_LOCATION_HMETHOD_NONE = 0, - SCE_LOCATION_HMETHOD_AUTO = 1, - SCE_LOCATION_HMETHOD_VERTICAL = 2, - SCE_LOCATION_HMETHOD_HORIZONTAL = 3, - SCE_LOCATION_HMETHOD_CAMERA = 4 -}; - -enum SceLocationDialogStatus : s32 -{ - SCE_LOCATION_DIALOG_STATUS_IDLE = 0, - SCE_LOCATION_DIALOG_STATUS_RUNNING = 1, - SCE_LOCATION_DIALOG_STATUS_FINISHED = 2 -}; - -enum SceLocationDialogResult : s32 -{ - SCE_LOCATION_DIALOG_RESULT_NONE = 0, - SCE_LOCATION_DIALOG_RESULT_DISABLE = 1, - SCE_LOCATION_DIALOG_RESULT_ENABLE = 2 -}; - -enum SceLocationPermissionApplicationStatus : s32 -{ - SCE_LOCATION_PERMISSION_APPLICATION_NONE = 0, - SCE_LOCATION_PERMISSION_APPLICATION_INIT = 1, - SCE_LOCATION_PERMISSION_APPLICATION_DENY = 2, - SCE_LOCATION_PERMISSION_APPLICATION_ALLOW = 3 -}; - -enum SceLocationPermissionStatus : s32 -{ - SCE_LOCATION_PERMISSION_DENY = 0, - SCE_LOCATION_PERMISSION_ALLOW = 1 -}; - -struct SceLocationLocationInfo -{ - le_t latitude; - le_t longitude; - le_t altitude; - le_t accuracy; - le_t reserve; - le_t direction; - le_t speed; - le_t timestamp; -}; - -struct SceLocationHeadingInfo -{ - le_t trueHeading; - le_t headingVectorX; - le_t headingVectorY; - le_t headingVectorZ; - le_t reserve; - le_t reserve2; - le_t timestamp; -}; - -using SceLocationLocationInfoCallback = void(s32 result, u8 handle, vm::cptr location, vm::ptr userdata); -using SceLocationHeadingInfoCallback = void(s32 result, u8 handle, vm::cptr heading, vm::ptr userdata); - -struct SceLocationPermissionInfo -{ - SceLocationPermissionStatus parentalstatus; - SceLocationPermissionStatus mainstatus; - SceLocationPermissionApplicationStatus applicationstatus; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceMd5.cpp b/rpcs3/Emu/PSP2/Modules/sceMd5.cpp deleted file mode 100644 index b5f43cac4e..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceMd5.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceMd5.h" - -logs::channel sceMd5("sceMd5"); - -s32 sceMd5Digest(vm::cptr plain, u32 len, vm::ptr digest) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMd5BlockInit(vm::ptr pContext) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMd5BlockUpdate(vm::ptr pContext, vm::cptr plain, u32 len) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMd5BlockResult(vm::ptr pContext, vm::ptr digest) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(SceMd5, nid, name) - -DECLARE(arm_module_manager::SceMd5)("SceMd5", []() -{ - REG_FUNC(0xB845BCCB, sceMd5Digest); - REG_FUNC(0x4D6436F9, sceMd5BlockInit); - REG_FUNC(0x094A4902, sceMd5BlockUpdate); - REG_FUNC(0xB94ABF83, sceMd5BlockResult); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceMd5.h b/rpcs3/Emu/PSP2/Modules/sceMd5.h deleted file mode 100644 index 14d1d630ef..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceMd5.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -struct SceMd5Context -{ - le_t h[4]; - le_t pad; - le_t usRemains; - le_t usComputed; - le_t ullTotalLen; - u8 buf[64]; - u8 result[64]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceMotion.cpp b/rpcs3/Emu/PSP2/Modules/sceMotion.cpp deleted file mode 100644 index 7278b0c52b..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceMotion.cpp +++ /dev/null @@ -1,109 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceMotion.h" - -logs::channel sceMotion("sceMotion"); - -s32 sceMotionGetState(vm::ptr motionState) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionGetSensorState(vm::ptr sensorState, s32 numRecords) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionGetBasicOrientation(vm::ptr basicOrientation) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionRotateYaw(const float radians) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionGetTiltCorrection() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionSetTiltCorrection(s32 setValue) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionGetDeadband() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionSetDeadband(s32 setValue) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionSetAngleThreshold(const float angle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -float sceMotionGetAngleThreshold() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionReset() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionMagnetometerOn() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionMagnetometerOff() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionGetMagnetometerState() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionStartSampling() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceMotionStopSampling() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(SceMotion, nid, name) - -DECLARE(arm_module_manager::SceMotion)("SceMotion", []() -{ - REG_FUNC(0xBDB32767, sceMotionGetState); - REG_FUNC(0x47D679EA, sceMotionGetSensorState); - REG_FUNC(0xC1652201, sceMotionGetTiltCorrection); - REG_FUNC(0xAF09FCDB, sceMotionSetTiltCorrection); - REG_FUNC(0x112E0EAE, sceMotionGetDeadband); - REG_FUNC(0x917EA390, sceMotionSetDeadband); - //REG_FUNC(0x20F00078, sceMotionRotateYaw); - REG_FUNC(0x0FD2CDA2, sceMotionReset); - REG_FUNC(0x28034AC9, sceMotionStartSampling); - REG_FUNC(0xAF32CB1D, sceMotionStopSampling); - //REG_FUNC(0xDACB2A41, sceMotionSetAngleThreshold); - //REG_FUNC(0x499B6C87, sceMotionGetAngleThreshold); - REG_FUNC(0x4F28BFE0, sceMotionGetBasicOrientation); - REG_FUNC(0x122A79F8, sceMotionMagnetometerOn); - REG_FUNC(0xC1A7395A, sceMotionMagnetometerOff); - REG_FUNC(0x3D4813AE, sceMotionGetMagnetometerState); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceMotion.h b/rpcs3/Emu/PSP2/Modules/sceMotion.h deleted file mode 100644 index 307c50bf5d..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceMotion.h +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once - -#include "Common.h" - -struct SceMotionState -{ - le_t timestamp; - SceFVector3 acceleration; - SceFVector3 angularVelocity; - u8 reserve1[12]; - SceFQuaternion deviceQuat; - SceUMatrix4 rotationMatrix; - SceUMatrix4 nedMatrix; - u8 reserve2[4]; - SceFVector3 basicOrientation; - le_t hostTimestamp; - u8 reserve3[40]; -}; - -struct SceMotionSensorState -{ - SceFVector3 accelerometer; - SceFVector3 gyro; - u8 reserve1[12]; - le_t timestamp; - le_t counter; - u8 reserve2[4]; - le_t hostTimestamp; - u8 reserve3[8]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceMt19937.cpp b/rpcs3/Emu/PSP2/Modules/sceMt19937.cpp deleted file mode 100644 index db85ab2b99..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceMt19937.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceMt19937.h" - -logs::channel sceMt19937("sceMt19937"); - -s32 sceMt19937Init(vm::ptr pCtx, u32 seed) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceMt19937UInt(vm::ptr pCtx) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceMt19937, nid, name) - -DECLARE(arm_module_manager::SceMt19937)("SceMt19937", []() -{ - REG_FUNC(0xEE5BA27C, sceMt19937Init); - REG_FUNC(0x29E43BB5, sceMt19937UInt); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceMt19937.h b/rpcs3/Emu/PSP2/Modules/sceMt19937.h deleted file mode 100644 index 65981e30bc..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceMt19937.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -struct SceMt19937Context -{ - le_t count; - le_t state[624]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceNet.cpp b/rpcs3/Emu/PSP2/Modules/sceNet.cpp deleted file mode 100644 index ae758557f6..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNet.cpp +++ /dev/null @@ -1,362 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceNet.h" - -logs::channel sceNet("sceNet"); - -s32 sceNetSetDnsInfo(vm::ptr info, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetClearDnsCache(s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetDumpCreate(vm::cptr name, s32 len, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetDumpRead(s32 id, vm::ptr buf, s32 len, vm::ptr pflags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetDumpDestroy(s32 id) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetDumpAbort(s32 id, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetEpollCreate(vm::cptr name, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetEpollControl(s32 eid, s32 op, s32 id, vm::ptr event) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetEpollWait(s32 eid, vm::ptr events, s32 maxevents, s32 timeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetEpollWaitCB(s32 eid, vm::ptr events, s32 maxevents, s32 timeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetEpollDestroy(s32 eid) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetEpollAbort(s32 eid, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceNetErrnoLoc() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetEtherStrton(vm::cptr str, vm::ptr n) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetEtherNtostr(vm::cptr n, vm::ptr str, u32 len) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetGetMacAddress(vm::ptr addr, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNetInetNtop(s32 af, vm::cptr src, vm::ptr dst, SceNetSocklen_t size) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetInetPton(s32 af, vm::cptr src, vm::ptr dst) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u64 sceNetHtonll(u64 host64) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceNetHtonl(u32 host32) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u16 sceNetHtons(u16 host16) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u64 sceNetNtohll(u64 net64) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceNetNtohl(u32 net32) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u16 sceNetNtohs(u16 net16) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetInit(vm::ptr param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetTerm() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetShowIfconfig() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetShowRoute() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetShowNetstat() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetEmulationSet(vm::ptr param, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetEmulationGet(vm::ptr param, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetResolverCreate(vm::cptr name, vm::ptr param, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetResolverStartNtoa(s32 rid, vm::cptr hostname, vm::ptr addr, s32 timeout, s32 retry, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetResolverStartAton(s32 rid, vm::cptr addr, vm::ptr hostname, s32 len, s32 timeout, s32 retry, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetResolverGetError(s32 rid, vm::ptr result) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetResolverDestroy(s32 rid) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetResolverAbort(s32 rid, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetSocket(vm::cptr name, s32 domain, s32 type, s32 protocol) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetAccept(s32 s, vm::ptr addr, vm::ptr addrlen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetBind(s32 s, vm::cptr addr, SceNetSocklen_t addrlen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetConnect(s32 s, vm::cptr name, SceNetSocklen_t namelen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetGetpeername(s32 s, vm::ptr name, vm::ptr namelen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetGetsockname(s32 s, vm::ptr name, vm::ptr namelen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetGetsockopt(s32 s, s32 level, s32 optname, vm::ptr optval, vm::ptr optlen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetListen(s32 s, s32 backlog) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetRecv(s32 s, vm::ptr buf, u32 len, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetRecvfrom(s32 s, vm::ptr buf, u32 len, s32 flags, vm::ptr from, vm::ptr fromlen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetRecvmsg(s32 s, vm::ptr msg, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetSend(s32 s, vm::cptr msg, u32 len, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetSendto(s32 s, vm::cptr msg, u32 len, s32 flags, vm::cptr to, SceNetSocklen_t tolen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetSendmsg(s32 s, vm::cptr msg, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetSetsockopt(s32 s, s32 level, s32 optname, vm::cptr optval, SceNetSocklen_t optlen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetShutdown(s32 s, s32 how) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetSocketClose(s32 s) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetSocketAbort(s32 s, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetGetSockInfo(s32 s, vm::ptr info, s32 n, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetGetSockIdInfo(vm::ptr fds, s32 sockinfoflags, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetGetStatisticsInfo(vm::ptr info, s32 flags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceNet, nid, name) - -DECLARE(arm_module_manager::SceNet)("SceNet", []() -{ - REG_FUNC(0xD62EF218, sceNetSetDnsInfo); - REG_FUNC(0xFEC1166D, sceNetClearDnsCache); - REG_FUNC(0xAFF9FA4D, sceNetDumpCreate); - REG_FUNC(0x04042925, sceNetDumpRead); - REG_FUNC(0x82DDCF63, sceNetDumpDestroy); - REG_FUNC(0x3B24E75F, sceNetDumpAbort); - REG_FUNC(0xF9D102AE, sceNetEpollCreate); - REG_FUNC(0x4C8764AC, sceNetEpollControl); - REG_FUNC(0x45CE337D, sceNetEpollWait); - REG_FUNC(0x92D3E767, sceNetEpollWaitCB); - REG_FUNC(0x7915CAF3, sceNetEpollDestroy); - REG_FUNC(0x93FCC4E8, sceNetEpollAbort); - REG_FUNC(0xE37F34AA, sceNetErrnoLoc); - REG_FUNC(0xEEC6D75F, sceNetEtherStrton); - REG_FUNC(0x84334EB2, sceNetEtherNtostr); - REG_FUNC(0x06C05518, sceNetGetMacAddress); - REG_FUNC(0x98839B74, sceNetInetNtop); - REG_FUNC(0xD5EEB048, sceNetInetPton); - REG_FUNC(0x12C19209, sceNetHtonll); - REG_FUNC(0x4C30B03C, sceNetHtonl); - REG_FUNC(0x9FA3207B, sceNetHtons); - REG_FUNC(0xFB3336A6, sceNetNtohll); - REG_FUNC(0xD2EAA645, sceNetNtohl); - REG_FUNC(0x07845128, sceNetNtohs); - REG_FUNC(0xEB03E265, sceNetInit); - REG_FUNC(0xEA3CC286, sceNetTerm); - REG_FUNC(0x658B903B, sceNetShowIfconfig); - REG_FUNC(0x6AB3B74B, sceNetShowRoute); - REG_FUNC(0x338EDC2E, sceNetShowNetstat); - REG_FUNC(0x561DFD03, sceNetEmulationSet); - REG_FUNC(0xAE3F4AC6, sceNetEmulationGet); - REG_FUNC(0x6DA29319, sceNetResolverCreate); - REG_FUNC(0x1EB11857, sceNetResolverStartNtoa); - REG_FUNC(0x0424AE26, sceNetResolverStartAton); - REG_FUNC(0x874EF500, sceNetResolverGetError); - REG_FUNC(0x3559F098, sceNetResolverDestroy); - REG_FUNC(0x38EBBD57, sceNetResolverAbort); - REG_FUNC(0xF084FCE3, sceNetSocket); - REG_FUNC(0x1ADF9BB1, sceNetAccept); - REG_FUNC(0x1296A94B, sceNetBind); - REG_FUNC(0x11E5B6F6, sceNetConnect); - REG_FUNC(0x2348D353, sceNetGetpeername); - REG_FUNC(0x1C66A6DB, sceNetGetsockname); - REG_FUNC(0xBA652062, sceNetGetsockopt); - REG_FUNC(0x7A8DA094, sceNetListen); - REG_FUNC(0x023643B7, sceNetRecv); - REG_FUNC(0xB226138B, sceNetRecvfrom); - REG_FUNC(0xDE94C6FE, sceNetRecvmsg); - REG_FUNC(0xE3DD8CD9, sceNetSend); - REG_FUNC(0x52DB31D5, sceNetSendto); - REG_FUNC(0x99C579AE, sceNetSendmsg); - REG_FUNC(0x065505CA, sceNetSetsockopt); - REG_FUNC(0x69E50BB5, sceNetShutdown); - REG_FUNC(0x29822B4D, sceNetSocketClose); - REG_FUNC(0x891C1B9B, sceNetSocketAbort); - REG_FUNC(0xB1AF6840, sceNetGetSockInfo); - REG_FUNC(0x138CF1D6, sceNetGetSockIdInfo); - REG_FUNC(0xA86F8FE5, sceNetGetStatisticsInfo); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceNet.h b/rpcs3/Emu/PSP2/Modules/sceNet.h deleted file mode 100644 index 8173c492f5..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNet.h +++ /dev/null @@ -1,180 +0,0 @@ -#pragma once - -typedef u32 SceNetSocklen_t; - -struct SceNetInAddr -{ - le_t s_addr; -}; - -struct SceNetSockaddrIn -{ - u8 sin_len; - u8 sin_family; - le_t sin_port; - SceNetInAddr sin_addr; - le_t sin_vport; - char sin_zero[6]; -}; - -struct SceNetDnsInfo -{ - SceNetInAddr dns_addr[2]; -}; - -struct SceNetSockaddr -{ - u8 sa_len; - u8 sa_family; - char sa_data[14]; -}; - -struct SceNetEpollDataExt -{ - le_t id; - le_t data; -}; - -union SceNetEpollData -{ - vm::lptr ptr; - le_t fd; - le_t _u32; - le_t _u64; - SceNetEpollDataExt ext; -}; - -struct SceNetEpollSystemData -{ - le_t system[4]; -}; - -struct SceNetEpollEvent -{ - le_t events; - le_t reserved; - SceNetEpollSystemData system; - SceNetEpollData data; -}; - -struct SceNetEtherAddr -{ - u8 data[6]; -}; - -typedef u32 SceNetIdMask; - -struct SceNetFdSet -{ - SceNetIdMask bits[32]; -}; - -struct SceNetIpMreq -{ - SceNetInAddr imr_multiaddr; - SceNetInAddr imr_interface; -}; - -struct SceNetInitParam -{ - vm::lptr memory; - le_t size; - le_t flags; -}; - -struct SceNetEmulationData -{ - le_t drop_rate; - le_t drop_duration; - le_t pass_duration; - le_t delay_time; - le_t delay_jitter; - le_t order_rate; - le_t order_delay_time; - le_t duplication_rate; - le_t bps_limit; - le_t lower_size_limit; - le_t upper_size_limit; - le_t system_policy_pattern; - le_t game_policy_pattern; - le_t policy_flags[64]; - u8 reserved[64]; -}; - -struct SceNetEmulationParam -{ - le_t version; - le_t option_number; - le_t current_version; - le_t result; - le_t flags; - le_t reserved1; - SceNetEmulationData send; - SceNetEmulationData recv; - le_t seed; - u8 reserved[44]; -}; - -using SceNetResolverFunctionAllocate = vm::ptr(u32 size, s32 rid, vm::cptr name, vm::ptr user); -using SceNetResolverFunctionFree = void(vm::ptr ptr, s32 rid, vm::cptr name, vm::ptr user); - -struct SceNetResolverParam -{ - vm::lptr allocate; - vm::lptr free; - vm::lptr user; -}; - -struct SceNetLinger -{ - le_t l_onoff; - le_t l_linger; -}; - -struct SceNetIovec -{ - vm::lptr iov_base; - le_t iov_len; -}; - -struct SceNetMsghdr -{ - vm::lptr msg_name; - le_t msg_namelen; - vm::lptr msg_iov; - le_t msg_iovlen; - vm::lptr msg_control; - le_t msg_controllen; - le_t msg_flags; -}; - -struct SceNetSockInfo -{ - char name[32]; - le_t pid; - le_t s; - s8 socket_type; - s8 policy; - le_t reserved16; - le_t recv_queue_length; - le_t send_queue_length; - SceNetInAddr local_adr; - SceNetInAddr remote_adr; - le_t local_port; - le_t remote_port; - le_t local_vport; - le_t remote_vport; - le_t state; - le_t flags; - le_t reserved[8]; -}; - -struct SceNetStatisticsInfo -{ - le_t kernel_mem_free_size; - le_t kernel_mem_free_min; - le_t packet_count; - le_t packet_qos_count; - le_t libnet_mem_free_size; - le_t libnet_mem_free_min; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceNetCtl.cpp b/rpcs3/Emu/PSP2/Modules/sceNetCtl.cpp deleted file mode 100644 index 2d921cf76a..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNetCtl.cpp +++ /dev/null @@ -1,109 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceNetCtl.h" - -logs::channel sceNetCtl("sceNetCtl"); - -s32 sceNetCtlInit() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceNetCtlTerm() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlCheckCallback() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlInetGetResult(s32 eventType, vm::ptr errorCode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlAdhocGetResult(s32 eventType, vm::ptr errorCode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlInetGetInfo(s32 code, vm::ptr info) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlInetGetState(vm::ptr state) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlGetNatInfo(vm::ptr natinfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlInetRegisterCallback(vm::ptr func, vm::ptr arg, vm::ptr cid) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlInetUnregisterCallback(s32 cid) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlAdhocRegisterCallback(vm::ptr func, vm::ptr arg, vm::ptr cid) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlAdhocUnregisterCallback(s32 cid) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlAdhocGetState(vm::ptr state) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlAdhocDisconnect() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlAdhocGetPeerList(vm::ptr buflen, vm::ptr buf) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNetCtlAdhocGetInAddr(vm::ptr inaddr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(SceNetCtl, nid, name) - -DECLARE(arm_module_manager::SceNetCtl)("SceNetCtl", []() -{ - REG_FUNC(0x495CA1DB, sceNetCtlInit); - REG_FUNC(0xCD188648, sceNetCtlTerm); - REG_FUNC(0xDFFC3ED4, sceNetCtlCheckCallback); - REG_FUNC(0x6B20EC02, sceNetCtlInetGetResult); - REG_FUNC(0x7AE0ED19, sceNetCtlAdhocGetResult); - REG_FUNC(0xB26D07F3, sceNetCtlInetGetInfo); - REG_FUNC(0x6D26AC68, sceNetCtlInetGetState); - REG_FUNC(0xEAEE6185, sceNetCtlInetRegisterCallback); - REG_FUNC(0xD0C3BF3F, sceNetCtlInetUnregisterCallback); - REG_FUNC(0x4DDD6149, sceNetCtlGetNatInfo); - REG_FUNC(0x0961A561, sceNetCtlAdhocGetState); - REG_FUNC(0xFFA9D594, sceNetCtlAdhocRegisterCallback); - REG_FUNC(0xA4471E10, sceNetCtlAdhocUnregisterCallback); - REG_FUNC(0xED43B79A, sceNetCtlAdhocDisconnect); - REG_FUNC(0x77586C59, sceNetCtlAdhocGetPeerList); - REG_FUNC(0x7118C99D, sceNetCtlAdhocGetInAddr); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceNetCtl.h b/rpcs3/Emu/PSP2/Modules/sceNetCtl.h deleted file mode 100644 index 219486777c..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNetCtl.h +++ /dev/null @@ -1,45 +0,0 @@ -#pragma once - -#include "sceNet.h" - -union SceNetCtlInfo -{ - char cnf_name[65]; - le_t device; - SceNetEtherAddr ether_addr; - le_t mtu; - le_t link; - SceNetEtherAddr bssid; - char ssid[33]; - le_t wifi_security; - le_t rssi_dbm; - le_t rssi_percentage; - le_t channel; - le_t ip_config; - char dhcp_hostname[256]; - char pppoe_auth_name[128]; - char ip_address[16]; - char netmask[16]; - char default_route[16]; - char primary_dns[16]; - char secondary_dns[16]; - le_t http_proxy_config; - char http_proxy_server[256]; - le_t http_proxy_port; -}; - -struct SceNetCtlNatInfo -{ - le_t size; - le_t stun_status; - le_t nat_type; - SceNetInAddr mapped_addr; -}; - -struct SceNetCtlAdhocPeerInfo -{ - vm::lptr next; - SceNetInAddr inet_addr; -}; - -using SceNetCtlCallback = void(s32 event_type, vm::ptr arg); diff --git a/rpcs3/Emu/PSP2/Modules/sceNgs.cpp b/rpcs3/Emu/PSP2/Modules/sceNgs.cpp deleted file mode 100644 index faaee502f6..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNgs.cpp +++ /dev/null @@ -1,392 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceNgs.h" - -logs::channel sceNgs("sceNgs"); - -s32 sceNgsSystemGetRequiredMemorySize(vm::cptr pSynthParams, vm::ptr pnSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsSystemInit(vm::ptr pSynthSysMemory, const u32 uMemSize, vm::cptr pSynthParams, vm::ptr pSystemHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsSystemUpdate(SceNgsHSynSystem hSystemHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsSystemRelease(SceNgsHSynSystem hSystemHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsSystemLock(SceNgsHSynSystem hSystemHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsSystemUnlock(SceNgsHSynSystem hSystemHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsSystemSetParamErrorCallback(SceNgsHSynSystem hSystemHandle, vm::ptr callbackFuncPtr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsSystemSetFlags(SceNgsHSynSystem hSystemHandle, const u32 uSystemFlags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsRackGetRequiredMemorySize(SceNgsHSynSystem hSystemHandle, vm::cptr pRackDesc, vm::ptr pnSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsRackInit(SceNgsHSynSystem hSystemHandle, vm::ptr pRackBuffer, vm::cptr pRackDesc, vm::ptr pRackHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsRackGetVoiceHandle(SceNgsHRack hRackHandle, const u32 uIndex, vm::ptr pVoiceHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsRackRelease(SceNgsHRack hRackHandle, vm::ptr callbackFuncPtr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsRackSetParamErrorCallback(SceNgsHRack hRackHandle, vm::ptr callbackFuncPtr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceInit(SceNgsHVoice hVoiceHandle, vm::cptr pPreset, const u32 uInitFlags) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoicePlay(SceNgsHVoice hVoiceHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceKeyOff(SceNgsHVoice hVoiceHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceKill(SceNgsHVoice hVoiceHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoicePause(SceNgsHVoice hVoiceHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceResume(SceNgsHVoice hVoiceHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceSetPreset(SceNgsHVoice hVoiceHandle, vm::cptr pVoicePreset) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceLockParams(SceNgsHVoice hVoiceHandle, const u32 uModule, const u32 uParamsInterfaceId, vm::ptr pParamsBuffer) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceUnlockParams(SceNgsHVoice hVoiceHandle, const u32 uModule) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceSetParamsBlock(SceNgsHVoice hVoiceHandle, vm::cptr pParamData, const u32 uSize, vm::ptr pnErrorCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceBypassModule(SceNgsHVoice hVoiceHandle, const u32 uModule, const u32 uBypassFlag) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceSetModuleCallback(SceNgsHVoice hVoiceHandle, const u32 uModule, vm::ptr callbackFuncPtr, vm::ptr pUserData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceSetFinishedCallback(SceNgsHVoice hVoiceHandle, vm::ptr callbackFuncPtr, vm::ptr pUserData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceGetStateData(SceNgsHVoice hVoiceHandle, const u32 uModule, vm::ptr pMem, const u32 uMemSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceGetInfo(SceNgsHVoice hVoiceHandle, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceGetModuleType(SceNgsHVoice hVoiceHandle, const u32 uModule, vm::ptr pModuleType) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceGetModuleBypass(SceNgsHVoice hVoiceHandle, const u32 uModule, vm::ptr puBypassFlag) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceGetParamsOutOfRange(SceNgsHVoice hVoiceHandle, const u32 uModule, vm::ptr pszMessageBuffer) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsPatchCreateRouting(vm::cptr pPatchInfo, vm::ptr pPatchHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsPatchGetInfo(SceNgsHPatch hPatchHandle, vm::ptr pRouteInfo, vm::ptr pSetup) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoiceGetOutputPatch(SceNgsHVoice hVoiceHandle, const s32 nOutputIndex, const s32 nSubIndex, vm::ptr pPatchHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsPatchRemoveRouting(SceNgsHPatch hPatchHandle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoicePatchSetVolume(SceNgsHPatch hPatchHandle, const s32 nOutputChannel, const s32 nInputChannel, const float fVol) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoicePatchSetVolumes(SceNgsHPatch hPatchHandle, const s32 nOutputChannel, vm::cptr pVolumes, const s32 nVols) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsVoicePatchSetVolumesMatrix(SceNgsHPatch hPatchHandle, vm::cptr pMatrix) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsModuleGetNumPresets(SceNgsHSynSystem hSystemHandle, const u32 uModuleID, vm::ptr puNumPresets) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNgsModuleGetPreset(SceNgsHSynSystem hSystemHandle, const u32 uModuleID, const u32 uPresetIndex, vm::ptr pParamsBuffer) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetCompressorBuss() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetCompressorSideChainBuss() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetDelayBuss() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetDistortionBuss() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetEnvelopeBuss() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetEqBuss() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetMasterBuss() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetMixerBuss() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetPauserBuss() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetReverbBuss() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetSasEmuVoice() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetSimpleVoice() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetTemplate1() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::cptr sceNgsVoiceDefGetAtrac9Voice() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaNgsGetDefaultConfig(vm::ptr config) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaNgsGetNeededMemory(vm::cptr config, vm::ptr sizeInBytes) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaNgsInit(vm::cptr config, vm::ptr buffer, u32 sizeInBytes) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaNgsShutdown() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaNgsSetSynthName(SceNgsHSynSystem synthHandle, vm::cptr name) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaNgsSetRackName(SceNgsHRack rackHandle, vm::cptr name) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaNgsSetVoiceName(SceNgsHVoice voiceHandle, vm::cptr name) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaNgsSetSampleName(vm::cptr location, u32 length, vm::cptr name) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaNgsTrace(vm::cptr message) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceNgs, nid, name) - -DECLARE(arm_module_manager::SceNgs)("SceNgs", []() -{ - REG_FUNC(0x6CE8B36F, sceNgsSystemGetRequiredMemorySize); - REG_FUNC(0xED14CF4A, sceNgsSystemInit); - REG_FUNC(0x684F080C, sceNgsSystemUpdate); - REG_FUNC(0x4A25BEBC, sceNgsSystemRelease); - REG_FUNC(0xB9D971F2, sceNgsSystemLock); - REG_FUNC(0x0A93EA96, sceNgsSystemUnlock); - REG_FUNC(0x5ADD22DC, sceNgsSystemSetParamErrorCallback); - REG_FUNC(0x64D80013, sceNgsSystemSetFlags); - REG_FUNC(0x477318C0, sceNgsRackGetRequiredMemorySize); - REG_FUNC(0x0A92E4EC, sceNgsRackInit); - REG_FUNC(0xFE1A98E9, sceNgsRackGetVoiceHandle); - REG_FUNC(0xDD5CA10B, sceNgsRackRelease); - REG_FUNC(0x534B6E3F, sceNgsRackSetParamErrorCallback); - REG_FUNC(0x1DDBEBEB, sceNgsVoiceInit); - REG_FUNC(0xFA0A0F34, sceNgsVoicePlay); - REG_FUNC(0xBB13373D, sceNgsVoiceKeyOff); - REG_FUNC(0x0E291AAD, sceNgsVoiceKill); - REG_FUNC(0xD7786E99, sceNgsVoicePause); - REG_FUNC(0x54CFB981, sceNgsVoiceResume); - REG_FUNC(0x8A88E665, sceNgsVoiceSetPreset); - REG_FUNC(0xAB6BEF8F, sceNgsVoiceLockParams); - REG_FUNC(0x3D46D8A7, sceNgsVoiceUnlockParams); - REG_FUNC(0xFB8174B1, sceNgsVoiceSetParamsBlock); - REG_FUNC(0x9AB87E71, sceNgsVoiceBypassModule); - REG_FUNC(0x24E909A8, sceNgsVoiceSetModuleCallback); - REG_FUNC(0x17A6F564, sceNgsVoiceSetFinishedCallback); - REG_FUNC(0xC9B8C0B4, sceNgsVoiceGetStateData); - REG_FUNC(0x5551410D, sceNgsVoiceGetInfo); - REG_FUNC(0xB307185E, sceNgsVoiceGetModuleType); - REG_FUNC(0x431BF3AB, sceNgsVoiceGetModuleBypass); - REG_FUNC(0xD668B49C, sceNgsPatchCreateRouting); - REG_FUNC(0x98703DBC, sceNgsPatchGetInfo); - REG_FUNC(0x01A52E3A, sceNgsVoiceGetOutputPatch); - REG_FUNC(0xD0C9AE5A, sceNgsPatchRemoveRouting); - //REG_FUNC(0xA3C807BC, sceNgsVoicePatchSetVolume); - REG_FUNC(0xBD6F57F0, sceNgsVoicePatchSetVolumes); - REG_FUNC(0xA0F5402D, sceNgsVoicePatchSetVolumesMatrix); - REG_FUNC(0xF6B68C31, sceNgsVoiceDefGetEnvelopeBuss); - REG_FUNC(0x9DCF50F5, sceNgsVoiceDefGetReverbBuss); - REG_FUNC(0x214485D6, sceNgsVoiceDefGetPauserBuss); - REG_FUNC(0xE0AC8776, sceNgsVoiceDefGetMixerBuss); - REG_FUNC(0x79A121D1, sceNgsVoiceDefGetMasterBuss); - REG_FUNC(0x0E0ACB68, sceNgsVoiceDefGetCompressorBuss); - REG_FUNC(0x1AF83512, sceNgsVoiceDefGetCompressorSideChainBuss); - REG_FUNC(0xAAD90DEB, sceNgsVoiceDefGetDistortionBuss); - REG_FUNC(0xF964120E, sceNgsVoiceDefGetEqBuss); - REG_FUNC(0xE9B572B7, sceNgsVoiceDefGetTemplate1); - REG_FUNC(0x0D5399CF, sceNgsVoiceDefGetSimpleVoice); - REG_FUNC(0x1F51C2BA, sceNgsVoiceDefGetSasEmuVoice); - REG_FUNC(0x4CBE08F3, sceNgsVoiceGetParamsOutOfRange); - REG_FUNC(0x14EF65A0, sceNgsVoiceDefGetAtrac9Voice); - REG_FUNC(0x4D705E3E, sceNgsVoiceDefGetDelayBuss); - REG_FUNC(0x5FD8AEDB, sceSulphaNgsGetDefaultConfig); - REG_FUNC(0x793E3E8C, sceSulphaNgsGetNeededMemory); - REG_FUNC(0xAFCD824F, sceSulphaNgsInit); - REG_FUNC(0xD124BFB1, sceSulphaNgsShutdown); - REG_FUNC(0x2F3F7515, sceSulphaNgsSetSynthName); - REG_FUNC(0x251AF6A9, sceSulphaNgsSetRackName); - REG_FUNC(0x508975BD, sceSulphaNgsSetVoiceName); - REG_FUNC(0x54EC5B8D, sceSulphaNgsSetSampleName); - REG_FUNC(0xDC7C0F05, sceSulphaNgsTrace); - REG_FUNC(0x5C71FE09, sceNgsModuleGetNumPresets); - REG_FUNC(0xC58298A7, sceNgsModuleGetPreset); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceNgs.h b/rpcs3/Emu/PSP2/Modules/sceNgs.h deleted file mode 100644 index 3c0c34a9f6..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNgs.h +++ /dev/null @@ -1,104 +0,0 @@ -#pragma once - -struct SceNgsVoiceDefinition; - -using SceNgsHVoice = vm::ptr; -using SceNgsHPatch = vm::ptr; -using SceNgsHSynSystem = vm::ptr; -using SceNgsHRack = vm::ptr; - -struct SceNgsModuleParamHeader -{ - le_t moduleId; - le_t chan; -}; - -struct SceNgsParamsDescriptor -{ - le_t id; - le_t size; -}; - -struct SceNgsBufferInfo -{ - vm::lptr data; - le_t size; -}; - -struct SceNgsVoicePreset -{ - le_t nNameOffset; - le_t uNameLength; - le_t nPresetDataOffset; - le_t uSizePresetData; - le_t nBypassFlagsOffset; - le_t uNumBypassFlags; -}; - -struct SceNgsSystemInitParams -{ - le_t nMaxRacks; - le_t nMaxVoices; - le_t nGranularity; - le_t nSampleRate; - le_t nMaxModules; -}; - -struct SceNgsRackDescription -{ - vm::lcptr pVoiceDefn; - le_t nVoices; - le_t nChannelsPerVoice; - le_t nMaxPatchesPerInput; - le_t nPatchesPerOutput; - vm::lptr pUserReleaseData; -}; - -struct SceNgsPatchSetupInfo -{ - SceNgsHVoice hVoiceSource; - le_t nSourceOutputIndex; - le_t nSourceOutputSubIndex; - SceNgsHVoice hVoiceDestination; - le_t nTargetInputIndex; -}; - -struct SceNgsVolumeMatrix -{ - le_t m[2][2]; -}; - -struct SceNgsPatchRouteInfo -{ - le_t nOutputChannels; - le_t nInputChannels; - SceNgsVolumeMatrix vols; -}; - -struct SceNgsVoiceInfo -{ - le_t uVoiceState; - le_t uNumModules; - le_t uNumInputs; - le_t uNumOutputs; - le_t uNumPatchesPerOutput; -}; - -struct SceNgsCallbackInfo -{ - SceNgsHVoice hVoiceHandle; - SceNgsHRack hRackHandle; - le_t uModuleID; - le_t nCallbackData; - le_t nCallbackData2; - vm::lptr pCallbackPtr; - vm::lptr pUserData; -}; - -using SceNgsCallbackFunc = void(vm::cptr pCallbackInfo); - -struct SceSulphaNgsConfig -{ - le_t maxNamedObjects; - le_t maxTraceBufferBytes; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceNpBasic.cpp b/rpcs3/Emu/PSP2/Modules/sceNpBasic.cpp deleted file mode 100644 index 5b4507756c..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNpBasic.cpp +++ /dev/null @@ -1,121 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceNpBasic.h" - -logs::channel sceNpBasic("sceNpBasic"); - -s32 sceNpBasicInit(vm::ptr opt) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicTerm(ARMv7Thread&) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicRegisterHandler(vm::cptr handlers, vm::cptr context, vm::ptr userdata) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicUnregisterHandler(ARMv7Thread&) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicCheckCallback() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicGetFriendOnlineStatus(vm::cptr friendId, vm::ptr status) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicGetGamePresenceOfFriend(vm::cptr friendId, vm::ptr presence) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicGetFriendListEntryCount(vm::ptr count) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicGetFriendListEntries(u32 startIndex, vm::ptr entries, u32 numEntries, vm::ptr retrieved) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicGetBlockListEntryCount(vm::ptr count) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicGetBlockListEntries(u32 startIndex, vm::ptr entries, u32 numEntries, vm::ptr retrieved) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicCheckIfPlayerIsBlocked(vm::cptr player, vm::ptr playerIsBlocked) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicSetInGamePresence(vm::cptr presence) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicUnsetInGamePresence() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicSendInGameDataMessage(vm::cptr to, vm::cptr message) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicRecordPlaySessionLog(vm::cptr withWhom, vm::cptr description) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicGetPlaySessionLogSize(SceNpBasicPlaySessionLogType type, vm::ptr size) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBasicGetPlaySessionLog(SceNpBasicPlaySessionLogType type, u32 index, vm::ptr log) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(SceNpBasic, nid, name) - -DECLARE(arm_module_manager::SceNpBasic)("SceNpBasic", []() -{ - REG_FUNC(0xEFB91A99, sceNpBasicInit); - REG_FUNC(0x389BCB3B, sceNpBasicTerm); - REG_FUNC(0x26E6E048, sceNpBasicRegisterHandler); - REG_FUNC(0x050AE072, sceNpBasicUnregisterHandler); - REG_FUNC(0x20146AEC, sceNpBasicCheckCallback); - REG_FUNC(0x5183A4B5, sceNpBasicGetFriendOnlineStatus); - REG_FUNC(0xEF8A91BC, sceNpBasicGetGamePresenceOfFriend); - REG_FUNC(0xDF41F308, sceNpBasicGetFriendListEntryCount); - REG_FUNC(0xFF07E787, sceNpBasicGetFriendListEntries); - REG_FUNC(0x407E1E6F, sceNpBasicGetBlockListEntryCount); - REG_FUNC(0x1211AE8E, sceNpBasicGetBlockListEntries); - REG_FUNC(0xF51545D8, sceNpBasicCheckIfPlayerIsBlocked); - REG_FUNC(0x51D75562, sceNpBasicSetInGamePresence); - REG_FUNC(0xD20C2370, sceNpBasicUnsetInGamePresence); - REG_FUNC(0x7A5020A5, sceNpBasicSendInGameDataMessage); - REG_FUNC(0x3B0A7F47, sceNpBasicRecordPlaySessionLog); - REG_FUNC(0xFB0F7FDF, sceNpBasicGetPlaySessionLogSize); - REG_FUNC(0x364531A8, sceNpBasicGetPlaySessionLog); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceNpBasic.h b/rpcs3/Emu/PSP2/Modules/sceNpBasic.h deleted file mode 100644 index 4079e6c26e..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNpBasic.h +++ /dev/null @@ -1,115 +0,0 @@ -#pragma once - -#include "sceNpCommon.h" - -enum SceNpBasicFriendListEventType : s32 -{ - SCE_NP_BASIC_FRIEND_LIST_EVENT_TYPE_SYNC = 1, - SCE_NP_BASIC_FRIEND_LIST_EVENT_TYPE_SYNC_DONE = 2, - SCE_NP_BASIC_FRIEND_LIST_EVENT_TYPE_ADDED = 3, - SCE_NP_BASIC_FRIEND_LIST_EVENT_TYPE_DELETED = 4 -}; - -using SceNpBasicFriendListEventHandler = void(SceNpBasicFriendListEventType eventType, vm::cptr friendId, vm::ptr userdata); - -enum SceNpBasicFriendOnlineStatusEventType : s32 -{ - SCE_NP_BASIC_FRIEND_ONLINE_STATUS_EVENT_TYPE_SYNC = 1, - SCE_NP_BASIC_FRIEND_ONLINE_STATUS_EVENT_TYPE_SYNC_DONE = 2, - SCE_NP_BASIC_FRIEND_ONLINE_STATUS_EVENT_TYPE_UPDATED = 3 -}; - -enum SceNpBasicFriendOnlineStatus : s32 -{ - SCE_NP_BASIC_FRIEND_ONLINE_STATUS_UNKNOWN = 0, - SCE_NP_BASIC_FRIEND_ONLINE_STATUS_OFFLINE = 1, - SCE_NP_BASIC_FRIEND_ONLINE_STATUS_STANDBY = 2, - SCE_NP_BASIC_FRIEND_ONLINE_STATUS_ONLINE_OUT_OF_CONTEXT = 3, - SCE_NP_BASIC_FRIEND_ONLINE_STATUS_ONLINE_IN_CONTEXT = 4 -}; - -using SceNpBasicFriendOnlineStatusEventHandler = void(SceNpBasicFriendOnlineStatusEventType eventType, vm::cptr friendId, SceNpBasicFriendOnlineStatus status, vm::ptr userdata); - -enum SceNpBasicBlockListEventType : s32 -{ - SCE_NP_BASIC_BLOCK_LIST_EVENT_TYPE_SYNC = 1, - SCE_NP_BASIC_BLOCK_LIST_EVENT_TYPE_SYNC_DONE = 2, - SCE_NP_BASIC_BLOCK_LIST_EVENT_TYPE_ADDED = 3, - SCE_NP_BASIC_BLOCK_LIST_EVENT_TYPE_DELETED = 4 -}; - -using SceNpBasicBlockListEventHandler = void(SceNpBasicBlockListEventType eventType, vm::cptr playerId, vm::ptr userdata); - -enum SceNpBasicFriendGamePresenceEventType : s32 -{ - SCE_NP_BASIC_FRIEND_GAME_PRESENCE_EVENT_TYPE_SYNC = 1, - SCE_NP_BASIC_FRIEND_GAME_PRESENCE_EVENT_TYPE_SYNC_DONE = 2, - SCE_NP_BASIC_FRIEND_GAME_PRESENCE_EVENT_TYPE_UPDATED = 3 -}; - -enum SceNpBasicInGamePresenceType : s32 -{ - SCE_NP_BASIC_IN_GAME_PRESENCE_TYPE_UNKNOWN = -1, - SCE_NP_BASIC_IN_GAME_PRESENCE_TYPE_NONE = 0, - SCE_NP_BASIC_IN_GAME_PRESENCE_TYPE_DEFAULT = 1, - SCE_NP_BASIC_IN_GAME_PRESENCE_TYPE_JOINABLE = 2, - SCE_NP_BASIC_IN_GAME_PRESENCE_TYPE_MAX = 3 -}; - -struct SceNpBasicInGamePresence -{ - le_t sdkVersion; - le_t type; // SceNpBasicInGamePresenceType - char status[192]; - u8 data[128]; - le_t dataSize; -}; - -struct SceNpBasicGamePresence -{ - le_t size; - char title[128]; - SceNpBasicInGamePresence inGamePresence; -}; - -using SceNpBasicFriendGamePresenceEventHandler = void(SceNpBasicFriendGamePresenceEventType eventtype, vm::cptr friendId, vm::cptr presence, vm::ptr userdata); - -struct SceNpBasicInGameDataMessage -{ - u8 data[128]; - le_t dataSize; -}; - -using SceNpBasicInGameDataMessageEventHandler = void(vm::cptr from, vm::cptr message, vm::ptr userdata); - -struct SceNpBasicEventHandlers -{ - le_t sdkVersion; - vm::lptr friendListEventHandler; - vm::lptr friendOnlineStatusEventHandler; - vm::lptr blockListEventHandler; - vm::lptr friendGamePresenceEventHandler; - vm::lptr inGameDataMessageEventHandler; -}; - -struct SceNpBasicPlaySessionLogDescription -{ - char text[512]; -}; - -struct SceNpBasicPlaySessionLog -{ - le_t date; - SceNpId withWhom; - SceNpCommunicationId commId; - char title[128]; - SceNpBasicPlaySessionLogDescription description; -}; - -enum SceNpBasicPlaySessionLogType : s32 -{ - SCE_NP_BASIC_PLAY_SESSION_LOG_TYPE_INVALID = -1, - SCE_NP_BASIC_PLAY_SESSION_LOG_TYPE_ALL = 0, - SCE_NP_BASIC_PLAY_SESSION_LOG_TYPE_BY_NP_COMM_ID = 1, - SCE_NP_BASIC_PLAY_SESSION_LOG_TYPE_MAX = 2 -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceNpCommon.cpp b/rpcs3/Emu/PSP2/Modules/sceNpCommon.cpp deleted file mode 100644 index bc7c7270cf..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNpCommon.cpp +++ /dev/null @@ -1,79 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceNpCommon.h" - -logs::channel sceNpCommon("sceNpCommon"); - -s32 sceNpAuthInit() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpAuthTerm() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpAuthCreateStartRequest(vm::cptr param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpAuthDestroyRequest(s32 id) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpAuthAbortRequest(s32 id) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpAuthGetTicket(s32 id, vm::ptr buf, u32 len) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpAuthGetTicketParam(vm::cptr ticket, u32 ticketSize, s32 paramId, vm::ptr param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpAuthGetEntitlementIdList(vm::cptr ticket, u32 ticketSize, vm::ptr entIdList, u32 entIdListNum) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpAuthGetEntitlementById(vm::cptr ticket, u32 ticketSize, vm::cptr entId, vm::ptr ent) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpCmpNpId(vm::cptr npid1, vm::cptr npid2) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpCmpNpIdInOrder(vm::cptr npid1, vm::cptr npid2, vm::ptr order) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(SceNpCommon, nid, name) - -DECLARE(arm_module_manager::SceNpCommon)("SceNpCommon", []() -{ - REG_FUNC(0x441D8B4E, sceNpAuthInit); - REG_FUNC(0x6093B689, sceNpAuthTerm); - REG_FUNC(0xED42079F, sceNpAuthCreateStartRequest); - REG_FUNC(0x14FC18AF, sceNpAuthDestroyRequest); - REG_FUNC(0xE2582575, sceNpAuthAbortRequest); - REG_FUNC(0x59608D1C, sceNpAuthGetTicket); - REG_FUNC(0xC1E23E01, sceNpAuthGetTicketParam); - REG_FUNC(0x3377CD37, sceNpAuthGetEntitlementIdList); - REG_FUNC(0xF93842F0, sceNpAuthGetEntitlementById); - REG_FUNC(0xFB8D82E5, sceNpCmpNpId); - REG_FUNC(0x6BC8150A, sceNpCmpNpIdInOrder); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceNpCommon.h b/rpcs3/Emu/PSP2/Modules/sceNpCommon.h deleted file mode 100644 index f1395ae5dc..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNpCommon.h +++ /dev/null @@ -1,149 +0,0 @@ -#pragma once - -enum SceNpServiceState : s32 -{ - SCE_NP_SERVICE_STATE_UNKNOWN = 0, - SCE_NP_SERVICE_STATE_SIGNED_OUT, - SCE_NP_SERVICE_STATE_SIGNED_IN, - SCE_NP_SERVICE_STATE_ONLINE -}; - -struct SceNpCommunicationId -{ - char data[9]; - char term; - u8 num; - char dummy; -}; - -struct SceNpCommunicationPassphrase -{ - u8 data[128]; -}; - -struct SceNpCommunicationSignature -{ - u8 data[160]; -}; - -struct SceNpCommunicationConfig -{ - vm::lcptr commId; - vm::lcptr commPassphrase; - vm::lcptr commSignature; -}; - -struct SceNpCountryCode -{ - char data[2]; - char term; - char padding[1]; -}; - -struct SceNpOnlineId -{ - char data[16]; - char term; - char dummy[3]; -}; - -struct SceNpId -{ - SceNpOnlineId handle; - u8 opt[8]; - u8 reserved[8]; -}; - -struct SceNpAvatarUrl -{ - char data[127]; - char term; -}; - -struct SceNpUserInformation -{ - SceNpId userId; - SceNpAvatarUrl icon; - u8 reserved[52]; -}; - -struct SceNpMyLanguages -{ - le_t language1; - le_t language2; - le_t language3; - u8 padding[4]; -}; - -struct SceNpAvatarImage -{ - u8 data[200 * 1024]; - le_t size; - u8 reserved[12]; -}; - -enum SceNpAvatarSizeType : s32 -{ - SCE_NP_AVATAR_SIZE_LARGE, - SCE_NP_AVATAR_SIZE_MIDDLE, - SCE_NP_AVATAR_SIZE_SMALL -}; - -struct SceNpAboutMe -{ - char data[64]; -}; - -struct SceNpDate -{ - le_t year; - u8 month; - u8 day; -}; - -union SceNpTicketParam -{ - le_t _s32; - le_t _s64; - le_t _u32; - le_t _u64; - SceNpDate date; - u8 data[256]; -}; - -struct SceNpTicketVersion -{ - le_t major; - le_t minor; -}; - -using SceNpAuthCallback = s32(s32 id, s32 result, vm::ptr arg); - -struct SceNpAuthRequestParameter -{ - le_t size; - SceNpTicketVersion version; - vm::lcptr serviceId; - vm::lcptr cookie; - le_t cookieSize; - vm::lcptr entitlementId; - le_t consumedCount; - vm::lptr ticketCb; - vm::lptr cbArg; -}; - -struct SceNpEntitlementId -{ - u8 data[32]; -}; - -struct SceNpEntitlement -{ - SceNpEntitlementId id; - le_t createdDate; - le_t expireDate; - le_t type; - le_t remainingCount; - le_t consumedCount; - char padding[4]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceNpManager.cpp b/rpcs3/Emu/PSP2/Modules/sceNpManager.cpp deleted file mode 100644 index c4ce3ad0ab..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNpManager.cpp +++ /dev/null @@ -1,73 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceNpManager.h" - -logs::channel sceNpManager("sceNpManager"); - -s32 sceNpInit(vm::cptr commConf, vm::ptr opt) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpTerm(ARMv7Thread&) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpCheckCallback() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpGetServiceState(vm::ptr state) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpRegisterServiceStateCallback(vm::ptr callback, vm::ptr userdata) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpUnregisterServiceStateCallback() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpManagerGetNpId(vm::ptr npId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpManagerGetAccountRegion(vm::ptr countryCode, vm::ptr languageCode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpManagerGetContentRatingFlag(vm::ptr isRestricted, vm::ptr age) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpManagerGetChatRestrictionFlag(vm::ptr isRestricted) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(SceNpManager, nid, name) - -DECLARE(arm_module_manager::SceNpManager)("SceNpManager", []() -{ - REG_FUNC(0x04D9F484, sceNpInit); - REG_FUNC(0x19E40AE1, sceNpTerm); - REG_FUNC(0x3C94B4B4, sceNpManagerGetNpId); - REG_FUNC(0x54060DF6, sceNpGetServiceState); - REG_FUNC(0x44239C35, sceNpRegisterServiceStateCallback); - REG_FUNC(0xD9E6E56C, sceNpUnregisterServiceStateCallback); - REG_FUNC(0x3B0AE9A9, sceNpCheckCallback); - REG_FUNC(0xFE835967, sceNpManagerGetAccountRegion); - REG_FUNC(0xAF0073B2, sceNpManagerGetContentRatingFlag); - REG_FUNC(0x60C575B1, sceNpManagerGetChatRestrictionFlag); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceNpManager.h b/rpcs3/Emu/PSP2/Modules/sceNpManager.h deleted file mode 100644 index 6feb11b954..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNpManager.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once - -#include "sceNpCommon.h" - -struct SceNpOptParam -{ - le_t optParamSize; -}; - -using SceNpServiceStateCallback = void(SceNpServiceState state, vm::ptr userdata); diff --git a/rpcs3/Emu/PSP2/Modules/sceNpMatching.cpp b/rpcs3/Emu/PSP2/Modules/sceNpMatching.cpp deleted file mode 100644 index 05a3a9c1ff..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNpMatching.cpp +++ /dev/null @@ -1,264 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceNpMatching.h" - -logs::channel sceNpMatching("sceNpMatching"); - -// Functions - -s32 sceNpMatching2Init(u32 poolSize, s32 threadPriority, s32 cpuAffinityMask, u32 threadStackSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2Term() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2CreateContext( - vm::cptr npId, - vm::cptr commId, - vm::cptr passPhrase, - vm::ptr ctxId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2DestroyContext(u16 ctxId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2ContextStart(u16 ctxId, u64 timeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2AbortContextStart(u16 ctxId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2ContextStop(u16 ctxId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2SetDefaultRequestOptParam(u16 ctxId, vm::cptr optParam) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2RegisterRoomEventCallback(u16 ctxId, vm::ptr cbFunc, vm::ptr cbFuncArg) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2RegisterRoomMessageCallback(u16 ctxId, vm::ptr cbFunc, vm::ptr cbFuncArg) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2RegisterSignalingCallback(u16 ctxId, vm::ptr cbFunc, vm::ptr cbFuncArg) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2RegisterContextCallback(vm::ptr cbFunc, vm::ptr cbFuncArg) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2AbortRequest(u16 ctxId, u32 reqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2GetMemoryInfo(vm::ptr memInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2GetServerLocal(u16 ctxId, vm::ptr server) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2GetWorldInfoList( - u16 ctxId, - vm::cptr reqParam, - vm::cptr optParam, - vm::ptr assignedReqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2CreateJoinRoom( - u16 ctxId, - vm::cptr reqParam, - vm::cptr optParam, - vm::ptr assignedReqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2SearchRoom( - u16 ctxId, - vm::cptr reqParam, - vm::cptr optParam, - vm::ptr assignedReqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2JoinRoom( - u16 ctxId, - vm::cptr reqParam, - vm::cptr optParam, - vm::ptr assignedReqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2LeaveRoom( - u16 ctxId, - vm::cptr reqParam, - vm::cptr optParam, - vm::ptr assignedReqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2GetSignalingOptParamLocal( - u16 ctxId, - u64 roomId, - vm::ptr signalingOptParam) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2SetRoomDataExternal( - u16 ctxId, - vm::cptr reqParam, - vm::cptr optParam, - vm::ptr assignedReqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2KickoutRoomMember( - u16 ctxId, - vm::cptr reqParam, - vm::cptr optParam, - vm::ptr assignedReqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2SendRoomChatMessage( - u16 ctxId, - vm::cptr reqParam, - vm::cptr optParam, - vm::ptr assignedReqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2SendRoomMessage( - u16 ctxId, - vm::cptr reqParam, - vm::cptr optParam, - vm::ptr assignedReqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2SignalingGetConnectionStatus( - u16 ctxId, - u64 roomId, - u16 memberId, - vm::ptr connStatus, - vm::ptr peerAddr, - vm::ptr peerPort) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2SignalingGetConnectionInfo( - u16 ctxId, - u64 roomId, - u16 memberId, - s32 code, - vm::ptr info) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2SignalingGetLocalNetInfo(vm::ptr netinfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2SignalingGetPeerNetInfo( - u16 ctxId, - u64 roomId, - u16 memberId, - vm::ptr reqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2SignalingCancelPeerNetInfo( - u16 ctxId, - u32 reqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpMatching2SignalingGetPeerNetInfoResult( - u16 ctxId, - u32 reqId, - vm::ptr netinfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(SceNpMatching2, nid, name) - -DECLARE(arm_module_manager::SceNpMatching)("SceNpMatching2", []() -{ - REG_FUNC(0xEBB1FE74, sceNpMatching2Init); - REG_FUNC(0x0124641C, sceNpMatching2Term); - REG_FUNC(0xADF578E1, sceNpMatching2CreateContext); - REG_FUNC(0x368AA759, sceNpMatching2DestroyContext); - REG_FUNC(0xBB2E7559, sceNpMatching2ContextStart); - REG_FUNC(0xF2847E3B, sceNpMatching2AbortContextStart); - REG_FUNC(0x506454DE, sceNpMatching2ContextStop); - REG_FUNC(0xF3A43C50, sceNpMatching2SetDefaultRequestOptParam); - REG_FUNC(0xF486991B, sceNpMatching2RegisterRoomEventCallback); - REG_FUNC(0xFA51949B, sceNpMatching2RegisterRoomMessageCallback); - REG_FUNC(0xF9E35566, sceNpMatching2RegisterContextCallback); - REG_FUNC(0x74EB6CE9, sceNpMatching2AbortRequest); - REG_FUNC(0x7BD39E50, sceNpMatching2GetMemoryInfo); - REG_FUNC(0x65C0FEED, sceNpMatching2GetServerLocal); - REG_FUNC(0xC086B560, sceNpMatching2GetWorldInfoList); - REG_FUNC(0x818A9499, sceNpMatching2CreateJoinRoom); - REG_FUNC(0xD48BAF13, sceNpMatching2SearchRoom); - REG_FUNC(0x33F7D5AE, sceNpMatching2JoinRoom); - REG_FUNC(0xC8B0C9EE, sceNpMatching2LeaveRoom); - REG_FUNC(0x495D2B46, sceNpMatching2GetSignalingOptParamLocal); - REG_FUNC(0xE0BE0510, sceNpMatching2SendRoomChatMessage); - REG_FUNC(0x7B908D99, sceNpMatching2SendRoomMessage); - REG_FUNC(0x4E4C55BD, sceNpMatching2SignalingGetConnectionStatus); - REG_FUNC(0x20598618, sceNpMatching2SignalingGetConnectionInfo); - REG_FUNC(0x79310806, sceNpMatching2SignalingGetLocalNetInfo); - REG_FUNC(0xF0CB1DD3, sceNpMatching2SignalingGetPeerNetInfo); - REG_FUNC(0xADCD102C, sceNpMatching2SignalingCancelPeerNetInfo); - REG_FUNC(0xFDC7B2C9, sceNpMatching2SignalingGetPeerNetInfoResult); - REG_FUNC(0x1C60BC5B, sceNpMatching2RegisterSignalingCallback); - REG_FUNC(0x8F88AC7E, sceNpMatching2SetRoomDataExternal); - REG_FUNC(0xA8021394, sceNpMatching2KickoutRoomMember); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceNpMatching.h b/rpcs3/Emu/PSP2/Modules/sceNpMatching.h deleted file mode 100644 index 4385720830..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNpMatching.h +++ /dev/null @@ -1,987 +0,0 @@ -#pragma once - -#include "sceNet.h" -#include "sceNpCommon.h" - -struct SceNpMatching2MemoryInfo -{ - le_t totalMemSize; - le_t curMemUsage; - le_t maxMemUsage; - u8 reserved[12]; -}; - -struct SceNpMatching2SessionPassword -{ - u8 data[8]; -}; - -struct SceNpMatching2PresenceOptionData -{ - u8 data[16]; - le_t len; -}; - -struct SceNpMatching2IntAttr -{ - le_t id; - u8 padding[2]; - le_t num; -}; - - -struct SceNpMatching2BinAttr -{ - le_t id; - u8 padding[2]; - vm::lptr ptr; - le_t size; -}; - - -struct SceNpMatching2RangeFilter -{ - le_t startIndex; - le_t max; -}; - - -struct SceNpMatching2IntSearchFilter -{ - u8 searchOperator; - u8 padding[3]; - SceNpMatching2IntAttr attr; -}; - - -struct SceNpMatching2BinSearchFilter -{ - u8 searchOperator; - u8 padding[3]; - SceNpMatching2BinAttr attr; -}; - - -struct SceNpMatching2Range -{ - le_t startIndex; - le_t total; - le_t resultCount; -}; - - -struct SceNpMatching2JoinedSessionInfo -{ - u8 sessionType; - u8 padding1[1]; - le_t serverId; - le_t worldId; - le_t lobbyId; - le_t roomId; - le_t joinDate; -}; - - -struct SceNpMatching2UserInfo -{ - vm::lptr next; - SceNpId npId; - vm::lptr userBinAttr; - le_t userBinAttrNum; - vm::lptr joinedSessionInfo; - le_t joinedSessionInfoNum; -}; - -struct SceNpMatching2Server -{ - le_t serverId; - u8 status; - u8 padding[1]; -}; - - -struct SceNpMatching2World -{ - vm::lptr next; - le_t worldId; - le_t numOfLobby; - le_t maxNumOfTotalLobbyMember; - le_t curNumOfTotalLobbyMember; - le_t curNumOfRoom; - le_t curNumOfTotalRoomMember; - b8 withEntitlementId; - SceNpEntitlementId entitlementId; - u8 padding[3]; -}; - -struct SceNpMatching2LobbyMemberBinAttrInternal -{ - le_t updateDate; - SceNpMatching2BinAttr data; - u8 padding[4]; -}; - - -struct SceNpMatching2LobbyMemberDataInternal -{ - vm::lptr next; - SceNpId npId; - - le_t joinDate; - le_t memberId; - u8 padding[2]; - - le_t flagAttr; - - vm::lptr joinedSessionInfo; - le_t joinedSessionInfoNum; - vm::lptr lobbyMemberBinAttrInternal; - le_t lobbyMemberBinAttrInternalNum; -}; - - -struct SceNpMatching2LobbyMemberIdList -{ - vm::lptr memberId; - le_t memberIdNum; - le_t me; - u8 padding[6]; -}; - - -struct SceNpMatching2LobbyBinAttrInternal -{ - le_t updateDate; - le_t updateMemberId; - u8 padding[2]; - SceNpMatching2BinAttr data; -}; - - -struct SceNpMatching2LobbyDataExternal -{ - vm::lptr next; - le_t serverId; - u8 padding1[2]; - le_t worldId; - u8 padding2[4]; - le_t lobbyId; - le_t maxSlot; - le_t curMemberNum; - le_t flagAttr; - vm::lptr lobbySearchableIntAttrExternal; - le_t lobbySearchableIntAttrExternalNum; - vm::lptr lobbySearchableBinAttrExternal; - le_t lobbySearchableBinAttrExternalNum; - vm::lptr lobbyBinAttrExternal; - le_t lobbyBinAttrExternalNum; - u8 padding3[4]; -}; - - -struct SceNpMatching2LobbyDataInternal -{ - le_t serverId; - u8 padding1[2]; - le_t worldId; - le_t lobbyId; - - le_t maxSlot; - SceNpMatching2LobbyMemberIdList memberIdList; - le_t flagAttr; - vm::lptr lobbyBinAttrInternal; - le_t lobbyBinAttrInternalNum; -}; - - -union SceNpMatching2LobbyMessageDestination -{ - le_t unicastTarget; - - struct - { - vm::lptr memberId; - le_t memberIdNum; - } - multicastTarget; -}; - -struct SceNpMatching2GroupLabel -{ - u8 data[8]; -}; - -struct SceNpMatching2RoomGroupConfig -{ - le_t slotNum; - b8 withLabel; - SceNpMatching2GroupLabel label; - b8 withPassword; - u8 padding[2]; -}; - - -struct SceNpMatching2RoomGroupPasswordConfig -{ - u8 groupId; - b8 withPassword; - u8 padding[1]; -}; - - -struct SceNpMatching2RoomMemberBinAttrInternal -{ - le_t updateDate; - SceNpMatching2BinAttr data; - u8 padding[4]; -}; - - -struct SceNpMatching2RoomGroup -{ - u8 groupId; - b8 withPassword; - b8 withLabel; - u8 padding[1]; - SceNpMatching2GroupLabel label; - le_t slotNum; - le_t curGroupMemberNum; -}; - - -struct SceNpMatching2RoomMemberDataExternal -{ - vm::lptr next; - SceNpId npId; - le_t joinDate; - u8 role; - u8 padding[7]; -}; - - -struct SceNpMatching2RoomMemberDataInternal -{ - vm::lptr next; - SceNpId npId; - - le_t joinDate; - le_t memberId; - u8 teamId; - u8 padding1[1]; - - vm::lptr roomGroup; - - u8 natType; - u8 padding2[3]; - le_t flagAttr; - vm::lptr roomMemberBinAttrInternal; - le_t roomMemberBinAttrInternalNum; -}; - - -struct SceNpMatching2RoomMemberDataInternalList -{ - vm::lptr members; - le_t membersNum; - vm::lptr me; - vm::lptr owner; -}; - - -struct SceNpMatching2RoomBinAttrInternal -{ - le_t updateDate; - le_t updateMemberId; - u8 padding[2]; - SceNpMatching2BinAttr data; -}; - - -struct SceNpMatching2RoomDataExternal -{ - vm::lptr next; - - le_t maxSlot; - le_t curMemberNum; - - le_t serverId; - u8 padding[2]; - le_t worldId; - le_t lobbyId; - le_t roomId; - - le_t passwordSlotMask; - le_t joinedSlotMask; - le_t publicSlotNum; - le_t privateSlotNum; - le_t openPublicSlotNum; - le_t openPrivateSlotNum; - - vm::lptr owner; - le_t flagAttr; - - vm::lptr roomGroup; - le_t roomGroupNum; - vm::lptr roomSearchableIntAttrExternal; - le_t roomSearchableIntAttrExternalNum; - vm::lptr roomSearchableBinAttrExternal; - le_t roomSearchableBinAttrExternalNum; - vm::lptr roomBinAttrExternal; - le_t roomBinAttrExternalNum; -}; - - -struct SceNpMatching2RoomDataInternal -{ - le_t maxSlot; - - le_t serverId; - le_t worldId; - le_t lobbyId; - le_t roomId; - - le_t passwordSlotMask; - le_t joinedSlotMask; - le_t publicSlotNum; - le_t privateSlotNum; - le_t openPublicSlotNum; - le_t openPrivateSlotNum; - - SceNpMatching2RoomMemberDataInternalList memberList; - - vm::lptr roomGroup; - le_t roomGroupNum; - - le_t flagAttr; - u8 padding[4]; - vm::lptr roomBinAttrInternal; - le_t roomBinAttrInternalNum; -}; - - -union SceNpMatching2RoomMessageDestination -{ - le_t unicastTarget; - - struct - { - vm::lptr memberId; - le_t memberIdNum; - } - multicastTarget; - - u8 multicastTargetTeamId; -}; - - -struct SceNpMatching2InvitationData -{ - vm::lptr targetSession; - le_t targetSessionNum; - vm::lptr optData; - le_t optDataLen; -}; - -using SceNpMatching2RequestCallback = void(u16 ctxId, u32 reqId, u16 event, s32 errorCode, vm::cptr data, vm::ptr arg); -using SceNpMatching2LobbyEventCallback = void(u16 ctxId, u64 lobbyId, u16 event, s32 errorCode, vm::cptr data, vm::ptr arg); -using SceNpMatching2RoomEventCallback = void(u16 ctxId, u64 roomId, u16 event, s32 errorCode, vm::cptr data, vm::ptr arg); -using SceNpMatching2LobbyMessageCallback = void(u16 ctxId, u64 lobbyId, u16 srcMemberId, u16 event, s32 errorCode, vm::cptr data, vm::ptr arg); -using SceNpMatching2RoomMessageCallback = void(u16 ctxId, u64 roomId, u16 srcMemberId, u16 event, s32 errorCode, vm::cptr data, vm::ptr arg); -using SceNpMatching2SignalingCallback = void(u16 ctxId, u64 roomId, u16 peerMemberId, u16 event, s32 errorCode, vm::ptr arg); -using SceNpMatching2ContextCallback = void(u16 ctxId, u16 event, u8 eventCause, s32 errorCode, vm::ptr arg); - -struct SceNpMatching2RequestOptParam -{ - vm::lptr cbFunc; - vm::lptr cbFuncArg; - le_t timeout; - le_t appReqId; - u8 padding[2]; -}; - - -struct SceNpMatching2GetWorldInfoListRequest -{ - le_t serverId; -}; - - - -struct SceNpMatching2GetWorldInfoListResponse -{ - vm::lptr world; - le_t worldNum; -}; - -struct SceNpMatching2SetUserInfoRequest -{ - le_t serverId; - u8 padding[2]; - vm::lptr userBinAttr; - le_t userBinAttrNum; -}; - - -struct SceNpMatching2GetUserInfoListRequest -{ - le_t serverId; - u8 padding[2]; - vm::lptr npId; - le_t npIdNum; - vm::lptr attrId; - le_t attrIdNum; - le_t option; -}; - - - -struct SceNpMatching2GetUserInfoListResponse -{ - vm::lptr userInfo; - le_t userInfoNum; -}; - - -struct SceNpMatching2GetRoomMemberDataExternalListRequest -{ - le_t roomId; -}; - - - -struct SceNpMatching2GetRoomMemberDataExternalListResponse -{ - vm::lptr roomMemberDataExternal; - le_t roomMemberDataExternalNum; -}; - - -struct SceNpMatching2SetRoomDataExternalRequest -{ - le_t roomId; - vm::lptr roomSearchableIntAttrExternal; - le_t roomSearchableIntAttrExternalNum; - vm::lptr roomSearchableBinAttrExternal; - le_t roomSearchableBinAttrExternalNum; - vm::lptr roomBinAttrExternal; - le_t roomBinAttrExternalNum; -}; - - -struct SceNpMatching2GetRoomDataExternalListRequest -{ - vm::lptr roomId; - le_t roomIdNum; - vm::lcptr attrId; - le_t attrIdNum; -}; - - - -struct SceNpMatching2GetRoomDataExternalListResponse -{ - vm::lptr roomDataExternal; - le_t roomDataExternalNum; -}; - -struct SceNpMatching2SignalingOptParam -{ - u8 type; - u8 flag; - le_t hubMemberId; - u8 reserved2[4]; -}; - - - -struct SceNpMatching2CreateJoinRoomRequest -{ - le_t worldId; - u8 padding1[4]; - le_t lobbyId; - - le_t maxSlot; - le_t flagAttr; - vm::lptr roomBinAttrInternal; - le_t roomBinAttrInternalNum; - vm::lptr roomSearchableIntAttrExternal; - le_t roomSearchableIntAttrExternalNum; - vm::lptr roomSearchableBinAttrExternal; - le_t roomSearchableBinAttrExternalNum; - vm::lptr roomBinAttrExternal; - le_t roomBinAttrExternalNum; - vm::lptr roomPassword; - vm::lptr groupConfig; - le_t groupConfigNum; - vm::lptr passwordSlotMask; - vm::lptr allowedUser; - le_t allowedUserNum; - vm::lptr blockedUser; - le_t blockedUserNum; - - vm::lptr joinRoomGroupLabel; - vm::lptr roomMemberBinAttrInternal; - le_t roomMemberBinAttrInternalNum; - u8 teamId; - u8 padding2[3]; - - vm::lptr sigOptParam; - u8 padding3[4]; -}; - - - -struct SceNpMatching2CreateJoinRoomResponse -{ - vm::lptr roomDataInternal; -}; - - -struct SceNpMatching2JoinRoomRequest -{ - le_t roomId; - vm::lptr roomPassword; - vm::lptr joinRoomGroupLabel; - vm::lptr roomMemberBinAttrInternal; - le_t roomMemberBinAttrInternalNum; - SceNpMatching2PresenceOptionData optData; - u8 teamId; - u8 padding[3]; - vm::lptr blockedUser; - le_t blockedUserNum; -}; - - - -struct SceNpMatching2JoinRoomResponse -{ - vm::lptr roomDataInternal; -}; - - -struct SceNpMatching2LeaveRoomRequest -{ - le_t roomId; - SceNpMatching2PresenceOptionData optData; - u8 padding[4]; -}; - - -struct SceNpMatching2GrantRoomOwnerRequest -{ - le_t roomId; - le_t newOwner; - u8 padding[2]; - SceNpMatching2PresenceOptionData optData; -}; - - -struct SceNpMatching2KickoutRoomMemberRequest -{ - le_t roomId; - le_t target; - u8 blockKickFlag; - u8 padding[1]; - SceNpMatching2PresenceOptionData optData; -}; - - -struct SceNpMatching2SearchRoomRequest -{ - le_t option; - le_t worldId; - le_t lobbyId; - SceNpMatching2RangeFilter rangeFilter; - le_t flagFilter; - le_t flagAttr; - vm::lptr intFilter; - le_t intFilterNum; - vm::lptr binFilter; - le_t binFilterNum; - vm::lptr attrId; - le_t attrIdNum; -}; - - - -struct SceNpMatching2SearchRoomResponse -{ - SceNpMatching2Range range; - vm::lptr roomDataExternal; -}; - - -struct SceNpMatching2SendRoomMessageRequest -{ - le_t roomId; - u8 castType; - u8 padding[3]; - SceNpMatching2RoomMessageDestination dst; - vm::lcptr msg; - le_t msgLen; - le_t option; -}; - - -struct SceNpMatching2SendRoomChatMessageRequest -{ - le_t roomId; - u8 castType; - u8 padding[3]; - SceNpMatching2RoomMessageDestination dst; - vm::lcptr msg; - le_t msgLen; - le_t option; -}; - - - -struct SceNpMatching2SendRoomChatMessageResponse -{ - b8 filtered; -}; - - -struct SceNpMatching2SetRoomDataInternalRequest -{ - le_t roomId; - le_t flagFilter; - le_t flagAttr; - vm::lptr roomBinAttrInternal; - le_t roomBinAttrInternalNum; - vm::lptr passwordConfig; - le_t passwordConfigNum; - vm::lptr passwordSlotMask; - vm::lptr ownerPrivilegeRank; - le_t ownerPrivilegeRankNum; - u8 padding[4]; -}; - - -struct SceNpMatching2GetRoomDataInternalRequest -{ - le_t roomId; - vm::lcptr attrId; - le_t attrIdNum; -}; - - - -struct SceNpMatching2GetRoomDataInternalResponse -{ - vm::lptr roomDataInternal; -}; - - -struct SceNpMatching2SetRoomMemberDataInternalRequest -{ - le_t roomId; - le_t memberId; - u8 teamId; - u8 padding[5]; - le_t flagFilter; - le_t flagAttr; - vm::lptr roomMemberBinAttrInternal; - le_t roomMemberBinAttrInternalNum; -}; - - -struct SceNpMatching2GetRoomMemberDataInternalRequest -{ - le_t roomId; - le_t memberId; - u8 padding[6]; - vm::lcptr attrId; - le_t attrIdNum; -}; - - - -struct SceNpMatching2GetRoomMemberDataInternalResponse -{ - vm::lptr roomMemberDataInternal; -}; - - -struct SceNpMatching2SetSignalingOptParamRequest -{ - le_t roomId; - SceNpMatching2SignalingOptParam sigOptParam; -}; - - -struct SceNpMatching2GetLobbyInfoListRequest -{ - le_t worldId; - SceNpMatching2RangeFilter rangeFilter; - vm::lptr attrId; - le_t attrIdNum; -}; - - - -struct SceNpMatching2GetLobbyInfoListResponse -{ - SceNpMatching2Range range; - vm::lptr lobbyDataExternal; -}; - - -struct SceNpMatching2JoinLobbyRequest -{ - le_t lobbyId; - vm::lptr joinedSessionInfo; - le_t joinedSessionInfoNum; - vm::lptr lobbyMemberBinAttrInternal; - le_t lobbyMemberBinAttrInternalNum; - SceNpMatching2PresenceOptionData optData; - u8 padding[4]; -}; - - - -struct SceNpMatching2JoinLobbyResponse -{ - vm::lptr lobbyDataInternal; -}; - - -struct SceNpMatching2LeaveLobbyRequest -{ - le_t lobbyId; - SceNpMatching2PresenceOptionData optData; - u8 padding[4]; -}; - - -struct SceNpMatching2SetLobbyMemberDataInternalRequest -{ - le_t lobbyId; - le_t memberId; - u8 padding1[2]; - le_t flagFilter; - le_t flagAttr; - vm::lptr joinedSessionInfo; - le_t joinedSessionInfoNum; - vm::lptr lobbyMemberBinAttrInternal; - le_t lobbyMemberBinAttrInternalNum; - u8 padding2[4]; -}; - - -struct SceNpMatching2GetLobbyMemberDataInternalRequest -{ - le_t lobbyId; - le_t memberId; - u8 padding[6]; - vm::lcptr attrId; - le_t attrIdNum; -}; - - - -struct SceNpMatching2GetLobbyMemberDataInternalResponse -{ - vm::lptr lobbyMemberDataInternal; -}; - - - -struct SceNpMatching2GetLobbyMemberDataInternalListRequest -{ - le_t lobbyId; - vm::lptr memberId; - le_t memberIdNum; - vm::lcptr attrId; - le_t attrIdNum; - b8 extendedData; - u8 padding[7]; -}; - - - -struct SceNpMatching2GetLobbyMemberDataInternalListResponse -{ - vm::lptr lobbyMemberDataInternal; - le_t lobbyMemberDataInternalNum; -}; - - -struct SceNpMatching2SendLobbyChatMessageRequest -{ - le_t lobbyId; - u8 castType; - u8 padding[3]; - SceNpMatching2LobbyMessageDestination dst; - vm::lcptr msg; - le_t msgLen; - le_t option; -}; - - - -struct SceNpMatching2SendLobbyChatMessageResponse -{ - b8 filtered; -}; - - -struct SceNpMatching2SendLobbyInvitationRequest -{ - le_t lobbyId; - u8 castType; - u8 padding[3]; - SceNpMatching2LobbyMessageDestination dst; - SceNpMatching2InvitationData invitationData; - le_t option; -}; - - -struct SceNpMatching2RoomMemberUpdateInfo -{ - vm::lptr roomMemberDataInternal; - u8 eventCause; - u8 padding[3]; - SceNpMatching2PresenceOptionData optData; -}; - - -struct SceNpMatching2RoomOwnerUpdateInfo -{ - le_t prevOwner; - le_t newOwner; - u8 eventCause; - u8 padding[3]; - vm::lptr roomPassword; - SceNpMatching2PresenceOptionData optData; -}; - - -struct SceNpMatching2RoomUpdateInfo -{ - u8 eventCause; - u8 padding[3]; - le_t errorCode; - SceNpMatching2PresenceOptionData optData; -}; - - -struct SceNpMatching2RoomDataInternalUpdateInfo -{ - vm::lptr newRoomDataInternal; - vm::lptr newFlagAttr; - vm::lptr prevFlagAttr; - vm::lptr newRoomPasswordSlotMask; - vm::lptr prevRoomPasswordSlotMask; - vm::lptr *newRoomGroup; - le_t newRoomGroupNum; - vm::lptr *newRoomBinAttrInternal; - le_t newRoomBinAttrInternalNum; -}; - - -struct SceNpMatching2RoomMemberDataInternalUpdateInfo -{ - vm::lptr newRoomMemberDataInternal; - vm::lptr newFlagAttr; - vm::lptr prevFlagAttr; - vm::lptr newTeamId; - vm::lptr *newRoomMemberBinAttrInternal; - le_t newRoomMemberBinAttrInternalNum; -}; - - -struct SceNpMatching2SignalingOptParamUpdateInfo -{ - SceNpMatching2SignalingOptParam newSignalingOptParam; -}; - - -struct SceNpMatching2RoomMessageInfo -{ - b8 filtered; - u8 castType; - u8 padding[2]; - vm::lptr dst; - vm::lptr srcMember; - vm::lcptr msg; - le_t msgLen; -}; - - -struct SceNpMatching2LobbyMemberUpdateInfo -{ - vm::lptr lobbyMemberDataInternal; - u8 eventCause; - u8 padding[3]; - SceNpMatching2PresenceOptionData optData; -}; - - -struct SceNpMatching2LobbyUpdateInfo -{ - u8 eventCause; - u8 padding[3]; - le_t errorCode; -}; - - -struct SceNpMatching2LobbyMemberDataInternalUpdateInfo -{ - le_t memberId; - u8 padding[2]; - SceNpId npId; - le_t flagFilter; - le_t newFlagAttr; - vm::lptr newJoinedSessionInfo; - le_t newJoinedSessionInfoNum; - vm::lptr newLobbyMemberBinAttrInternal; - le_t newLobbyMemberBinAttrInternalNum; -}; - - -struct SceNpMatching2LobbyMessageInfo -{ - b8 filtered; - u8 castType; - u8 padding[2]; - vm::lptr dst; - vm::lptr srcMember; - vm::lcptr msg; - le_t msgLen; -}; - - -struct SceNpMatching2LobbyInvitationInfo -{ - u8 castType; - u8 padding[3]; - vm::lptr dst; - vm::lptr srcMember; - SceNpMatching2InvitationData invitationData; -}; - -union SceNpMatching2SignalingConnectionInfo -{ - le_t rtt; - le_t bandwidth; - SceNpId npId; - - struct - { - SceNetInAddr addr; - le_t port; - u8 padding[2]; - } - address; - - le_t packetLoss; -}; - -struct SceNpMatching2SignalingNetInfo -{ - le_t size; - SceNetInAddr localAddr; - SceNetInAddr mappedAddr; - le_t natStatus; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceNpScore.cpp b/rpcs3/Emu/PSP2/Modules/sceNpScore.cpp deleted file mode 100644 index 4b144bc178..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNpScore.cpp +++ /dev/null @@ -1,314 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceNpScore.h" - -logs::channel sceNpScore("sceNpScore"); - -s32 sceNpScoreInit(s32 threadPriority, s32 cpuAffinityMask, vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreTerm(ARMv7Thread&) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreCreateTitleCtx(vm::cptr titleId, vm::cptr passphrase, vm::cptr selfNpId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreDeleteTitleCtx(s32 titleCtxId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreCreateRequest(s32 titleCtxId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreDeleteRequest(s32 reqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreAbortRequest(s32 reqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreSetTimeout(s32 id, s32 resolveRetry, s32 resolveTimeout, s32 connTimeout, s32 sendTimeout, s32 recvTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreSetPlayerCharacterId(s32 id, s32 pcId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreGetBoardInfo(s32 reqId, u32 boardId, vm::ptr boardInfo, vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreRecordScore( - s32 reqId, - u32 boardId, - s64 score, - vm::cptr scoreComment, - vm::cptr gameInfo, - vm::ptr tmpRank, - vm::cptr compareDate, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreRecordGameData( - s32 reqId, - u32 boardId, - s64 score, - u32 totalSize, - u32 sendSize, - vm::cptr data, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreGetGameData( - s32 reqId, - u32 boardId, - vm::cptr npId, - vm::ptr totalSize, - u32 recvSize, - vm::ptr data, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreGetRankingByNpId( - s32 reqId, - u32 boardId, - vm::cptr npIdArray, - u32 npIdArraySize, - vm::ptr rankArray, - u32 rankArraySize, - vm::ptr commentArray, - u32 commentArraySize, - vm::ptr infoArray, - u32 infoArraySize, - u32 arrayNum, - vm::ptr lastSortDate, - vm::ptr totalRecord, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreGetRankingByRange( - s32 reqId, - u32 boardId, - u32 startSerialRank, - vm::ptr rankArray, - u32 rankArraySize, - vm::ptr commentArray, - u32 commentArraySize, - vm::ptr infoArray, - u32 infoArraySize, - u32 arrayNum, - vm::ptr lastSortDate, - vm::ptr totalRecord, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -s32 sceNpScoreGetRankingByNpIdPcId( - s32 reqId, - u32 boardId, - vm::cptr idArray, - u32 idArraySize, - vm::ptr rankArray, - u32 rankArraySize, - vm::ptr commentArray, - u32 commentArraySize, - vm::ptr infoArray, - u32 infoArraySize, - u32 arrayNum, - vm::ptr lastSortDate, - vm::ptr totalRecord, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreCensorComment(s32 reqId, vm::cptr comment, vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreSanitizeComment(s32 reqId, vm::cptr comment, vm::ptr sanitizedComment, vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreWaitAsync(s32 id, vm::ptr result) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScorePollAsync(s32 reqId, vm::ptr result) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreGetBoardInfoAsync(s32 reqId, u32 boardId, vm::ptr boardInfo, vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreRecordScoreAsync( - s32 reqId, - u32 boardId, - s64 score, - vm::cptr scoreComment, - vm::cptr gameInfo, - vm::ptr tmpRank, - vm::cptr compareDate, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreRecordGameDataAsync( - s32 reqId, - u32 boardId, - s64 score, - u32 totalSize, - u32 sendSize, - vm::cptr data, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreGetGameDataAsync( - s32 reqId, - u32 boardId, - vm::cptr npId, - vm::ptr totalSize, - u32 recvSize, - vm::ptr data, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreGetRankingByNpIdAsync( - s32 reqId, - u32 boardId, - vm::cptr npIdArray, - u32 npIdArraySize, - vm::ptr rankArray, - u32 rankArraySize, - vm::ptr commentArray, - u32 commentArraySize, - vm::ptr infoArray, - u32 infoArraySize, - u32 arrayNum, - vm::ptr lastSortDate, - vm::ptr totalRecord, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreGetRankingByRangeAsync( - s32 reqId, - u32 boardId, - u32 startSerialRank, - vm::ptr rankArray, - u32 rankArraySize, - vm::ptr commentArray, - u32 commentArraySize, - vm::ptr infoArray, - u32 infoArraySize, - u32 arrayNum, - vm::ptr lastSortDate, - vm::ptr totalRecord, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreGetRankingByNpIdPcIdAsync( - s32 reqId, - u32 boardId, - vm::cptr idArray, - u32 idArraySize, - vm::ptr rankArray, - u32 rankArraySize, - vm::ptr commentArray, - u32 commentArraySize, - vm::ptr infoArray, - u32 infoArraySize, - u32 arrayNum, - vm::ptr lastSortDate, - vm::ptr totalRecord, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreCensorCommentAsync(s32 reqId, vm::cptr comment, vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpScoreSanitizeCommentAsync(s32 reqId, vm::cptr comment, vm::ptr sanitizedComment, vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(SceNpScore, nid, name) - -DECLARE(arm_module_manager::SceNpScore)("SceNpScore", []() -{ - REG_FUNC(0x0433069F, sceNpScoreInit); - REG_FUNC(0x2050F98F, sceNpScoreTerm); - REG_FUNC(0x5685F225, sceNpScoreCreateTitleCtx); - REG_FUNC(0xD30D1993, sceNpScoreCreateRequest); - REG_FUNC(0xF52EA88A, sceNpScoreDeleteTitleCtx); - REG_FUNC(0xFFF24BB1, sceNpScoreDeleteRequest); - REG_FUNC(0x320C0277, sceNpScoreRecordScore); - REG_FUNC(0x24B09634, sceNpScoreRecordScoreAsync); - REG_FUNC(0xC2862B67, sceNpScoreRecordGameData); - REG_FUNC(0x40573917, sceNpScoreRecordGameDataAsync); - REG_FUNC(0xDFAD64D3, sceNpScoreGetGameData); - REG_FUNC(0xCE416993, sceNpScoreGetGameDataAsync); - REG_FUNC(0x427D3412, sceNpScoreGetRankingByRange); - REG_FUNC(0xC45E3FCD, sceNpScoreGetRankingByRangeAsync); - REG_FUNC(0xBAE55B34, sceNpScoreGetRankingByNpId); - REG_FUNC(0x45CD1D00, sceNpScoreGetRankingByNpIdAsync); - REG_FUNC(0x871F28AA, sceNpScoreGetRankingByNpIdPcId); - REG_FUNC(0xCE3A9544, sceNpScoreGetRankingByNpIdPcIdAsync); - REG_FUNC(0xA7E93CE1, sceNpScoreAbortRequest); - REG_FUNC(0x31733BF3, sceNpScoreWaitAsync); - REG_FUNC(0x9F2A7AC9, sceNpScorePollAsync); - REG_FUNC(0x00F90E7B, sceNpScoreGetBoardInfo); - REG_FUNC(0x3CD9974E, sceNpScoreGetBoardInfoAsync); - REG_FUNC(0xA0C94D46, sceNpScoreCensorComment); - REG_FUNC(0xAA0BBF8E, sceNpScoreCensorCommentAsync); - REG_FUNC(0x6FD2041A, sceNpScoreSanitizeComment); - REG_FUNC(0x15981858, sceNpScoreSanitizeCommentAsync); - REG_FUNC(0x5EF44841, sceNpScoreSetTimeout); - REG_FUNC(0x53D77883, sceNpScoreSetPlayerCharacterId); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceNpScore.h b/rpcs3/Emu/PSP2/Modules/sceNpScore.h deleted file mode 100644 index 26763d6f1b..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNpScore.h +++ /dev/null @@ -1,53 +0,0 @@ -#pragma once - -#include "sceNpCommon.h" - -struct SceNpScoreGameInfo -{ - le_t infoSize; - u8 pad[4]; - u8 data[192]; -}; - -struct SceNpScoreComment -{ - char utf8Comment[64]; -}; - -struct SceNpScoreRankData -{ - SceNpId npId; - u8 reserved[49]; - u8 pad0[3]; - le_t pcId; - le_t serialRank; - le_t rank; - le_t highestRank; - le_t hasGameData; - u8 pad1[4]; - le_t scoreValue; - le_t recordDate; -}; - -struct SceNpScorePlayerRankData -{ - le_t hasData; - u8 pad0[4]; - SceNpScoreRankData rankData; -}; - -struct SceNpScoreBoardInfo -{ - le_t rankLimit; - le_t updateMode; - le_t sortMode; - le_t uploadNumLimit; - le_t uploadSizeLimit; -}; - -struct SceNpScoreNpIdPcId -{ - SceNpId npId; - le_t pcId; - u8 pad[4]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceNpUtility.cpp b/rpcs3/Emu/PSP2/Modules/sceNpUtility.cpp deleted file mode 100644 index fd95b3b903..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNpUtility.cpp +++ /dev/null @@ -1,155 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceNpUtility.h" - -logs::channel sceNpUtility("sceNpUtility"); - -s32 sceNpLookupInit(s32 usesAsync, s32 threadPriority, s32 cpuAffinityMask, vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupTerm(ARMv7Thread&) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupCreateTitleCtx(vm::cptr titleId, vm::cptr selfNpId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupDeleteTitleCtx(s32 titleCtxId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupCreateRequest(s32 titleCtxId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupDeleteRequest(s32 reqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupAbortRequest(s32 reqId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupSetTimeout(s32 id, s32 resolveRetry, u32 resolveTimeout, u32 connTimeout, u32 sendTimeout, u32 recvTimeout) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupWaitAsync(s32 reqId, vm::ptr result) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupPollAsync(s32 reqId, vm::ptr result) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupNpId(s32 reqId, vm::cptr onlineId, vm::ptr npId, vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupNpIdAsync(s32 reqId, vm::cptr onlineId, vm::ptr npId, vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupUserProfile( - s32 reqId, - s32 avatarSizeType, - vm::cptr npId, - vm::ptr userInfo, - vm::ptr aboutMe, - vm::ptr languages, - vm::ptr countryCode, - vm::ptr avatarImageData, - u32 avatarImageDataMaxSize, - vm::ptr avatarImageDataSize, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupUserProfileAsync( - s32 reqId, - s32 avatarSizeType, - vm::cptr npId, - vm::ptr userInfo, - vm::ptr aboutMe, - vm::ptr languages, - vm::ptr countryCode, - vm::ptr avatarImageData, - u32 avatarImageDataMaxSize, - vm::ptr avatarImageDataSize, - vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupAvatarImage(s32 reqId, vm::cptr avatarUrl, vm::ptr avatarImage, vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpLookupAvatarImageAsync(s32 reqId, vm::cptr avatarUrl, vm::ptr avatarImage, vm::ptr option) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBandwidthTestInitStart(s32 initPriority, s32 cpuAffinityMask) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBandwidthTestGetStatus() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBandwidthTestShutdown(vm::ptr result) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceNpBandwidthTestAbort() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(SceNpUtility, nid, name) - -DECLARE(arm_module_manager::SceNpUtility)("SceNpUtility", []() -{ - REG_FUNC(0x9246A673, sceNpLookupInit); - REG_FUNC(0x0158B61B, sceNpLookupTerm); - REG_FUNC(0x5110E17E, sceNpLookupCreateTitleCtx); - REG_FUNC(0x33B64699, sceNpLookupDeleteTitleCtx); - REG_FUNC(0x9E42E922, sceNpLookupCreateRequest); - REG_FUNC(0x8B608BF6, sceNpLookupDeleteRequest); - REG_FUNC(0x027587C4, sceNpLookupAbortRequest); - REG_FUNC(0xB0C9DC45, sceNpLookupSetTimeout); - REG_FUNC(0xCF956F23, sceNpLookupWaitAsync); - REG_FUNC(0xFCDBA234, sceNpLookupPollAsync); - REG_FUNC(0xB1A14879, sceNpLookupNpId); - REG_FUNC(0x5387BABB, sceNpLookupNpIdAsync); - REG_FUNC(0x6A1BF429, sceNpLookupUserProfile); - REG_FUNC(0xE5285E0F, sceNpLookupUserProfileAsync); - REG_FUNC(0xFDB0AE47, sceNpLookupAvatarImage); - REG_FUNC(0x282BD43C, sceNpLookupAvatarImageAsync); - REG_FUNC(0x081FA13C, sceNpBandwidthTestInitStart); - REG_FUNC(0xE0EBFBF6, sceNpBandwidthTestGetStatus); - REG_FUNC(0x58D92EFD, sceNpBandwidthTestShutdown); - REG_FUNC(0x32B068C4, sceNpBandwidthTestAbort); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceNpUtility.h b/rpcs3/Emu/PSP2/Modules/sceNpUtility.h deleted file mode 100644 index a66a429a5b..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceNpUtility.h +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once - -#include "sceNpCommon.h" - -struct SceNpBandwidthTestResult -{ - le_t uploadBps; - le_t downloadBps; - le_t result; - char padding[4]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/scePerf.cpp b/rpcs3/Emu/PSP2/Modules/scePerf.cpp deleted file mode 100644 index cdd8332613..0000000000 --- a/rpcs3/Emu/PSP2/Modules/scePerf.cpp +++ /dev/null @@ -1,197 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "scePerf.h" - -logs::channel scePerf("scePerf"); - -extern u64 get_system_time(); - -template<> -void fmt_class_string::format(std::string& out, u64 arg) -{ - format_enum(out, arg, [](auto error) - { - switch (error) - { - STR_CASE(SCE_PERF_ERROR_INVALID_ARGUMENT); - } - - return unknown; - }); -} - -error_code scePerfArmPmonReset(ARMv7Thread& cpu, s32 threadId) -{ - scePerf.warning("scePerfArmPmonReset(threadId=0x%x)", threadId); - - verify(HERE), threadId == SCE_PERF_ARM_PMON_THREAD_ID_SELF; - - cpu.counters = {}; - - return SCE_OK; -} - -error_code scePerfArmPmonSelectEvent(ARMv7Thread& cpu, s32 threadId, u32 counter, u8 eventCode) -{ - scePerf.warning("scePerfArmPmonSelectEvent(threadId=0x%x, counter=0x%x, eventCode=0x%x)", threadId, counter, eventCode); - - verify(HERE), threadId == SCE_PERF_ARM_PMON_THREAD_ID_SELF; - - if (counter >= 6) - { - return SCE_PERF_ERROR_INVALID_ARGUMENT; - } - - u32 value = 0; // initial value - - switch (eventCode) - { - case SCE_PERF_ARM_PMON_SOFT_INCREMENT: break; - - case SCE_PERF_ARM_PMON_BRANCH_MISPREDICT: - case SCE_PERF_ARM_PMON_DCACHE_MISS: - case SCE_PERF_ARM_PMON_DCACHE_STALL: - case SCE_PERF_ARM_PMON_ICACHE_STALL: - case SCE_PERF_ARM_PMON_DATA_EVICTION: - case SCE_PERF_ARM_PMON_WRITE_STALL: - case SCE_PERF_ARM_PMON_MAINTLB_STALL: - case SCE_PERF_ARM_PMON_UNALIGNED: - { - value = 1; // these events will probably never be implemented - break; - } - - case SCE_PERF_ARM_PMON_PREDICT_BRANCH: - case SCE_PERF_ARM_PMON_DCACHE_ACCESS: - { - value = 1000; // these events will probably never be implemented - break; - } - - default: - { - fmt::throw_exception("Unknown event requested" HERE); - } - } - - cpu.counters[counter].event = eventCode; - cpu.counters[counter].value = value; - - return SCE_OK; -} - -error_code scePerfArmPmonStart(ARMv7Thread& cpu, s32 threadId) -{ - scePerf.warning("scePerfArmPmonStart(threadId=0x%x)", threadId); - - verify(HERE), threadId == SCE_PERF_ARM_PMON_THREAD_ID_SELF; - - return SCE_OK; -} - -error_code scePerfArmPmonStop(ARMv7Thread& cpu, s32 threadId) -{ - scePerf.warning("scePerfArmPmonStop(threadId=0x%x)"); - - verify(HERE), threadId == SCE_PERF_ARM_PMON_THREAD_ID_SELF; - - return SCE_OK; -} - -error_code scePerfArmPmonGetCounterValue(ARMv7Thread& cpu, s32 threadId, u32 counter, vm::ptr pValue) -{ - scePerf.warning("scePerfArmPmonGetCounterValue(threadId=0x%x, counter=%d, pValue=*0x%x)", threadId, counter, pValue); - - verify(HERE), threadId == SCE_PERF_ARM_PMON_THREAD_ID_SELF; - - if (counter >= 6 && counter != SCE_PERF_ARM_PMON_CYCLE_COUNTER) - { - return SCE_PERF_ERROR_INVALID_ARGUMENT; - } - - if (counter < 6) - { - *pValue = cpu.counters[counter].value; - } - else - { - fmt::throw_exception("Cycle counter requested" HERE); - } - - return SCE_OK; -} - -error_code scePerfArmPmonSoftwareIncrement(ARMv7Thread& cpu, u32 mask) -{ - scePerf.warning("scePerfArmPmonSoftwareIncrement(mask=0x%x)", mask); - - if (mask > SCE_PERF_ARM_PMON_COUNTER_MASK_ALL) - { - return SCE_PERF_ERROR_INVALID_ARGUMENT; - } - - for (u32 i = 0; i < 6; i++, mask >>= 1) - { - if (mask & 1) - { - cpu.counters[i].value++; - } - } - - return SCE_OK; -} - -u64 scePerfGetTimebaseValue() -{ - scePerf.warning("scePerfGetTimebaseValue()"); - - return get_system_time(); -} - -u32 scePerfGetTimebaseFrequency() -{ - scePerf.warning("scePerfGetTimebaseFrequency()"); - - return 1; -} - -s32 _sceRazorCpuInit(vm::cptr pBufferBase, u32 bufferSize, u32 numPerfCounters, vm::pptr psceRazorVars) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRazorCpuPushMarker(vm::cptr szLabel) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRazorCpuPopMarker() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRazorCpuSync() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(ScePerf, nid, name) - -DECLARE(arm_module_manager::ScePerf)("ScePerf", []() -{ - REG_FUNC(0x35151735, scePerfArmPmonReset); - REG_FUNC(0x63CBEA8B, scePerfArmPmonSelectEvent); - REG_FUNC(0xC9D969D5, scePerfArmPmonStart); - REG_FUNC(0xD1A40F54, scePerfArmPmonStop); - REG_FUNC(0x6132A497, scePerfArmPmonGetCounterValue); - //REG_FUNC(0x12F6C708, scePerfArmPmonSetCounterValue); - REG_FUNC(0x4264B4E7, scePerfArmPmonSoftwareIncrement); - REG_FUNC(0xBD9615E5, scePerfGetTimebaseValue); - REG_FUNC(0x78EA4FFB, scePerfGetTimebaseFrequency); - REG_FUNC(0x7AD6AC30, _sceRazorCpuInit); - REG_FUNC(0xC3DE4C0A, sceRazorCpuPushMarker); - REG_FUNC(0xDC3224C3, sceRazorCpuPopMarker); - REG_FUNC(0x4F1385E3, sceRazorCpuSync); -}); diff --git a/rpcs3/Emu/PSP2/Modules/scePerf.h b/rpcs3/Emu/PSP2/Modules/scePerf.h deleted file mode 100644 index 456b0e0b62..0000000000 --- a/rpcs3/Emu/PSP2/Modules/scePerf.h +++ /dev/null @@ -1,93 +0,0 @@ -#pragma once - -#include "Emu/PSP2/ErrorCodes.h" - -enum ScePerfError : u32 -{ - // Error Codes - SCE_PERF_ERROR_INVALID_ARGUMENT = 0x80580000, -}; - -enum : s32 -{ - // Thread IDs - SCE_PERF_ARM_PMON_THREAD_ID_ALL = -1, - SCE_PERF_ARM_PMON_THREAD_ID_SELF = 0, -}; - -enum : u32 -{ - // Counter Numbers - SCE_PERF_ARM_PMON_CYCLE_COUNTER = 31, - SCE_PERF_ARM_PMON_COUNTER_5 = 5, - SCE_PERF_ARM_PMON_COUNTER_4 = 4, - SCE_PERF_ARM_PMON_COUNTER_3 = 3, - SCE_PERF_ARM_PMON_COUNTER_2 = 2, - SCE_PERF_ARM_PMON_COUNTER_1 = 1, - SCE_PERF_ARM_PMON_COUNTER_0 = 0, - - // Counter Masks - SCE_PERF_ARM_PMON_COUNTER_MASK_5 = 0x20, - SCE_PERF_ARM_PMON_COUNTER_MASK_4 = 0x10, - SCE_PERF_ARM_PMON_COUNTER_MASK_3 = 0x08, - SCE_PERF_ARM_PMON_COUNTER_MASK_2 = 0x04, - SCE_PERF_ARM_PMON_COUNTER_MASK_1 = 0x02, - SCE_PERF_ARM_PMON_COUNTER_MASK_0 = 0x01, - SCE_PERF_ARM_PMON_COUNTER_MASK_ALL = 0x3f, -}; - -enum : u8 -{ - // Performance Counter Events - SCE_PERF_ARM_PMON_SOFT_INCREMENT = 0x00, - SCE_PERF_ARM_PMON_ICACHE_MISS = 0x01, - SCE_PERF_ARM_PMON_ITLB_MISS = 0x02, - SCE_PERF_ARM_PMON_DCACHE_MISS = 0x03, - SCE_PERF_ARM_PMON_DCACHE_ACCESS = 0x04, - SCE_PERF_ARM_PMON_DTLB_MISS = 0x05, - SCE_PERF_ARM_PMON_DATA_READ = 0x06, - SCE_PERF_ARM_PMON_DATA_WRITE = 0x07, - SCE_PERF_ARM_PMON_EXCEPTION_TAKEN = 0x09, - SCE_PERF_ARM_PMON_EXCEPTION_RETURN = 0x0A, - SCE_PERF_ARM_PMON_WRITE_CONTEXTID = 0x0B, - SCE_PERF_ARM_PMON_SOFT_CHANGEPC = 0x0C, - SCE_PERF_ARM_PMON_IMMEDIATE_BRANCH = 0x0D, - SCE_PERF_ARM_PMON_UNALIGNED = 0x0F, - SCE_PERF_ARM_PMON_BRANCH_MISPREDICT = 0x10, - SCE_PERF_ARM_PMON_PREDICT_BRANCH = 0x12, - SCE_PERF_ARM_PMON_COHERENT_LF_MISS = 0x50, - SCE_PERF_ARM_PMON_COHERENT_LF_HIT = 0x51, - SCE_PERF_ARM_PMON_ICACHE_STALL = 0x60, - SCE_PERF_ARM_PMON_DCACHE_STALL = 0x61, - SCE_PERF_ARM_PMON_MAINTLB_STALL = 0x62, - SCE_PERF_ARM_PMON_STREX_PASSED = 0x63, - SCE_PERF_ARM_PMON_STREX_FAILED = 0x64, - SCE_PERF_ARM_PMON_DATA_EVICTION = 0x65, - SCE_PERF_ARM_PMON_ISSUE_NO_DISPATCH = 0x66, - SCE_PERF_ARM_PMON_ISSUE_EMPTY = 0x67, - SCE_PERF_ARM_PMON_INST_RENAME = 0x68, - SCE_PERF_ARM_PMON_PREDICT_FUNC_RET = 0x6E, - SCE_PERF_ARM_PMON_MAIN_PIPE = 0x70, - SCE_PERF_ARM_PMON_SECOND_PIPE = 0x71, - SCE_PERF_ARM_PMON_LS_PIPE = 0x72, - SCE_PERF_ARM_PMON_FPU_RENAME = 0x73, - SCE_PERF_ARM_PMON_PLD_STALL = 0x80, - SCE_PERF_ARM_PMON_WRITE_STALL = 0x81, - SCE_PERF_ARM_PMON_INST_MAINTLB_STALL = 0x82, - SCE_PERF_ARM_PMON_DATA_MAINTLB_STALL = 0x83, - SCE_PERF_ARM_PMON_INST_UTLB_STALL = 0x84, - SCE_PERF_ARM_PMON_DATA_UTLB_STALL = 0x85, - SCE_PERF_ARM_PMON_DMB_STALL = 0x86, - SCE_PERF_ARM_PMON_INTEGER_CLOCK = 0x8A, - SCE_PERF_ARM_PMON_DATAENGINE_CLOCK = 0x8B, - SCE_PERF_ARM_PMON_ISB = 0x90, - SCE_PERF_ARM_PMON_DSB = 0x91, - SCE_PERF_ARM_PMON_DMB = 0x92, - SCE_PERF_ARM_PMON_EXT_INTERRUPT = 0x93, - SCE_PERF_ARM_PMON_PLE_LINE_REQ_COMPLETED = 0xA0, - SCE_PERF_ARM_PMON_PLE_CHANNEL_SKIPPED = 0xA1, - SCE_PERF_ARM_PMON_PLE_FIFO_FLUSH = 0xA2, - SCE_PERF_ARM_PMON_PLE_REQ_COMPLETED = 0xA3, - SCE_PERF_ARM_PMON_PLE_FIFO_OVERFLOW = 0xA4, - SCE_PERF_ARM_PMON_PLE_REQ_PROGRAMMED = 0xA5, -}; diff --git a/rpcs3/Emu/PSP2/Modules/scePgf.cpp b/rpcs3/Emu/PSP2/Modules/scePgf.cpp deleted file mode 100644 index 94d5d51b3c..0000000000 --- a/rpcs3/Emu/PSP2/Modules/scePgf.cpp +++ /dev/null @@ -1,36 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "scePgf.h" - -logs::channel scePgf("scePgf"); - -#define REG_FUNC(nid, name) REG_FNID(ScePgf, nid, name) - -DECLARE(arm_module_manager::ScePgf)("ScePgf", []() -{ - //REG_FUNC(0x1055ABA3, sceFontNewLib); - //REG_FUNC(0x07EE1733, sceFontDoneLib); - //REG_FUNC(0xDE47674C, sceFontSetResolution); - //REG_FUNC(0x9F842307, sceFontGetNumFontList); - //REG_FUNC(0xD56DCCEA, sceFontGetFontList); - //REG_FUNC(0x8DFBAE1B, sceFontFindOptimumFont); - //REG_FUNC(0x51061D87, sceFontFindFont); - //REG_FUNC(0xAB034738, sceFontGetFontInfoByIndexNumber); - //REG_FUNC(0xBD2DFCFF, sceFontOpen); - //REG_FUNC(0xE260E740, sceFontOpenUserFile); - //REG_FUNC(0xB23ED47C, sceFontOpenUserMemory); - //REG_FUNC(0x4A7293E9, sceFontClose); - //REG_FUNC(0xF9414FA2, sceFontGetFontInfo); - //REG_FUNC(0x6FD1BA65, sceFontGetCharInfo); - //REG_FUNC(0x70C86B3E, sceFontGetCharImageRect); - //REG_FUNC(0xAB45AAD3, sceFontGetCharGlyphImage); - //REG_FUNC(0xEB589530, sceFontGetCharGlyphImage_Clip); - //REG_FUNC(0x9E38F4D6, sceFontPixelToPointH); - //REG_FUNC(0x7B45E2D1, sceFontPixelToPointV); - //REG_FUNC(0x39B9AEFF, sceFontPointToPixelH); - //REG_FUNC(0x03F10EC8, sceFontPointToPixelV); - //REG_FUNC(0x8D5B44DF, sceFontSetAltCharacterCode); - //REG_FUNC(0x7D8CB13B, sceFontFlush); -}); diff --git a/rpcs3/Emu/PSP2/Modules/scePgf.h b/rpcs3/Emu/PSP2/Modules/scePgf.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/rpcs3/Emu/PSP2/Modules/scePgf.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/rpcs3/Emu/PSP2/Modules/scePhotoExport.cpp b/rpcs3/Emu/PSP2/Modules/scePhotoExport.cpp deleted file mode 100644 index 34ea89c4b0..0000000000 --- a/rpcs3/Emu/PSP2/Modules/scePhotoExport.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "scePhotoExport.h" - -logs::channel scePhotoExport("scePhotoExport"); - -s32 scePhotoExportFromData( - vm::cptr photodata, - s32 photodataSize, - vm::cptr param, - vm::ptr workMemory, - vm::ptr cancelFunc, - vm::ptr userdata, - vm::ptr exportedPath, - s32 exportedPathLength) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 scePhotoExportFromFile( - vm::cptr photodataPath, - vm::cptr param, - vm::ptr workMemory, - vm::ptr cancelFunc, - vm::ptr userdata, - vm::ptr exportedPath, - s32 exportedPathLength) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(libScePhotoExport, nid, name) - -DECLARE(arm_module_manager::ScePhotoExport)("libScePhotoExport", []() -{ - REG_FUNC(0x70512321, scePhotoExportFromData); - REG_FUNC(0x84FD9FC5, scePhotoExportFromFile); -}); diff --git a/rpcs3/Emu/PSP2/Modules/scePhotoExport.h b/rpcs3/Emu/PSP2/Modules/scePhotoExport.h deleted file mode 100644 index bff84f9810..0000000000 --- a/rpcs3/Emu/PSP2/Modules/scePhotoExport.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -struct ScePhotoExportParam -{ - le_t version; - vm::lcptr photoTitle; - vm::lcptr gameTitle; - vm::lcptr gameComment; - char reserved[32]; -}; - -using ScePhotoExportCancelFunc = s32(vm::ptr); diff --git a/rpcs3/Emu/PSP2/Modules/sceRazorCapture.cpp b/rpcs3/Emu/PSP2/Modules/sceRazorCapture.cpp deleted file mode 100644 index 9d75d4278c..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceRazorCapture.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceRazorCapture.h" - -logs::channel sceRazorCapture("sceRazorCapture"); - -void sceRazorCaptureSetTrigger(u32 frameIndex, vm::cptr captureFilename) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -void sceRazorCaptureSetTriggerNextFrame(vm::cptr captureFilename) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -b8 sceRazorCaptureIsInProgress() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(SceRazorCapture, nid, name) - -DECLARE(arm_module_manager::SceRazorCapture)("SceRazorCapture", []() -{ - REG_FUNC(0x911E0AA0, sceRazorCaptureIsInProgress); - REG_FUNC(0xE916B538, sceRazorCaptureSetTrigger); - REG_FUNC(0x3D4B7E68, sceRazorCaptureSetTriggerNextFrame); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceRazorCapture.h b/rpcs3/Emu/PSP2/Modules/sceRazorCapture.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceRazorCapture.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/rpcs3/Emu/PSP2/Modules/sceRtc.cpp b/rpcs3/Emu/PSP2/Modules/sceRtc.cpp deleted file mode 100644 index 2e6cbfa82c..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceRtc.cpp +++ /dev/null @@ -1,236 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceRtc.h" - -logs::channel sceRtc("sceRtc"); - -u32 sceRtcGetTickResolution() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcGetCurrentTick(vm::ptr pTick) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcGetCurrentClock(vm::ptr pTime, s32 iTimeZone) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcGetCurrentClockLocalTime(vm::ptr pTime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcGetCurrentNetworkTick(vm::ptr pTick) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcConvertUtcToLocalTime(vm::cptr pUtc, vm::ptr pLocalTime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcConvertLocalTimeToUtc(vm::cptr pLocalTime, vm::ptr pUtc) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcIsLeapYear(s32 year) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcGetDaysInMonth(s32 year, s32 month) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcGetDayOfWeek(s32 year, s32 month, s32 day) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcCheckValid(vm::cptr pTime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcSetTime_t(vm::ptr pTime, u32 iTime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcSetTime64_t(vm::ptr pTime, u64 ullTime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcGetTime_t(vm::cptr pTime, vm::ptr piTime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcGetTime64_t(vm::cptr pTime, vm::ptr pullTime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcSetDosTime(vm::ptr pTime, u32 uiDosTime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcGetDosTime(vm::cptr pTime, vm::ptr puiDosTime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcSetWin32FileTime(vm::ptr pTime, u64 ulWin32Time) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcGetWin32FileTime(vm::cptr pTime, vm::ptr ulWin32Time) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcSetTick(vm::ptr pTime, vm::cptr pTick) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcGetTick(vm::cptr pTime, vm::ptr pTick) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcCompareTick(vm::cptr pTick1, vm::cptr pTick2) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcTickAddTicks(vm::ptr pTick0, vm::cptr pTick1, u64 lAdd) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcTickAddMicroseconds(vm::ptr pTick0, vm::cptr pTick1, u64 lAdd) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcTickAddSeconds(vm::ptr pTick0, vm::cptr pTick1, u64 lAdd) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcTickAddMinutes(vm::ptr pTick0, vm::cptr pTick1, u64 lAdd) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcTickAddHours(vm::ptr pTick0, vm::cptr pTick1, s32 lAdd) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcTickAddDays(vm::ptr pTick0, vm::cptr pTick1, s32 lAdd) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcTickAddWeeks(vm::ptr pTick0, vm::cptr pTick1, s32 lAdd) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcTickAddMonths(vm::ptr pTick0, vm::cptr pTick1, s32 lAdd) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcTickAddYears(vm::ptr pTick0, vm::cptr pTick1, s32 lAdd) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcFormatRFC2822(vm::ptr pszDateTime, vm::cptr pUtc, s32 iTimeZoneMinutes) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcFormatRFC2822LocalTime(vm::ptr pszDateTime, vm::cptr pUtc) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcFormatRFC3339(vm::ptr pszDateTime, vm::cptr pUtc, s32 iTimeZoneMinutes) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcFormatRFC3339LocalTime(vm::ptr pszDateTime, vm::cptr pUtc) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcParseDateTime(vm::ptr pUtc, vm::cptr pszDateTime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceRtcParseRFC3339(vm::ptr pUtc, vm::cptr pszDateTime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceRtcUser, nid, name) - -DECLARE(arm_module_manager::SceRtc)("SceRtcUser", []() -{ - REG_FUNC(0x23F79274, sceRtcGetCurrentTick); - REG_FUNC(0xCDDD25FE, sceRtcGetCurrentNetworkTick); - REG_FUNC(0x70FDE8F1, sceRtcGetCurrentClock); - REG_FUNC(0x0572EDDC, sceRtcGetCurrentClockLocalTime); - REG_FUNC(0x1282C436, sceRtcConvertUtcToLocalTime); - REG_FUNC(0x0A05E201, sceRtcConvertLocalTimeToUtc); - REG_FUNC(0x42CA8EB5, sceRtcFormatRFC2822LocalTime); - REG_FUNC(0x147F2138, sceRtcFormatRFC2822); - REG_FUNC(0x742250A9, sceRtcFormatRFC3339LocalTime); - REG_FUNC(0xCCEA2B54, sceRtcFormatRFC3339); - REG_FUNC(0xF17FD8B5, sceRtcIsLeapYear); - REG_FUNC(0x49EB4556, sceRtcGetDaysInMonth); - REG_FUNC(0x2F3531EB, sceRtcGetDayOfWeek); - REG_FUNC(0xD7622935, sceRtcCheckValid); - REG_FUNC(0x3A332F81, sceRtcSetTime_t); - REG_FUNC(0xA6C36B6A, sceRtcSetTime64_t); - REG_FUNC(0x8DE6FEB7, sceRtcGetTime_t); - REG_FUNC(0xC995DE02, sceRtcGetTime64_t); - REG_FUNC(0xF8B22B07, sceRtcSetDosTime); - REG_FUNC(0x92ABEBAF, sceRtcGetDosTime); - REG_FUNC(0xA79A8846, sceRtcSetWin32FileTime); - REG_FUNC(0x8A95E119, sceRtcGetWin32FileTime); - REG_FUNC(0x811313B3, sceRtcGetTickResolution); - REG_FUNC(0xCD89F464, sceRtcSetTick); - REG_FUNC(0xF2B238E2, sceRtcGetTick); - REG_FUNC(0xC7385158, sceRtcCompareTick); - REG_FUNC(0x4559E2DB, sceRtcTickAddTicks); - REG_FUNC(0xAE26D920, sceRtcTickAddMicroseconds); - REG_FUNC(0x979AFD79, sceRtcTickAddSeconds); - REG_FUNC(0x4C358871, sceRtcTickAddMinutes); - REG_FUNC(0x6F193F55, sceRtcTickAddHours); - REG_FUNC(0x58DE3C70, sceRtcTickAddDays); - REG_FUNC(0xE713C640, sceRtcTickAddWeeks); - REG_FUNC(0x6321B4AA, sceRtcTickAddMonths); - REG_FUNC(0xDF6C3E1B, sceRtcTickAddYears); - REG_FUNC(0x2347CE12, sceRtcParseDateTime); - REG_FUNC(0x2D18AEEC, sceRtcParseRFC3339); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceRtc.h b/rpcs3/Emu/PSP2/Modules/sceRtc.h deleted file mode 100644 index 4fd403207b..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceRtc.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#include "Common.h" diff --git a/rpcs3/Emu/PSP2/Modules/sceSas.cpp b/rpcs3/Emu/PSP2/Modules/sceSas.cpp deleted file mode 100644 index 3af6d84e84..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSas.cpp +++ /dev/null @@ -1,208 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceSas.h" - -logs::channel sceSas("sceSas"); - -s32 sceSasGetNeededMemorySize(vm::cptr config, vm::ptr outSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasInit(vm::cptr config, vm::ptr buffer, u32 bufferSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasInitWithGrain(vm::cptr config, u32 grain, vm::ptr buffer, u32 bufferSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasExit(vm::pptr outBuffer, vm::ptr outBufferSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetGrain(u32 grain) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasGetGrain() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetOutputmode(u32 outputmode) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasGetOutputmode() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasCore(vm::ptr out) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasCoreWithMix(vm::ptr inOut, s32 lvol, s32 rvol) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetVoice(s32 iVoiceNum, vm::cptr vagBuf, u32 size, u32 loopflag) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetVoicePCM(s32 iVoiceNum, vm::cptr pcmBuf, u32 size, s32 loopsize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetNoise(s32 iVoiceNum, u32 uClk) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetVolume(s32 iVoiceNum, s32 l, s32 r, s32 wl, s32 wr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetPitch(s32 iVoiceNum, s32 pitch) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetADSR(s32 iVoiceNum, u32 flag, u32 ar, u32 dr, u32 sr, u32 rr) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetADSRmode(s32 iVoiceNum, u32 flag, u32 am, u32 dm, u32 sm, u32 rm) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetSL(s32 iVoiceNum, u32 sl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetSimpleADSR(s32 iVoiceNum, u16 adsr1, u16 adsr2) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetKeyOn(s32 iVoiceNum) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetKeyOff(s32 iVoiceNum) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetPause(s32 iVoiceNum, u32 pauseFlag) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasGetPauseState(s32 iVoiceNum) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasGetEndState(s32 iVoiceNum) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasGetEnvelope(s32 iVoiceNum) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetEffect(s32 drySwitch, s32 wetSwitch) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetEffectType(s32 type) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetEffectVolume(s32 valL, s32 valR) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSasSetEffectParam(u32 delayTime, u32 feedback) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceSas, nid, name) - -DECLARE(arm_module_manager::SceSas)("SceSas", []() -{ - //REG_FUNC(0xA2209C58, sceAsSetRegisterReportHandler); - //REG_FUNC(0xBB635544, sceAsSetUnregisterReportHandler); - //REG_FUNC(0xF578F0EF, sceAsGetSystemNeededMemory); - //REG_FUNC(0xAA8D4541, sceAsCreateSystem); - //REG_FUNC(0x139D29C0, sceAsDestroySystem); - //REG_FUNC(0xBE843EEC, sceAsLockParam); - //REG_FUNC(0xFF2380C4, sceAsUnlockParam); - //REG_FUNC(0x2549F436, sceAsSetEvent); - //REG_FUNC(0xDC26B9F2, sceAsGetState); - //REG_FUNC(0xB6220E73, sceAsSetBuss); - //REG_FUNC(0x1E608068, sceAsSetRacks); - //REG_FUNC(0x5835B473, sceAsSetGranularity); - //REG_FUNC(0xDFE6502F, sceAsGetGranularity); - //REG_FUNC(0xC72F1EEF, sceAsRender); - //REG_FUNC(0xCE23F057, sceAsLockUpdate); - //REG_FUNC(0x8BEF3C92, sceAsUnlockUpdate); - REG_FUNC(0x180C6824, sceSasGetNeededMemorySize); - REG_FUNC(0x449B5974, sceSasInit); - REG_FUNC(0x820D5F82, sceSasInitWithGrain); - REG_FUNC(0xBB7D6790, sceSasExit); - REG_FUNC(0x2B4A207C, sceSasSetGrain); - REG_FUNC(0x2BEA45BC, sceSasGetGrain); - REG_FUNC(0x44DDB3C4, sceSasSetOutputmode); - REG_FUNC(0x2C36E150, sceSasGetOutputmode); - REG_FUNC(0x7A4672B2, sceSasCore); - REG_FUNC(0xBD496983, sceSasCoreWithMix); - REG_FUNC(0x2B75F9BC, sceSasSetVoice); - REG_FUNC(0xB1756EFC, sceSasSetVoicePCM); - REG_FUNC(0xF1C63CB9, sceSasSetNoise); - REG_FUNC(0x0BE8204D, sceSasSetVolume); - //REG_FUNC(0x011788BE, sceSasSetDistortion); - REG_FUNC(0x2C48A08C, sceSasSetPitch); - REG_FUNC(0x18A5EFA2, sceSasSetADSR); - REG_FUNC(0x5207F9D2, sceSasSetADSRmode); - REG_FUNC(0xDE6227B8, sceSasSetSL); - REG_FUNC(0xECCE0DB8, sceSasSetSimpleADSR); - REG_FUNC(0xC838DB6F, sceSasSetKeyOn); - REG_FUNC(0x5E42ADAB, sceSasSetKeyOff); - REG_FUNC(0x59C7A9DF, sceSasSetPause); - REG_FUNC(0x007E63E6, sceSasGetEndState); - REG_FUNC(0xFD1A0CBF, sceSasGetPauseState); - REG_FUNC(0x296A9910, sceSasGetEnvelope); - REG_FUNC(0xB0444E69, sceSasSetEffect); - REG_FUNC(0xCDF2DDD5, sceSasSetEffectType); - REG_FUNC(0x55EDDBFA, sceSasSetEffectVolume); - REG_FUNC(0xBAD546A0, sceSasSetEffectParam); - //REG_FUNC(0xB6642276, sceSasGetDryPeak); - //REG_FUNC(0x4314F0E9, sceSasGetWetPeak); - //REG_FUNC(0x1568017A, sceSasGetPreMasterPeak); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceSas.h b/rpcs3/Emu/PSP2/Modules/sceSas.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSas.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/rpcs3/Emu/PSP2/Modules/sceScreenShot.cpp b/rpcs3/Emu/PSP2/Modules/sceScreenShot.cpp deleted file mode 100644 index f0e8230c09..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceScreenShot.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceScreenShot.h" - -logs::channel sceScreenShot("sceScreenShot"); - -s32 sceScreenShotSetParam(vm::cptr param) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceScreenShotSetOverlayImage(vm::cptr filePath, s32 offsetX, s32 offsetY) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceScreenShotDisable() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceScreenShotEnable() -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(libSceScreenShot, nid, name) - -DECLARE(arm_module_manager::SceScreenShot)("libSceScreenShot", []() -{ - REG_FUNC(0x05DB59C7, sceScreenShotSetParam); - REG_FUNC(0x7061665B, sceScreenShotSetOverlayImage); - REG_FUNC(0x50AE9FF9, sceScreenShotDisable); - REG_FUNC(0x76E674D1, sceScreenShotEnable); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceScreenShot.h b/rpcs3/Emu/PSP2/Modules/sceScreenShot.h deleted file mode 100644 index 98d79a5b27..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceScreenShot.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once - -struct SceScreenShotParam -{ - vm::lcptr photoTitle; - vm::lcptr gameTitle; - vm::lcptr gameComment; - vm::lptr reserved; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceSfmt.cpp b/rpcs3/Emu/PSP2/Modules/sceSfmt.cpp deleted file mode 100644 index e242072248..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSfmt.cpp +++ /dev/null @@ -1,80 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -logs::channel sceSfmt("sceSfmt"); - -#define REG_FUNC(nid, name) REG_FNID(SceSfmt, nid, name) - -DECLARE(arm_module_manager::SceSfmt)("SceSfmt", []() -{ - //REG_FUNC(0x8FF464C9, sceSfmt11213InitGenRand); - //REG_FUNC(0xBAF5F058, sceSfmt11213InitByArray); - //REG_FUNC(0xFB281CD7, sceSfmt11213GenRand32); - //REG_FUNC(0xAFEDD6E1, sceSfmt11213GenRand64); - //REG_FUNC(0xFD696585, sceSfmt11213FillArray32); - //REG_FUNC(0x7A412A29, sceSfmt11213FillArray64); - - //REG_FUNC(0x02E8D906, sceSfmt1279InitGenRand); - //REG_FUNC(0xC25D9ACE, sceSfmt1279InitByArray); - //REG_FUNC(0x9B4A48DF, sceSfmt1279GenRand32); - //REG_FUNC(0xA2C5EE14, sceSfmt1279GenRand64); - //REG_FUNC(0xE7F63838, sceSfmt1279FillArray32); - //REG_FUNC(0xDB3832EB, sceSfmt1279FillArray64); - - //REG_FUNC(0xDC6B23B0, sceSfmt132049InitGenRand); - //REG_FUNC(0xDC69294A, sceSfmt132049InitByArray); - //REG_FUNC(0x795F9644, sceSfmt132049GenRand32); - //REG_FUNC(0xBBD80AC4, sceSfmt132049GenRand64); - //REG_FUNC(0xD891A99F, sceSfmt132049FillArray32); - //REG_FUNC(0x68AD7866, sceSfmt132049FillArray64); - - //REG_FUNC(0x2AFACB0B, sceSfmt19937InitGenRand); - //REG_FUNC(0xAC496C8C, sceSfmt19937InitByArray); - //REG_FUNC(0xF0557157, sceSfmt19937GenRand32); - //REG_FUNC(0xE66F2502, sceSfmt19937GenRand64); - //REG_FUNC(0xA1C654D8, sceSfmt19937FillArray32); - //REG_FUNC(0xE74BA81C, sceSfmt19937FillArray64); - - //REG_FUNC(0x86DDE4A7, sceSfmt216091InitGenRand); - //REG_FUNC(0xA9CF6616, sceSfmt216091InitByArray); - //REG_FUNC(0x4A972DCD, sceSfmt216091GenRand32); - //REG_FUNC(0x23369ABF, sceSfmt216091GenRand64); - //REG_FUNC(0xDD4256F0, sceSfmt216091FillArray32); - //REG_FUNC(0xA1CE5628, sceSfmt216091FillArray64); - - //REG_FUNC(0xB8E5A0BB, sceSfmt2281InitGenRand); - //REG_FUNC(0xAB3AD459, sceSfmt2281InitByArray); - //REG_FUNC(0x84BB4ADB, sceSfmt2281GenRand32); - //REG_FUNC(0x3CC47146, sceSfmt2281GenRand64); - //REG_FUNC(0xBB89D8F0, sceSfmt2281FillArray32); - //REG_FUNC(0x17C10E2D, sceSfmt2281FillArray64); - - //REG_FUNC(0xE9F8CB9A, sceSfmt4253InitGenRand); - //REG_FUNC(0xC4D7AA2D, sceSfmt4253InitByArray); - //REG_FUNC(0x8791E2EF, sceSfmt4253GenRand32); - //REG_FUNC(0x6C0E5E3C, sceSfmt4253GenRand64); - //REG_FUNC(0x59A1B9FC, sceSfmt4253FillArray32); - //REG_FUNC(0x01683CDD, sceSfmt4253FillArray64); - - //REG_FUNC(0xCF1C8C38, sceSfmt44497InitGenRand); - //REG_FUNC(0x16D8AA5E, sceSfmt44497InitByArray); - //REG_FUNC(0xF869DFDC, sceSfmt44497GenRand32); - //REG_FUNC(0xD411A9A6, sceSfmt44497GenRand64); - //REG_FUNC(0x1C38322A, sceSfmt44497FillArray32); - //REG_FUNC(0x908F1122, sceSfmt44497FillArray64); - - //REG_FUNC(0x76A5D8CA, sceSfmt607InitGenRand); - //REG_FUNC(0xCC6DABA0, sceSfmt607InitByArray); - //REG_FUNC(0x8A0BF859, sceSfmt607GenRand32); - //REG_FUNC(0x5E880862, sceSfmt607GenRand64); - //REG_FUNC(0xA288ADB9, sceSfmt607FillArray32); - //REG_FUNC(0x1520D408, sceSfmt607FillArray64); - - //REG_FUNC(0x2FF42588, sceSfmt86243InitGenRand); - //REG_FUNC(0x81B67AB5, sceSfmt86243InitByArray); - //REG_FUNC(0x569BF903, sceSfmt86243GenRand32); - //REG_FUNC(0x8E25CBA8, sceSfmt86243GenRand64); - //REG_FUNC(0xC297E6B1, sceSfmt86243FillArray32); - //REG_FUNC(0xF7FFE87C, sceSfmt86243FillArray64); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceSha.cpp b/rpcs3/Emu/PSP2/Modules/sceSha.cpp deleted file mode 100644 index 7250f902f9..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSha.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -logs::channel sceSha("sceSha"); - -#define REG_FUNC(nid, name) REG_FNID(SceSha, nid, name) - -DECLARE(arm_module_manager::SceSha)("SceSha", []() -{ - //REG_FUNC(0xD19A9AA8, sceSha0Digest); - //REG_FUNC(0xBCF6DB3A, sceSha0BlockInit); - //REG_FUNC(0x37EF2AFC, sceSha0BlockUpdate); - //REG_FUNC(0xBF0158C4, sceSha0BlockResult); - - //REG_FUNC(0xE1215C9D, sceSha1Digest); - //REG_FUNC(0xB13D65AA, sceSha1BlockInit); - //REG_FUNC(0x9007205E, sceSha1BlockUpdate); - //REG_FUNC(0x0195DADF, sceSha1BlockResult); - - //REG_FUNC(0x1346D270, sceSha224Digest); - //REG_FUNC(0x538F04CE, sceSha224BlockInit); - //REG_FUNC(0xB5FD0160, sceSha224BlockUpdate); - //REG_FUNC(0xA36ECF65, sceSha224BlockResult); - - //REG_FUNC(0xA337079C, sceSha256Digest); - //REG_FUNC(0xE281374F, sceSha256BlockInit); - //REG_FUNC(0xDAECA1F8, sceSha256BlockUpdate); - //REG_FUNC(0x9B5BB4BA, sceSha256BlockResult); - - //REG_FUNC(0xA602C694, sceSha384Digest); - //REG_FUNC(0x037AABE7, sceSha384BlockInit); - //REG_FUNC(0x4B99DBB8, sceSha384BlockUpdate); - //REG_FUNC(0x30D5C919, sceSha384BlockResult); - - //REG_FUNC(0x5DC0B916, sceSha512Digest); - //REG_FUNC(0xE017A9CD, sceSha512BlockInit); - //REG_FUNC(0x669281E8, sceSha512BlockUpdate); - //REG_FUNC(0x26146A16, sceSha512BlockResult); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceSqlite.cpp b/rpcs3/Emu/PSP2/Modules/sceSqlite.cpp deleted file mode 100644 index 90e5a6c0ac..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSqlite.cpp +++ /dev/null @@ -1,185 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceSqlite.h" - -logs::channel sceSqlite("sceSqlite"); - -#define REG_FUNC(nid, name) REG_FNID(SceSqlite, nid, name) - -DECLARE(arm_module_manager::SceSqlite)("SceSqlite", []() -{ - //REG_FUNC(0x26E46324, sqlite3_libversion); - //REG_FUNC(0x4CCB58A2, sqlite3_sourceid); - //REG_FUNC(0x5982F404, sqlite3_libversion_number); - //REG_FUNC(0xA3B818DA, sqlite3_threadsafe); - //REG_FUNC(0x7DF94B79, sqlite3_close); - //REG_FUNC(0x2371E86A, sqlite3_exec); - //REG_FUNC(0xC22AF627, sqlite3_initialize); - //REG_FUNC(0x99B5A4A3, sqlite3_shutdown); - //REG_FUNC(0xBD304836, sqlite3_os_init); - //REG_FUNC(0x9CE7C4C3, sqlite3_os_end); - //REG_FUNC(0x96C5D388, sqlite3_config); - //REG_FUNC(0xADFB25C0, sqlite3_db_config); - //REG_FUNC(0x3892C4B8, sqlite3_extended_result_codes); - //REG_FUNC(0x301851A1, sqlite3_last_insert_rowid); - //REG_FUNC(0xF206FBA1, sqlite3_changes); - //REG_FUNC(0x02ADA92D, sqlite3_total_changes); - //REG_FUNC(0x3CB771AC, sqlite3_interrupt); - //REG_FUNC(0x2E28B2A7, sqlite3_complete); - //REG_FUNC(0x4EAB317B, sqlite3_complete16); - //REG_FUNC(0xB5B5D287, sqlite3_busy_handler); - //REG_FUNC(0xAE8E3630, sqlite3_busy_timeout); - //REG_FUNC(0xF2AB9C89, sqlite3_get_table); - //REG_FUNC(0x1FEC6959, sqlite3_free_table); - //REG_FUNC(0xE630216C, sqlite3_mprintf); - //REG_FUNC(0xC6372184, sqlite3_vmprintf); - //REG_FUNC(0xCC189941, sqlite3_snprintf); - //REG_FUNC(0xF01DEB95, sqlite3_malloc); - //REG_FUNC(0xD1CF5631, sqlite3_realloc); - //REG_FUNC(0xCBF0CA8A, sqlite3_free); - //REG_FUNC(0x8E4F6ED5, sqlite3_memory_used); - //REG_FUNC(0x2F33DAD6, sqlite3_memory_highwater); - //REG_FUNC(0x5A2590BF, sqlite3_randomness); - //REG_FUNC(0x77FB3458, sqlite3_set_authorizer); - //REG_FUNC(0xFC127A83, sqlite3_trace); - //REG_FUNC(0x48B789A1, sqlite3_profile); - //REG_FUNC(0x19165D04, sqlite3_progress_handler); - //REG_FUNC(0x8E506859, sqlite3_open); - //REG_FUNC(0x881EEDD8, sqlite3_open16); - //REG_FUNC(0xA1E98A41, sqlite3_open_v2); - //REG_FUNC(0xA7AAE2E7, sqlite3_errcode); - //REG_FUNC(0x91187282, sqlite3_extended_errcode); - //REG_FUNC(0xABFB8B6E, sqlite3_errmsg); - //REG_FUNC(0xF0DE1A97, sqlite3_errmsg16); - //REG_FUNC(0xDED2D517, sqlite3_limit); - //REG_FUNC(0x0C1B5509, sqlite3_prepare); - //REG_FUNC(0xBC4BDCF4, sqlite3_prepare_v2); - //REG_FUNC(0xC657CFB8, sqlite3_prepare16); - //REG_FUNC(0x426D81D2, sqlite3_prepare16_v2); - //REG_FUNC(0x082C36D4, sqlite3_sql); - //REG_FUNC(0x3F225D62, sqlite3_bind_blob); - //REG_FUNC(0xDE007F1B, sqlite3_bind_double); - //REG_FUNC(0x14ABCBCC, sqlite3_bind_int); - //REG_FUNC(0x43D967EF, sqlite3_bind_int64); - //REG_FUNC(0xFF8A9974, sqlite3_bind_null); - //REG_FUNC(0x613AB709, sqlite3_bind_text); - //REG_FUNC(0x9D0FEAEF, sqlite3_bind_text16); - //REG_FUNC(0x8A667D2A, sqlite3_bind_value); - //REG_FUNC(0x78FBA2D0, sqlite3_bind_zeroblob); - //REG_FUNC(0x17D4F00B, sqlite3_bind_parameter_count); - //REG_FUNC(0x96D3B5F9, sqlite3_bind_parameter_name); - //REG_FUNC(0xD4D2A5D8, sqlite3_bind_parameter_index); - //REG_FUNC(0x690947E2, sqlite3_clear_bindings); - //REG_FUNC(0x8567A8DE, sqlite3_column_count); - //REG_FUNC(0xBC422DF6, sqlite3_column_name); - //REG_FUNC(0x6EF9A642, sqlite3_column_name16); - //REG_FUNC(0x5AE92D67, sqlite3_column_decltype); - //REG_FUNC(0xE058DE60, sqlite3_column_decltype16); - //REG_FUNC(0xCA8755B7, sqlite3_step); - //REG_FUNC(0x61911935, sqlite3_data_count); - //REG_FUNC(0xFE237ED7, sqlite3_column_blob); - //REG_FUNC(0x36013FE4, sqlite3_column_bytes); - //REG_FUNC(0x439F160B, sqlite3_column_bytes16); - //REG_FUNC(0xC4866097, sqlite3_column_double); - //REG_FUNC(0xE5B6BA01, sqlite3_column_int); - //REG_FUNC(0x90BA0B88, sqlite3_column_int64); - //REG_FUNC(0x8E68D270, sqlite3_column_text); - //REG_FUNC(0xD7BD6B76, sqlite3_column_text16); - //REG_FUNC(0xDBB25C43, sqlite3_column_type); - //REG_FUNC(0x2227F21D, sqlite3_column_value); - //REG_FUNC(0xB656B7E2, sqlite3_finalize); - //REG_FUNC(0xA6ECC214, sqlite3_reset); - //REG_FUNC(0xB0543897, sqlite3_create_function); - //REG_FUNC(0x7655FA45, sqlite3_create_function16); - //REG_FUNC(0x6AB02532, sqlite3_aggregate_count); - //REG_FUNC(0xF8AA518B, sqlite3_expired); - //REG_FUNC(0x6EC012E5, sqlite3_transfer_bindings); - //REG_FUNC(0xF48E021B, sqlite3_global_recover); - //REG_FUNC(0x173C9C0B, sqlite3_thread_cleanup); - //REG_FUNC(0x56EDF517, sqlite3_memory_alarm); - //REG_FUNC(0xC9962B31, sqlite3_value_blob); - //REG_FUNC(0x5368EF1F, sqlite3_value_bytes); - //REG_FUNC(0x4D10900D, sqlite3_value_bytes16); - //REG_FUNC(0xF1F2C9BE, sqlite3_value_double); - //REG_FUNC(0x4809A520, sqlite3_value_int); - //REG_FUNC(0xA6581C04, sqlite3_value_int64); - //REG_FUNC(0x7EB97356, sqlite3_value_text); - //REG_FUNC(0x5BBE38C2, sqlite3_value_text16); - //REG_FUNC(0x014863A6, sqlite3_value_text16le); - //REG_FUNC(0x3B89AA8D, sqlite3_value_text16be); - //REG_FUNC(0xC5EEBB5D, sqlite3_value_type); - //REG_FUNC(0x81B7D43D, sqlite3_value_numeric_type); - //REG_FUNC(0xAA8BE477, sqlite3_aggregate_context); - //REG_FUNC(0x78FF81FB, sqlite3_user_data); - //REG_FUNC(0x74259C09, sqlite3_context_db_handle); - //REG_FUNC(0x394FC1CB, sqlite3_get_auxdata); - //REG_FUNC(0x129E01C9, sqlite3_set_auxdata); - //REG_FUNC(0x90CDF8C1, sqlite3_result_blob); - //REG_FUNC(0xC2A5C2F8, sqlite3_result_double); - //REG_FUNC(0x063BFACA, sqlite3_result_error); - //REG_FUNC(0xAB2AEB4A, sqlite3_result_error16); - //REG_FUNC(0xAB9EFF96, sqlite3_result_error_toobig); - //REG_FUNC(0x944E747A, sqlite3_result_error_nomem); - //REG_FUNC(0x1165223C, sqlite3_result_error_code); - //REG_FUNC(0x5C9CD9D4, sqlite3_result_int); - //REG_FUNC(0x0EF1AA07, sqlite3_result_int64); - //REG_FUNC(0x6DE09482, sqlite3_result_null); - //REG_FUNC(0x696B5E6A, sqlite3_result_text); - //REG_FUNC(0x3AF5D206, sqlite3_result_text16); - //REG_FUNC(0x845B4FC2, sqlite3_result_text16le); - //REG_FUNC(0xEE3E906A, sqlite3_result_text16be); - //REG_FUNC(0x09664492, sqlite3_result_value); - //REG_FUNC(0x3D463CF7, sqlite3_result_zeroblob); - //REG_FUNC(0xC61B63FB, sqlite3_create_collation); - //REG_FUNC(0x4B110AF2, sqlite3_create_collation_v2); - //REG_FUNC(0xF7FE99C8, sqlite3_create_collation16); - //REG_FUNC(0x836C99A3, sqlite3_collation_needed); - //REG_FUNC(0x537066CE, sqlite3_collation_needed16); - //REG_FUNC(0x6B88D1D4, sqlite3_sleep); - //REG_FUNC(0x0910C3CB, sqlite3_get_autocommit); - //REG_FUNC(0x2C62429E, sqlite3_db_handle); - //REG_FUNC(0xD257592A, sqlite3_next_stmt); - //REG_FUNC(0x4BAE6E3B, sqlite3_commit_hook); - //REG_FUNC(0x67F53D6B, sqlite3_rollback_hook); - //REG_FUNC(0xEB05FE87, sqlite3_update_hook); - //REG_FUNC(0xF0094BED, sqlite3_enable_shared_cache); - //REG_FUNC(0x8F99FBE5, sqlite3_release_memory); - //REG_FUNC(0xD1458BA7, sqlite3_soft_heap_limit); - //REG_FUNC(0xC9EA8E1F, sqlite3_load_extension); - //REG_FUNC(0x9BFC6F07, sqlite3_enable_load_extension); - //REG_FUNC(0x24738263, sqlite3_auto_extension); - //REG_FUNC(0xC4296FFD, sqlite3_reset_auto_extension); - //REG_FUNC(0x8970C45F, sqlite3_create_module); - //REG_FUNC(0x1AA3BC1A, sqlite3_create_module_v2); - //REG_FUNC(0x7E2A5E8F, sqlite3_declare_vtab); - //REG_FUNC(0xAF680D40, sqlite3_overload_function); - //REG_FUNC(0xD35B3E55, sqlite3_blob_open); - //REG_FUNC(0xC085A15D, sqlite3_blob_close); - //REG_FUNC(0xA07AEEE3, sqlite3_blob_bytes); - //REG_FUNC(0x71393AA4, sqlite3_blob_read); - //REG_FUNC(0xBDB46BCF, sqlite3_blob_write); - //REG_FUNC(0x0C6DD8C3, sqlite3_vfs_find); - //REG_FUNC(0x65F53B9C, sqlite3_vfs_register); - //REG_FUNC(0x69CF4171, sqlite3_vfs_unregister); - //REG_FUNC(0xEEB7839F, sqlite3_mutex_alloc); - //REG_FUNC(0x38E933E2, sqlite3_mutex_free); - //REG_FUNC(0x60DB89C0, sqlite3_mutex_enter); - //REG_FUNC(0x218D700E, sqlite3_mutex_try); - //REG_FUNC(0x545ABDDB, sqlite3_mutex_leave); - //REG_FUNC(0xA8E53D26, sqlite3_db_mutex); - //REG_FUNC(0xBB096FBD, sqlite3_file_control); - //REG_FUNC(0x324D4EFD, sqlite3_test_control); - //REG_FUNC(0xD8C435AA, sqlite3_status); - //REG_FUNC(0xB5DFAF6A, sqlite3_db_status); - //REG_FUNC(0xF7ABF5FA, sqlite3_stmt_status); - //REG_FUNC(0x91DDB12A, sqlite3_backup_init); - //REG_FUNC(0x2A15E081, sqlite3_backup_step); - //REG_FUNC(0x93A6B7EF, sqlite3_backup_finish); - //REG_FUNC(0x9962540B, sqlite3_backup_remaining); - //REG_FUNC(0x20D054CF, sqlite3_backup_pagecount); - //REG_FUNC(0x12E2FC18, sqlite3_strnicmp); - //REG_FUNC(0xB80D43C7, sqlite3_version); - //REG_FUNC(0x1AEC1F74, sqlite3_temp_directory); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceSqlite.h b/rpcs3/Emu/PSP2/Modules/sceSqlite.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSqlite.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/rpcs3/Emu/PSP2/Modules/sceSsl.cpp b/rpcs3/Emu/PSP2/Modules/sceSsl.cpp deleted file mode 100644 index 7cdf868148..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSsl.cpp +++ /dev/null @@ -1,80 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceSsl.h" - -logs::channel sceSsl("sceSsl"); - -s32 sceSslInit(u32 poolSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSslTerm() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSslGetMemoryPoolStats(vm::ptr currentStat) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSslGetSerialNumber(vm::ptr sslCert, vm::cpptr sboData, vm::ptr sboLen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceSslGetSubjectName(vm::ptr sslCert) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -vm::ptr sceSslGetIssuerName(vm::ptr sslCert) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSslGetNotBefore(vm::ptr sslCert, vm::ptr begin) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSslGetNotAfter(vm::ptr sslCert, vm::ptr limit) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSslGetNameEntryCount(vm::ptr certName) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSslGetNameEntryInfo(vm::ptr certName, s32 entryNum, vm::ptr oidname, u32 maxOidnameLen, vm::ptr value, u32 maxValueLen, vm::ptr valueLen) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSslFreeSslCertName(vm::ptr certName) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceSsl, nid, name) - -DECLARE(arm_module_manager::SceSsl)("SceSsl", []() -{ - REG_FUNC(0x3C733316, sceSslInit); - REG_FUNC(0x03CE6E3A, sceSslTerm); - REG_FUNC(0xBD203262, sceSslGetMemoryPoolStats); - REG_FUNC(0x901C5C15, sceSslGetSerialNumber); - REG_FUNC(0x9B2F1BC1, sceSslGetSubjectName); - REG_FUNC(0x412711E5, sceSslGetIssuerName); - REG_FUNC(0x70DEA174, sceSslGetNotBefore); - REG_FUNC(0xF5ED7B68, sceSslGetNotAfter); - REG_FUNC(0x95E14CA6, sceSslGetNameEntryCount); - REG_FUNC(0x2A857867, sceSslGetNameEntryInfo); - REG_FUNC(0xC73687E4, sceSslFreeSslCertName); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceSsl.h b/rpcs3/Emu/PSP2/Modules/sceSsl.h deleted file mode 100644 index ef70e48946..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSsl.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -using SceSslCert = void; -using SceSslCertName = void; - -struct SceSslMemoryPoolStats -{ - le_t poolSize; - le_t maxInuseSize; - le_t currentInuseSize; - le_t reserved; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceSulpha.cpp b/rpcs3/Emu/PSP2/Modules/sceSulpha.cpp deleted file mode 100644 index 9ac4be8bcd..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSulpha.cpp +++ /dev/null @@ -1,102 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceSulpha.h" - -logs::channel sceSulpha("sceSulpha"); - -s32 sceSulphaNetworkInit() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaNetworkShutdown() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaGetDefaultConfig(vm::ptr config) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaGetNeededMemory(vm::cptr config, vm::ptr sizeInBytes) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaInit(vm::cptr config, vm::ptr buffer, u32 sizeInBytes) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaShutdown() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaUpdate() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaFileConnect(vm::cptr filename) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaFileDisconnect() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaSetBookmark(vm::cptr name, s32 id) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaAgentsGetNeededMemory(vm::cptr config, vm::ptr sizeInBytes) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaAgentsRegister(vm::cptr config, vm::ptr buffer, u32 sizeInBytes, vm::ptr handles) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSulphaAgentsUnregister(vm::cptr handles, u32 agentCount) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceSulpha, nid, name) - -DECLARE(arm_module_manager::SceSulpha)("SceSulpha", []() -{ - REG_FUNC(0xB4668AEA, sceSulphaNetworkInit); - REG_FUNC(0x0FC71B72, sceSulphaNetworkShutdown); - REG_FUNC(0xA6A05C50, sceSulphaGetDefaultConfig); - REG_FUNC(0xD52E5A5A, sceSulphaGetNeededMemory); - REG_FUNC(0x324F158F, sceSulphaInit); - REG_FUNC(0x10770BA7, sceSulphaShutdown); - REG_FUNC(0x920EC7BF, sceSulphaUpdate); - REG_FUNC(0x7968A138, sceSulphaFileConnect); - REG_FUNC(0xB16E7B88, sceSulphaFileDisconnect); - REG_FUNC(0x5E15E164, sceSulphaSetBookmark); - REG_FUNC(0xC5752B6B, sceSulphaAgentsGetNeededMemory); - REG_FUNC(0x7ADB454D, sceSulphaAgentsRegister); - REG_FUNC(0x2A8B74D7, sceSulphaAgentsUnregister); - //REG_FUNC(0xDE7E2911, sceSulphaGetAgent); - //REG_FUNC(0xA41B7402, sceSulphaNodeNew); - //REG_FUNC(0xD44C9F86, sceSulphaNodeDelete); - //REG_FUNC(0xBF61F3B8, sceSulphaEventNew); - //REG_FUNC(0xD5D995A9, sceSulphaEventDelete); - //REG_FUNC(0xB0C2B9CE, sceSulphaEventAdd); - //REG_FUNC(0xBC6A2833, sceSulphaEventReport); - //REG_FUNC(0x29F0DA12, sceSulphaGetTimestamp); - //REG_FUNC(0x951D159D, sceSulphaLogSetLevel); - //REG_FUNC(0x5C6815C6, sceSulphaLogHandler); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceSulpha.h b/rpcs3/Emu/PSP2/Modules/sceSulpha.h deleted file mode 100644 index a513d22bfd..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSulpha.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -using SceSulphaCallback = void(vm::ptr arg); - -struct SceSulphaConfig -{ - vm::lptr notifyCallback; - le_t port; - le_t bookmarkCount; -}; - -struct SceSulphaAgentsRegister; - -using SceSulphaHandle = void; diff --git a/rpcs3/Emu/PSP2/Modules/sceSysmodule.cpp b/rpcs3/Emu/PSP2/Modules/sceSysmodule.cpp deleted file mode 100644 index 5d50269e80..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSysmodule.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceSysmodule.h" - -logs::channel sceSysmodule("sceSysmodule"); - -s32 sceSysmoduleLoadModule(u16 id) -{ - sceSysmodule.warning("sceSysmoduleLoadModule(id=0x%04x) -> SCE_OK", id); - - return SCE_OK; // loading succeeded -} - -s32 sceSysmoduleUnloadModule(u16 id) -{ - sceSysmodule.warning("sceSysmoduleUnloadModule(id=0x%04x) -> SCE_OK", id); - - return SCE_OK; // unloading succeeded -} - -s32 sceSysmoduleIsLoaded(u16 id) -{ - sceSysmodule.warning("sceSysmoduleIsLoaded(id=0x%04x) -> SCE_OK", id); - - return SCE_OK; // module is loaded -} - -#define REG_FUNC(nid, name) REG_FNID(SceSysmodule, nid, name) - -DECLARE(arm_module_manager::SceSysmodule)("SceSysmodule", []() -{ - REG_FUNC(0x79A0160A, sceSysmoduleLoadModule); - REG_FUNC(0x31D87805, sceSysmoduleUnloadModule); - REG_FUNC(0x53099B7A, sceSysmoduleIsLoaded); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceSysmodule.h b/rpcs3/Emu/PSP2/Modules/sceSysmodule.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSysmodule.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/rpcs3/Emu/PSP2/Modules/sceSystemGesture.cpp b/rpcs3/Emu/PSP2/Modules/sceSystemGesture.cpp deleted file mode 100644 index 211690634f..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSystemGesture.cpp +++ /dev/null @@ -1,116 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceSystemGesture.h" - -logs::channel sceSystemGesture("sceSystemGesture"); - -s32 sceSystemGestureInitializePrimitiveTouchRecognizer(vm::ptr parameter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureFinalizePrimitiveTouchRecognizer() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureResetPrimitiveTouchRecognizer() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureUpdatePrimitiveTouchRecognizer(vm::cptr pFrontData, vm::cptr pBackData) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureGetPrimitiveTouchEvents(vm::ptr primitiveEventBuffer, const u32 capacityOfBuffer, vm::ptr numberOfEvent) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureGetPrimitiveTouchEventsCount() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureGetPrimitiveTouchEventByIndex(const u32 index, vm::ptr primitiveTouchEvent) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureGetPrimitiveTouchEventByPrimitiveID(const u16 primitiveID, vm::ptr primitiveTouchEvent) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureCreateTouchRecognizer(vm::ptr touchRecognizer, const SceSystemGestureType gestureType, const u8 touchPanelPortID, vm::cptr rectangle, vm::cptr touchRecognizerParameter) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureGetTouchRecognizerInformation(vm::cptr touchRecognizer, vm::ptr information) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureResetTouchRecognizer(vm::ptr touchRecognizer) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureUpdateTouchRecognizer(vm::ptr touchRecognizer) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureUpdateTouchRecognizerRectangle(vm::ptr touchRecognizer, vm::cptr rectangle) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureGetTouchEvents(vm::cptr touchRecognizer, vm::ptr eventBuffer, const u32 capacityOfBuffer, vm::ptr numberOfEvent) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureGetTouchEventsCount(vm::cptr touchRecognizer) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureGetTouchEventByIndex(vm::cptr touchRecognizer, const u32 index, vm::ptr touchEvent) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceSystemGestureGetTouchEventByEventID(vm::cptr touchRecognizer, const u32 eventID, vm::ptr touchEvent) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceSystemGesture, nid, name) - -DECLARE(arm_module_manager::SceSystemGesture)("SceSystemGesture", []() -{ - REG_FUNC(0x6078A08B, sceSystemGestureInitializePrimitiveTouchRecognizer); - REG_FUNC(0xFD5A6504, sceSystemGestureResetPrimitiveTouchRecognizer); - REG_FUNC(0xB3875104, sceSystemGestureFinalizePrimitiveTouchRecognizer); - REG_FUNC(0xDF4C665A, sceSystemGestureUpdatePrimitiveTouchRecognizer); - REG_FUNC(0xC750D3DA, sceSystemGestureGetPrimitiveTouchEvents); - REG_FUNC(0xBAB8ECCB, sceSystemGestureGetPrimitiveTouchEventsCount); - REG_FUNC(0xE0577765, sceSystemGestureGetPrimitiveTouchEventByIndex); - REG_FUNC(0x480564C9, sceSystemGestureGetPrimitiveTouchEventByPrimitiveID); - REG_FUNC(0xC3367370, sceSystemGestureCreateTouchRecognizer); - REG_FUNC(0xF0DB1AE5, sceSystemGestureGetTouchRecognizerInformation); - REG_FUNC(0x0D941B90, sceSystemGestureResetTouchRecognizer); - REG_FUNC(0x851FB144, sceSystemGestureUpdateTouchRecognizer); - REG_FUNC(0xA9DB29F6, sceSystemGestureUpdateTouchRecognizerRectangle); - REG_FUNC(0x789D867C, sceSystemGestureGetTouchEvents); - REG_FUNC(0x13AD2218, sceSystemGestureGetTouchEventsCount); - REG_FUNC(0x74724147, sceSystemGestureGetTouchEventByIndex); - REG_FUNC(0x5570B83E, sceSystemGestureGetTouchEventByEventID); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceSystemGesture.h b/rpcs3/Emu/PSP2/Modules/sceSystemGesture.h deleted file mode 100644 index 8066a4292f..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceSystemGesture.h +++ /dev/null @@ -1,159 +0,0 @@ -#pragma once - -#include "sceTouch.h" - -enum SceSystemGestureTouchState : s32 -{ - SCE_SYSTEM_GESTURE_TOUCH_STATE_INACTIVE = 0, - SCE_SYSTEM_GESTURE_TOUCH_STATE_BEGIN = 1, - SCE_SYSTEM_GESTURE_TOUCH_STATE_ACTIVE = 2, - SCE_SYSTEM_GESTURE_TOUCH_STATE_END = 3 -}; - -enum SceSystemGestureType : s32 -{ - SCE_SYSTEM_GESTURE_TYPE_TAP = 1, - SCE_SYSTEM_GESTURE_TYPE_DRAG = 2, - SCE_SYSTEM_GESTURE_TYPE_TAP_AND_HOLD = 4, - SCE_SYSTEM_GESTURE_TYPE_PINCH_OUT_IN = 8 -}; - -struct SceSystemGestureVector2 -{ - le_t x; - le_t y; -}; - -struct SceSystemGestureRectangle -{ - le_t x; - le_t y; - le_t width; - le_t height; -}; - -struct SceSystemGesturePrimitiveTouchEvent -{ - le_t eventState; // SceSystemGestureTouchState - le_t primitiveID; - SceSystemGestureVector2 pressedPosition; - le_t pressedForce; - SceSystemGestureVector2 currentPosition; - le_t currentForce; - SceSystemGestureVector2 deltaVector; - le_t deltaForce; - le_t deltaTime; - le_t elapsedTime; - u8 reserved[56]; -}; - -struct SceSystemGesturePrimitiveTouchRecognizerParameter -{ - u8 reserved[64]; -}; - -struct SceSystemGestureTouchRecognizer -{ - le_t reserved[307]; -}; - -struct SceSystemGestureTouchRecognizerInformation -{ - le_t gestureType; // SceSystemGestureType - le_t touchPanelPortID; - SceSystemGestureRectangle rectangle; - le_t updatedTime; - u8 reserved[256]; -}; - -struct SceSystemGestureTapRecognizerParameter -{ - u8 maxTapCount; - u8 reserved[63]; -}; - -struct SceSystemGestureDragRecognizerParameter -{ - u8 reserved[64]; -}; - -struct SceSystemGestureTapAndHoldRecognizerParameter -{ - le_t timeToInvokeEvent; - u8 reserved[56]; -}; - -struct SceSystemGesturePinchOutInRecognizerParameter -{ - u8 reserved[64]; -}; - -union SceSystemGestureTouchRecognizerParameter -{ - u8 parameterBuf[64]; - SceSystemGestureTapRecognizerParameter tap; - SceSystemGestureDragRecognizerParameter drag; - SceSystemGestureTapAndHoldRecognizerParameter tapAndHold; - SceSystemGesturePinchOutInRecognizerParameter pinchOutIn; -}; - -struct SceSystemGestureTapEventProperty -{ - le_t primitiveID; - SceSystemGestureVector2 position; - u8 tappedCount; - u8 reserved[57]; -}; - -struct SceSystemGestureDragEventProperty -{ - le_t primitiveID; - SceSystemGestureVector2 deltaVector; - SceSystemGestureVector2 currentPosition; - SceSystemGestureVector2 pressedPosition; - u8 reserved[50]; -}; - -struct SceSystemGestureTapAndHoldEventProperty -{ - le_t primitiveID; - SceSystemGestureVector2 pressedPosition; - u8 reserved[58]; -}; - -struct SceSystemGesturePinchOutInEventProperty -{ - le_t scale; - - struct _primitive_t - { - le_t primitiveID; - SceSystemGestureVector2 currentPosition; - SceSystemGestureVector2 deltaVector; - SceSystemGestureVector2 pairedPosition; - }; - - _primitive_t primitive[2]; - u8 reserved[32]; -}; - -struct SceSystemGestureTouchEvent -{ - le_t eventID; - le_t eventState; // SceSystemGestureTouchState - le_t gestureType; // SceSystemGestureType - u8 padding[4]; - le_t updatedTime; - - union _property_t - { - u8 propertyBuf[64]; - SceSystemGestureTapEventProperty tap; - SceSystemGestureDragEventProperty drag; - SceSystemGestureTapAndHoldEventProperty tapAndHold; - SceSystemGesturePinchOutInEventProperty pinchOutIn; - }; - - _property_t property; - u8 reserved[56]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceTouch.cpp b/rpcs3/Emu/PSP2/Modules/sceTouch.cpp deleted file mode 100644 index 19b9633d0d..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceTouch.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceTouch.h" - -logs::channel sceTouch("sceTouch"); - -s32 sceTouchGetPanelInfo(u32 port, vm::ptr pPanelInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceTouchRead(u32 port, vm::ptr pData, u32 nBufs) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceTouchPeek(u32 port, vm::ptr pData, u32 nBufs) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceTouchSetSamplingState(u32 port, u32 state) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceTouchGetSamplingState(u32 port, vm::ptr pState) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceTouch, nid, name) - -DECLARE(arm_module_manager::SceTouch)("SceTouch", []() -{ - REG_FUNC(0x169A1D58, sceTouchRead); - REG_FUNC(0xFF082DF0, sceTouchPeek); - REG_FUNC(0x1B9C5D14, sceTouchSetSamplingState); - REG_FUNC(0x26531526, sceTouchGetSamplingState); - REG_FUNC(0x10A2CA25, sceTouchGetPanelInfo); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceTouch.h b/rpcs3/Emu/PSP2/Modules/sceTouch.h deleted file mode 100644 index 0905fad0b0..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceTouch.h +++ /dev/null @@ -1,34 +0,0 @@ -#pragma once - -struct SceTouchPanelInfo -{ - le_t minAaX; - le_t minAaY; - le_t maxAaX; - le_t maxAaY; - le_t minDispX; - le_t minDispY; - le_t maxDispX; - le_t maxDispY; - u8 minForce; - u8 maxForce; - u8 rsv[30]; -}; - -struct SceTouchReport -{ - u8 id; - u8 force; - le_t x; - le_t y; - s8 rsv[8]; - le_t info; -}; - -struct SceTouchData -{ - le_t timeStamp; - le_t status; - le_t reportNum; - SceTouchReport report[8]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceUlt.cpp b/rpcs3/Emu/PSP2/Modules/sceUlt.cpp deleted file mode 100644 index b34228efd1..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceUlt.cpp +++ /dev/null @@ -1,446 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceUlt.h" - -logs::channel sceUlt("sceUlt"); - -// Functions - -s32 _sceUltWaitingQueueResourcePoolOptParamInitialize(vm::ptr optParam, u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceUltWaitingQueueResourcePoolGetWorkAreaSize(u32 numThreads, u32 numSyncObjects) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltWaitingQueueResourcePoolCreate( - vm::ptr pool, - vm::cptr name, - u32 numThreads, - u32 numSyncObjects, - vm::ptr workArea, - vm::cptr optParam, - u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltWaitingQueueResourcePoolDestroy(vm::ptr pool) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltQueueDataResourcePoolOptParamInitialize(vm::ptr optParam, u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceUltQueueDataResourcePoolGetWorkAreaSize(u32 numData, u32 dataSize, u32 numQueueObject) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltQueueDataResourcePoolCreate( - vm::ptr pool, - vm::cptr name, - u32 numData, - u32 dataSize, - u32 numQueueObject, - vm::ptr waitingQueueResourcePool, - vm::ptr workArea, - vm::cptr optParam, - u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltQueueDataResourcePoolDestroy(vm::ptr pool) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceUltMutexGetStandaloneWorkAreaSize(u32 waitingQueueDepth, u32 numConditionVariable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltMutexOptParamInitialize(vm::ptr optParam, u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltMutexCreate( - vm::ptr mutex, - vm::cptr name, - vm::ptr waitingQueueResourcePool, - vm::cptr optParam, - u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltMutexCreateStandalone( - vm::ptr mutex, - vm::cptr name, - u32 numConditionVariable, - u32 maxNumThreads, - vm::ptr workArea, - vm::cptr optParam, - u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltMutexLock(vm::ptr mutex) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltMutexTryLock(vm::ptr mutex) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltMutexUnlock(vm::ptr mutex) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltMutexDestroy(vm::ptr mutex) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltConditionVariableOptParamInitialize(vm::ptr optParam, u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltConditionVariableCreate( - vm::ptr conditionVariable, - vm::cptr name, - vm::ptr mutex, - vm::cptr optParam, - u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltConditionVariableSignal(vm::ptr conditionVariable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltConditionVariableSignalAll(vm::ptr conditionVariable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltConditionVariableWait(vm::ptr conditionVariable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltConditionVariableDestroy(vm::ptr conditionVariable) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltQueueOptParamInitialize(vm::ptr optParam, u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceUltQueueGetStandaloneWorkAreaSize(u32 queueDepth, - u32 dataSize, - u32 waitingQueueLength) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltQueueCreate( - vm::ptr queue, - vm::cptr _name, - u32 dataSize, - vm::ptr resourcePool, - vm::ptr queueResourcePool, - vm::cptr optParam, - u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltQueueCreateStandalone( - vm::ptr queue, - vm::cptr name, - u32 queueDepth, - u32 dataSize, - u32 waitingQueueLength, - vm::ptr workArea, - vm::cptr optParam, - u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltQueuePush(vm::ptr queue, vm::cptr data) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltQueueTryPush(vm::ptr queue, vm::cptr data) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltQueuePop(vm::ptr queue, vm::ptr data) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltQueueTryPop(vm::ptr queue, vm::ptr data) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltQueueDestroy(vm::ptr queue) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltReaderWriterLockOptParamInitialize(vm::ptr optParam, u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltReaderWriterLockCreate( - vm::ptr rwlock, - vm::cptr name, - vm::ptr waitingQueueResourcePool, - vm::cptr optParam, - u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltReaderWriterLockCreateStandalone( - vm::ptr rwlock, - vm::cptr name, - u32 waitingQueueDepth, - vm::ptr workArea, - vm::cptr optParam, - u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceUltReaderWriterLockGetStandaloneWorkAreaSize(u32 waitingQueueDepth) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltReaderWriterLockLockRead(vm::ptr rwlock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltReaderWriterLockTryLockRead(vm::ptr rwlock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltReaderWriterLockUnlockRead(vm::ptr rwlock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltReaderWriterLockLockWrite(vm::ptr rwlock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltReaderWriterLockTryLockWrite(vm::ptr rwlock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltReaderWriterLockUnlockWrite(vm::ptr rwlock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltReaderWriterLockDestroy(vm::ptr rwlock) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltSemaphoreOptParamInitialize(vm::ptr optParam, u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltSemaphoreCreate( - vm::ptr semaphore, - vm::cptr name, - s32 numInitialResource, - vm::ptr waitingQueueResourcePool, - vm::cptr optParam, - u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltSemaphoreAcquire(vm::ptr semaphore, s32 numResource) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltSemaphoreTryAcquire(vm::ptr semaphore, s32 numResource) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltSemaphoreRelease(vm::ptr semaphore, s32 numResource) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltSemaphoreDestroy(vm::ptr semaphore) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltUlthreadRuntimeOptParamInitialize(vm::ptr optParam, u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -u32 sceUltUlthreadRuntimeGetWorkAreaSize(u32 numMaxUlthread, u32 numWorkerThread) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltUlthreadRuntimeCreate( - vm::ptr runtime, - vm::cptr name, - u32 numMaxUlthread, - u32 numWorkerThread, - vm::ptr workArea, - vm::cptr optParam, - u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltUlthreadRuntimeDestroy(vm::ptr runtime) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltUlthreadOptParamInitialize(vm::ptr optParam, u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 _sceUltUlthreadCreate( - vm::ptr ulthread, - vm::cptr name, - vm::ptr entry, - u32 arg, - vm::ptr context, - u32 sizeContext, - vm::ptr runtime, - vm::cptr optParam, - u32 buildVersion) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltUlthreadYield() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltUlthreadExit(s32 status) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltUlthreadJoin(vm::ptr ulthread, vm::ptr status) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltUlthreadTryJoin(vm::ptr ulthread, vm::ptr status) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceUltUlthreadGetSelf(vm::pptr ulthread) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -#define REG_FUNC(nid, name) REG_FNID(SceUlt, nid, name) - -DECLARE(arm_module_manager::SceUlt)("SceUlt", []() -{ - REG_FUNC(0xEF094E35, _sceUltWaitingQueueResourcePoolOptParamInitialize); - REG_FUNC(0x644DA029, sceUltWaitingQueueResourcePoolGetWorkAreaSize); - REG_FUNC(0x62F9493E, _sceUltWaitingQueueResourcePoolCreate); - REG_FUNC(0xC9E96714, sceUltWaitingQueueResourcePoolDestroy); - REG_FUNC(0x8A4F88A2, _sceUltQueueDataResourcePoolOptParamInitialize); - REG_FUNC(0xECDA7FEE, sceUltQueueDataResourcePoolGetWorkAreaSize); - REG_FUNC(0x40856827, _sceUltQueueDataResourcePoolCreate); - REG_FUNC(0x2B8D33F1, sceUltQueueDataResourcePoolDestroy); - REG_FUNC(0x24D87E05, _sceUltMutexOptParamInitialize); - REG_FUNC(0x5AFEC7A1, _sceUltMutexCreate); - REG_FUNC(0x001EAC8A, sceUltMutexLock); - REG_FUNC(0xE5936A69, sceUltMutexTryLock); - REG_FUNC(0x897C9097, sceUltMutexUnlock); - REG_FUNC(0xEEBD9052, sceUltMutexDestroy); - REG_FUNC(0x0603FCC1, _sceUltConditionVariableOptParamInitialize); - REG_FUNC(0xD76A156C, _sceUltConditionVariableCreate); - REG_FUNC(0x9FE7CB9F, sceUltConditionVariableSignal); - REG_FUNC(0xEBB6FC1E, sceUltConditionVariableSignalAll); - REG_FUNC(0x2CD0F57C, sceUltConditionVariableWait); - REG_FUNC(0x53420ED2, sceUltConditionVariableDestroy); - REG_FUNC(0xF7A83023, _sceUltQueueOptParamInitialize); - REG_FUNC(0x14DA1BB4, _sceUltQueueCreate); - REG_FUNC(0xA7E78FF9, sceUltQueuePush); - REG_FUNC(0x6D356B29, sceUltQueueTryPush); - REG_FUNC(0x1AD58A53, sceUltQueuePop); - REG_FUNC(0x2A1A8EA6, sceUltQueueTryPop); - REG_FUNC(0xF37862DE, sceUltQueueDestroy); - REG_FUNC(0xD8334A1F, _sceUltReaderWriterLockOptParamInitialize); - REG_FUNC(0x2FB0EB32, _sceUltReaderWriterLockCreate); - REG_FUNC(0x9AD07630, sceUltReaderWriterLockLockRead); - REG_FUNC(0x2629C055, sceUltReaderWriterLockTryLockRead); - REG_FUNC(0x218D4743, sceUltReaderWriterLockUnlockRead); - REG_FUNC(0xF5F63E2C, sceUltReaderWriterLockLockWrite); - REG_FUNC(0x944FB222, sceUltReaderWriterLockTryLockWrite); - REG_FUNC(0x2A5741F5, sceUltReaderWriterLockUnlockWrite); - REG_FUNC(0xB1FEB79B, sceUltReaderWriterLockDestroy); - REG_FUNC(0x8E31B9FE, _sceUltSemaphoreOptParamInitialize); - REG_FUNC(0xDD59562C, _sceUltSemaphoreCreate); - REG_FUNC(0xF220D3AE, sceUltSemaphoreAcquire); - REG_FUNC(0xAF15606D, sceUltSemaphoreTryAcquire); - REG_FUNC(0x65376E2D, sceUltSemaphoreRelease); - REG_FUNC(0x8EC57420, sceUltSemaphoreDestroy); - REG_FUNC(0x8486DDE6, _sceUltUlthreadRuntimeOptParamInitialize); - REG_FUNC(0x5435C586, sceUltUlthreadRuntimeGetWorkAreaSize); - REG_FUNC(0x86DDA3AE, _sceUltUlthreadRuntimeCreate); - REG_FUNC(0x4E9A745C, sceUltUlthreadRuntimeDestroy); - REG_FUNC(0x7F373376, _sceUltUlthreadOptParamInitialize); - REG_FUNC(0xB1290375, _sceUltUlthreadCreate); - REG_FUNC(0xCAD57BAD, sceUltUlthreadYield); - REG_FUNC(0x1E401DF8, sceUltUlthreadExit); - REG_FUNC(0x63483381, sceUltUlthreadJoin); - REG_FUNC(0xB4CF88AC, sceUltUlthreadTryJoin); - REG_FUNC(0xA798C5D7, sceUltUlthreadGetSelf); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceUlt.h b/rpcs3/Emu/PSP2/Modules/sceUlt.h deleted file mode 100644 index 0518badd7d..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceUlt.h +++ /dev/null @@ -1,156 +0,0 @@ -#pragma once - -#include "sceLibKernel.h" - -struct _SceUltOptParamHeader -{ - le_t reserved[2]; -}; - -struct SceUltWaitingQueueResourcePoolOptParam -{ - _SceUltOptParamHeader header; - le_t reserved[14]; -}; - -CHECK_SIZE(SceUltWaitingQueueResourcePoolOptParam, 128); - -struct SceUltWaitingQueueResourcePool -{ - le_t reserved[32]; -}; - -CHECK_SIZE(SceUltWaitingQueueResourcePool, 256); - -struct SceUltQueueDataResourcePoolOptParam -{ - _SceUltOptParamHeader header; - le_t reserved[14]; -}; - -CHECK_SIZE(SceUltQueueDataResourcePoolOptParam, 128); - -struct SceUltQueueDataResourcePool -{ - le_t reserved[32]; -}; - -CHECK_SIZE(SceUltQueueDataResourcePool, 256); - -struct SceUltMutexOptParam -{ - _SceUltOptParamHeader header; - le_t attribute; - le_t reserved_0; - le_t reserved[13]; -}; - -CHECK_SIZE(SceUltMutexOptParam, 128); - -struct SceUltMutex -{ - le_t reserved[32]; -}; - -CHECK_SIZE(SceUltMutex, 256); - -struct SceUltConditionVariableOptParam -{ - _SceUltOptParamHeader header; - le_t reserved[14]; -}; - -CHECK_SIZE(SceUltConditionVariableOptParam, 128); - -struct SceUltConditionVariable -{ - le_t reserved[32]; -}; - -CHECK_SIZE(SceUltConditionVariable, 256); - -struct SceUltQueueOptParam -{ - _SceUltOptParamHeader header; - le_t reserved[14]; -}; - -CHECK_SIZE(SceUltQueueOptParam, 128); - -struct SceUltQueue -{ - le_t reserved[32]; -}; - -CHECK_SIZE(SceUltQueue, 256); - -struct SceUltReaderWriterLockOptParam -{ - _SceUltOptParamHeader header; - le_t reserved[14]; -}; - -CHECK_SIZE(SceUltReaderWriterLockOptParam, 128); - -struct SceUltReaderWriterLock -{ - le_t reserved[32]; -}; - -CHECK_SIZE(SceUltReaderWriterLock, 256); - -struct SceUltSemaphoreOptParam -{ - _SceUltOptParamHeader header; - le_t reserved[14]; -}; - -CHECK_SIZE(SceUltSemaphoreOptParam, 128); - -struct SceUltSemaphore -{ - le_t reserved[32]; -}; - -CHECK_SIZE(SceUltSemaphore, 256); - -struct SceUltUlthreadRuntimeOptParam -{ - _SceUltOptParamHeader header; - - le_t oneShotThreadStackSize; - le_t workerThreadPriority; - le_t workerThreadCpuAffinityMask; - le_t workerThreadAttr; - vm::lcptr workerThreadOptParam; - - le_t reserved[11]; -}; - -CHECK_SIZE(SceUltUlthreadRuntimeOptParam, 128); - -struct SceUltUlthreadRuntime -{ - le_t reserved[128]; -}; - -CHECK_SIZE(SceUltUlthreadRuntime, 1024); - -struct SceUltUlthreadOptParam -{ - _SceUltOptParamHeader header; - le_t attribute; - le_t reserved_0; - le_t reserved[13]; -}; - -CHECK_SIZE(SceUltUlthreadOptParam, 128); - -struct SceUltUlthread -{ - le_t reserved[32]; -}; - -CHECK_SIZE(SceUltUlthread, 256); - -using SceUltUlthreadEntry = s32(u32 arg); diff --git a/rpcs3/Emu/PSP2/Modules/sceVideodec.cpp b/rpcs3/Emu/PSP2/Modules/sceVideodec.cpp deleted file mode 100644 index 42ed244845..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceVideodec.cpp +++ /dev/null @@ -1,78 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceVideodec.h" - -logs::channel sceVideodec("sceVideodec"); - -s32 sceVideodecInitLibrary(u32 codecType, vm::cptr pInitInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVideodecTermLibrary(u32 codecType) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAvcdecQueryDecoderMemSize(u32 codecType, vm::cptr pDecoderInfo, vm::ptr pMemInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAvcdecCreateDecoder(u32 codecType, vm::ptr pCtrl, vm::cptr pDecoderInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAvcdecDeleteDecoder(vm::ptr pCtrl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAvcdecDecodeAvailableSize(vm::ptr pCtrl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAvcdecDecode(vm::ptr pCtrl, vm::cptr pAu, vm::ptr pArrayPicture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAvcdecDecodeStop(vm::ptr pCtrl, vm::ptr pArrayPicture) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceAvcdecDecodeFlush(vm::ptr pCtrl) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceVideodecUser, nid, name) - -DECLARE(arm_module_manager::SceVideodec)("SceVideodecUser", []() -{ - REG_FUNC(0xF1AF65A3, sceVideodecInitLibrary); - REG_FUNC(0x3A5F4924, sceVideodecTermLibrary); - REG_FUNC(0x97E95EDB, sceAvcdecQueryDecoderMemSize); - REG_FUNC(0xE82BB69B, sceAvcdecCreateDecoder); - REG_FUNC(0x8A0E359E, sceAvcdecDeleteDecoder); - REG_FUNC(0x441673E3, sceAvcdecDecodeAvailableSize); - REG_FUNC(0xD6190A06, sceAvcdecDecode); - REG_FUNC(0x9648D853, sceAvcdecDecodeStop); - REG_FUNC(0x25F31020, sceAvcdecDecodeFlush); - //REG_FUNC(0xB2A428DB, sceAvcdecCsc); - //REG_FUNC(0x6C68A38F, sceAvcdecDecodeNalAu); - //REG_FUNC(0xC67C1A80, sceM4vdecQueryDecoderMemSize); - //REG_FUNC(0x17C6AC9E, sceM4vdecCreateDecoder); - //REG_FUNC(0x0EB2E4E7, sceM4vdecDeleteDecoder); - //REG_FUNC(0xA8CF1942, sceM4vdecDecodeAvailableSize); - //REG_FUNC(0x624664DB, sceM4vdecDecode); - //REG_FUNC(0x87CFD23B, sceM4vdecDecodeStop); - //REG_FUNC(0x7C460D75, sceM4vdecDecodeFlush); - //REG_FUNC(0xB4BC325B, sceM4vdecCsc); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceVideodec.h b/rpcs3/Emu/PSP2/Modules/sceVideodec.h deleted file mode 100644 index 74994c6e45..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceVideodec.h +++ /dev/null @@ -1,147 +0,0 @@ -/* -Copyright (C) 2016 Ivan -This file may be modified and distributed under the terms of the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#pragma once - -struct SceVideodecQueryInitInfoHwAvcdec -{ - le_t size; - le_t horizontal; - le_t vertical; - le_t numOfRefFrames; - le_t numOfStreams; -}; - -union SceVideodecQueryInitInfo -{ - u8 reserved[32]; - SceVideodecQueryInitInfoHwAvcdec hwAvc; -}; - -struct SceVideodecTimeStamp -{ - le_t upper; - le_t lower; -}; - -struct SceAvcdecQueryDecoderInfo -{ - le_t horizontal; - le_t vertical; - le_t numOfRefFrames; -}; - -struct SceAvcdecDecoderInfo -{ - le_t frameMemSize; -}; - -struct SceAvcdecBuf -{ - vm::lptr pBuf; - le_t size; -}; - -struct SceAvcdecCtrl -{ - le_t handle; - SceAvcdecBuf frameBuf; -}; - -struct SceAvcdecAu -{ - SceVideodecTimeStamp pts; - SceVideodecTimeStamp dts; - SceAvcdecBuf es; -}; - -struct SceAvcdecInfo -{ - le_t numUnitsInTick; - le_t timeScale; - u8 fixedFrameRateFlag; - - u8 aspectRatioIdc; - le_t sarWidth; - le_t sarHeight; - - u8 colourPrimaries; - u8 transferCharacteristics; - u8 matrixCoefficients; - - u8 videoFullRangeFlag; - - u8 picStruct[2]; - u8 ctType; - - u8 padding[3]; -}; - -struct SceAvcdecFrameOptionRGBA -{ - u8 alpha; - u8 cscCoefficient; - u8 reserved[14]; -}; - -union SceAvcdecFrameOption -{ - u8 reserved[16]; - SceAvcdecFrameOptionRGBA rgba; -}; - - -struct SceAvcdecFrame -{ - le_t pixelType; - le_t framePitch; - le_t frameWidth; - le_t frameHeight; - - le_t horizontalSize; - le_t verticalSize; - - le_t frameCropLeftOffset; - le_t frameCropRightOffset; - le_t frameCropTopOffset; - le_t frameCropBottomOffset; - - SceAvcdecFrameOption opt; - - vm::lptr pPicture[2]; -}; - - -struct SceAvcdecPicture -{ - le_t size; - SceAvcdecFrame frame; - SceAvcdecInfo info; -}; - -struct SceAvcdecArrayPicture -{ - le_t numOfOutput; - le_t numOfElm; - vm::lpptr pPicture; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceVoice.cpp b/rpcs3/Emu/PSP2/Modules/sceVoice.cpp deleted file mode 100644 index 1036233bd1..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceVoice.cpp +++ /dev/null @@ -1,164 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceVoice.h" - -logs::channel sceVoice("sceVoice"); - -s32 sceVoiceInit(vm::ptr pArg, SceVoiceVersion version) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceEnd() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceStart(vm::ptr pArg) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceStop() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceResetPort(u32 portId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceCreatePort(vm::ptr portId, vm::cptr pArg) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceUpdatePort(u32 portId, vm::cptr pArg) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceConnectIPortToOPort(u32 ips, u32 ops) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceDisconnectIPortFromOPort(u32 ips, u32 ops) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceDeletePort(u32 portId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceWriteToIPort(u32 ips, vm::cptr data, vm::ptr size, s16 frameGaps) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceReadFromOPort(u32 ops, vm::ptr data, vm::ptr size) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceSetMuteFlagAll(u16 bMuted) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceSetMuteFlag(u32 portId, u16 bMuted) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceGetMuteFlag(u32 portId, vm::ptr bMuted) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceSetVolume(u32 portId, float volume) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceGetVolume(u32 portId, vm::ptr volume) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceSetBitRate(u32 portId, SceVoiceBitRate bitrate) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceGetBitRate(u32 portId, vm::ptr bitrate) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceGetPortInfo(u32 portId, vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoicePausePort(u32 portId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceResumePort(u32 portId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoicePausePortAll() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceResumePortAll() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceGetResourceInfo(vm::ptr pInfo) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceVoice, nid, name) - -DECLARE(arm_module_manager::SceVoice)("SceVoice", []() -{ - REG_FUNC(0xD02C00B4, sceVoiceGetBitRate); - REG_FUNC(0xC913F7E9, sceVoiceGetMuteFlag); - REG_FUNC(0x875CC80D, sceVoiceGetVolume); - REG_FUNC(0x02F58D6F, sceVoiceSetBitRate); - REG_FUNC(0x0B9E4AE2, sceVoiceSetMuteFlag); - REG_FUNC(0xDB90EAC4, sceVoiceSetMuteFlagAll); - //REG_FUNC(0xD93769E6, sceVoiceSetVolume); - REG_FUNC(0x6E46950E, sceVoiceGetResourceInfo); - REG_FUNC(0xAC98853E, sceVoiceEnd); - REG_FUNC(0x805CC20F, sceVoiceInit); - REG_FUNC(0xB2ED725B, sceVoiceStart); - REG_FUNC(0xC3868DF6, sceVoiceStop); - REG_FUNC(0x698BDAAE, sceVoiceConnectIPortToOPort); - REG_FUNC(0xFA4E57B1, sceVoiceCreatePort); - REG_FUNC(0xAE46564D, sceVoiceDeletePort); - REG_FUNC(0x5F0260F4, sceVoiceDisconnectIPortFromOPort); - REG_FUNC(0x5933CCFB, sceVoiceGetPortInfo); - REG_FUNC(0x23C6B16B, sceVoicePausePort); - REG_FUNC(0x39AA3884, sceVoicePausePortAll); - REG_FUNC(0x09E4D18C, sceVoiceReadFromOPort); - REG_FUNC(0x5E1CE910, sceVoiceResetPort); - REG_FUNC(0x2DE35411, sceVoiceResumePort); - REG_FUNC(0x1F93FC0C, sceVoiceResumePortAll); - REG_FUNC(0xCE855C50, sceVoiceUpdatePort); - REG_FUNC(0x0A22EC0E, sceVoiceWriteToIPort); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceVoice.h b/rpcs3/Emu/PSP2/Modules/sceVoice.h deleted file mode 100644 index 4006e05f17..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceVoice.h +++ /dev/null @@ -1,130 +0,0 @@ -#pragma once - -enum SceVoicePortType : s32 -{ - SCEVOICE_PORTTYPE_NULL = -1, - SCEVOICE_PORTTYPE_IN_DEVICE = 0, - SCEVOICE_PORTTYPE_IN_PCMAUDIO = 1, - SCEVOICE_PORTTYPE_IN_VOICE = 2, - SCEVOICE_PORTTYPE_OUT_PCMAUDIO = 3, - SCEVOICE_PORTTYPE_OUT_VOICE = 4, - SCEVOICE_PORTTYPE_OUT_DEVICE = 5 -}; - -enum SceVoicePortState : s32 -{ - SCEVOICE_PORTSTATE_NULL = -1, - SCEVOICE_PORTSTATE_IDLE = 0, - SCEVOICE_PORTSTATE_READY = 1, - SCEVOICE_PORTSTATE_BUFFERING = 2, - SCEVOICE_PORTSTATE_RUNNING = 3 -}; - -enum SceVoiceBitRate : s32 -{ - SCEVOICE_BITRATE_NULL = -1, - SCEVOICE_BITRATE_3850 = 3850, - SCEVOICE_BITRATE_4650 = 4650, - SCEVOICE_BITRATE_5700 = 5700, - SCEVOICE_BITRATE_7300 = 7300 -}; - -enum SceVoiceSamplingRate : s32 -{ - SCEVOICE_SAMPLINGRATE_NULL = -1, - SCEVOICE_SAMPLINGRATE_16000 = 16000 -}; - -enum SceVoicePcmDataType : s32 -{ - SCEVOICE_PCM_NULL = -1, - SCEVOICE_PCM_SHORT_LITTLE_ENDIAN = 0 -}; - -enum SceVoiceVersion : s32 -{ - SCEVOICE_VERSION_100 = 100 -}; - -enum SceVoiceAppType : s32 -{ - SCEVOICE_APPTYPE_GAME = 1 << 29 -}; - -struct SceVoicePCMFormat -{ - le_t dataType; // SceVoicePcmDataType - le_t sampleRate; // SceVoiceSamplingRate -}; - -struct SceVoiceResourceInfo -{ - le_t maxInVoicePort; - le_t maxOutVoicePort; - le_t maxInDevicePort; - le_t maxOutDevicePort; - le_t maxTotalPort; -}; - -struct SceVoiceBasePortInfo -{ - le_t portType; // SceVoicePortType - le_t state; // SceVoicePortState - vm::lptr pEdge; - le_t numByte; - le_t frameSize; - le_t numEdge; - le_t reserved; -}; - -struct SceVoicePortParam -{ - // aux structs - - struct _voice_t - { - le_t bitrate; // SceVoiceBitRate - }; - - struct _pcmaudio_t - { - using _format_t = SceVoicePCMFormat; - - le_t bufSize; - _format_t format; - }; - - struct _device_t - { - le_t playerId; - }; - - // struct members - - le_t portType; // SceVoicePortType - le_t threshold; - le_t bMute; - le_t volume; - - union - { - _pcmaudio_t pcmaudio; - _device_t device; - _voice_t voice; - }; -}; - -using SceVoiceEventCallback = void(vm::ptr event); - -struct SceVoiceInitParam -{ - le_t appType; - vm::lptr onEvent; - u8 reserved[24]; -}; - -struct SceVoiceStartParam -{ - le_t container; - u8 reserved[28]; -}; diff --git a/rpcs3/Emu/PSP2/Modules/sceVoiceQoS.cpp b/rpcs3/Emu/PSP2/Modules/sceVoiceQoS.cpp deleted file mode 100644 index 6647c47f9f..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceVoiceQoS.cpp +++ /dev/null @@ -1,116 +0,0 @@ -#include "stdafx.h" -#include "Emu/System.h" -#include "Emu/PSP2/ARMv7Module.h" - -#include "sceVoiceQoS.h" - -logs::channel sceVoiceQoS("sceVoiceQoS"); - -s32 sceVoiceQoSInit() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSEnd() -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSCreateLocalEndpoint(vm::ptr pLocalId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSDeleteLocalEndpoint(s32 localId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSCreateRemoteEndpoint(vm::ptr pRemoteId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSDeleteRemoteEndpoint(s32 remoteId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSConnect(vm::ptr pConnectionId, s32 localId, s32 remoteId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSDisconnect(s32 connectionId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSGetLocalEndpoint(s32 connectionId, vm::ptr pLocalId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSGetRemoteEndpoint(s32 connectionId, vm::ptr pRemoteId) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSSetLocalEndpointAttribute(s32 localId, SceVoiceQoSAttributeId attributeId, vm::cptr pAttributeValue, s32 attributeSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSGetLocalEndpointAttribute(s32 localId, SceVoiceQoSAttributeId attributeId, vm::ptr pAttributeValue, s32 attributeSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSSetConnectionAttribute(s32 connectionId, SceVoiceQoSAttributeId attributeId, vm::cptr pAttributeValue, s32 attributeSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSGetConnectionAttribute(s32 connectionId, SceVoiceQoSAttributeId attributeId, vm::ptr pAttributeValue, s32 attributeSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSGetStatus(s32 connectionId, SceVoiceQoSStatusId statusId, vm::ptr pStatusValue, s32 statusSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSWritePacket(s32 connectionId, vm::cptr pData, vm::ptr pSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - -s32 sceVoiceQoSReadPacket(s32 connectionId, vm::ptr pData, vm::ptr pSize) -{ - fmt::throw_exception("Unimplemented" HERE); -} - - -#define REG_FUNC(nid, name) REG_FNID(SceVoiceQoS, nid, name) - -DECLARE(arm_module_manager::SceVoiceQoS)("SceVoiceQoS", []() -{ - REG_FUNC(0x4B5FFF1C, sceVoiceQoSInit); - REG_FUNC(0xFB0B747B, sceVoiceQoSEnd); - REG_FUNC(0xAAB54BE4, sceVoiceQoSCreateLocalEndpoint); - REG_FUNC(0x68FABF6F, sceVoiceQoSDeleteLocalEndpoint); - REG_FUNC(0xBAB98727, sceVoiceQoSCreateRemoteEndpoint); - REG_FUNC(0xC2F2C771, sceVoiceQoSDeleteRemoteEndpoint); - REG_FUNC(0xE0C5CEEE, sceVoiceQoSConnect); - REG_FUNC(0x3C7A08B0, sceVoiceQoSDisconnect); - REG_FUNC(0xE5B4527D, sceVoiceQoSGetLocalEndpoint); - REG_FUNC(0x876A9B9C, sceVoiceQoSGetRemoteEndpoint); - REG_FUNC(0x540CEBA5, sceVoiceQoSSetLocalEndpointAttribute); - REG_FUNC(0xC981AB3B, sceVoiceQoSGetLocalEndpointAttribute); - REG_FUNC(0xE757806F, sceVoiceQoSSetConnectionAttribute); - REG_FUNC(0xE81B8D44, sceVoiceQoSGetConnectionAttribute); - REG_FUNC(0xC9DC1425, sceVoiceQoSGetStatus); - REG_FUNC(0x2FE1F28F, sceVoiceQoSWritePacket); - REG_FUNC(0x2D613549, sceVoiceQoSReadPacket); -}); diff --git a/rpcs3/Emu/PSP2/Modules/sceVoiceQoS.h b/rpcs3/Emu/PSP2/Modules/sceVoiceQoS.h deleted file mode 100644 index 4dbb38f0c3..0000000000 --- a/rpcs3/Emu/PSP2/Modules/sceVoiceQoS.h +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once - -enum SceVoiceQoSAttributeId : s32 -{ - SCE_VOICE_QOS_ATTR_MIC_VOLUME, - SCE_VOICE_QOS_ATTR_MIC_MUTE, - SCE_VOICE_QOS_ATTR_SPEAKER_VOLUME, - SCE_VOICE_QOS_ATTR_SPEAKER_MUTE, - SCE_VOICE_QOS_ATTR_DESIRED_OUT_BIT_RATE -}; - -enum SceVoiceQoSStatusId : s32 -{ - SCE_VOICE_QOS_IN_BITRATE, - SCE_VOICE_QOS_OUT_BITRATE, - SCE_VOICE_QOS_OUT_READ_BITRATE, - SCE_VOICE_QOS_IN_FRAME_RECEIVED_RATIO, - SCE_VOICE_QOS_HEARTBEAT_FLAG -}; diff --git a/rpcs3/Emu/RSX/VK/VKHelpers.cpp b/rpcs3/Emu/RSX/VK/VKHelpers.cpp index d7044f3daf..ffeac4e73b 100644 --- a/rpcs3/Emu/RSX/VK/VKHelpers.cpp +++ b/rpcs3/Emu/RSX/VK/VKHelpers.cpp @@ -71,7 +71,7 @@ namespace vk for (u32 i = 0; i < memory_properties.memoryTypeCount; i++) { VkMemoryHeap &heap = memory_properties.memoryHeaps[memory_properties.memoryTypes[i].heapIndex]; - + bool is_device_local = !!(memory_properties.memoryTypes[i].propertyFlags & VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); if (is_device_local) { @@ -85,7 +85,7 @@ namespace vk bool is_host_visible = !!(memory_properties.memoryTypes[i].propertyFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT); bool is_host_coherent = !!(memory_properties.memoryTypes[i].propertyFlags & VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); bool is_cached = !!(memory_properties.memoryTypes[i].propertyFlags & VK_MEMORY_PROPERTY_HOST_CACHED_BIT); - + if (is_host_coherent && is_host_visible) { if ((is_cached && !host_visible_cached) || @@ -281,7 +281,7 @@ namespace vk { g_current_renderer = device; - const std::array black_listed = + const std::array black_listed = { // Black list all polaris unless its proven they dont have a problem with primitive restart "RX 580", diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index 6d46cb9b3e..4400c71a5c 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -11,7 +11,6 @@ #include "Emu/Cell/SPUThread.h" #include "Emu/Cell/RawSPUThread.h" #include "Emu/Cell/lv2/sys_sync.h" -#include "Emu/PSP2/ARMv7Thread.h" #include "Emu/IdManager.h" #include "Emu/RSX/GSRender.h" @@ -32,8 +31,6 @@ cfg_root g_cfg; -system_type g_system; - std::string g_cfg_defaults; extern atomic_t g_thread_count; @@ -42,7 +39,6 @@ extern u64 get_system_time(); extern void ppu_load_exec(const ppu_exec_object&); extern void spu_load_exec(const spu_exec_object&); -extern void arm_load_exec(const arm_exec_object&); extern std::shared_ptr ppu_load_prx(const ppu_prx_object&, const std::string&); extern void network_thread_init(); @@ -663,7 +659,6 @@ void Emulator::Load(bool add_only) ppu_exec_object ppu_exec; ppu_prx_object ppu_prx; spu_exec_object spu_exec; - arm_exec_object arm_exec; if (!elf_file) { @@ -673,7 +668,6 @@ void Emulator::Load(bool add_only) else if (ppu_exec.open(elf_file) == elf_error::ok) { // PS3 executable - g_system = system_type::ps3; m_state = system_state::ready; GetCallbacks().on_ready(); @@ -713,7 +707,6 @@ void Emulator::Load(bool add_only) else if (ppu_prx.open(elf_file) == elf_error::ok) { // PPU PRX (experimental) - g_system = system_type::ps3; m_state = system_state::ready; GetCallbacks().on_ready(); vm::ps3::init(); @@ -722,33 +715,11 @@ void Emulator::Load(bool add_only) else if (spu_exec.open(elf_file) == elf_error::ok) { // SPU executable (experimental) - g_system = system_type::ps3; m_state = system_state::ready; GetCallbacks().on_ready(); vm::ps3::init(); spu_load_exec(spu_exec); } - else if (arm_exec.open(elf_file) == elf_error::ok) - { - // ARMv7 executable - g_system = system_type::psv; - m_state = system_state::ready; - GetCallbacks().on_ready(); - vm::psv::init(); - - if (argv.empty()) - { - argv.resize(1); - } - - if (argv[0].empty()) - { - argv[0] = "host_root:" + m_path; - LOG_NOTICE(LOADER, "Elf path: %s", argv[0]); - } - - arm_load_exec(arm_exec); - } else { LOG_ERROR(LOADER, "Invalid or unsupported file format: %s", m_path); @@ -756,7 +727,6 @@ void Emulator::Load(bool add_only) LOG_WARNING(LOADER, "** ppu_exec -> %s", ppu_exec.get_error()); LOG_WARNING(LOADER, "** ppu_prx -> %s", ppu_prx.get_error()); LOG_WARNING(LOADER, "** spu_exec -> %s", spu_exec.get_error()); - LOG_WARNING(LOADER, "** arm_exec -> %s", arm_exec.get_error()); return; } @@ -806,7 +776,6 @@ void Emulator::Run() }; idm::select(on_select); - idm::select(on_select); idm::select(on_select); idm::select(on_select); } @@ -835,7 +804,6 @@ bool Emulator::Pause() }; idm::select(on_select); - idm::select(on_select); idm::select(on_select); idm::select(on_select); @@ -859,7 +827,7 @@ void Emulator::Resume() } // Print and reset debug data collected - if (m_state == system_state::paused && g_cfg.core.ppu_debug && g_system == system_type::ps3) + if (m_state == system_state::paused && g_cfg.core.ppu_debug) { PPUDisAsm dis_asm(CPUDisAsm_InterpreterMode); dis_asm.offset = vm::g_base_addr; @@ -907,7 +875,6 @@ void Emulator::Resume() }; idm::select(on_select); - idm::select(on_select); idm::select(on_select); idm::select(on_select); @@ -948,7 +915,6 @@ void Emulator::Stop(bool restart) }; idm::select(on_select); - idm::select(on_select); idm::select(on_select); idm::select(on_select); @@ -1031,7 +997,7 @@ s32 error_code::error_report(const fmt_type_info* sup, u64 arg, const fmt_type_i if (auto thread = get_current_cpu_thread()) { - if (g_system == system_type::ps3 && thread->id_type() == 1) + if (thread->id_type() == 1) { auto& ppu = static_cast(*thread); @@ -1040,14 +1006,6 @@ s32 error_code::error_report(const fmt_type_info* sup, u64 arg, const fmt_type_i func = ppu.last_function; } } - - if (g_system == system_type::psv) - { - if (auto _func = static_cast(thread)->last_function) - { - func = _func; - } - } } // Format log message (use preallocated buffer) diff --git a/rpcs3/Emu/System.h b/rpcs3/Emu/System.h index f4dfeafba8..3bd708a426 100644 --- a/rpcs3/Emu/System.h +++ b/rpcs3/Emu/System.h @@ -7,13 +7,6 @@ #include #include -enum class system_type -{ - ps3, - psv, // Experimental - //psp, // Hypothetical -}; - enum class system_state { running, @@ -144,9 +137,6 @@ enum class frame_limit_type enum CellNetCtlState : s32; enum CellSysutilLang : s32; -// Current process type -extern system_type g_system; - struct EmuCallbacks { std::function)> call_after; diff --git a/rpcs3/Emu/VFS.cpp b/rpcs3/Emu/VFS.cpp index b063e34365..af3a4d909b 100644 --- a/rpcs3/Emu/VFS.cpp +++ b/rpcs3/Emu/VFS.cpp @@ -13,7 +13,6 @@ struct vfs_manager }; const std::regex s_regex_ps3("^/+(.*?)(?:$|/)(.*)", std::regex::optimize); -const std::regex s_regex_psv("^(.*?):(.*)", std::regex::optimize); bool vfs::mount(const std::string& dev_name, const std::string& path) { @@ -24,7 +23,7 @@ bool vfs::mount(const std::string& dev_name, const std::string& path) return table->mounted.emplace(dev_name, path).second; } -std::string vfs::get(const std::string& vpath, vfs::type _type) +std::string vfs::get(const std::string& vpath) { const auto table = fxm::get_always(); @@ -32,7 +31,7 @@ std::string vfs::get(const std::string& vpath, vfs::type _type) std::smatch match; - if (!std::regex_match(vpath, match, _type == type::ps3 ? s_regex_ps3 : s_regex_psv)) + if (!std::regex_match(vpath, match, s_regex_ps3)) { const auto found = table->mounted.find(""); @@ -45,7 +44,7 @@ std::string vfs::get(const std::string& vpath, vfs::type _type) return found->second + vfs::escape(vpath); } - if (_type == type::ps3 && match.length(1) == 0) + if (match.length(1) == 0) { return "/"; } diff --git a/rpcs3/Emu/VFS.h b/rpcs3/Emu/VFS.h index 39e25ef401..f8ec7e4873 100644 --- a/rpcs3/Emu/VFS.h +++ b/rpcs3/Emu/VFS.h @@ -4,18 +4,11 @@ namespace vfs { - // VFS type - enum class type - { - ps3, - psv, - }; - // Mount VFS device bool mount(const std::string& dev_name, const std::string& path); // Convert VFS path to fs path - std::string get(const std::string& vpath, type _type = type::ps3); + std::string get(const std::string& vpath); // Escape VFS path by replacing non-portable characters with surrogates std::string escape(const std::string& path); diff --git a/rpcs3/emucore.vcxproj b/rpcs3/emucore.vcxproj index 815eb3b8df..69a5642073 100644 --- a/rpcs3/emucore.vcxproj +++ b/rpcs3/emucore.vcxproj @@ -124,7 +124,6 @@ NotUsing - @@ -320,70 +319,6 @@ NotUsing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -464,73 +399,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rpcs3/emucore.vcxproj.filters b/rpcs3/emucore.vcxproj.filters index 39f15d2c55..90e27868e3 100644 --- a/rpcs3/emucore.vcxproj.filters +++ b/rpcs3/emucore.vcxproj.filters @@ -63,12 +63,6 @@ {4317ac27-38e4-4f8d-9bac-496f9b00f615} - - {93b1cff1-0158-4327-a437-e9abcac8d724} - - - {1d9e6fc4-9a79-4329-a8b5-081e24822aaa} - @@ -674,201 +668,6 @@ Emu - - Emu\PSP2 - - - Emu\PSP2 - - - Emu\PSP2 - - - Emu\PSP2 - - - Emu\PSP2 - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - Utilities @@ -1507,207 +1306,6 @@ Utilities - - Emu\PSP2 - - - Emu\PSP2 - - - Emu\PSP2 - - - Emu\PSP2 - - - Emu\PSP2 - - - Emu\PSP2 - - - Emu\PSP2 - - - Emu\PSP2 - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - - - Emu\PSP2\Modules - Emu diff --git a/rpcs3/rpcs3qt/debugger_frame.cpp b/rpcs3/rpcs3qt/debugger_frame.cpp index d06c1be087..bcfcb130d4 100644 --- a/rpcs3/rpcs3qt/debugger_frame.cpp +++ b/rpcs3/rpcs3qt/debugger_frame.cpp @@ -87,7 +87,7 @@ debugger_frame::debugger_frame(std::shared_ptr settings, QWidget * QWidget* body = new QWidget(this); body->setLayout(vbox_p_main); setWidget(body); - + m_list->setWindowTitle(tr("ASM")); for (uint i = 0; i < m_list->m_item_count; ++i) { @@ -203,13 +203,7 @@ u32 debugger_frame::GetPc() const return 0; } - switch (g_system) - { - case system_type::ps3: return cpu->id_type() == 1 ? static_cast(cpu.get())->cia : static_cast(cpu.get())->pc; - case system_type::psv: return static_cast(cpu.get())->PC; - } - - return 0xabadcafe; + return cpu->id_type() == 1 ? static_cast(cpu.get())->cia : static_cast(cpu.get())->pc; } u32 debugger_frame::CentrePc(u32 pc) const @@ -294,7 +288,6 @@ void debugger_frame::UpdateUnitList() const QSignalBlocker blocker(m_choice_units); idm::select(on_select); - idm::select(on_select); idm::select(on_select); idm::select(on_select); } @@ -338,11 +331,6 @@ void debugger_frame::OnSelectUnit() m_disasm = std::make_unique(CPUDisAsm_InterpreterMode); cpu = rspu.ptr; } - else if (auto arm = idm::select(on_select)) - { - m_disasm = std::make_unique(CPUDisAsm_InterpreterMode); - cpu = arm.ptr; - } } DoUpdate(); @@ -391,22 +379,22 @@ void debugger_frame::Show_Val() p_pc->setFixedWidth(90); QLabel* addr(new QLabel(diag)); addr->setFont(m_mono); - + hbox_text_panel->addWidget(addr); hbox_text_panel->addWidget(p_pc); hbox_button_panel->addWidget(button_ok); hbox_button_panel->addWidget(button_cancel); - + vbox_panel->addLayout(hbox_text_panel); vbox_panel->addSpacing(8); vbox_panel->addLayout(hbox_button_panel); - + diag->setLayout(vbox_panel); const auto cpu = this->cpu.lock(); - if (cpu) + if (cpu) { unsigned long pc = cpu ? GetPc() : 0x0; addr->setText("Address: " + QString("%1").arg(pc, 8, 16, QChar('0'))); // set address input line to 8 digits @@ -565,7 +553,7 @@ void debugger_list::ShowAddr(u32 addr) } else { - const u32 cpu_offset = g_system == system_type::ps3 && cpu->id_type() != 1 ? static_cast(*cpu).offset : 0; + const u32 cpu_offset = cpu->id_type() != 1 ? static_cast(*cpu).offset : 0; m_debugFrame->m_disasm->offset = (u8*)vm::base(cpu_offset); for (uint i = 0, count = 4; icpu.lock(); - const u32 cpu_offset = g_system == system_type::ps3 && cpu->id_type() != 1 ? static_cast(*cpu).offset : 0; + const u32 cpu_offset = cpu->id_type() != 1 ? static_cast(*cpu).offset : 0; m_debugFrame->m_disasm->offset = (u8*)vm::base(cpu_offset); m_debugFrame->m_disasm->disasm(m_debugFrame->m_disasm->dump_pc = pc); @@ -719,7 +707,7 @@ void debugger_list::mouseDoubleClickEvent(QMouseEvent* event) { const auto cpu = m_debugFrame->cpu.lock(); - if (g_system == system_type::ps3 && cpu->id_type() == 1 && vm::check_addr(pc)) + if (cpu->id_type() == 1 && vm::check_addr(pc)) { AddBreakPoint(pc); } diff --git a/rpcs3/rpcs3qt/debugger_frame.h b/rpcs3/rpcs3qt/debugger_frame.h index ff7e1d662d..44251fc264 100644 --- a/rpcs3/rpcs3qt/debugger_frame.h +++ b/rpcs3/rpcs3qt/debugger_frame.h @@ -9,10 +9,8 @@ #include "Emu/Cell/PPUThread.h" #include "Emu/Cell/SPUThread.h" #include "Emu/Cell/RawSPUThread.h" -#include "Emu/PSP2/ARMv7Thread.h" #include "Emu/Cell/PPUDisAsm.h" #include "Emu/Cell/SPUDisAsm.h" -#include "Emu/PSP2/ARMv7DisAsm.h" #include "Emu/Cell/PPUInterpreter.h" #include "instruction_editor_dialog.h" diff --git a/rpcs3/rpcs3qt/instruction_editor_dialog.cpp b/rpcs3/rpcs3qt/instruction_editor_dialog.cpp index a570fe33e0..4be4a00ba9 100644 --- a/rpcs3/rpcs3qt/instruction_editor_dialog.cpp +++ b/rpcs3/rpcs3qt/instruction_editor_dialog.cpp @@ -18,7 +18,7 @@ instruction_editor_dialog::instruction_editor_dialog(QWidget *parent, u32 _pc, c setMinimumSize(300, sizeHint().height()); const auto cpu = _cpu.get(); - m_cpu_offset = g_system == system_type::ps3 && cpu->id_type() != 1 ? static_cast(*cpu).offset : 0; + m_cpu_offset = cpu->id_type() != 1 ? static_cast(*cpu).offset : 0; QString instruction = qstr(fmt::format("%08x", vm::ps3::read32(m_cpu_offset + m_pc).value())); QVBoxLayout* vbox_panel(new QVBoxLayout()); @@ -75,7 +75,7 @@ instruction_editor_dialog::instruction_editor_dialog(QWidget *parent, u32 _pc, c QMessageBox::critical(this, tr("Error"), tr("Failed to parse PPU instruction.")); return; } - else if (g_system == system_type::ps3 && cpu->id_type() == 1) + else if (cpu->id_type() == 1) { if (!ppu_patch(m_cpu_offset + m_pc, static_cast(opcode))) { @@ -83,14 +83,11 @@ instruction_editor_dialog::instruction_editor_dialog(QWidget *parent, u32 _pc, c return; } } - else if (g_system == system_type::ps3) + else { vm::ps3::write32(m_cpu_offset + m_pc, static_cast(opcode)); } - else - { - vm::psv::write32(m_cpu_offset + m_pc, static_cast(opcode)); - } + accept(); }); connect(button_cancel, &QAbstractButton::pressed, this, &instruction_editor_dialog::reject); @@ -107,14 +104,7 @@ void instruction_editor_dialog::updatePreview() if (ok) { - if (g_system == system_type::psv) - { - m_preview->setText(tr("Preview for ARMv7Thread not implemented yet.")); - } - else - { - m_preview->setText(tr("Preview disabled.")); - } + m_preview->setText(tr("Preview disabled.")); } else { diff --git a/rpcs3/rpcs3qt/register_editor_dialog.cpp b/rpcs3/rpcs3qt/register_editor_dialog.cpp index e43315b645..6fc9df4fab 100644 --- a/rpcs3/rpcs3qt/register_editor_dialog.cpp +++ b/rpcs3/rpcs3qt/register_editor_dialog.cpp @@ -28,7 +28,7 @@ register_editor_dialog::register_editor_dialog(QWidget *parent, u32 _pc, const s QPushButton* button_cancel = new QPushButton(tr("&Cancel")); button_ok->setFixedWidth(80); button_cancel->setFixedWidth(80); - + m_register_combo = new QComboBox(this); m_value_line = new QLineEdit(this); m_value_line->setFixedWidth(200); @@ -44,9 +44,7 @@ register_editor_dialog::register_editor_dialog(QWidget *parent, u32 _pc, const s hbox_button_panel->addWidget(button_cancel); hbox_button_panel->setAlignment(Qt::AlignCenter); - switch (g_system) - { - case system_type::ps3: + if (1) { if (_cpu->id_type() == 1) { @@ -63,12 +61,6 @@ register_editor_dialog::register_editor_dialog(QWidget *parent, u32 _pc, const s { for (int i = 0; i < 128; i++) m_register_combo->addItem(qstr(fmt::format("GPR[%d]", i))); } - - break; - } - default: - QMessageBox::critical(this, tr("Error"), tr("Not supported thread.")); - return; } // Main Layout @@ -102,7 +94,7 @@ void register_editor_dialog::updateRegister(const QString& text) std::string reg = sstr(text); std::string str; - if (g_system == system_type::ps3 && cpu->id_type() == 1) + if (cpu->id_type() == 1) { auto& ppu = *static_cast(cpu.get()); @@ -118,7 +110,7 @@ void register_editor_dialog::updateRegister(const QString& text) if (reg == "LR") str = fmt::format("%016llx", ppu.lr); if (reg == "CTR") str = fmt::format("%016llx", ppu.ctr); } - else if (g_system == system_type::ps3 && cpu->id_type() != 1) + else { auto& spu = *static_cast(cpu.get()); @@ -141,7 +133,7 @@ void register_editor_dialog::OnOkay(const std::shared_ptr& _cpu) std::string reg = sstr(m_register_combo->itemData(m_register_combo->currentIndex())); std::string value = sstr(m_value_line->text()); - if (g_system == system_type::ps3 && cpu->id_type() == 1) + if (cpu->id_type() == 1) { auto& ppu = *static_cast(cpu); @@ -186,7 +178,7 @@ void register_editor_dialog::OnOkay(const std::shared_ptr& _cpu) { } } - else if (g_system == system_type::ps3 && cpu->id_type() != 1) + else { auto& spu = *static_cast(cpu);