mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-13 02:08:49 +12:00
Debugger/Disasm: Name SPU Syscalls
This commit is contained in:
parent
7bb830a228
commit
dfbc49513d
3 changed files with 22 additions and 2 deletions
|
@ -4,6 +4,7 @@
|
||||||
#include "SPUOpcodes.h"
|
#include "SPUOpcodes.h"
|
||||||
|
|
||||||
union v128;
|
union v128;
|
||||||
|
enum spu_stop_syscall : u32;
|
||||||
|
|
||||||
static constexpr const char* spu_reg_name[128] =
|
static constexpr const char* spu_reg_name[128] =
|
||||||
{
|
{
|
||||||
|
@ -176,7 +177,7 @@ public:
|
||||||
//0 - 10
|
//0 - 10
|
||||||
void STOP(spu_opcode_t op)
|
void STOP(spu_opcode_t op)
|
||||||
{
|
{
|
||||||
op.rb ? UNK(op) : DisAsm("stop", op.opcode & 0x3fff);
|
op.rb ? UNK(op) : DisAsm("stop", fmt::format("0x%x #%s", op.opcode & 0x3fff, spu_stop_syscall{op.opcode & 0x3fff}).c_str());
|
||||||
}
|
}
|
||||||
void LNOP(spu_opcode_t /*op*/)
|
void LNOP(spu_opcode_t /*op*/)
|
||||||
{
|
{
|
||||||
|
|
|
@ -48,6 +48,25 @@ void fmt_class_string<spu_group_status>::format(std::string& out, u64 arg)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
void fmt_class_string<spu_stop_syscall>::format(std::string& out, u64 arg)
|
||||||
|
{
|
||||||
|
format_enum(out, arg, [](spu_stop_syscall value)
|
||||||
|
{
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
|
case SYS_SPU_THREAD_STOP_YIELD: return "sys_spu_thread_yield";
|
||||||
|
case SYS_SPU_THREAD_STOP_GROUP_EXIT: return "sys_spu_thread_group_exit";
|
||||||
|
case SYS_SPU_THREAD_STOP_THREAD_EXIT: return "sys_spu_thread_thread_exit";
|
||||||
|
case SYS_SPU_THREAD_STOP_RECEIVE_EVENT: return "sys_spu_thread_receive_event";
|
||||||
|
case SYS_SPU_THREAD_STOP_TRY_RECEIVE_EVENT: return "sys_spu_thread_tryreceive_event";
|
||||||
|
case SYS_SPU_THREAD_STOP_SWITCH_SYSTEM_MODULE: return "sys_spu_thread_switch_system_module";
|
||||||
|
}
|
||||||
|
|
||||||
|
return unknown;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
void sys_spu_image::load(const fs::file& stream)
|
void sys_spu_image::load(const fs::file& stream)
|
||||||
{
|
{
|
||||||
const spu_exec_object obj{stream, 0, elf_opt::no_sections + elf_opt::no_data};
|
const spu_exec_object obj{stream, 0, elf_opt::no_sections + elf_opt::no_data};
|
||||||
|
|
|
@ -72,7 +72,7 @@ enum : s32
|
||||||
SYS_SPU_SEGMENT_TYPE_INFO = 4,
|
SYS_SPU_SEGMENT_TYPE_INFO = 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum : u32
|
enum spu_stop_syscall : u32
|
||||||
{
|
{
|
||||||
SYS_SPU_THREAD_STOP_YIELD = 0x0100,
|
SYS_SPU_THREAD_STOP_YIELD = 0x0100,
|
||||||
SYS_SPU_THREAD_STOP_GROUP_EXIT = 0x0101,
|
SYS_SPU_THREAD_STOP_GROUP_EXIT = 0x0101,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue