mirror of
https://github.com/Decompollaborate/rabbitizer.git
synced 2025-01-29 21:32:45 +00:00
Pregenerate every table
This commit is contained in:
parent
12537e6706
commit
3735d91fcc
8
Makefile
8
Makefile
@ -68,7 +68,7 @@ OXX_FILES := $(foreach f,$(CXX_FILES:.cpp=.o),build/$f)
|
||||
|
||||
DEP_FILES := $(O_FILES:%.o=%.d) $(OXX_FILES:%.o=%.d)
|
||||
|
||||
TABLE_DIRS := $(shell find include rabbitizer -type d)
|
||||
TABLE_DIRS := $(shell find include src cplusplus rabbitizer -type d)
|
||||
TABLE_TEMPLATES := $(foreach dir,$(TABLE_DIRS),$(wildcard $(dir)/*.table.template))
|
||||
TABLE_GENERATED := $(TABLE_TEMPLATES:%.table.template=%.table.h)
|
||||
|
||||
@ -140,17 +140,17 @@ build/%.a:
|
||||
build/%.so:
|
||||
$(CC) -shared -o $@ $^
|
||||
|
||||
build/%.o: %.c $(TABLE_GENERATED)
|
||||
build/%.o: %.c | $(TABLE_GENERATED)
|
||||
# The -MMD flags additionaly creates a .d file with the same name as the .o file.
|
||||
$(CC) -MMD -MP -c $(CSTD) $(OPTFLAGS) $(IINC) $(WARNINGS) $(WARNINGS_C) $(CFLAGS) -o $@ $<
|
||||
|
||||
build/%.o: %.cpp $(TABLE_GENERATED)
|
||||
build/%.o: %.cpp | $(TABLE_GENERATED)
|
||||
# The -MMD flags additionaly creates a .d file with the same name as the .o file.
|
||||
$(CXX) -MMD -MP -c $(CXXSTD) $(OPTFLAGS) $(IINC_XX) $(WARNINGS) $(WARNINGS_CXX) $(CXXFLAGS) -o $@ $<
|
||||
|
||||
|
||||
%.table.h: %.table.template
|
||||
$(CC) -x c -MMD -MP -fsyntax-only -o $@ $<
|
||||
cpp -P $(IINC) -M -MM -MMD -MP -MF $(@:.table.h=.table.d) $<
|
||||
$(TABLE_GEN) $< $@ $(@F)
|
||||
|
||||
|
||||
|
@ -7,15 +7,7 @@
|
||||
|
||||
|
||||
namespace rabbitizer {
|
||||
#define RAB_DEF_ACCESSTYPE(name) name,
|
||||
|
||||
enum class AccessType {
|
||||
#include "instructions/AccessType.inc"
|
||||
|
||||
RAB_DEF_ACCESSTYPE(MAX)
|
||||
};
|
||||
|
||||
#undef RAB_DEF_ACCESSTYPE
|
||||
#include "AccessType_enum_class.table.h"
|
||||
};
|
||||
|
||||
|
||||
|
20
cplusplus/include/instructions/AccessType_enum_class.table.h
Normal file
20
cplusplus/include/instructions/AccessType_enum_class.table.h
Normal file
@ -0,0 +1,20 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef AccessType_enum_class_table_h_automatic
|
||||
#define AccessType_enum_class_table_h_automatic
|
||||
|
||||
enum class AccessType {
|
||||
INVALID,
|
||||
BYTE,
|
||||
SHORT,
|
||||
WORD,
|
||||
DOUBLEWORD,
|
||||
FLOAT,
|
||||
DOUBLEFLOAT,
|
||||
MAX,
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,12 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RAB_DEF_ACCESSTYPE(name) name,
|
||||
|
||||
enum class AccessType {
|
||||
#include "instructions/AccessType.inc"
|
||||
|
||||
RAB_DEF_ACCESSTYPE(MAX)
|
||||
};
|
||||
|
||||
#undef RAB_DEF_ACCESSTYPE
|
@ -10,25 +10,7 @@
|
||||
|
||||
namespace rabbitizer {
|
||||
namespace InstrId {
|
||||
#define RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, ...) \
|
||||
prefix##_##name,
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID_ALTNAME(prefix, caseBits, name, altname, ...) \
|
||||
RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, __VA_ARGS__)
|
||||
|
||||
enum class UniqueId {
|
||||
#include "instructions/instr_id/RabbitizerInstrId_cpu.inc"
|
||||
|
||||
#include "instructions/instr_id/RabbitizerInstrId_rsp.inc"
|
||||
|
||||
#include "instructions/instr_id/RabbitizerInstrId_r5900.inc"
|
||||
|
||||
ALL_MAX = RABBITIZER_DEF_INSTR_ID(r5900, , MAX, )
|
||||
};
|
||||
|
||||
#undef RABBITIZER_DEF_INSTR_ID
|
||||
#undef RABBITIZER_DEF_INSTR_ID_ALTNAME
|
||||
|
||||
#include "UniqueId_enum_class.table.h"
|
||||
|
||||
std::string getOpcodeName(UniqueId uniqueId);
|
||||
};
|
||||
|
@ -7,20 +7,7 @@
|
||||
|
||||
|
||||
namespace rabbitizer {
|
||||
#define RAB_DEF_OPERAND(prefix, operand) \
|
||||
prefix##_##operand,
|
||||
|
||||
enum class OperandType {
|
||||
RAB_DEF_OPERAND(ALL, INVALID)
|
||||
|
||||
#include "instructions/operands/RabbitizerOperandType_cpu.inc"
|
||||
#include "instructions/operands/RabbitizerOperandType_rsp.inc"
|
||||
#include "instructions/operands/RabbitizerOperandType_r5900.inc"
|
||||
|
||||
RAB_DEF_OPERAND(ALL, MAX)
|
||||
};
|
||||
|
||||
#undef RAB_DEF_OPERAND
|
||||
#include "OperandType_enum_class.table.h"
|
||||
};
|
||||
|
||||
|
||||
|
@ -0,0 +1,78 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef OperandType_enum_class_table_h_automatic
|
||||
#define OperandType_enum_class_table_h_automatic
|
||||
|
||||
enum class OperandType {
|
||||
ALL_INVALID,
|
||||
cpu_rs,
|
||||
cpu_rt,
|
||||
cpu_rd,
|
||||
cpu_sa,
|
||||
cpu_zero,
|
||||
cpu_cop0d,
|
||||
cpu_fs,
|
||||
cpu_ft,
|
||||
cpu_fd,
|
||||
cpu_cop1cs,
|
||||
cpu_cop2t,
|
||||
cpu_op,
|
||||
cpu_code,
|
||||
cpu_code_lower,
|
||||
cpu_copraw,
|
||||
cpu_label,
|
||||
cpu_immediate,
|
||||
cpu_branch_target_label,
|
||||
cpu_immediate_base,
|
||||
rsp_rs,
|
||||
rsp_rt,
|
||||
rsp_rd,
|
||||
rsp_cop0d,
|
||||
rsp_cop2t,
|
||||
rsp_cop2cd,
|
||||
rsp_vs,
|
||||
rsp_vt,
|
||||
rsp_vd,
|
||||
rsp_vt_elementhigh,
|
||||
rsp_vt_elementlow,
|
||||
rsp_vd_de,
|
||||
rsp_vs_index,
|
||||
rsp_offset_rs,
|
||||
rsp_immediate_base,
|
||||
r5900_I,
|
||||
r5900_Q,
|
||||
r5900_R,
|
||||
r5900_ACC,
|
||||
r5900_ACCxyzw,
|
||||
r5900_vfs,
|
||||
r5900_vft,
|
||||
r5900_vfd,
|
||||
r5900_vfsxyzw,
|
||||
r5900_vftxyzw,
|
||||
r5900_vfdxyzw,
|
||||
r5900_vfsn,
|
||||
r5900_vftn,
|
||||
r5900_vfdn,
|
||||
r5900_vfsl,
|
||||
r5900_vftl,
|
||||
r5900_vfdl,
|
||||
r5900_vfsm,
|
||||
r5900_vftm,
|
||||
r5900_vfdm,
|
||||
r5900_vis,
|
||||
r5900_vit,
|
||||
r5900_vid,
|
||||
r5900_vis_predecr,
|
||||
r5900_vit_predecr,
|
||||
r5900_vid_predecr,
|
||||
r5900_vis_postincr,
|
||||
r5900_vit_postincr,
|
||||
r5900_vid_postincr,
|
||||
r5900_immediate5,
|
||||
ALL_MAX,
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,17 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RAB_DEF_OPERAND(prefix, operand) \
|
||||
prefix##_##operand,
|
||||
|
||||
enum class OperandType {
|
||||
RAB_DEF_OPERAND(ALL, INVALID)
|
||||
|
||||
#include "instructions/operands/RabbitizerOperandType_cpu.inc"
|
||||
#include "instructions/operands/RabbitizerOperandType_rsp.inc"
|
||||
#include "instructions/operands/RabbitizerOperandType_r5900.inc"
|
||||
|
||||
RAB_DEF_OPERAND(ALL, MAX)
|
||||
};
|
||||
|
||||
#undef RAB_DEF_OPERAND
|
@ -7,86 +7,8 @@
|
||||
|
||||
|
||||
namespace rabbitizer {
|
||||
|
||||
namespace Registers {
|
||||
#define RABBITIZER_DEF_REG(prefix, name, numeric) \
|
||||
prefix##_##name
|
||||
|
||||
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric) \
|
||||
prefix##_##name
|
||||
|
||||
namespace Cpu {
|
||||
enum class GprO32 {
|
||||
#include "instructions/registers/RabbitizerRegister_GprO32.inc"
|
||||
};
|
||||
|
||||
enum class GprN32 {
|
||||
#include "instructions/registers/RabbitizerRegister_GprN32.inc"
|
||||
};
|
||||
|
||||
|
||||
enum class Cop0 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop0.inc"
|
||||
};
|
||||
|
||||
// Float registers
|
||||
enum class Cop1O32 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1O32.inc"
|
||||
};
|
||||
|
||||
enum class Cop1N32 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1N32.inc"
|
||||
};
|
||||
|
||||
enum class Cop1N64 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1N64.inc"
|
||||
};
|
||||
|
||||
enum class Cop1Control {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1Control.inc"
|
||||
};
|
||||
|
||||
enum class Cop2 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop2.inc"
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
namespace Rsp {
|
||||
enum class Gpr {
|
||||
#include "instructions/registers/RabbitizerRegister_RspGpr.inc"
|
||||
};
|
||||
|
||||
enum class Cop0 {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop0.inc"
|
||||
};
|
||||
|
||||
enum class Cop2 {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop2.inc"
|
||||
};
|
||||
|
||||
enum class Cop2Control {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop2Control.inc"
|
||||
};
|
||||
|
||||
enum class Vector {
|
||||
#include "instructions/registers/RabbitizerRegister_RspVector.inc"
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
namespace R5900 {
|
||||
enum class VF {
|
||||
#include "instructions/registers/RabbitizerRegister_R5900VF.inc"
|
||||
};
|
||||
|
||||
enum class VI {
|
||||
#include "instructions/registers/RabbitizerRegister_R5900VI.inc"
|
||||
};
|
||||
};
|
||||
|
||||
#undef RABBITIZER_DEF_REG
|
||||
#undef RABBITIZER_DEF_REG_NODOLLAR
|
||||
#include "Registers_enum_classes.table.h"
|
||||
};
|
||||
};
|
||||
|
||||
|
510
cplusplus/include/instructions/Registers_enum_classes.table.h
Normal file
510
cplusplus/include/instructions/Registers_enum_classes.table.h
Normal file
@ -0,0 +1,510 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef Registers_enum_classes_table_h_automatic
|
||||
#define Registers_enum_classes_table_h_automatic
|
||||
|
||||
namespace Cpu {
|
||||
enum class GprO32 {
|
||||
GPR_O32_zero,
|
||||
GPR_O32_at,
|
||||
GPR_O32_v0,
|
||||
GPR_O32_v1,
|
||||
GPR_O32_a0,
|
||||
GPR_O32_a1,
|
||||
GPR_O32_a2,
|
||||
GPR_O32_a3,
|
||||
GPR_O32_t0,
|
||||
GPR_O32_t1,
|
||||
GPR_O32_t2,
|
||||
GPR_O32_t3,
|
||||
GPR_O32_t4,
|
||||
GPR_O32_t5,
|
||||
GPR_O32_t6,
|
||||
GPR_O32_t7,
|
||||
GPR_O32_s0,
|
||||
GPR_O32_s1,
|
||||
GPR_O32_s2,
|
||||
GPR_O32_s3,
|
||||
GPR_O32_s4,
|
||||
GPR_O32_s5,
|
||||
GPR_O32_s6,
|
||||
GPR_O32_s7,
|
||||
GPR_O32_t8,
|
||||
GPR_O32_t9,
|
||||
GPR_O32_k0,
|
||||
GPR_O32_k1,
|
||||
GPR_O32_gp,
|
||||
GPR_O32_sp,
|
||||
GPR_O32_fp,
|
||||
GPR_O32_ra,
|
||||
};
|
||||
enum class GprN32 {
|
||||
GPR_N32_zero,
|
||||
GPR_N32_at,
|
||||
GPR_N32_v0,
|
||||
GPR_N32_v1,
|
||||
GPR_N32_a0,
|
||||
GPR_N32_a1,
|
||||
GPR_N32_a2,
|
||||
GPR_N32_a3,
|
||||
GPR_N32_a4,
|
||||
GPR_N32_a5,
|
||||
GPR_N32_a6,
|
||||
GPR_N32_a7,
|
||||
GPR_N32_t0,
|
||||
GPR_N32_t1,
|
||||
GPR_N32_t2,
|
||||
GPR_N32_t3,
|
||||
GPR_N32_s0,
|
||||
GPR_N32_s1,
|
||||
GPR_N32_s2,
|
||||
GPR_N32_s3,
|
||||
GPR_N32_s4,
|
||||
GPR_N32_s5,
|
||||
GPR_N32_s6,
|
||||
GPR_N32_s7,
|
||||
GPR_N32_t8,
|
||||
GPR_N32_t9,
|
||||
GPR_N32_k0,
|
||||
GPR_N32_k1,
|
||||
GPR_N32_gp,
|
||||
GPR_N32_sp,
|
||||
GPR_N32_fp,
|
||||
GPR_N32_ra,
|
||||
};
|
||||
enum class Cop0 {
|
||||
COP0_Index,
|
||||
COP0_Random,
|
||||
COP0_EntryLo0,
|
||||
COP0_EntryLo1,
|
||||
COP0_Context,
|
||||
COP0_PageMask,
|
||||
COP0_Wired,
|
||||
COP0_Reserved07,
|
||||
COP0_BadVaddr,
|
||||
COP0_Count,
|
||||
COP0_EntryHi,
|
||||
COP0_Compare,
|
||||
COP0_Status,
|
||||
COP0_Cause,
|
||||
COP0_EPC,
|
||||
COP0_PRevID,
|
||||
COP0_Config,
|
||||
COP0_LLAddr,
|
||||
COP0_WatchLo,
|
||||
COP0_WatchHi,
|
||||
COP0_XContext,
|
||||
COP0_Reserved21,
|
||||
COP0_Reserved22,
|
||||
COP0_Reserved23,
|
||||
COP0_Reserved24,
|
||||
COP0_Reserved25,
|
||||
COP0_PErr,
|
||||
COP0_CacheErr,
|
||||
COP0_TagLo,
|
||||
COP0_TagHi,
|
||||
COP0_ErrorEPC,
|
||||
COP0_Reserved31,
|
||||
};
|
||||
enum class Cop1O32 {
|
||||
COP1_O32_fv0,
|
||||
COP1_O32_fv0f,
|
||||
COP1_O32_fv1,
|
||||
COP1_O32_fv1f,
|
||||
COP1_O32_ft0,
|
||||
COP1_O32_ft0f,
|
||||
COP1_O32_ft1,
|
||||
COP1_O32_ft1f,
|
||||
COP1_O32_ft2,
|
||||
COP1_O32_ft2f,
|
||||
COP1_O32_ft3,
|
||||
COP1_O32_ft3f,
|
||||
COP1_O32_fa0,
|
||||
COP1_O32_fa0f,
|
||||
COP1_O32_fa1,
|
||||
COP1_O32_fa1f,
|
||||
COP1_O32_ft4,
|
||||
COP1_O32_ft4f,
|
||||
COP1_O32_ft5,
|
||||
COP1_O32_ft5f,
|
||||
COP1_O32_fs0,
|
||||
COP1_O32_fs0f,
|
||||
COP1_O32_fs1,
|
||||
COP1_O32_fs1f,
|
||||
COP1_O32_fs2,
|
||||
COP1_O32_fs2f,
|
||||
COP1_O32_fs3,
|
||||
COP1_O32_fs3f,
|
||||
COP1_O32_fs4,
|
||||
COP1_O32_fs4f,
|
||||
COP1_O32_fs5,
|
||||
COP1_O32_fs5f,
|
||||
};
|
||||
enum class Cop1N32 {
|
||||
COP1_N32_fv0,
|
||||
COP1_N32_ft14,
|
||||
COP1_N32_fv1,
|
||||
COP1_N32_ft15,
|
||||
COP1_N32_ft0,
|
||||
COP1_N32_ft1,
|
||||
COP1_N32_ft2,
|
||||
COP1_N32_ft3,
|
||||
COP1_N32_ft4,
|
||||
COP1_N32_ft5,
|
||||
COP1_N32_ft6,
|
||||
COP1_N32_ft7,
|
||||
COP1_N32_fa0,
|
||||
COP1_N32_fa1,
|
||||
COP1_N32_fa2,
|
||||
COP1_N32_fa3,
|
||||
COP1_N32_fa4,
|
||||
COP1_N32_fa5,
|
||||
COP1_N32_fa6,
|
||||
COP1_N32_fa7,
|
||||
COP1_N32_fs0,
|
||||
COP1_N32_ft8,
|
||||
COP1_N32_fs1,
|
||||
COP1_N32_ft9,
|
||||
COP1_N32_fs2,
|
||||
COP1_N32_ft10,
|
||||
COP1_N32_fs3,
|
||||
COP1_N32_ft11,
|
||||
COP1_N32_fs4,
|
||||
COP1_N32_ft12,
|
||||
COP1_N32_fs5,
|
||||
COP1_N32_ft13,
|
||||
};
|
||||
enum class Cop1N64 {
|
||||
COP1_N64_fv0,
|
||||
COP1_N64_ft12,
|
||||
COP1_N64_fv1,
|
||||
COP1_N64_ft13,
|
||||
COP1_N64_ft0,
|
||||
COP1_N64_ft1,
|
||||
COP1_N64_ft2,
|
||||
COP1_N64_ft3,
|
||||
COP1_N64_ft4,
|
||||
COP1_N64_ft5,
|
||||
COP1_N64_ft6,
|
||||
COP1_N64_ft7,
|
||||
COP1_N64_fa0,
|
||||
COP1_N64_fa1,
|
||||
COP1_N64_fa2,
|
||||
COP1_N64_fa3,
|
||||
COP1_N64_fa4,
|
||||
COP1_N64_fa5,
|
||||
COP1_N64_fa6,
|
||||
COP1_N64_fa7,
|
||||
COP1_N64_ft8,
|
||||
COP1_N64_ft9,
|
||||
COP1_N64_ft10,
|
||||
COP1_N64_ft11,
|
||||
COP1_N64_fs0,
|
||||
COP1_N64_fs1,
|
||||
COP1_N64_fs2,
|
||||
COP1_N64_fs3,
|
||||
COP1_N64_fs4,
|
||||
COP1_N64_fs5,
|
||||
COP1_N64_fs6,
|
||||
COP1_N64_fs7,
|
||||
};
|
||||
enum class Cop1Control {
|
||||
COP1_CONTROL_0,
|
||||
COP1_CONTROL_1,
|
||||
COP1_CONTROL_2,
|
||||
COP1_CONTROL_3,
|
||||
COP1_CONTROL_4,
|
||||
COP1_CONTROL_5,
|
||||
COP1_CONTROL_6,
|
||||
COP1_CONTROL_7,
|
||||
COP1_CONTROL_8,
|
||||
COP1_CONTROL_9,
|
||||
COP1_CONTROL_10,
|
||||
COP1_CONTROL_11,
|
||||
COP1_CONTROL_12,
|
||||
COP1_CONTROL_13,
|
||||
COP1_CONTROL_14,
|
||||
COP1_CONTROL_15,
|
||||
COP1_CONTROL_16,
|
||||
COP1_CONTROL_17,
|
||||
COP1_CONTROL_18,
|
||||
COP1_CONTROL_19,
|
||||
COP1_CONTROL_20,
|
||||
COP1_CONTROL_21,
|
||||
COP1_CONTROL_22,
|
||||
COP1_CONTROL_23,
|
||||
COP1_CONTROL_24,
|
||||
COP1_CONTROL_25,
|
||||
COP1_CONTROL_26,
|
||||
COP1_CONTROL_27,
|
||||
COP1_CONTROL_28,
|
||||
COP1_CONTROL_29,
|
||||
COP1_CONTROL_30,
|
||||
COP1_CONTROL_FpcCsr,
|
||||
};
|
||||
enum class Cop2 {
|
||||
COP2_0,
|
||||
COP2_1,
|
||||
COP2_2,
|
||||
COP2_3,
|
||||
COP2_4,
|
||||
COP2_5,
|
||||
COP2_6,
|
||||
COP2_7,
|
||||
COP2_8,
|
||||
COP2_9,
|
||||
COP2_10,
|
||||
COP2_11,
|
||||
COP2_12,
|
||||
COP2_13,
|
||||
COP2_14,
|
||||
COP2_15,
|
||||
COP2_16,
|
||||
COP2_17,
|
||||
COP2_18,
|
||||
COP2_19,
|
||||
COP2_20,
|
||||
COP2_21,
|
||||
COP2_22,
|
||||
COP2_23,
|
||||
COP2_24,
|
||||
COP2_25,
|
||||
COP2_26,
|
||||
COP2_27,
|
||||
COP2_28,
|
||||
COP2_29,
|
||||
COP2_30,
|
||||
COP2_31,
|
||||
};
|
||||
};
|
||||
namespace Rsp {
|
||||
enum class Gpr {
|
||||
RSP_GPR_zero,
|
||||
RSP_GPR_1,
|
||||
RSP_GPR_2,
|
||||
RSP_GPR_3,
|
||||
RSP_GPR_4,
|
||||
RSP_GPR_5,
|
||||
RSP_GPR_6,
|
||||
RSP_GPR_7,
|
||||
RSP_GPR_8,
|
||||
RSP_GPR_9,
|
||||
RSP_GPR_10,
|
||||
RSP_GPR_11,
|
||||
RSP_GPR_12,
|
||||
RSP_GPR_13,
|
||||
RSP_GPR_14,
|
||||
RSP_GPR_15,
|
||||
RSP_GPR_16,
|
||||
RSP_GPR_17,
|
||||
RSP_GPR_18,
|
||||
RSP_GPR_19,
|
||||
RSP_GPR_20,
|
||||
RSP_GPR_21,
|
||||
RSP_GPR_22,
|
||||
RSP_GPR_23,
|
||||
RSP_GPR_24,
|
||||
RSP_GPR_25,
|
||||
RSP_GPR_26,
|
||||
RSP_GPR_27,
|
||||
RSP_GPR_28,
|
||||
RSP_GPR_29,
|
||||
RSP_GPR_30,
|
||||
RSP_GPR_ra,
|
||||
};
|
||||
enum class Cop0 {
|
||||
RSP_COP0_SP_MEM_ADDR,
|
||||
RSP_COP0_SP_DRAM_ADDR,
|
||||
RSP_COP0_SP_RD_LEN,
|
||||
RSP_COP0_SP_WR_LEN,
|
||||
RSP_COP0_SP_STATUS,
|
||||
RSP_COP0_SP_DMA_FULL,
|
||||
RSP_COP0_SP_DMA_BUSY,
|
||||
RSP_COP0_SP_SEMAPHORE,
|
||||
RSP_COP0_DPC_START,
|
||||
RSP_COP0_DPC_END,
|
||||
RSP_COP0_DPC_CURRENT,
|
||||
RSP_COP0_DPC_STATUS,
|
||||
RSP_COP0_DPC_CLOCK,
|
||||
RSP_COP0_DPC_BUFBUSY,
|
||||
RSP_COP0_DPC_PIPEBUSY,
|
||||
RSP_COP0_DPC_TMEM,
|
||||
};
|
||||
enum class Cop2 {
|
||||
RSP_COP2_0,
|
||||
RSP_COP2_1,
|
||||
RSP_COP2_2,
|
||||
RSP_COP2_3,
|
||||
RSP_COP2_4,
|
||||
RSP_COP2_5,
|
||||
RSP_COP2_6,
|
||||
RSP_COP2_7,
|
||||
RSP_COP2_8,
|
||||
RSP_COP2_9,
|
||||
RSP_COP2_10,
|
||||
RSP_COP2_11,
|
||||
RSP_COP2_12,
|
||||
RSP_COP2_13,
|
||||
RSP_COP2_14,
|
||||
RSP_COP2_15,
|
||||
RSP_COP2_16,
|
||||
RSP_COP2_17,
|
||||
RSP_COP2_18,
|
||||
RSP_COP2_19,
|
||||
RSP_COP2_20,
|
||||
RSP_COP2_21,
|
||||
RSP_COP2_22,
|
||||
RSP_COP2_23,
|
||||
RSP_COP2_24,
|
||||
RSP_COP2_25,
|
||||
RSP_COP2_26,
|
||||
RSP_COP2_27,
|
||||
RSP_COP2_28,
|
||||
RSP_COP2_29,
|
||||
RSP_COP2_30,
|
||||
RSP_COP2_31,
|
||||
};
|
||||
enum class Cop2Control {
|
||||
RSP_COP2_CONTROL_0,
|
||||
RSP_COP2_CONTROL_1,
|
||||
RSP_COP2_CONTROL_2,
|
||||
RSP_COP2_CONTROL_3,
|
||||
RSP_COP2_CONTROL_4,
|
||||
RSP_COP2_CONTROL_5,
|
||||
RSP_COP2_CONTROL_6,
|
||||
RSP_COP2_CONTROL_7,
|
||||
RSP_COP2_CONTROL_8,
|
||||
RSP_COP2_CONTROL_9,
|
||||
RSP_COP2_CONTROL_10,
|
||||
RSP_COP2_CONTROL_11,
|
||||
RSP_COP2_CONTROL_12,
|
||||
RSP_COP2_CONTROL_13,
|
||||
RSP_COP2_CONTROL_14,
|
||||
RSP_COP2_CONTROL_15,
|
||||
RSP_COP2_CONTROL_16,
|
||||
RSP_COP2_CONTROL_17,
|
||||
RSP_COP2_CONTROL_18,
|
||||
RSP_COP2_CONTROL_19,
|
||||
RSP_COP2_CONTROL_20,
|
||||
RSP_COP2_CONTROL_21,
|
||||
RSP_COP2_CONTROL_22,
|
||||
RSP_COP2_CONTROL_23,
|
||||
RSP_COP2_CONTROL_24,
|
||||
RSP_COP2_CONTROL_25,
|
||||
RSP_COP2_CONTROL_26,
|
||||
RSP_COP2_CONTROL_27,
|
||||
RSP_COP2_CONTROL_28,
|
||||
RSP_COP2_CONTROL_29,
|
||||
RSP_COP2_CONTROL_30,
|
||||
COP1_CONTROL_31,
|
||||
};
|
||||
enum class Vector {
|
||||
RSP_VECTOR_v0,
|
||||
RSP_VECTOR_v1,
|
||||
RSP_VECTOR_v2,
|
||||
RSP_VECTOR_v3,
|
||||
RSP_VECTOR_v4,
|
||||
RSP_VECTOR_v5,
|
||||
RSP_VECTOR_v6,
|
||||
RSP_VECTOR_v7,
|
||||
RSP_VECTOR_v8,
|
||||
RSP_VECTOR_v9,
|
||||
RSP_VECTOR_v10,
|
||||
RSP_VECTOR_v11,
|
||||
RSP_VECTOR_v12,
|
||||
RSP_VECTOR_v13,
|
||||
RSP_VECTOR_v14,
|
||||
RSP_VECTOR_v15,
|
||||
RSP_VECTOR_v16,
|
||||
RSP_VECTOR_v17,
|
||||
RSP_VECTOR_v18,
|
||||
RSP_VECTOR_v19,
|
||||
RSP_VECTOR_v20,
|
||||
RSP_VECTOR_v21,
|
||||
RSP_VECTOR_v22,
|
||||
RSP_VECTOR_v23,
|
||||
RSP_VECTOR_v24,
|
||||
RSP_VECTOR_v25,
|
||||
RSP_VECTOR_v26,
|
||||
RSP_VECTOR_v27,
|
||||
RSP_VECTOR_v28,
|
||||
RSP_VECTOR_v29,
|
||||
RSP_VECTOR_v30,
|
||||
RSP_VECTOR_v31,
|
||||
};
|
||||
};
|
||||
namespace R5900 {
|
||||
enum class VF {
|
||||
R5900_VF_vf0,
|
||||
R5900_VF_vf1,
|
||||
R5900_VF_vf2,
|
||||
R5900_VF_vf3,
|
||||
R5900_VF_vf4,
|
||||
R5900_VF_vf5,
|
||||
R5900_VF_vf6,
|
||||
R5900_VF_vf7,
|
||||
R5900_VF_vf8,
|
||||
R5900_VF_vf9,
|
||||
R5900_VF_vf10,
|
||||
R5900_VF_vf11,
|
||||
R5900_VF_vf12,
|
||||
R5900_VF_vf13,
|
||||
R5900_VF_vf14,
|
||||
R5900_VF_vf15,
|
||||
R5900_VF_vf16,
|
||||
R5900_VF_vf17,
|
||||
R5900_VF_vf18,
|
||||
R5900_VF_vf19,
|
||||
R5900_VF_vf20,
|
||||
R5900_VF_vf21,
|
||||
R5900_VF_vf22,
|
||||
R5900_VF_vf23,
|
||||
R5900_VF_vf24,
|
||||
R5900_VF_vf25,
|
||||
R5900_VF_vf26,
|
||||
R5900_VF_vf27,
|
||||
R5900_VF_vf28,
|
||||
R5900_VF_vf29,
|
||||
R5900_VF_vf30,
|
||||
R5900_VF_vf31,
|
||||
};
|
||||
enum class VI {
|
||||
R5900_VI_vi0,
|
||||
R5900_VI_vi1,
|
||||
R5900_VI_vi2,
|
||||
R5900_VI_vi3,
|
||||
R5900_VI_vi4,
|
||||
R5900_VI_vi5,
|
||||
R5900_VI_vi6,
|
||||
R5900_VI_vi7,
|
||||
R5900_VI_vi8,
|
||||
R5900_VI_vi9,
|
||||
R5900_VI_vi10,
|
||||
R5900_VI_vi11,
|
||||
R5900_VI_vi12,
|
||||
R5900_VI_vi13,
|
||||
R5900_VI_vi14,
|
||||
R5900_VI_vi15,
|
||||
R5900_VI_vi16,
|
||||
R5900_VI_vi17,
|
||||
R5900_VI_vi18,
|
||||
R5900_VI_vi19,
|
||||
R5900_VI_vi20,
|
||||
R5900_VI_vi21,
|
||||
R5900_VI_vi22,
|
||||
R5900_VI_vi23,
|
||||
R5900_VI_vi24,
|
||||
R5900_VI_vi25,
|
||||
R5900_VI_vi26,
|
||||
R5900_VI_vi27,
|
||||
R5900_VI_vi28,
|
||||
R5900_VI_vi29,
|
||||
R5900_VI_vi30,
|
||||
R5900_VI_vi31,
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,81 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RABBITIZER_DEF_REG(prefix, name, numeric) \
|
||||
prefix##_##name
|
||||
|
||||
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric) \
|
||||
prefix##_##name
|
||||
|
||||
namespace Cpu {
|
||||
enum class GprO32 {
|
||||
#include "instructions/registers/RabbitizerRegister_GprO32.inc"
|
||||
};
|
||||
|
||||
enum class GprN32 {
|
||||
#include "instructions/registers/RabbitizerRegister_GprN32.inc"
|
||||
};
|
||||
|
||||
|
||||
enum class Cop0 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop0.inc"
|
||||
};
|
||||
|
||||
// Float registers
|
||||
enum class Cop1O32 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1O32.inc"
|
||||
};
|
||||
|
||||
enum class Cop1N32 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1N32.inc"
|
||||
};
|
||||
|
||||
enum class Cop1N64 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1N64.inc"
|
||||
};
|
||||
|
||||
enum class Cop1Control {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1Control.inc"
|
||||
};
|
||||
|
||||
enum class Cop2 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop2.inc"
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
namespace Rsp {
|
||||
enum class Gpr {
|
||||
#include "instructions/registers/RabbitizerRegister_RspGpr.inc"
|
||||
};
|
||||
|
||||
enum class Cop0 {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop0.inc"
|
||||
};
|
||||
|
||||
enum class Cop2 {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop2.inc"
|
||||
};
|
||||
|
||||
enum class Cop2Control {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop2Control.inc"
|
||||
};
|
||||
|
||||
enum class Vector {
|
||||
#include "instructions/registers/RabbitizerRegister_RspVector.inc"
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
namespace R5900 {
|
||||
enum class VF {
|
||||
#include "instructions/registers/RabbitizerRegister_R5900VF.inc"
|
||||
};
|
||||
|
||||
enum class VI {
|
||||
#include "instructions/registers/RabbitizerRegister_R5900VI.inc"
|
||||
};
|
||||
};
|
||||
|
||||
#undef RABBITIZER_DEF_REG
|
||||
#undef RABBITIZER_DEF_REG_NODOLLAR
|
693
cplusplus/include/instructions/UniqueId_enum_class.table.h
Normal file
693
cplusplus/include/instructions/UniqueId_enum_class.table.h
Normal file
@ -0,0 +1,693 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef UniqueId_enum_class_table_h_automatic
|
||||
#define UniqueId_enum_class_table_h_automatic
|
||||
|
||||
enum class UniqueId {
|
||||
cpu_INVALID,
|
||||
cpu_j,
|
||||
cpu_jal,
|
||||
cpu_beq,
|
||||
cpu_bne,
|
||||
cpu_beql,
|
||||
cpu_bnel,
|
||||
cpu_blez,
|
||||
cpu_blezl,
|
||||
cpu_bgtz,
|
||||
cpu_bgtzl,
|
||||
cpu_addi,
|
||||
cpu_addiu,
|
||||
cpu_slti,
|
||||
cpu_sltiu,
|
||||
cpu_andi,
|
||||
cpu_ori,
|
||||
cpu_xori,
|
||||
cpu_daddi,
|
||||
cpu_daddiu,
|
||||
cpu_lui,
|
||||
cpu_ldl,
|
||||
cpu_ldr,
|
||||
cpu_lb,
|
||||
cpu_lh,
|
||||
cpu_lwl,
|
||||
cpu_lw,
|
||||
cpu_lbu,
|
||||
cpu_lhu,
|
||||
cpu_lwr,
|
||||
cpu_lwu,
|
||||
cpu_sb,
|
||||
cpu_sh,
|
||||
cpu_swl,
|
||||
cpu_sw,
|
||||
cpu_sdl,
|
||||
cpu_sdr,
|
||||
cpu_swr,
|
||||
cpu_ll,
|
||||
cpu_pref,
|
||||
cpu_lld,
|
||||
cpu_ld,
|
||||
cpu_sc,
|
||||
cpu_scd,
|
||||
cpu_sd,
|
||||
cpu_cache,
|
||||
cpu_lwc1,
|
||||
cpu_ldc1,
|
||||
cpu_swc1,
|
||||
cpu_sdc1,
|
||||
cpu_lwc2,
|
||||
cpu_ldc2,
|
||||
cpu_swc2,
|
||||
cpu_sdc2,
|
||||
cpu_b,
|
||||
cpu_beqz,
|
||||
cpu_bnez,
|
||||
cpu_sll,
|
||||
cpu_srl,
|
||||
cpu_sra,
|
||||
cpu_dsll,
|
||||
cpu_dsrl,
|
||||
cpu_dsra,
|
||||
cpu_dsll32,
|
||||
cpu_dsrl32,
|
||||
cpu_dsra32,
|
||||
cpu_dsllv,
|
||||
cpu_dsrlv,
|
||||
cpu_dsrav,
|
||||
cpu_sllv,
|
||||
cpu_srlv,
|
||||
cpu_srav,
|
||||
cpu_mthi,
|
||||
cpu_mtlo,
|
||||
cpu_jr,
|
||||
cpu_jalr,
|
||||
cpu_jalr_rd,
|
||||
cpu_mfhi,
|
||||
cpu_mflo,
|
||||
cpu_movz,
|
||||
cpu_movn,
|
||||
cpu_div,
|
||||
cpu_divu,
|
||||
cpu_sn64_div,
|
||||
cpu_sn64_divu,
|
||||
cpu_ddiv,
|
||||
cpu_ddivu,
|
||||
cpu_add,
|
||||
cpu_addu,
|
||||
cpu_sub,
|
||||
cpu_subu,
|
||||
cpu_and,
|
||||
cpu_or,
|
||||
cpu_xor,
|
||||
cpu_nor,
|
||||
cpu_slt,
|
||||
cpu_sltu,
|
||||
cpu_dadd,
|
||||
cpu_daddu,
|
||||
cpu_dsub,
|
||||
cpu_dsubu,
|
||||
cpu_syscall,
|
||||
cpu_break,
|
||||
cpu_sync,
|
||||
cpu_mult,
|
||||
cpu_multu,
|
||||
cpu_dmult,
|
||||
cpu_dmultu,
|
||||
cpu_tge,
|
||||
cpu_tgeu,
|
||||
cpu_tlt,
|
||||
cpu_tltu,
|
||||
cpu_teq,
|
||||
cpu_tne,
|
||||
cpu_nop,
|
||||
cpu_move,
|
||||
cpu_not,
|
||||
cpu_negu,
|
||||
cpu_bltz,
|
||||
cpu_bgez,
|
||||
cpu_bltzl,
|
||||
cpu_bgezl,
|
||||
cpu_tgei,
|
||||
cpu_tgeiu,
|
||||
cpu_tlti,
|
||||
cpu_tltiu,
|
||||
cpu_teqi,
|
||||
cpu_tnei,
|
||||
cpu_bltzal,
|
||||
cpu_bgezal,
|
||||
cpu_bltzall,
|
||||
cpu_bgezall,
|
||||
cpu_bal,
|
||||
cpu_mfc0,
|
||||
cpu_dmfc0,
|
||||
cpu_cfc0,
|
||||
cpu_mtc0,
|
||||
cpu_dmtc0,
|
||||
cpu_ctc0,
|
||||
cpu_bc0f,
|
||||
cpu_bc0t,
|
||||
cpu_bc0fl,
|
||||
cpu_bc0tl,
|
||||
cpu_tlbr,
|
||||
cpu_tlbwi,
|
||||
cpu_tlbwr,
|
||||
cpu_tlbp,
|
||||
cpu_eret,
|
||||
cpu_mfc1,
|
||||
cpu_dmfc1,
|
||||
cpu_mtc1,
|
||||
cpu_dmtc1,
|
||||
cpu_cfc1,
|
||||
cpu_ctc1,
|
||||
cpu_bc1f,
|
||||
cpu_bc1t,
|
||||
cpu_bc1fl,
|
||||
cpu_bc1tl,
|
||||
cpu_add_s,
|
||||
cpu_sub_s,
|
||||
cpu_mul_s,
|
||||
cpu_div_s,
|
||||
cpu_sqrt_s,
|
||||
cpu_abs_s,
|
||||
cpu_mov_s,
|
||||
cpu_neg_s,
|
||||
cpu_round_l_s,
|
||||
cpu_trunc_l_s,
|
||||
cpu_ceil_l_s,
|
||||
cpu_floor_l_s,
|
||||
cpu_round_w_s,
|
||||
cpu_trunc_w_s,
|
||||
cpu_ceil_w_s,
|
||||
cpu_floor_w_s,
|
||||
cpu_cvt_d_s,
|
||||
cpu_cvt_w_s,
|
||||
cpu_cvt_l_s,
|
||||
cpu_c_f_s,
|
||||
cpu_c_un_s,
|
||||
cpu_c_eq_s,
|
||||
cpu_c_ueq_s,
|
||||
cpu_c_olt_s,
|
||||
cpu_c_ult_s,
|
||||
cpu_c_ole_s,
|
||||
cpu_c_ule_s,
|
||||
cpu_c_sf_s,
|
||||
cpu_c_ngle_s,
|
||||
cpu_c_seq_s,
|
||||
cpu_c_ngl_s,
|
||||
cpu_c_lt_s,
|
||||
cpu_c_nge_s,
|
||||
cpu_c_le_s,
|
||||
cpu_c_ngt_s,
|
||||
cpu_add_d,
|
||||
cpu_sub_d,
|
||||
cpu_mul_d,
|
||||
cpu_div_d,
|
||||
cpu_sqrt_d,
|
||||
cpu_abs_d,
|
||||
cpu_mov_d,
|
||||
cpu_neg_d,
|
||||
cpu_round_l_d,
|
||||
cpu_trunc_l_d,
|
||||
cpu_ceil_l_d,
|
||||
cpu_floor_l_d,
|
||||
cpu_round_w_d,
|
||||
cpu_trunc_w_d,
|
||||
cpu_ceil_w_d,
|
||||
cpu_floor_w_d,
|
||||
cpu_cvt_s_d,
|
||||
cpu_cvt_w_d,
|
||||
cpu_cvt_l_d,
|
||||
cpu_c_f_d,
|
||||
cpu_c_un_d,
|
||||
cpu_c_eq_d,
|
||||
cpu_c_ueq_d,
|
||||
cpu_c_olt_d,
|
||||
cpu_c_ult_d,
|
||||
cpu_c_ole_d,
|
||||
cpu_c_ule_d,
|
||||
cpu_c_df_d,
|
||||
cpu_c_ngle_d,
|
||||
cpu_c_deq_d,
|
||||
cpu_c_ngl_d,
|
||||
cpu_c_lt_d,
|
||||
cpu_c_nge_d,
|
||||
cpu_c_le_d,
|
||||
cpu_c_ngt_d,
|
||||
cpu_cvt_s_w,
|
||||
cpu_cvt_d_w,
|
||||
cpu_cvt_s_l,
|
||||
cpu_cvt_d_l,
|
||||
cpu_USERDEF_00,
|
||||
cpu_USERDEF_01,
|
||||
cpu_USERDEF_02,
|
||||
cpu_USERDEF_03,
|
||||
cpu_USERDEF_04,
|
||||
cpu_USERDEF_05,
|
||||
cpu_USERDEF_06,
|
||||
cpu_USERDEF_07,
|
||||
cpu_USERDEF_08,
|
||||
cpu_USERDEF_09,
|
||||
cpu_USERDEF_10,
|
||||
cpu_USERDEF_11,
|
||||
cpu_USERDEF_12,
|
||||
cpu_USERDEF_13,
|
||||
cpu_USERDEF_14,
|
||||
cpu_USERDEF_15,
|
||||
cpu_USERDEF_16,
|
||||
cpu_USERDEF_17,
|
||||
cpu_USERDEF_18,
|
||||
cpu_USERDEF_19,
|
||||
cpu_MAX,
|
||||
rsp_INVALID,
|
||||
rsp_mfc2,
|
||||
rsp_mtc2,
|
||||
rsp_cfc2,
|
||||
rsp_ctc2,
|
||||
rsp_vmulf,
|
||||
rsp_vmulu,
|
||||
rsp_vrndp,
|
||||
rsp_vmulq,
|
||||
rsp_vmudl,
|
||||
rsp_vmudm,
|
||||
rsp_vmudn,
|
||||
rsp_vmudh,
|
||||
rsp_vmacf,
|
||||
rsp_vmacu,
|
||||
rsp_vrndn,
|
||||
rsp_vmacq,
|
||||
rsp_vmadl,
|
||||
rsp_vmadm,
|
||||
rsp_vmadn,
|
||||
rsp_vmadh,
|
||||
rsp_vadd,
|
||||
rsp_vsub,
|
||||
rsp_vabs,
|
||||
rsp_vaddc,
|
||||
rsp_vsubc,
|
||||
rsp_vsar,
|
||||
rsp_vand,
|
||||
rsp_vnand,
|
||||
rsp_vor,
|
||||
rsp_vnor,
|
||||
rsp_vxor,
|
||||
rsp_vnxor,
|
||||
rsp_vlt,
|
||||
rsp_veq,
|
||||
rsp_vne,
|
||||
rsp_vge,
|
||||
rsp_vcl,
|
||||
rsp_vch,
|
||||
rsp_vcr,
|
||||
rsp_vmrg,
|
||||
rsp_vrcp,
|
||||
rsp_vrcpl,
|
||||
rsp_vrcph,
|
||||
rsp_vmov,
|
||||
rsp_vrsq,
|
||||
rsp_vrsql,
|
||||
rsp_vrsqh,
|
||||
rsp_vnop,
|
||||
rsp_lbv,
|
||||
rsp_lsv,
|
||||
rsp_llv,
|
||||
rsp_ldv,
|
||||
rsp_lqv,
|
||||
rsp_lrv,
|
||||
rsp_lpv,
|
||||
rsp_luv,
|
||||
rsp_lhv,
|
||||
rsp_lfv,
|
||||
rsp_ltv,
|
||||
rsp_sbv,
|
||||
rsp_ssv,
|
||||
rsp_slv,
|
||||
rsp_sdv,
|
||||
rsp_sqv,
|
||||
rsp_srv,
|
||||
rsp_spv,
|
||||
rsp_suv,
|
||||
rsp_shv,
|
||||
rsp_sfv,
|
||||
rsp_stv,
|
||||
rsp_swv,
|
||||
rsp_j,
|
||||
rsp_jal,
|
||||
rsp_beq,
|
||||
rsp_bne,
|
||||
rsp_blez,
|
||||
rsp_bgtz,
|
||||
rsp_addi,
|
||||
rsp_addiu,
|
||||
rsp_slti,
|
||||
rsp_sltiu,
|
||||
rsp_andi,
|
||||
rsp_ori,
|
||||
rsp_xori,
|
||||
rsp_lui,
|
||||
rsp_lb,
|
||||
rsp_lh,
|
||||
rsp_lw,
|
||||
rsp_lbu,
|
||||
rsp_lhu,
|
||||
rsp_sb,
|
||||
rsp_sh,
|
||||
rsp_sw,
|
||||
rsp_pref,
|
||||
rsp_b,
|
||||
rsp_beqz,
|
||||
rsp_bnez,
|
||||
rsp_sll,
|
||||
rsp_srl,
|
||||
rsp_sra,
|
||||
rsp_sllv,
|
||||
rsp_srlv,
|
||||
rsp_srav,
|
||||
rsp_jr,
|
||||
rsp_jalr,
|
||||
rsp_jalr_rd,
|
||||
rsp_movz,
|
||||
rsp_movn,
|
||||
rsp_add,
|
||||
rsp_addu,
|
||||
rsp_sub,
|
||||
rsp_subu,
|
||||
rsp_and,
|
||||
rsp_or,
|
||||
rsp_xor,
|
||||
rsp_nor,
|
||||
rsp_slt,
|
||||
rsp_sltu,
|
||||
rsp_break,
|
||||
rsp_nop,
|
||||
rsp_move,
|
||||
rsp_not,
|
||||
rsp_negu,
|
||||
rsp_bltz,
|
||||
rsp_bgez,
|
||||
rsp_bltzal,
|
||||
rsp_bgezal,
|
||||
rsp_bal,
|
||||
rsp_mfc0,
|
||||
rsp_mtc0,
|
||||
rsp_USERDEF_00,
|
||||
rsp_USERDEF_01,
|
||||
rsp_USERDEF_02,
|
||||
rsp_USERDEF_03,
|
||||
rsp_USERDEF_04,
|
||||
rsp_USERDEF_05,
|
||||
rsp_USERDEF_06,
|
||||
rsp_USERDEF_07,
|
||||
rsp_USERDEF_08,
|
||||
rsp_USERDEF_09,
|
||||
rsp_USERDEF_10,
|
||||
rsp_USERDEF_11,
|
||||
rsp_USERDEF_12,
|
||||
rsp_USERDEF_13,
|
||||
rsp_USERDEF_14,
|
||||
rsp_USERDEF_15,
|
||||
rsp_USERDEF_16,
|
||||
rsp_USERDEF_17,
|
||||
rsp_USERDEF_18,
|
||||
rsp_USERDEF_19,
|
||||
rsp_MAX,
|
||||
r5900_INVALID,
|
||||
r5900_lq,
|
||||
r5900_sq,
|
||||
r5900_lqc2,
|
||||
r5900_sqc2,
|
||||
r5900_sync_p,
|
||||
r5900_mult,
|
||||
r5900_mfsa,
|
||||
r5900_mtsa,
|
||||
r5900_mtsab,
|
||||
r5900_mtsah,
|
||||
r5900_madd,
|
||||
r5900_maddu,
|
||||
r5900_plzcw,
|
||||
r5900_mfhi1,
|
||||
r5900_mthi1,
|
||||
r5900_mflo1,
|
||||
r5900_mtlo1,
|
||||
r5900_mult1,
|
||||
r5900_multu1,
|
||||
r5900_div1,
|
||||
r5900_divu1,
|
||||
r5900_madd1,
|
||||
r5900_maddu1,
|
||||
r5900_pmfhl,
|
||||
r5900_pmthl,
|
||||
r5900_psllh,
|
||||
r5900_psrlh,
|
||||
r5900_psrah,
|
||||
r5900_psllw,
|
||||
r5900_psrlw,
|
||||
r5900_psraw,
|
||||
r5900_paddw,
|
||||
r5900_psubw,
|
||||
r5900_pcgtw,
|
||||
r5900_pmaxw,
|
||||
r5900_paddh,
|
||||
r5900_psubh,
|
||||
r5900_pcgth,
|
||||
r5900_pmaxh,
|
||||
r5900_paddb,
|
||||
r5900_psubb,
|
||||
r5900_pcgtb,
|
||||
r5900_paddsw,
|
||||
r5900_psubsw,
|
||||
r5900_pextlw,
|
||||
r5900_ppacw,
|
||||
r5900_paddsh,
|
||||
r5900_psubsh,
|
||||
r5900_pextlh,
|
||||
r5900_ppach,
|
||||
r5900_paddsb,
|
||||
r5900_psubsb,
|
||||
r5900_pextlb,
|
||||
r5900_ppacb,
|
||||
r5900_pext5,
|
||||
r5900_ppac5,
|
||||
r5900_pabsw,
|
||||
r5900_pceqw,
|
||||
r5900_pminw,
|
||||
r5900_padsbh,
|
||||
r5900_pabsh,
|
||||
r5900_pceqh,
|
||||
r5900_pminh,
|
||||
r5900_pceqb,
|
||||
r5900_padduw,
|
||||
r5900_psubuw,
|
||||
r5900_pextuw,
|
||||
r5900_padduh,
|
||||
r5900_psubuh,
|
||||
r5900_pextuh,
|
||||
r5900_paddub,
|
||||
r5900_psubub,
|
||||
r5900_pextub,
|
||||
r5900_qfsrv,
|
||||
r5900_pmaddw,
|
||||
r5900_psllvw,
|
||||
r5900_psrlvw,
|
||||
r5900_pmsubw,
|
||||
r5900_pmfhi,
|
||||
r5900_pmflo,
|
||||
r5900_pinth,
|
||||
r5900_pmultw,
|
||||
r5900_pdivw,
|
||||
r5900_pcpyld,
|
||||
r5900_pmaddh,
|
||||
r5900_phmadh,
|
||||
r5900_pand,
|
||||
r5900_pxor,
|
||||
r5900_pmsubh,
|
||||
r5900_phmsbh,
|
||||
r5900_pexeh,
|
||||
r5900_prevh,
|
||||
r5900_pmulth,
|
||||
r5900_pdivbw,
|
||||
r5900_pexew,
|
||||
r5900_prot3w,
|
||||
r5900_pmadduw,
|
||||
r5900_psravw,
|
||||
r5900_pmthi,
|
||||
r5900_pmtlo,
|
||||
r5900_pinteh,
|
||||
r5900_pmultuw,
|
||||
r5900_pdivuw,
|
||||
r5900_pcpyud,
|
||||
r5900_por,
|
||||
r5900_pnor,
|
||||
r5900_pexch,
|
||||
r5900_pcpyh,
|
||||
r5900_pexcw,
|
||||
r5900_ei,
|
||||
r5900_di,
|
||||
r5900_c1__sqrt_s,
|
||||
r5900_rsqrt_s,
|
||||
r5900_adda_s,
|
||||
r5900_suba_s,
|
||||
r5900_mula_s,
|
||||
r5900_madd_s,
|
||||
r5900_msub_s,
|
||||
r5900_madda_s,
|
||||
r5900_msuba_s,
|
||||
r5900_max_s,
|
||||
r5900_min_s,
|
||||
r5900_trunc_w_s,
|
||||
r5900_c_lt_s,
|
||||
r5900_c_le_s,
|
||||
r5900_qmfc2,
|
||||
r5900_cfc2,
|
||||
r5900_qmtc2,
|
||||
r5900_ctc2,
|
||||
r5900_bc2f,
|
||||
r5900_bc2t,
|
||||
r5900_bc2fl,
|
||||
r5900_bc2tl,
|
||||
r5900_vaddx,
|
||||
r5900_vaddy,
|
||||
r5900_vaddz,
|
||||
r5900_vaddw,
|
||||
r5900_vsubx,
|
||||
r5900_vsuby,
|
||||
r5900_vsubz,
|
||||
r5900_vsubw,
|
||||
r5900_vmaddx,
|
||||
r5900_vmaddy,
|
||||
r5900_vmaddz,
|
||||
r5900_vmaddw,
|
||||
r5900_vmsubx,
|
||||
r5900_vmsuby,
|
||||
r5900_vmsubz,
|
||||
r5900_vmsubw,
|
||||
r5900_vmaxx,
|
||||
r5900_vmaxy,
|
||||
r5900_vmaxz,
|
||||
r5900_vmaxw,
|
||||
r5900_vminix,
|
||||
r5900_vminiy,
|
||||
r5900_vminiz,
|
||||
r5900_vminiw,
|
||||
r5900_vmulx,
|
||||
r5900_vmuly,
|
||||
r5900_vmulz,
|
||||
r5900_vmulw,
|
||||
r5900_vmulq,
|
||||
r5900_vmaxi,
|
||||
r5900_vmuli,
|
||||
r5900_vminii,
|
||||
r5900_vaddq,
|
||||
r5900_vmaddq,
|
||||
r5900_vaddi,
|
||||
r5900_vmaddi,
|
||||
r5900_vsubq,
|
||||
r5900_vmsubq,
|
||||
r5900_vsubi,
|
||||
r5900_vmsubi,
|
||||
r5900_vadd,
|
||||
r5900_vmadd,
|
||||
r5900_vmul,
|
||||
r5900_vmax,
|
||||
r5900_vsub,
|
||||
r5900_vmsub,
|
||||
r5900_vopmsub,
|
||||
r5900_vmini,
|
||||
r5900_viadd,
|
||||
r5900_visub,
|
||||
r5900_viaddi,
|
||||
r5900_viand,
|
||||
r5900_vior,
|
||||
r5900_vcallms,
|
||||
r5900_vcallmsr,
|
||||
r5900_vaddax,
|
||||
r5900_vadday,
|
||||
r5900_vaddaz,
|
||||
r5900_vaddaw,
|
||||
r5900_vsubax,
|
||||
r5900_vsubay,
|
||||
r5900_vsubaz,
|
||||
r5900_vsubaw,
|
||||
r5900_vmaddax,
|
||||
r5900_vmadday,
|
||||
r5900_vmaddaz,
|
||||
r5900_vmaddaw,
|
||||
r5900_vmsubax,
|
||||
r5900_vmsubay,
|
||||
r5900_vmsubaz,
|
||||
r5900_vmsubaw,
|
||||
r5900_vitof0,
|
||||
r5900_vitof4,
|
||||
r5900_vitof12,
|
||||
r5900_vitof15,
|
||||
r5900_vftoi0,
|
||||
r5900_vftoi4,
|
||||
r5900_vftoi12,
|
||||
r5900_vftoi15,
|
||||
r5900_vmulax,
|
||||
r5900_vmulay,
|
||||
r5900_vmulaz,
|
||||
r5900_vmulaw,
|
||||
r5900_vmulaq,
|
||||
r5900_vabs,
|
||||
r5900_vmulai,
|
||||
r5900_vclipw,
|
||||
r5900_vaddaq,
|
||||
r5900_vmaddaq,
|
||||
r5900_vaddai,
|
||||
r5900_vmaddai,
|
||||
r5900_vsubaq,
|
||||
r5900_vmsubaq,
|
||||
r5900_vsubai,
|
||||
r5900_vmsubai,
|
||||
r5900_vadda,
|
||||
r5900_vmadda,
|
||||
r5900_vmula,
|
||||
r5900_vsuba,
|
||||
r5900_vmsuba,
|
||||
r5900_vopmula,
|
||||
r5900_vnop,
|
||||
r5900_vmove,
|
||||
r5900_vmr32,
|
||||
r5900_vlqi,
|
||||
r5900_vsqi,
|
||||
r5900_vlqd,
|
||||
r5900_vsqd,
|
||||
r5900_vdiv,
|
||||
r5900_vsqrt,
|
||||
r5900_vrsqrt,
|
||||
r5900_vwaitq,
|
||||
r5900_vmtir,
|
||||
r5900_vmfir,
|
||||
r5900_vilwr,
|
||||
r5900_viswr,
|
||||
r5900_vrnext,
|
||||
r5900_vrget,
|
||||
r5900_vrinit,
|
||||
r5900_vrxor,
|
||||
r5900_USERDEF_00,
|
||||
r5900_USERDEF_01,
|
||||
r5900_USERDEF_02,
|
||||
r5900_USERDEF_03,
|
||||
r5900_USERDEF_04,
|
||||
r5900_USERDEF_05,
|
||||
r5900_USERDEF_06,
|
||||
r5900_USERDEF_07,
|
||||
r5900_USERDEF_08,
|
||||
r5900_USERDEF_09,
|
||||
r5900_USERDEF_10,
|
||||
r5900_USERDEF_11,
|
||||
r5900_USERDEF_12,
|
||||
r5900_USERDEF_13,
|
||||
r5900_USERDEF_14,
|
||||
r5900_USERDEF_15,
|
||||
r5900_USERDEF_16,
|
||||
r5900_USERDEF_17,
|
||||
r5900_USERDEF_18,
|
||||
r5900_USERDEF_19,
|
||||
r5900_MAX,
|
||||
ALL_MAX = r5900_MAX,
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,21 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, ...) \
|
||||
prefix##_##name,
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID_ALTNAME(prefix, caseBits, name, altname, ...) \
|
||||
RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, __VA_ARGS__)
|
||||
|
||||
enum class UniqueId {
|
||||
#include "instructions/instr_id/RabbitizerInstrId_cpu.inc"
|
||||
|
||||
#include "instructions/instr_id/RabbitizerInstrId_rsp.inc"
|
||||
|
||||
#include "instructions/instr_id/RabbitizerInstrId_r5900.inc"
|
||||
|
||||
ALL_MAX = RABBITIZER_DEF_INSTR_ID(r5900, , MAX, )
|
||||
};
|
||||
|
||||
#undef RABBITIZER_DEF_INSTR_ID
|
||||
#undef RABBITIZER_DEF_INSTR_ID_ALTNAME
|
@ -1,8 +1,11 @@
|
||||
#ifndef Abi_enum_table_h_automatic
|
||||
#define Abi_enum_table_h_automatic
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef Abi_enum_table_h_automatic
|
||||
#define Abi_enum_table_h_automatic
|
||||
|
||||
typedef enum RabbitizerAbi {
|
||||
RABBITIZER_ABI_NUMERIC,
|
||||
RABBITIZER_ABI_O32,
|
||||
|
@ -1,3 +1,5 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RABBITIZER_DEF_ABI(name) RABBITIZER_ABI_##name
|
||||
|
||||
|
20
include/instructions/AccessType_enum.table.h
Normal file
20
include/instructions/AccessType_enum.table.h
Normal file
@ -0,0 +1,20 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef AccessType_enum_table_h_automatic
|
||||
#define AccessType_enum_table_h_automatic
|
||||
|
||||
typedef enum RabbitizerAccessType {
|
||||
RAB_ACCESSTYPE_INVALID,
|
||||
RAB_ACCESSTYPE_BYTE,
|
||||
RAB_ACCESSTYPE_SHORT,
|
||||
RAB_ACCESSTYPE_WORD,
|
||||
RAB_ACCESSTYPE_DOUBLEWORD,
|
||||
RAB_ACCESSTYPE_FLOAT,
|
||||
RAB_ACCESSTYPE_DOUBLEFLOAT,
|
||||
RAB_ACCESSTYPE_MAX,
|
||||
} RabbitizerAccessType;
|
||||
|
||||
#endif
|
12
include/instructions/AccessType_enum.table.template
Normal file
12
include/instructions/AccessType_enum.table.template
Normal file
@ -0,0 +1,12 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RAB_DEF_ACCESSTYPE(name) RAB_ACCESSTYPE_##name,
|
||||
|
||||
typedef enum RabbitizerAccessType {
|
||||
#include "AccessType.inc"
|
||||
|
||||
RAB_DEF_ACCESSTYPE(MAX)
|
||||
} RabbitizerAccessType;
|
||||
|
||||
#undef RAB_DEF_ACCESSTYPE
|
16
include/instructions/InstrCategory_enum.table.h
Normal file
16
include/instructions/InstrCategory_enum.table.h
Normal file
@ -0,0 +1,16 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef InstrCategory_enum_table_h_automatic
|
||||
#define InstrCategory_enum_table_h_automatic
|
||||
|
||||
typedef enum RabbitizerInstrCategory {
|
||||
RABBITIZER_INSTRCAT_CPU,
|
||||
RABBITIZER_INSTRCAT_RSP,
|
||||
RABBITIZER_INSTRCAT_R5900,
|
||||
RABBITIZER_INSTRCAT_MAX,
|
||||
} RabbitizerInstrCategory;
|
||||
|
||||
#endif
|
12
include/instructions/InstrCategory_enum.table.template
Normal file
12
include/instructions/InstrCategory_enum.table.template
Normal file
@ -0,0 +1,12 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_CATEGORY(name) RABBITIZER_INSTRCAT_##name
|
||||
|
||||
typedef enum RabbitizerInstrCategory {
|
||||
#include "InstrCategory.inc"
|
||||
|
||||
RABBITIZER_DEF_INSTR_CATEGORY(MAX),
|
||||
} RabbitizerInstrCategory;
|
||||
|
||||
#undef RABBITIZER_DEF_INSTR_CATEGORY
|
693
include/instructions/InstrId_enum.table.h
Normal file
693
include/instructions/InstrId_enum.table.h
Normal file
@ -0,0 +1,693 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef InstrId_enum_table_h_automatic
|
||||
#define InstrId_enum_table_h_automatic
|
||||
|
||||
typedef enum RabbitizerInstrId {
|
||||
RABBITIZER_INSTR_ID_cpu_INVALID,
|
||||
RABBITIZER_INSTR_ID_cpu_j,
|
||||
RABBITIZER_INSTR_ID_cpu_jal,
|
||||
RABBITIZER_INSTR_ID_cpu_beq,
|
||||
RABBITIZER_INSTR_ID_cpu_bne,
|
||||
RABBITIZER_INSTR_ID_cpu_beql,
|
||||
RABBITIZER_INSTR_ID_cpu_bnel,
|
||||
RABBITIZER_INSTR_ID_cpu_blez,
|
||||
RABBITIZER_INSTR_ID_cpu_blezl,
|
||||
RABBITIZER_INSTR_ID_cpu_bgtz,
|
||||
RABBITIZER_INSTR_ID_cpu_bgtzl,
|
||||
RABBITIZER_INSTR_ID_cpu_addi,
|
||||
RABBITIZER_INSTR_ID_cpu_addiu,
|
||||
RABBITIZER_INSTR_ID_cpu_slti,
|
||||
RABBITIZER_INSTR_ID_cpu_sltiu,
|
||||
RABBITIZER_INSTR_ID_cpu_andi,
|
||||
RABBITIZER_INSTR_ID_cpu_ori,
|
||||
RABBITIZER_INSTR_ID_cpu_xori,
|
||||
RABBITIZER_INSTR_ID_cpu_daddi,
|
||||
RABBITIZER_INSTR_ID_cpu_daddiu,
|
||||
RABBITIZER_INSTR_ID_cpu_lui,
|
||||
RABBITIZER_INSTR_ID_cpu_ldl,
|
||||
RABBITIZER_INSTR_ID_cpu_ldr,
|
||||
RABBITIZER_INSTR_ID_cpu_lb,
|
||||
RABBITIZER_INSTR_ID_cpu_lh,
|
||||
RABBITIZER_INSTR_ID_cpu_lwl,
|
||||
RABBITIZER_INSTR_ID_cpu_lw,
|
||||
RABBITIZER_INSTR_ID_cpu_lbu,
|
||||
RABBITIZER_INSTR_ID_cpu_lhu,
|
||||
RABBITIZER_INSTR_ID_cpu_lwr,
|
||||
RABBITIZER_INSTR_ID_cpu_lwu,
|
||||
RABBITIZER_INSTR_ID_cpu_sb,
|
||||
RABBITIZER_INSTR_ID_cpu_sh,
|
||||
RABBITIZER_INSTR_ID_cpu_swl,
|
||||
RABBITIZER_INSTR_ID_cpu_sw,
|
||||
RABBITIZER_INSTR_ID_cpu_sdl,
|
||||
RABBITIZER_INSTR_ID_cpu_sdr,
|
||||
RABBITIZER_INSTR_ID_cpu_swr,
|
||||
RABBITIZER_INSTR_ID_cpu_ll,
|
||||
RABBITIZER_INSTR_ID_cpu_pref,
|
||||
RABBITIZER_INSTR_ID_cpu_lld,
|
||||
RABBITIZER_INSTR_ID_cpu_ld,
|
||||
RABBITIZER_INSTR_ID_cpu_sc,
|
||||
RABBITIZER_INSTR_ID_cpu_scd,
|
||||
RABBITIZER_INSTR_ID_cpu_sd,
|
||||
RABBITIZER_INSTR_ID_cpu_cache,
|
||||
RABBITIZER_INSTR_ID_cpu_lwc1,
|
||||
RABBITIZER_INSTR_ID_cpu_ldc1,
|
||||
RABBITIZER_INSTR_ID_cpu_swc1,
|
||||
RABBITIZER_INSTR_ID_cpu_sdc1,
|
||||
RABBITIZER_INSTR_ID_cpu_lwc2,
|
||||
RABBITIZER_INSTR_ID_cpu_ldc2,
|
||||
RABBITIZER_INSTR_ID_cpu_swc2,
|
||||
RABBITIZER_INSTR_ID_cpu_sdc2,
|
||||
RABBITIZER_INSTR_ID_cpu_b,
|
||||
RABBITIZER_INSTR_ID_cpu_beqz,
|
||||
RABBITIZER_INSTR_ID_cpu_bnez,
|
||||
RABBITIZER_INSTR_ID_cpu_sll,
|
||||
RABBITIZER_INSTR_ID_cpu_srl,
|
||||
RABBITIZER_INSTR_ID_cpu_sra,
|
||||
RABBITIZER_INSTR_ID_cpu_dsll,
|
||||
RABBITIZER_INSTR_ID_cpu_dsrl,
|
||||
RABBITIZER_INSTR_ID_cpu_dsra,
|
||||
RABBITIZER_INSTR_ID_cpu_dsll32,
|
||||
RABBITIZER_INSTR_ID_cpu_dsrl32,
|
||||
RABBITIZER_INSTR_ID_cpu_dsra32,
|
||||
RABBITIZER_INSTR_ID_cpu_dsllv,
|
||||
RABBITIZER_INSTR_ID_cpu_dsrlv,
|
||||
RABBITIZER_INSTR_ID_cpu_dsrav,
|
||||
RABBITIZER_INSTR_ID_cpu_sllv,
|
||||
RABBITIZER_INSTR_ID_cpu_srlv,
|
||||
RABBITIZER_INSTR_ID_cpu_srav,
|
||||
RABBITIZER_INSTR_ID_cpu_mthi,
|
||||
RABBITIZER_INSTR_ID_cpu_mtlo,
|
||||
RABBITIZER_INSTR_ID_cpu_jr,
|
||||
RABBITIZER_INSTR_ID_cpu_jalr,
|
||||
RABBITIZER_INSTR_ID_cpu_jalr_rd,
|
||||
RABBITIZER_INSTR_ID_cpu_mfhi,
|
||||
RABBITIZER_INSTR_ID_cpu_mflo,
|
||||
RABBITIZER_INSTR_ID_cpu_movz,
|
||||
RABBITIZER_INSTR_ID_cpu_movn,
|
||||
RABBITIZER_INSTR_ID_cpu_div,
|
||||
RABBITIZER_INSTR_ID_cpu_divu,
|
||||
RABBITIZER_INSTR_ID_cpu_sn64_div,
|
||||
RABBITIZER_INSTR_ID_cpu_sn64_divu,
|
||||
RABBITIZER_INSTR_ID_cpu_ddiv,
|
||||
RABBITIZER_INSTR_ID_cpu_ddivu,
|
||||
RABBITIZER_INSTR_ID_cpu_add,
|
||||
RABBITIZER_INSTR_ID_cpu_addu,
|
||||
RABBITIZER_INSTR_ID_cpu_sub,
|
||||
RABBITIZER_INSTR_ID_cpu_subu,
|
||||
RABBITIZER_INSTR_ID_cpu_and,
|
||||
RABBITIZER_INSTR_ID_cpu_or,
|
||||
RABBITIZER_INSTR_ID_cpu_xor,
|
||||
RABBITIZER_INSTR_ID_cpu_nor,
|
||||
RABBITIZER_INSTR_ID_cpu_slt,
|
||||
RABBITIZER_INSTR_ID_cpu_sltu,
|
||||
RABBITIZER_INSTR_ID_cpu_dadd,
|
||||
RABBITIZER_INSTR_ID_cpu_daddu,
|
||||
RABBITIZER_INSTR_ID_cpu_dsub,
|
||||
RABBITIZER_INSTR_ID_cpu_dsubu,
|
||||
RABBITIZER_INSTR_ID_cpu_syscall,
|
||||
RABBITIZER_INSTR_ID_cpu_break,
|
||||
RABBITIZER_INSTR_ID_cpu_sync,
|
||||
RABBITIZER_INSTR_ID_cpu_mult,
|
||||
RABBITIZER_INSTR_ID_cpu_multu,
|
||||
RABBITIZER_INSTR_ID_cpu_dmult,
|
||||
RABBITIZER_INSTR_ID_cpu_dmultu,
|
||||
RABBITIZER_INSTR_ID_cpu_tge,
|
||||
RABBITIZER_INSTR_ID_cpu_tgeu,
|
||||
RABBITIZER_INSTR_ID_cpu_tlt,
|
||||
RABBITIZER_INSTR_ID_cpu_tltu,
|
||||
RABBITIZER_INSTR_ID_cpu_teq,
|
||||
RABBITIZER_INSTR_ID_cpu_tne,
|
||||
RABBITIZER_INSTR_ID_cpu_nop,
|
||||
RABBITIZER_INSTR_ID_cpu_move,
|
||||
RABBITIZER_INSTR_ID_cpu_not,
|
||||
RABBITIZER_INSTR_ID_cpu_negu,
|
||||
RABBITIZER_INSTR_ID_cpu_bltz,
|
||||
RABBITIZER_INSTR_ID_cpu_bgez,
|
||||
RABBITIZER_INSTR_ID_cpu_bltzl,
|
||||
RABBITIZER_INSTR_ID_cpu_bgezl,
|
||||
RABBITIZER_INSTR_ID_cpu_tgei,
|
||||
RABBITIZER_INSTR_ID_cpu_tgeiu,
|
||||
RABBITIZER_INSTR_ID_cpu_tlti,
|
||||
RABBITIZER_INSTR_ID_cpu_tltiu,
|
||||
RABBITIZER_INSTR_ID_cpu_teqi,
|
||||
RABBITIZER_INSTR_ID_cpu_tnei,
|
||||
RABBITIZER_INSTR_ID_cpu_bltzal,
|
||||
RABBITIZER_INSTR_ID_cpu_bgezal,
|
||||
RABBITIZER_INSTR_ID_cpu_bltzall,
|
||||
RABBITIZER_INSTR_ID_cpu_bgezall,
|
||||
RABBITIZER_INSTR_ID_cpu_bal,
|
||||
RABBITIZER_INSTR_ID_cpu_mfc0,
|
||||
RABBITIZER_INSTR_ID_cpu_dmfc0,
|
||||
RABBITIZER_INSTR_ID_cpu_cfc0,
|
||||
RABBITIZER_INSTR_ID_cpu_mtc0,
|
||||
RABBITIZER_INSTR_ID_cpu_dmtc0,
|
||||
RABBITIZER_INSTR_ID_cpu_ctc0,
|
||||
RABBITIZER_INSTR_ID_cpu_bc0f,
|
||||
RABBITIZER_INSTR_ID_cpu_bc0t,
|
||||
RABBITIZER_INSTR_ID_cpu_bc0fl,
|
||||
RABBITIZER_INSTR_ID_cpu_bc0tl,
|
||||
RABBITIZER_INSTR_ID_cpu_tlbr,
|
||||
RABBITIZER_INSTR_ID_cpu_tlbwi,
|
||||
RABBITIZER_INSTR_ID_cpu_tlbwr,
|
||||
RABBITIZER_INSTR_ID_cpu_tlbp,
|
||||
RABBITIZER_INSTR_ID_cpu_eret,
|
||||
RABBITIZER_INSTR_ID_cpu_mfc1,
|
||||
RABBITIZER_INSTR_ID_cpu_dmfc1,
|
||||
RABBITIZER_INSTR_ID_cpu_mtc1,
|
||||
RABBITIZER_INSTR_ID_cpu_dmtc1,
|
||||
RABBITIZER_INSTR_ID_cpu_cfc1,
|
||||
RABBITIZER_INSTR_ID_cpu_ctc1,
|
||||
RABBITIZER_INSTR_ID_cpu_bc1f,
|
||||
RABBITIZER_INSTR_ID_cpu_bc1t,
|
||||
RABBITIZER_INSTR_ID_cpu_bc1fl,
|
||||
RABBITIZER_INSTR_ID_cpu_bc1tl,
|
||||
RABBITIZER_INSTR_ID_cpu_add_s,
|
||||
RABBITIZER_INSTR_ID_cpu_sub_s,
|
||||
RABBITIZER_INSTR_ID_cpu_mul_s,
|
||||
RABBITIZER_INSTR_ID_cpu_div_s,
|
||||
RABBITIZER_INSTR_ID_cpu_sqrt_s,
|
||||
RABBITIZER_INSTR_ID_cpu_abs_s,
|
||||
RABBITIZER_INSTR_ID_cpu_mov_s,
|
||||
RABBITIZER_INSTR_ID_cpu_neg_s,
|
||||
RABBITIZER_INSTR_ID_cpu_round_l_s,
|
||||
RABBITIZER_INSTR_ID_cpu_trunc_l_s,
|
||||
RABBITIZER_INSTR_ID_cpu_ceil_l_s,
|
||||
RABBITIZER_INSTR_ID_cpu_floor_l_s,
|
||||
RABBITIZER_INSTR_ID_cpu_round_w_s,
|
||||
RABBITIZER_INSTR_ID_cpu_trunc_w_s,
|
||||
RABBITIZER_INSTR_ID_cpu_ceil_w_s,
|
||||
RABBITIZER_INSTR_ID_cpu_floor_w_s,
|
||||
RABBITIZER_INSTR_ID_cpu_cvt_d_s,
|
||||
RABBITIZER_INSTR_ID_cpu_cvt_w_s,
|
||||
RABBITIZER_INSTR_ID_cpu_cvt_l_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_f_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_un_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_eq_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ueq_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_olt_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ult_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ole_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ule_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_sf_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ngle_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_seq_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ngl_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_lt_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_nge_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_le_s,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ngt_s,
|
||||
RABBITIZER_INSTR_ID_cpu_add_d,
|
||||
RABBITIZER_INSTR_ID_cpu_sub_d,
|
||||
RABBITIZER_INSTR_ID_cpu_mul_d,
|
||||
RABBITIZER_INSTR_ID_cpu_div_d,
|
||||
RABBITIZER_INSTR_ID_cpu_sqrt_d,
|
||||
RABBITIZER_INSTR_ID_cpu_abs_d,
|
||||
RABBITIZER_INSTR_ID_cpu_mov_d,
|
||||
RABBITIZER_INSTR_ID_cpu_neg_d,
|
||||
RABBITIZER_INSTR_ID_cpu_round_l_d,
|
||||
RABBITIZER_INSTR_ID_cpu_trunc_l_d,
|
||||
RABBITIZER_INSTR_ID_cpu_ceil_l_d,
|
||||
RABBITIZER_INSTR_ID_cpu_floor_l_d,
|
||||
RABBITIZER_INSTR_ID_cpu_round_w_d,
|
||||
RABBITIZER_INSTR_ID_cpu_trunc_w_d,
|
||||
RABBITIZER_INSTR_ID_cpu_ceil_w_d,
|
||||
RABBITIZER_INSTR_ID_cpu_floor_w_d,
|
||||
RABBITIZER_INSTR_ID_cpu_cvt_s_d,
|
||||
RABBITIZER_INSTR_ID_cpu_cvt_w_d,
|
||||
RABBITIZER_INSTR_ID_cpu_cvt_l_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_f_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_un_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_eq_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ueq_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_olt_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ult_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ole_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ule_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_df_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ngle_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_deq_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ngl_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_lt_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_nge_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_le_d,
|
||||
RABBITIZER_INSTR_ID_cpu_c_ngt_d,
|
||||
RABBITIZER_INSTR_ID_cpu_cvt_s_w,
|
||||
RABBITIZER_INSTR_ID_cpu_cvt_d_w,
|
||||
RABBITIZER_INSTR_ID_cpu_cvt_s_l,
|
||||
RABBITIZER_INSTR_ID_cpu_cvt_d_l,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_00,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_01,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_02,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_03,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_04,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_05,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_06,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_07,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_08,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_09,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_10,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_11,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_12,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_13,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_14,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_15,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_16,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_17,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_18,
|
||||
RABBITIZER_INSTR_ID_cpu_USERDEF_19,
|
||||
RABBITIZER_INSTR_ID_cpu_MAX,
|
||||
RABBITIZER_INSTR_ID_rsp_INVALID,
|
||||
RABBITIZER_INSTR_ID_rsp_mfc2,
|
||||
RABBITIZER_INSTR_ID_rsp_mtc2,
|
||||
RABBITIZER_INSTR_ID_rsp_cfc2,
|
||||
RABBITIZER_INSTR_ID_rsp_ctc2,
|
||||
RABBITIZER_INSTR_ID_rsp_vmulf,
|
||||
RABBITIZER_INSTR_ID_rsp_vmulu,
|
||||
RABBITIZER_INSTR_ID_rsp_vrndp,
|
||||
RABBITIZER_INSTR_ID_rsp_vmulq,
|
||||
RABBITIZER_INSTR_ID_rsp_vmudl,
|
||||
RABBITIZER_INSTR_ID_rsp_vmudm,
|
||||
RABBITIZER_INSTR_ID_rsp_vmudn,
|
||||
RABBITIZER_INSTR_ID_rsp_vmudh,
|
||||
RABBITIZER_INSTR_ID_rsp_vmacf,
|
||||
RABBITIZER_INSTR_ID_rsp_vmacu,
|
||||
RABBITIZER_INSTR_ID_rsp_vrndn,
|
||||
RABBITIZER_INSTR_ID_rsp_vmacq,
|
||||
RABBITIZER_INSTR_ID_rsp_vmadl,
|
||||
RABBITIZER_INSTR_ID_rsp_vmadm,
|
||||
RABBITIZER_INSTR_ID_rsp_vmadn,
|
||||
RABBITIZER_INSTR_ID_rsp_vmadh,
|
||||
RABBITIZER_INSTR_ID_rsp_vadd,
|
||||
RABBITIZER_INSTR_ID_rsp_vsub,
|
||||
RABBITIZER_INSTR_ID_rsp_vabs,
|
||||
RABBITIZER_INSTR_ID_rsp_vaddc,
|
||||
RABBITIZER_INSTR_ID_rsp_vsubc,
|
||||
RABBITIZER_INSTR_ID_rsp_vsar,
|
||||
RABBITIZER_INSTR_ID_rsp_vand,
|
||||
RABBITIZER_INSTR_ID_rsp_vnand,
|
||||
RABBITIZER_INSTR_ID_rsp_vor,
|
||||
RABBITIZER_INSTR_ID_rsp_vnor,
|
||||
RABBITIZER_INSTR_ID_rsp_vxor,
|
||||
RABBITIZER_INSTR_ID_rsp_vnxor,
|
||||
RABBITIZER_INSTR_ID_rsp_vlt,
|
||||
RABBITIZER_INSTR_ID_rsp_veq,
|
||||
RABBITIZER_INSTR_ID_rsp_vne,
|
||||
RABBITIZER_INSTR_ID_rsp_vge,
|
||||
RABBITIZER_INSTR_ID_rsp_vcl,
|
||||
RABBITIZER_INSTR_ID_rsp_vch,
|
||||
RABBITIZER_INSTR_ID_rsp_vcr,
|
||||
RABBITIZER_INSTR_ID_rsp_vmrg,
|
||||
RABBITIZER_INSTR_ID_rsp_vrcp,
|
||||
RABBITIZER_INSTR_ID_rsp_vrcpl,
|
||||
RABBITIZER_INSTR_ID_rsp_vrcph,
|
||||
RABBITIZER_INSTR_ID_rsp_vmov,
|
||||
RABBITIZER_INSTR_ID_rsp_vrsq,
|
||||
RABBITIZER_INSTR_ID_rsp_vrsql,
|
||||
RABBITIZER_INSTR_ID_rsp_vrsqh,
|
||||
RABBITIZER_INSTR_ID_rsp_vnop,
|
||||
RABBITIZER_INSTR_ID_rsp_lbv,
|
||||
RABBITIZER_INSTR_ID_rsp_lsv,
|
||||
RABBITIZER_INSTR_ID_rsp_llv,
|
||||
RABBITIZER_INSTR_ID_rsp_ldv,
|
||||
RABBITIZER_INSTR_ID_rsp_lqv,
|
||||
RABBITIZER_INSTR_ID_rsp_lrv,
|
||||
RABBITIZER_INSTR_ID_rsp_lpv,
|
||||
RABBITIZER_INSTR_ID_rsp_luv,
|
||||
RABBITIZER_INSTR_ID_rsp_lhv,
|
||||
RABBITIZER_INSTR_ID_rsp_lfv,
|
||||
RABBITIZER_INSTR_ID_rsp_ltv,
|
||||
RABBITIZER_INSTR_ID_rsp_sbv,
|
||||
RABBITIZER_INSTR_ID_rsp_ssv,
|
||||
RABBITIZER_INSTR_ID_rsp_slv,
|
||||
RABBITIZER_INSTR_ID_rsp_sdv,
|
||||
RABBITIZER_INSTR_ID_rsp_sqv,
|
||||
RABBITIZER_INSTR_ID_rsp_srv,
|
||||
RABBITIZER_INSTR_ID_rsp_spv,
|
||||
RABBITIZER_INSTR_ID_rsp_suv,
|
||||
RABBITIZER_INSTR_ID_rsp_shv,
|
||||
RABBITIZER_INSTR_ID_rsp_sfv,
|
||||
RABBITIZER_INSTR_ID_rsp_stv,
|
||||
RABBITIZER_INSTR_ID_rsp_swv,
|
||||
RABBITIZER_INSTR_ID_rsp_j,
|
||||
RABBITIZER_INSTR_ID_rsp_jal,
|
||||
RABBITIZER_INSTR_ID_rsp_beq,
|
||||
RABBITIZER_INSTR_ID_rsp_bne,
|
||||
RABBITIZER_INSTR_ID_rsp_blez,
|
||||
RABBITIZER_INSTR_ID_rsp_bgtz,
|
||||
RABBITIZER_INSTR_ID_rsp_addi,
|
||||
RABBITIZER_INSTR_ID_rsp_addiu,
|
||||
RABBITIZER_INSTR_ID_rsp_slti,
|
||||
RABBITIZER_INSTR_ID_rsp_sltiu,
|
||||
RABBITIZER_INSTR_ID_rsp_andi,
|
||||
RABBITIZER_INSTR_ID_rsp_ori,
|
||||
RABBITIZER_INSTR_ID_rsp_xori,
|
||||
RABBITIZER_INSTR_ID_rsp_lui,
|
||||
RABBITIZER_INSTR_ID_rsp_lb,
|
||||
RABBITIZER_INSTR_ID_rsp_lh,
|
||||
RABBITIZER_INSTR_ID_rsp_lw,
|
||||
RABBITIZER_INSTR_ID_rsp_lbu,
|
||||
RABBITIZER_INSTR_ID_rsp_lhu,
|
||||
RABBITIZER_INSTR_ID_rsp_sb,
|
||||
RABBITIZER_INSTR_ID_rsp_sh,
|
||||
RABBITIZER_INSTR_ID_rsp_sw,
|
||||
RABBITIZER_INSTR_ID_rsp_pref,
|
||||
RABBITIZER_INSTR_ID_rsp_b,
|
||||
RABBITIZER_INSTR_ID_rsp_beqz,
|
||||
RABBITIZER_INSTR_ID_rsp_bnez,
|
||||
RABBITIZER_INSTR_ID_rsp_sll,
|
||||
RABBITIZER_INSTR_ID_rsp_srl,
|
||||
RABBITIZER_INSTR_ID_rsp_sra,
|
||||
RABBITIZER_INSTR_ID_rsp_sllv,
|
||||
RABBITIZER_INSTR_ID_rsp_srlv,
|
||||
RABBITIZER_INSTR_ID_rsp_srav,
|
||||
RABBITIZER_INSTR_ID_rsp_jr,
|
||||
RABBITIZER_INSTR_ID_rsp_jalr,
|
||||
RABBITIZER_INSTR_ID_rsp_jalr_rd,
|
||||
RABBITIZER_INSTR_ID_rsp_movz,
|
||||
RABBITIZER_INSTR_ID_rsp_movn,
|
||||
RABBITIZER_INSTR_ID_rsp_add,
|
||||
RABBITIZER_INSTR_ID_rsp_addu,
|
||||
RABBITIZER_INSTR_ID_rsp_sub,
|
||||
RABBITIZER_INSTR_ID_rsp_subu,
|
||||
RABBITIZER_INSTR_ID_rsp_and,
|
||||
RABBITIZER_INSTR_ID_rsp_or,
|
||||
RABBITIZER_INSTR_ID_rsp_xor,
|
||||
RABBITIZER_INSTR_ID_rsp_nor,
|
||||
RABBITIZER_INSTR_ID_rsp_slt,
|
||||
RABBITIZER_INSTR_ID_rsp_sltu,
|
||||
RABBITIZER_INSTR_ID_rsp_break,
|
||||
RABBITIZER_INSTR_ID_rsp_nop,
|
||||
RABBITIZER_INSTR_ID_rsp_move,
|
||||
RABBITIZER_INSTR_ID_rsp_not,
|
||||
RABBITIZER_INSTR_ID_rsp_negu,
|
||||
RABBITIZER_INSTR_ID_rsp_bltz,
|
||||
RABBITIZER_INSTR_ID_rsp_bgez,
|
||||
RABBITIZER_INSTR_ID_rsp_bltzal,
|
||||
RABBITIZER_INSTR_ID_rsp_bgezal,
|
||||
RABBITIZER_INSTR_ID_rsp_bal,
|
||||
RABBITIZER_INSTR_ID_rsp_mfc0,
|
||||
RABBITIZER_INSTR_ID_rsp_mtc0,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_00,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_01,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_02,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_03,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_04,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_05,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_06,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_07,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_08,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_09,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_10,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_11,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_12,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_13,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_14,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_15,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_16,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_17,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_18,
|
||||
RABBITIZER_INSTR_ID_rsp_USERDEF_19,
|
||||
RABBITIZER_INSTR_ID_rsp_MAX,
|
||||
RABBITIZER_INSTR_ID_r5900_INVALID,
|
||||
RABBITIZER_INSTR_ID_r5900_lq,
|
||||
RABBITIZER_INSTR_ID_r5900_sq,
|
||||
RABBITIZER_INSTR_ID_r5900_lqc2,
|
||||
RABBITIZER_INSTR_ID_r5900_sqc2,
|
||||
RABBITIZER_INSTR_ID_r5900_sync_p,
|
||||
RABBITIZER_INSTR_ID_r5900_mult,
|
||||
RABBITIZER_INSTR_ID_r5900_mfsa,
|
||||
RABBITIZER_INSTR_ID_r5900_mtsa,
|
||||
RABBITIZER_INSTR_ID_r5900_mtsab,
|
||||
RABBITIZER_INSTR_ID_r5900_mtsah,
|
||||
RABBITIZER_INSTR_ID_r5900_madd,
|
||||
RABBITIZER_INSTR_ID_r5900_maddu,
|
||||
RABBITIZER_INSTR_ID_r5900_plzcw,
|
||||
RABBITIZER_INSTR_ID_r5900_mfhi1,
|
||||
RABBITIZER_INSTR_ID_r5900_mthi1,
|
||||
RABBITIZER_INSTR_ID_r5900_mflo1,
|
||||
RABBITIZER_INSTR_ID_r5900_mtlo1,
|
||||
RABBITIZER_INSTR_ID_r5900_mult1,
|
||||
RABBITIZER_INSTR_ID_r5900_multu1,
|
||||
RABBITIZER_INSTR_ID_r5900_div1,
|
||||
RABBITIZER_INSTR_ID_r5900_divu1,
|
||||
RABBITIZER_INSTR_ID_r5900_madd1,
|
||||
RABBITIZER_INSTR_ID_r5900_maddu1,
|
||||
RABBITIZER_INSTR_ID_r5900_pmfhl,
|
||||
RABBITIZER_INSTR_ID_r5900_pmthl,
|
||||
RABBITIZER_INSTR_ID_r5900_psllh,
|
||||
RABBITIZER_INSTR_ID_r5900_psrlh,
|
||||
RABBITIZER_INSTR_ID_r5900_psrah,
|
||||
RABBITIZER_INSTR_ID_r5900_psllw,
|
||||
RABBITIZER_INSTR_ID_r5900_psrlw,
|
||||
RABBITIZER_INSTR_ID_r5900_psraw,
|
||||
RABBITIZER_INSTR_ID_r5900_paddw,
|
||||
RABBITIZER_INSTR_ID_r5900_psubw,
|
||||
RABBITIZER_INSTR_ID_r5900_pcgtw,
|
||||
RABBITIZER_INSTR_ID_r5900_pmaxw,
|
||||
RABBITIZER_INSTR_ID_r5900_paddh,
|
||||
RABBITIZER_INSTR_ID_r5900_psubh,
|
||||
RABBITIZER_INSTR_ID_r5900_pcgth,
|
||||
RABBITIZER_INSTR_ID_r5900_pmaxh,
|
||||
RABBITIZER_INSTR_ID_r5900_paddb,
|
||||
RABBITIZER_INSTR_ID_r5900_psubb,
|
||||
RABBITIZER_INSTR_ID_r5900_pcgtb,
|
||||
RABBITIZER_INSTR_ID_r5900_paddsw,
|
||||
RABBITIZER_INSTR_ID_r5900_psubsw,
|
||||
RABBITIZER_INSTR_ID_r5900_pextlw,
|
||||
RABBITIZER_INSTR_ID_r5900_ppacw,
|
||||
RABBITIZER_INSTR_ID_r5900_paddsh,
|
||||
RABBITIZER_INSTR_ID_r5900_psubsh,
|
||||
RABBITIZER_INSTR_ID_r5900_pextlh,
|
||||
RABBITIZER_INSTR_ID_r5900_ppach,
|
||||
RABBITIZER_INSTR_ID_r5900_paddsb,
|
||||
RABBITIZER_INSTR_ID_r5900_psubsb,
|
||||
RABBITIZER_INSTR_ID_r5900_pextlb,
|
||||
RABBITIZER_INSTR_ID_r5900_ppacb,
|
||||
RABBITIZER_INSTR_ID_r5900_pext5,
|
||||
RABBITIZER_INSTR_ID_r5900_ppac5,
|
||||
RABBITIZER_INSTR_ID_r5900_pabsw,
|
||||
RABBITIZER_INSTR_ID_r5900_pceqw,
|
||||
RABBITIZER_INSTR_ID_r5900_pminw,
|
||||
RABBITIZER_INSTR_ID_r5900_padsbh,
|
||||
RABBITIZER_INSTR_ID_r5900_pabsh,
|
||||
RABBITIZER_INSTR_ID_r5900_pceqh,
|
||||
RABBITIZER_INSTR_ID_r5900_pminh,
|
||||
RABBITIZER_INSTR_ID_r5900_pceqb,
|
||||
RABBITIZER_INSTR_ID_r5900_padduw,
|
||||
RABBITIZER_INSTR_ID_r5900_psubuw,
|
||||
RABBITIZER_INSTR_ID_r5900_pextuw,
|
||||
RABBITIZER_INSTR_ID_r5900_padduh,
|
||||
RABBITIZER_INSTR_ID_r5900_psubuh,
|
||||
RABBITIZER_INSTR_ID_r5900_pextuh,
|
||||
RABBITIZER_INSTR_ID_r5900_paddub,
|
||||
RABBITIZER_INSTR_ID_r5900_psubub,
|
||||
RABBITIZER_INSTR_ID_r5900_pextub,
|
||||
RABBITIZER_INSTR_ID_r5900_qfsrv,
|
||||
RABBITIZER_INSTR_ID_r5900_pmaddw,
|
||||
RABBITIZER_INSTR_ID_r5900_psllvw,
|
||||
RABBITIZER_INSTR_ID_r5900_psrlvw,
|
||||
RABBITIZER_INSTR_ID_r5900_pmsubw,
|
||||
RABBITIZER_INSTR_ID_r5900_pmfhi,
|
||||
RABBITIZER_INSTR_ID_r5900_pmflo,
|
||||
RABBITIZER_INSTR_ID_r5900_pinth,
|
||||
RABBITIZER_INSTR_ID_r5900_pmultw,
|
||||
RABBITIZER_INSTR_ID_r5900_pdivw,
|
||||
RABBITIZER_INSTR_ID_r5900_pcpyld,
|
||||
RABBITIZER_INSTR_ID_r5900_pmaddh,
|
||||
RABBITIZER_INSTR_ID_r5900_phmadh,
|
||||
RABBITIZER_INSTR_ID_r5900_pand,
|
||||
RABBITIZER_INSTR_ID_r5900_pxor,
|
||||
RABBITIZER_INSTR_ID_r5900_pmsubh,
|
||||
RABBITIZER_INSTR_ID_r5900_phmsbh,
|
||||
RABBITIZER_INSTR_ID_r5900_pexeh,
|
||||
RABBITIZER_INSTR_ID_r5900_prevh,
|
||||
RABBITIZER_INSTR_ID_r5900_pmulth,
|
||||
RABBITIZER_INSTR_ID_r5900_pdivbw,
|
||||
RABBITIZER_INSTR_ID_r5900_pexew,
|
||||
RABBITIZER_INSTR_ID_r5900_prot3w,
|
||||
RABBITIZER_INSTR_ID_r5900_pmadduw,
|
||||
RABBITIZER_INSTR_ID_r5900_psravw,
|
||||
RABBITIZER_INSTR_ID_r5900_pmthi,
|
||||
RABBITIZER_INSTR_ID_r5900_pmtlo,
|
||||
RABBITIZER_INSTR_ID_r5900_pinteh,
|
||||
RABBITIZER_INSTR_ID_r5900_pmultuw,
|
||||
RABBITIZER_INSTR_ID_r5900_pdivuw,
|
||||
RABBITIZER_INSTR_ID_r5900_pcpyud,
|
||||
RABBITIZER_INSTR_ID_r5900_por,
|
||||
RABBITIZER_INSTR_ID_r5900_pnor,
|
||||
RABBITIZER_INSTR_ID_r5900_pexch,
|
||||
RABBITIZER_INSTR_ID_r5900_pcpyh,
|
||||
RABBITIZER_INSTR_ID_r5900_pexcw,
|
||||
RABBITIZER_INSTR_ID_r5900_ei,
|
||||
RABBITIZER_INSTR_ID_r5900_di,
|
||||
RABBITIZER_INSTR_ID_r5900_c1__sqrt_s,
|
||||
RABBITIZER_INSTR_ID_r5900_rsqrt_s,
|
||||
RABBITIZER_INSTR_ID_r5900_adda_s,
|
||||
RABBITIZER_INSTR_ID_r5900_suba_s,
|
||||
RABBITIZER_INSTR_ID_r5900_mula_s,
|
||||
RABBITIZER_INSTR_ID_r5900_madd_s,
|
||||
RABBITIZER_INSTR_ID_r5900_msub_s,
|
||||
RABBITIZER_INSTR_ID_r5900_madda_s,
|
||||
RABBITIZER_INSTR_ID_r5900_msuba_s,
|
||||
RABBITIZER_INSTR_ID_r5900_max_s,
|
||||
RABBITIZER_INSTR_ID_r5900_min_s,
|
||||
RABBITIZER_INSTR_ID_r5900_trunc_w_s,
|
||||
RABBITIZER_INSTR_ID_r5900_c_lt_s,
|
||||
RABBITIZER_INSTR_ID_r5900_c_le_s,
|
||||
RABBITIZER_INSTR_ID_r5900_qmfc2,
|
||||
RABBITIZER_INSTR_ID_r5900_cfc2,
|
||||
RABBITIZER_INSTR_ID_r5900_qmtc2,
|
||||
RABBITIZER_INSTR_ID_r5900_ctc2,
|
||||
RABBITIZER_INSTR_ID_r5900_bc2f,
|
||||
RABBITIZER_INSTR_ID_r5900_bc2t,
|
||||
RABBITIZER_INSTR_ID_r5900_bc2fl,
|
||||
RABBITIZER_INSTR_ID_r5900_bc2tl,
|
||||
RABBITIZER_INSTR_ID_r5900_vaddx,
|
||||
RABBITIZER_INSTR_ID_r5900_vaddy,
|
||||
RABBITIZER_INSTR_ID_r5900_vaddz,
|
||||
RABBITIZER_INSTR_ID_r5900_vaddw,
|
||||
RABBITIZER_INSTR_ID_r5900_vsubx,
|
||||
RABBITIZER_INSTR_ID_r5900_vsuby,
|
||||
RABBITIZER_INSTR_ID_r5900_vsubz,
|
||||
RABBITIZER_INSTR_ID_r5900_vsubw,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaddx,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaddy,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaddz,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaddw,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsubx,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsuby,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsubz,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsubw,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaxx,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaxy,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaxz,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaxw,
|
||||
RABBITIZER_INSTR_ID_r5900_vminix,
|
||||
RABBITIZER_INSTR_ID_r5900_vminiy,
|
||||
RABBITIZER_INSTR_ID_r5900_vminiz,
|
||||
RABBITIZER_INSTR_ID_r5900_vminiw,
|
||||
RABBITIZER_INSTR_ID_r5900_vmulx,
|
||||
RABBITIZER_INSTR_ID_r5900_vmuly,
|
||||
RABBITIZER_INSTR_ID_r5900_vmulz,
|
||||
RABBITIZER_INSTR_ID_r5900_vmulw,
|
||||
RABBITIZER_INSTR_ID_r5900_vmulq,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaxi,
|
||||
RABBITIZER_INSTR_ID_r5900_vmuli,
|
||||
RABBITIZER_INSTR_ID_r5900_vminii,
|
||||
RABBITIZER_INSTR_ID_r5900_vaddq,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaddq,
|
||||
RABBITIZER_INSTR_ID_r5900_vaddi,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaddi,
|
||||
RABBITIZER_INSTR_ID_r5900_vsubq,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsubq,
|
||||
RABBITIZER_INSTR_ID_r5900_vsubi,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsubi,
|
||||
RABBITIZER_INSTR_ID_r5900_vadd,
|
||||
RABBITIZER_INSTR_ID_r5900_vmadd,
|
||||
RABBITIZER_INSTR_ID_r5900_vmul,
|
||||
RABBITIZER_INSTR_ID_r5900_vmax,
|
||||
RABBITIZER_INSTR_ID_r5900_vsub,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsub,
|
||||
RABBITIZER_INSTR_ID_r5900_vopmsub,
|
||||
RABBITIZER_INSTR_ID_r5900_vmini,
|
||||
RABBITIZER_INSTR_ID_r5900_viadd,
|
||||
RABBITIZER_INSTR_ID_r5900_visub,
|
||||
RABBITIZER_INSTR_ID_r5900_viaddi,
|
||||
RABBITIZER_INSTR_ID_r5900_viand,
|
||||
RABBITIZER_INSTR_ID_r5900_vior,
|
||||
RABBITIZER_INSTR_ID_r5900_vcallms,
|
||||
RABBITIZER_INSTR_ID_r5900_vcallmsr,
|
||||
RABBITIZER_INSTR_ID_r5900_vaddax,
|
||||
RABBITIZER_INSTR_ID_r5900_vadday,
|
||||
RABBITIZER_INSTR_ID_r5900_vaddaz,
|
||||
RABBITIZER_INSTR_ID_r5900_vaddaw,
|
||||
RABBITIZER_INSTR_ID_r5900_vsubax,
|
||||
RABBITIZER_INSTR_ID_r5900_vsubay,
|
||||
RABBITIZER_INSTR_ID_r5900_vsubaz,
|
||||
RABBITIZER_INSTR_ID_r5900_vsubaw,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaddax,
|
||||
RABBITIZER_INSTR_ID_r5900_vmadday,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaddaz,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaddaw,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsubax,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsubay,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsubaz,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsubaw,
|
||||
RABBITIZER_INSTR_ID_r5900_vitof0,
|
||||
RABBITIZER_INSTR_ID_r5900_vitof4,
|
||||
RABBITIZER_INSTR_ID_r5900_vitof12,
|
||||
RABBITIZER_INSTR_ID_r5900_vitof15,
|
||||
RABBITIZER_INSTR_ID_r5900_vftoi0,
|
||||
RABBITIZER_INSTR_ID_r5900_vftoi4,
|
||||
RABBITIZER_INSTR_ID_r5900_vftoi12,
|
||||
RABBITIZER_INSTR_ID_r5900_vftoi15,
|
||||
RABBITIZER_INSTR_ID_r5900_vmulax,
|
||||
RABBITIZER_INSTR_ID_r5900_vmulay,
|
||||
RABBITIZER_INSTR_ID_r5900_vmulaz,
|
||||
RABBITIZER_INSTR_ID_r5900_vmulaw,
|
||||
RABBITIZER_INSTR_ID_r5900_vmulaq,
|
||||
RABBITIZER_INSTR_ID_r5900_vabs,
|
||||
RABBITIZER_INSTR_ID_r5900_vmulai,
|
||||
RABBITIZER_INSTR_ID_r5900_vclipw,
|
||||
RABBITIZER_INSTR_ID_r5900_vaddaq,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaddaq,
|
||||
RABBITIZER_INSTR_ID_r5900_vaddai,
|
||||
RABBITIZER_INSTR_ID_r5900_vmaddai,
|
||||
RABBITIZER_INSTR_ID_r5900_vsubaq,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsubaq,
|
||||
RABBITIZER_INSTR_ID_r5900_vsubai,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsubai,
|
||||
RABBITIZER_INSTR_ID_r5900_vadda,
|
||||
RABBITIZER_INSTR_ID_r5900_vmadda,
|
||||
RABBITIZER_INSTR_ID_r5900_vmula,
|
||||
RABBITIZER_INSTR_ID_r5900_vsuba,
|
||||
RABBITIZER_INSTR_ID_r5900_vmsuba,
|
||||
RABBITIZER_INSTR_ID_r5900_vopmula,
|
||||
RABBITIZER_INSTR_ID_r5900_vnop,
|
||||
RABBITIZER_INSTR_ID_r5900_vmove,
|
||||
RABBITIZER_INSTR_ID_r5900_vmr32,
|
||||
RABBITIZER_INSTR_ID_r5900_vlqi,
|
||||
RABBITIZER_INSTR_ID_r5900_vsqi,
|
||||
RABBITIZER_INSTR_ID_r5900_vlqd,
|
||||
RABBITIZER_INSTR_ID_r5900_vsqd,
|
||||
RABBITIZER_INSTR_ID_r5900_vdiv,
|
||||
RABBITIZER_INSTR_ID_r5900_vsqrt,
|
||||
RABBITIZER_INSTR_ID_r5900_vrsqrt,
|
||||
RABBITIZER_INSTR_ID_r5900_vwaitq,
|
||||
RABBITIZER_INSTR_ID_r5900_vmtir,
|
||||
RABBITIZER_INSTR_ID_r5900_vmfir,
|
||||
RABBITIZER_INSTR_ID_r5900_vilwr,
|
||||
RABBITIZER_INSTR_ID_r5900_viswr,
|
||||
RABBITIZER_INSTR_ID_r5900_vrnext,
|
||||
RABBITIZER_INSTR_ID_r5900_vrget,
|
||||
RABBITIZER_INSTR_ID_r5900_vrinit,
|
||||
RABBITIZER_INSTR_ID_r5900_vrxor,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_00,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_01,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_02,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_03,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_04,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_05,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_06,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_07,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_08,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_09,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_10,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_11,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_12,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_13,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_14,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_15,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_16,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_17,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_18,
|
||||
RABBITIZER_INSTR_ID_r5900_USERDEF_19,
|
||||
RABBITIZER_INSTR_ID_r5900_MAX,
|
||||
RABBITIZER_INSTR_ID_ALL_MAX = RABBITIZER_INSTR_ID_r5900_MAX,
|
||||
} RabbitizerInstrId;
|
||||
|
||||
#endif
|
21
include/instructions/InstrId_enum.table.template
Normal file
21
include/instructions/InstrId_enum.table.template
Normal file
@ -0,0 +1,21 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, ...) \
|
||||
RABBITIZER_INSTR_ID_##prefix##_##name,
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID_ALTNAME(prefix, caseBits, name, altname, ...) \
|
||||
RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, __VA_ARGS__)
|
||||
|
||||
typedef enum RabbitizerInstrId {
|
||||
#include "instr_id/RabbitizerInstrId_cpu.inc"
|
||||
|
||||
#include "instr_id/RabbitizerInstrId_rsp.inc"
|
||||
|
||||
#include "instr_id/RabbitizerInstrId_r5900.inc"
|
||||
|
||||
RABBITIZER_INSTR_ID_ALL_MAX = RABBITIZER_DEF_INSTR_ID(r5900, , MAX, )
|
||||
} RabbitizerInstrId;
|
||||
|
||||
#undef RABBITIZER_DEF_INSTR_ID
|
||||
#undef RABBITIZER_DEF_INSTR_ID_ALTNAME
|
78
include/instructions/OperandType_enum.table.h
Normal file
78
include/instructions/OperandType_enum.table.h
Normal file
@ -0,0 +1,78 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef OperandType_enum_table_h_automatic
|
||||
#define OperandType_enum_table_h_automatic
|
||||
|
||||
typedef enum RabbitizerOperandType {
|
||||
RAB_OPERAND_ALL_INVALID,
|
||||
RAB_OPERAND_cpu_rs,
|
||||
RAB_OPERAND_cpu_rt,
|
||||
RAB_OPERAND_cpu_rd,
|
||||
RAB_OPERAND_cpu_sa,
|
||||
RAB_OPERAND_cpu_zero,
|
||||
RAB_OPERAND_cpu_cop0d,
|
||||
RAB_OPERAND_cpu_fs,
|
||||
RAB_OPERAND_cpu_ft,
|
||||
RAB_OPERAND_cpu_fd,
|
||||
RAB_OPERAND_cpu_cop1cs,
|
||||
RAB_OPERAND_cpu_cop2t,
|
||||
RAB_OPERAND_cpu_op,
|
||||
RAB_OPERAND_cpu_code,
|
||||
RAB_OPERAND_cpu_code_lower,
|
||||
RAB_OPERAND_cpu_copraw,
|
||||
RAB_OPERAND_cpu_label,
|
||||
RAB_OPERAND_cpu_immediate,
|
||||
RAB_OPERAND_cpu_branch_target_label,
|
||||
RAB_OPERAND_cpu_immediate_base,
|
||||
RAB_OPERAND_rsp_rs,
|
||||
RAB_OPERAND_rsp_rt,
|
||||
RAB_OPERAND_rsp_rd,
|
||||
RAB_OPERAND_rsp_cop0d,
|
||||
RAB_OPERAND_rsp_cop2t,
|
||||
RAB_OPERAND_rsp_cop2cd,
|
||||
RAB_OPERAND_rsp_vs,
|
||||
RAB_OPERAND_rsp_vt,
|
||||
RAB_OPERAND_rsp_vd,
|
||||
RAB_OPERAND_rsp_vt_elementhigh,
|
||||
RAB_OPERAND_rsp_vt_elementlow,
|
||||
RAB_OPERAND_rsp_vd_de,
|
||||
RAB_OPERAND_rsp_vs_index,
|
||||
RAB_OPERAND_rsp_offset_rs,
|
||||
RAB_OPERAND_rsp_immediate_base,
|
||||
RAB_OPERAND_r5900_I,
|
||||
RAB_OPERAND_r5900_Q,
|
||||
RAB_OPERAND_r5900_R,
|
||||
RAB_OPERAND_r5900_ACC,
|
||||
RAB_OPERAND_r5900_ACCxyzw,
|
||||
RAB_OPERAND_r5900_vfs,
|
||||
RAB_OPERAND_r5900_vft,
|
||||
RAB_OPERAND_r5900_vfd,
|
||||
RAB_OPERAND_r5900_vfsxyzw,
|
||||
RAB_OPERAND_r5900_vftxyzw,
|
||||
RAB_OPERAND_r5900_vfdxyzw,
|
||||
RAB_OPERAND_r5900_vfsn,
|
||||
RAB_OPERAND_r5900_vftn,
|
||||
RAB_OPERAND_r5900_vfdn,
|
||||
RAB_OPERAND_r5900_vfsl,
|
||||
RAB_OPERAND_r5900_vftl,
|
||||
RAB_OPERAND_r5900_vfdl,
|
||||
RAB_OPERAND_r5900_vfsm,
|
||||
RAB_OPERAND_r5900_vftm,
|
||||
RAB_OPERAND_r5900_vfdm,
|
||||
RAB_OPERAND_r5900_vis,
|
||||
RAB_OPERAND_r5900_vit,
|
||||
RAB_OPERAND_r5900_vid,
|
||||
RAB_OPERAND_r5900_vis_predecr,
|
||||
RAB_OPERAND_r5900_vit_predecr,
|
||||
RAB_OPERAND_r5900_vid_predecr,
|
||||
RAB_OPERAND_r5900_vis_postincr,
|
||||
RAB_OPERAND_r5900_vit_postincr,
|
||||
RAB_OPERAND_r5900_vid_postincr,
|
||||
RAB_OPERAND_r5900_immediate5,
|
||||
RAB_OPERAND_ALL_MAX,
|
||||
} RabbitizerOperandType;
|
||||
|
||||
#endif
|
17
include/instructions/OperandType_enum.table.template
Normal file
17
include/instructions/OperandType_enum.table.template
Normal file
@ -0,0 +1,17 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RAB_DEF_OPERAND(prefix, operand) \
|
||||
RAB_OPERAND_##prefix##_##operand,
|
||||
|
||||
typedef enum RabbitizerOperandType {
|
||||
RAB_DEF_OPERAND(ALL, INVALID)
|
||||
|
||||
#include "operands/RabbitizerOperandType_cpu.inc"
|
||||
#include "operands/RabbitizerOperandType_rsp.inc"
|
||||
#include "operands/RabbitizerOperandType_r5900.inc"
|
||||
|
||||
RAB_DEF_OPERAND(ALL, MAX)
|
||||
} RabbitizerOperandType;
|
||||
|
||||
#undef RAB_DEF_OPERAND
|
@ -0,0 +1,74 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef OperandType_function_declarations_table_h_automatic
|
||||
#define OperandType_function_declarations_table_h_automatic
|
||||
|
||||
size_t RabbitizerOperandType_process_cpu_rs (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_rt (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_rd (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_sa (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_zero (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_cop0d (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_fs (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_ft (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_fd (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_cop1cs (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_cop2t (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_op (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_code (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_code_lower (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_copraw (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_label (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_immediate (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_branch_target_label (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_cpu_immediate_base (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_rs (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_rt (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_rd (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_cop0d (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_cop2t (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_cop2cd (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_vs (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_vt (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_vd (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_vt_elementhigh (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_vt_elementlow (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_vd_de (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_vs_index (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_offset_rs (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_rsp_immediate_base (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_I (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_Q (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_R (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_ACC (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_ACCxyzw (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vfs (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vft (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vfd (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vfsxyzw (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vftxyzw (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vfdxyzw (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vfsn (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vftn (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vfdn (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vfsl (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vftl (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vfdl (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vfsm (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vftm (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vfdm (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vis (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vit (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vid (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vis_predecr (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vit_predecr (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vid_predecr (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vis_postincr (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vit_postincr (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_vid_postincr (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
size_t RabbitizerOperandType_process_r5900_immediate5 (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
|
||||
#endif
|
@ -0,0 +1,10 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RAB_DEF_OPERAND(prefix, operand) size_t RabbitizerOperandType_process_##prefix##_##operand (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
|
||||
#include "operands/RabbitizerOperandType_cpu.inc"
|
||||
#include "operands/RabbitizerOperandType_rsp.inc"
|
||||
#include "operands/RabbitizerOperandType_r5900.inc"
|
||||
|
||||
#undef RAB_DEF_OPERAND
|
@ -9,17 +9,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#define RAB_DEF_ACCESSTYPE(name) RAB_ACCESSTYPE_##name,
|
||||
|
||||
typedef enum RabbitizerAccessType {
|
||||
#include "instructions/AccessType.inc"
|
||||
|
||||
RAB_DEF_ACCESSTYPE(MAX)
|
||||
} RabbitizerAccessType;
|
||||
|
||||
#undef RAB_DEF_ACCESSTYPE
|
||||
|
||||
#include "AccessType_enum.table.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -10,15 +10,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_CATEGORY(name) RABBITIZER_INSTRCAT_##name
|
||||
|
||||
typedef enum RabbitizerInstrCategory {
|
||||
#include "instructions/InstrCategory.inc"
|
||||
|
||||
RABBITIZER_DEF_INSTR_CATEGORY(MAX),
|
||||
} RabbitizerInstrCategory;
|
||||
|
||||
#undef RABBITIZER_DEF_INSTR_CATEGORY
|
||||
#include "InstrCategory_enum.table.h"
|
||||
|
||||
extern const char *const RabbitizerInstrCategory_Names[];
|
||||
|
||||
|
@ -13,26 +13,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, ...) \
|
||||
RABBITIZER_INSTR_ID_##prefix##_##name,
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID_ALTNAME(prefix, caseBits, name, altname, ...) \
|
||||
RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, __VA_ARGS__)
|
||||
|
||||
typedef enum RabbitizerInstrId {
|
||||
#include "instructions/instr_id/RabbitizerInstrId_cpu.inc"
|
||||
|
||||
#include "instructions/instr_id/RabbitizerInstrId_rsp.inc"
|
||||
|
||||
#include "instructions/instr_id/RabbitizerInstrId_r5900.inc"
|
||||
|
||||
RABBITIZER_INSTR_ID_ALL_MAX = RABBITIZER_DEF_INSTR_ID(r5900, , MAX, )
|
||||
} RabbitizerInstrId;
|
||||
|
||||
#undef RABBITIZER_DEF_INSTR_ID
|
||||
#undef RABBITIZER_DEF_INSTR_ID_ALTNAME
|
||||
|
||||
#include "InstrId_enum.table.h"
|
||||
|
||||
extern const char *RabbitizerInstrId_Names[];
|
||||
|
||||
|
@ -11,22 +11,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#define RAB_DEF_OPERAND(prefix, operand) \
|
||||
RAB_OPERAND_##prefix##_##operand,
|
||||
|
||||
typedef enum RabbitizerOperandType {
|
||||
RAB_DEF_OPERAND(ALL, INVALID)
|
||||
|
||||
#include "operands/RabbitizerOperandType_cpu.inc"
|
||||
#include "operands/RabbitizerOperandType_rsp.inc"
|
||||
#include "operands/RabbitizerOperandType_r5900.inc"
|
||||
|
||||
RAB_DEF_OPERAND(ALL, MAX)
|
||||
} RabbitizerOperandType;
|
||||
|
||||
#undef RAB_DEF_OPERAND
|
||||
|
||||
#include "OperandType_enum.table.h"
|
||||
|
||||
struct RabbitizerInstruction;
|
||||
|
||||
@ -34,15 +19,7 @@ typedef size_t (*OperandCallback)(const struct RabbitizerInstruction *self, char
|
||||
|
||||
extern const OperandCallback instrOpercandCallbacks[];
|
||||
|
||||
|
||||
#define RAB_DEF_OPERAND(prefix, operand) size_t RabbitizerOperandType_process_##prefix##_##operand (const struct RabbitizerInstruction *self, char *dst, const char *immOverride, size_t immOverrideLength);
|
||||
|
||||
#include "instructions/operands/RabbitizerOperandType_cpu.inc"
|
||||
#include "instructions/operands/RabbitizerOperandType_rsp.inc"
|
||||
#include "instructions/operands/RabbitizerOperandType_r5900.inc"
|
||||
|
||||
#undef RAB_DEF_OPERAND
|
||||
|
||||
#include "OperandType_function_declarations.table.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -14,87 +14,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#define RABBITIZER_DEF_REG(prefix, name, numeric) \
|
||||
RABBITIZER_REG_##prefix##_##name
|
||||
|
||||
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric) \
|
||||
RABBITIZER_REG_##prefix##_##name
|
||||
|
||||
|
||||
typedef enum RabbitizerRegister_GprO32 {
|
||||
#include "instructions/registers/RabbitizerRegister_GprO32.inc"
|
||||
} RabbitizerRegister_GprO32;
|
||||
|
||||
typedef enum RabbitizerRegister_GprN32 {
|
||||
#include "instructions/registers/RabbitizerRegister_GprN32.inc"
|
||||
} RabbitizerRegister_GprN32;
|
||||
|
||||
typedef enum RabbitizerRegister_Cop0 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop0.inc"
|
||||
} RabbitizerRegister_Cop0;
|
||||
|
||||
// Float registers
|
||||
typedef enum RabbitizerRegister_Cop1O32 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1O32.inc"
|
||||
} RabbitizerRegister_Cop1O32;
|
||||
|
||||
typedef enum RabbitizerRegister_Cop1N32 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1N32.inc"
|
||||
} RabbitizerRegister_Cop1N32;
|
||||
|
||||
typedef enum RabbitizerRegister_Cop1N64 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1N64.inc"
|
||||
} RabbitizerRegister_Cop1N64;
|
||||
|
||||
typedef enum RabbitizerRegister_Cop1Control {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1Control.inc"
|
||||
} RabbitizerRegister_Cop1Control;
|
||||
|
||||
typedef enum RabbitizerRegister_Cop2 {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop2.inc"
|
||||
} RabbitizerRegister_Cop2;
|
||||
|
||||
|
||||
/* RSP */
|
||||
|
||||
typedef enum RabbitizerRegister_RspGpr {
|
||||
#include "instructions/registers/RabbitizerRegister_RspGpr.inc"
|
||||
} RabbitizerRegister_RspGpr;
|
||||
|
||||
typedef enum RabbitizerRegister_RspCop0 {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop0.inc"
|
||||
} RabbitizerRegister_RspCop0;
|
||||
|
||||
typedef enum RabbitizerRegister_RspCop2 {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop2.inc"
|
||||
} RabbitizerRegister_RspCop2;
|
||||
|
||||
typedef enum RabbitizerRegister_RspCop2Control {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop2Control.inc"
|
||||
} RabbitizerRegister_RspCop2Control;
|
||||
|
||||
typedef enum RabbitizerRegister_RspVector {
|
||||
#include "instructions/registers/RabbitizerRegister_RspVector.inc"
|
||||
} RabbitizerRegister_RspVector;
|
||||
|
||||
/* RSP */
|
||||
|
||||
/* R5900 */
|
||||
|
||||
typedef enum RabbitizerRegister_R5900VF {
|
||||
#include "instructions/registers/RabbitizerRegister_R5900VF.inc"
|
||||
} RabbitizerRegister_R5900VF;
|
||||
|
||||
typedef enum RabbitizerRegister_R5900VI {
|
||||
#include "instructions/registers/RabbitizerRegister_R5900VI.inc"
|
||||
} RabbitizerRegister_R5900VI;
|
||||
|
||||
/* R5900 */
|
||||
|
||||
|
||||
#undef RABBITIZER_DEF_REG
|
||||
#undef RABBITIZER_DEF_REG_NODOLLAR
|
||||
|
||||
#include "Registers_enums.table.h"
|
||||
|
||||
extern const char *RabbitizerRegister_GprO32_Names[][2];
|
||||
extern const char *RabbitizerRegister_GprN32_Names[][2];
|
||||
|
504
include/instructions/Registers_enums.table.h
Normal file
504
include/instructions/Registers_enums.table.h
Normal file
@ -0,0 +1,504 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef Registers_enums_table_h_automatic
|
||||
#define Registers_enums_table_h_automatic
|
||||
|
||||
typedef enum RabbitizerRegister_GprO32 {
|
||||
RABBITIZER_REG_GPR_O32_zero,
|
||||
RABBITIZER_REG_GPR_O32_at,
|
||||
RABBITIZER_REG_GPR_O32_v0,
|
||||
RABBITIZER_REG_GPR_O32_v1,
|
||||
RABBITIZER_REG_GPR_O32_a0,
|
||||
RABBITIZER_REG_GPR_O32_a1,
|
||||
RABBITIZER_REG_GPR_O32_a2,
|
||||
RABBITIZER_REG_GPR_O32_a3,
|
||||
RABBITIZER_REG_GPR_O32_t0,
|
||||
RABBITIZER_REG_GPR_O32_t1,
|
||||
RABBITIZER_REG_GPR_O32_t2,
|
||||
RABBITIZER_REG_GPR_O32_t3,
|
||||
RABBITIZER_REG_GPR_O32_t4,
|
||||
RABBITIZER_REG_GPR_O32_t5,
|
||||
RABBITIZER_REG_GPR_O32_t6,
|
||||
RABBITIZER_REG_GPR_O32_t7,
|
||||
RABBITIZER_REG_GPR_O32_s0,
|
||||
RABBITIZER_REG_GPR_O32_s1,
|
||||
RABBITIZER_REG_GPR_O32_s2,
|
||||
RABBITIZER_REG_GPR_O32_s3,
|
||||
RABBITIZER_REG_GPR_O32_s4,
|
||||
RABBITIZER_REG_GPR_O32_s5,
|
||||
RABBITIZER_REG_GPR_O32_s6,
|
||||
RABBITIZER_REG_GPR_O32_s7,
|
||||
RABBITIZER_REG_GPR_O32_t8,
|
||||
RABBITIZER_REG_GPR_O32_t9,
|
||||
RABBITIZER_REG_GPR_O32_k0,
|
||||
RABBITIZER_REG_GPR_O32_k1,
|
||||
RABBITIZER_REG_GPR_O32_gp,
|
||||
RABBITIZER_REG_GPR_O32_sp,
|
||||
RABBITIZER_REG_GPR_O32_fp,
|
||||
RABBITIZER_REG_GPR_O32_ra,
|
||||
} RabbitizerRegister_GprO32;
|
||||
typedef enum RabbitizerRegister_GprN32 {
|
||||
RABBITIZER_REG_GPR_N32_zero,
|
||||
RABBITIZER_REG_GPR_N32_at,
|
||||
RABBITIZER_REG_GPR_N32_v0,
|
||||
RABBITIZER_REG_GPR_N32_v1,
|
||||
RABBITIZER_REG_GPR_N32_a0,
|
||||
RABBITIZER_REG_GPR_N32_a1,
|
||||
RABBITIZER_REG_GPR_N32_a2,
|
||||
RABBITIZER_REG_GPR_N32_a3,
|
||||
RABBITIZER_REG_GPR_N32_a4,
|
||||
RABBITIZER_REG_GPR_N32_a5,
|
||||
RABBITIZER_REG_GPR_N32_a6,
|
||||
RABBITIZER_REG_GPR_N32_a7,
|
||||
RABBITIZER_REG_GPR_N32_t0,
|
||||
RABBITIZER_REG_GPR_N32_t1,
|
||||
RABBITIZER_REG_GPR_N32_t2,
|
||||
RABBITIZER_REG_GPR_N32_t3,
|
||||
RABBITIZER_REG_GPR_N32_s0,
|
||||
RABBITIZER_REG_GPR_N32_s1,
|
||||
RABBITIZER_REG_GPR_N32_s2,
|
||||
RABBITIZER_REG_GPR_N32_s3,
|
||||
RABBITIZER_REG_GPR_N32_s4,
|
||||
RABBITIZER_REG_GPR_N32_s5,
|
||||
RABBITIZER_REG_GPR_N32_s6,
|
||||
RABBITIZER_REG_GPR_N32_s7,
|
||||
RABBITIZER_REG_GPR_N32_t8,
|
||||
RABBITIZER_REG_GPR_N32_t9,
|
||||
RABBITIZER_REG_GPR_N32_k0,
|
||||
RABBITIZER_REG_GPR_N32_k1,
|
||||
RABBITIZER_REG_GPR_N32_gp,
|
||||
RABBITIZER_REG_GPR_N32_sp,
|
||||
RABBITIZER_REG_GPR_N32_fp,
|
||||
RABBITIZER_REG_GPR_N32_ra,
|
||||
} RabbitizerRegister_GprN32;
|
||||
typedef enum RabbitizerRegister_Cop0 {
|
||||
RABBITIZER_REG_COP0_Index,
|
||||
RABBITIZER_REG_COP0_Random,
|
||||
RABBITIZER_REG_COP0_EntryLo0,
|
||||
RABBITIZER_REG_COP0_EntryLo1,
|
||||
RABBITIZER_REG_COP0_Context,
|
||||
RABBITIZER_REG_COP0_PageMask,
|
||||
RABBITIZER_REG_COP0_Wired,
|
||||
RABBITIZER_REG_COP0_Reserved07,
|
||||
RABBITIZER_REG_COP0_BadVaddr,
|
||||
RABBITIZER_REG_COP0_Count,
|
||||
RABBITIZER_REG_COP0_EntryHi,
|
||||
RABBITIZER_REG_COP0_Compare,
|
||||
RABBITIZER_REG_COP0_Status,
|
||||
RABBITIZER_REG_COP0_Cause,
|
||||
RABBITIZER_REG_COP0_EPC,
|
||||
RABBITIZER_REG_COP0_PRevID,
|
||||
RABBITIZER_REG_COP0_Config,
|
||||
RABBITIZER_REG_COP0_LLAddr,
|
||||
RABBITIZER_REG_COP0_WatchLo,
|
||||
RABBITIZER_REG_COP0_WatchHi,
|
||||
RABBITIZER_REG_COP0_XContext,
|
||||
RABBITIZER_REG_COP0_Reserved21,
|
||||
RABBITIZER_REG_COP0_Reserved22,
|
||||
RABBITIZER_REG_COP0_Reserved23,
|
||||
RABBITIZER_REG_COP0_Reserved24,
|
||||
RABBITIZER_REG_COP0_Reserved25,
|
||||
RABBITIZER_REG_COP0_PErr,
|
||||
RABBITIZER_REG_COP0_CacheErr,
|
||||
RABBITIZER_REG_COP0_TagLo,
|
||||
RABBITIZER_REG_COP0_TagHi,
|
||||
RABBITIZER_REG_COP0_ErrorEPC,
|
||||
RABBITIZER_REG_COP0_Reserved31,
|
||||
} RabbitizerRegister_Cop0;
|
||||
typedef enum RabbitizerRegister_Cop1O32 {
|
||||
RABBITIZER_REG_COP1_O32_fv0,
|
||||
RABBITIZER_REG_COP1_O32_fv0f,
|
||||
RABBITIZER_REG_COP1_O32_fv1,
|
||||
RABBITIZER_REG_COP1_O32_fv1f,
|
||||
RABBITIZER_REG_COP1_O32_ft0,
|
||||
RABBITIZER_REG_COP1_O32_ft0f,
|
||||
RABBITIZER_REG_COP1_O32_ft1,
|
||||
RABBITIZER_REG_COP1_O32_ft1f,
|
||||
RABBITIZER_REG_COP1_O32_ft2,
|
||||
RABBITIZER_REG_COP1_O32_ft2f,
|
||||
RABBITIZER_REG_COP1_O32_ft3,
|
||||
RABBITIZER_REG_COP1_O32_ft3f,
|
||||
RABBITIZER_REG_COP1_O32_fa0,
|
||||
RABBITIZER_REG_COP1_O32_fa0f,
|
||||
RABBITIZER_REG_COP1_O32_fa1,
|
||||
RABBITIZER_REG_COP1_O32_fa1f,
|
||||
RABBITIZER_REG_COP1_O32_ft4,
|
||||
RABBITIZER_REG_COP1_O32_ft4f,
|
||||
RABBITIZER_REG_COP1_O32_ft5,
|
||||
RABBITIZER_REG_COP1_O32_ft5f,
|
||||
RABBITIZER_REG_COP1_O32_fs0,
|
||||
RABBITIZER_REG_COP1_O32_fs0f,
|
||||
RABBITIZER_REG_COP1_O32_fs1,
|
||||
RABBITIZER_REG_COP1_O32_fs1f,
|
||||
RABBITIZER_REG_COP1_O32_fs2,
|
||||
RABBITIZER_REG_COP1_O32_fs2f,
|
||||
RABBITIZER_REG_COP1_O32_fs3,
|
||||
RABBITIZER_REG_COP1_O32_fs3f,
|
||||
RABBITIZER_REG_COP1_O32_fs4,
|
||||
RABBITIZER_REG_COP1_O32_fs4f,
|
||||
RABBITIZER_REG_COP1_O32_fs5,
|
||||
RABBITIZER_REG_COP1_O32_fs5f,
|
||||
} RabbitizerRegister_Cop1O32;
|
||||
typedef enum RabbitizerRegister_Cop1N32 {
|
||||
RABBITIZER_REG_COP1_N32_fv0,
|
||||
RABBITIZER_REG_COP1_N32_ft14,
|
||||
RABBITIZER_REG_COP1_N32_fv1,
|
||||
RABBITIZER_REG_COP1_N32_ft15,
|
||||
RABBITIZER_REG_COP1_N32_ft0,
|
||||
RABBITIZER_REG_COP1_N32_ft1,
|
||||
RABBITIZER_REG_COP1_N32_ft2,
|
||||
RABBITIZER_REG_COP1_N32_ft3,
|
||||
RABBITIZER_REG_COP1_N32_ft4,
|
||||
RABBITIZER_REG_COP1_N32_ft5,
|
||||
RABBITIZER_REG_COP1_N32_ft6,
|
||||
RABBITIZER_REG_COP1_N32_ft7,
|
||||
RABBITIZER_REG_COP1_N32_fa0,
|
||||
RABBITIZER_REG_COP1_N32_fa1,
|
||||
RABBITIZER_REG_COP1_N32_fa2,
|
||||
RABBITIZER_REG_COP1_N32_fa3,
|
||||
RABBITIZER_REG_COP1_N32_fa4,
|
||||
RABBITIZER_REG_COP1_N32_fa5,
|
||||
RABBITIZER_REG_COP1_N32_fa6,
|
||||
RABBITIZER_REG_COP1_N32_fa7,
|
||||
RABBITIZER_REG_COP1_N32_fs0,
|
||||
RABBITIZER_REG_COP1_N32_ft8,
|
||||
RABBITIZER_REG_COP1_N32_fs1,
|
||||
RABBITIZER_REG_COP1_N32_ft9,
|
||||
RABBITIZER_REG_COP1_N32_fs2,
|
||||
RABBITIZER_REG_COP1_N32_ft10,
|
||||
RABBITIZER_REG_COP1_N32_fs3,
|
||||
RABBITIZER_REG_COP1_N32_ft11,
|
||||
RABBITIZER_REG_COP1_N32_fs4,
|
||||
RABBITIZER_REG_COP1_N32_ft12,
|
||||
RABBITIZER_REG_COP1_N32_fs5,
|
||||
RABBITIZER_REG_COP1_N32_ft13,
|
||||
} RabbitizerRegister_Cop1N32;
|
||||
typedef enum RabbitizerRegister_Cop1N64 {
|
||||
RABBITIZER_REG_COP1_N64_fv0,
|
||||
RABBITIZER_REG_COP1_N64_ft12,
|
||||
RABBITIZER_REG_COP1_N64_fv1,
|
||||
RABBITIZER_REG_COP1_N64_ft13,
|
||||
RABBITIZER_REG_COP1_N64_ft0,
|
||||
RABBITIZER_REG_COP1_N64_ft1,
|
||||
RABBITIZER_REG_COP1_N64_ft2,
|
||||
RABBITIZER_REG_COP1_N64_ft3,
|
||||
RABBITIZER_REG_COP1_N64_ft4,
|
||||
RABBITIZER_REG_COP1_N64_ft5,
|
||||
RABBITIZER_REG_COP1_N64_ft6,
|
||||
RABBITIZER_REG_COP1_N64_ft7,
|
||||
RABBITIZER_REG_COP1_N64_fa0,
|
||||
RABBITIZER_REG_COP1_N64_fa1,
|
||||
RABBITIZER_REG_COP1_N64_fa2,
|
||||
RABBITIZER_REG_COP1_N64_fa3,
|
||||
RABBITIZER_REG_COP1_N64_fa4,
|
||||
RABBITIZER_REG_COP1_N64_fa5,
|
||||
RABBITIZER_REG_COP1_N64_fa6,
|
||||
RABBITIZER_REG_COP1_N64_fa7,
|
||||
RABBITIZER_REG_COP1_N64_ft8,
|
||||
RABBITIZER_REG_COP1_N64_ft9,
|
||||
RABBITIZER_REG_COP1_N64_ft10,
|
||||
RABBITIZER_REG_COP1_N64_ft11,
|
||||
RABBITIZER_REG_COP1_N64_fs0,
|
||||
RABBITIZER_REG_COP1_N64_fs1,
|
||||
RABBITIZER_REG_COP1_N64_fs2,
|
||||
RABBITIZER_REG_COP1_N64_fs3,
|
||||
RABBITIZER_REG_COP1_N64_fs4,
|
||||
RABBITIZER_REG_COP1_N64_fs5,
|
||||
RABBITIZER_REG_COP1_N64_fs6,
|
||||
RABBITIZER_REG_COP1_N64_fs7,
|
||||
} RabbitizerRegister_Cop1N64;
|
||||
typedef enum RabbitizerRegister_Cop1Control {
|
||||
RABBITIZER_REG_COP1_CONTROL_0,
|
||||
RABBITIZER_REG_COP1_CONTROL_1,
|
||||
RABBITIZER_REG_COP1_CONTROL_2,
|
||||
RABBITIZER_REG_COP1_CONTROL_3,
|
||||
RABBITIZER_REG_COP1_CONTROL_4,
|
||||
RABBITIZER_REG_COP1_CONTROL_5,
|
||||
RABBITIZER_REG_COP1_CONTROL_6,
|
||||
RABBITIZER_REG_COP1_CONTROL_7,
|
||||
RABBITIZER_REG_COP1_CONTROL_8,
|
||||
RABBITIZER_REG_COP1_CONTROL_9,
|
||||
RABBITIZER_REG_COP1_CONTROL_10,
|
||||
RABBITIZER_REG_COP1_CONTROL_11,
|
||||
RABBITIZER_REG_COP1_CONTROL_12,
|
||||
RABBITIZER_REG_COP1_CONTROL_13,
|
||||
RABBITIZER_REG_COP1_CONTROL_14,
|
||||
RABBITIZER_REG_COP1_CONTROL_15,
|
||||
RABBITIZER_REG_COP1_CONTROL_16,
|
||||
RABBITIZER_REG_COP1_CONTROL_17,
|
||||
RABBITIZER_REG_COP1_CONTROL_18,
|
||||
RABBITIZER_REG_COP1_CONTROL_19,
|
||||
RABBITIZER_REG_COP1_CONTROL_20,
|
||||
RABBITIZER_REG_COP1_CONTROL_21,
|
||||
RABBITIZER_REG_COP1_CONTROL_22,
|
||||
RABBITIZER_REG_COP1_CONTROL_23,
|
||||
RABBITIZER_REG_COP1_CONTROL_24,
|
||||
RABBITIZER_REG_COP1_CONTROL_25,
|
||||
RABBITIZER_REG_COP1_CONTROL_26,
|
||||
RABBITIZER_REG_COP1_CONTROL_27,
|
||||
RABBITIZER_REG_COP1_CONTROL_28,
|
||||
RABBITIZER_REG_COP1_CONTROL_29,
|
||||
RABBITIZER_REG_COP1_CONTROL_30,
|
||||
RABBITIZER_REG_COP1_CONTROL_FpcCsr,
|
||||
} RabbitizerRegister_Cop1Control;
|
||||
typedef enum RabbitizerRegister_Cop2 {
|
||||
RABBITIZER_REG_COP2_0,
|
||||
RABBITIZER_REG_COP2_1,
|
||||
RABBITIZER_REG_COP2_2,
|
||||
RABBITIZER_REG_COP2_3,
|
||||
RABBITIZER_REG_COP2_4,
|
||||
RABBITIZER_REG_COP2_5,
|
||||
RABBITIZER_REG_COP2_6,
|
||||
RABBITIZER_REG_COP2_7,
|
||||
RABBITIZER_REG_COP2_8,
|
||||
RABBITIZER_REG_COP2_9,
|
||||
RABBITIZER_REG_COP2_10,
|
||||
RABBITIZER_REG_COP2_11,
|
||||
RABBITIZER_REG_COP2_12,
|
||||
RABBITIZER_REG_COP2_13,
|
||||
RABBITIZER_REG_COP2_14,
|
||||
RABBITIZER_REG_COP2_15,
|
||||
RABBITIZER_REG_COP2_16,
|
||||
RABBITIZER_REG_COP2_17,
|
||||
RABBITIZER_REG_COP2_18,
|
||||
RABBITIZER_REG_COP2_19,
|
||||
RABBITIZER_REG_COP2_20,
|
||||
RABBITIZER_REG_COP2_21,
|
||||
RABBITIZER_REG_COP2_22,
|
||||
RABBITIZER_REG_COP2_23,
|
||||
RABBITIZER_REG_COP2_24,
|
||||
RABBITIZER_REG_COP2_25,
|
||||
RABBITIZER_REG_COP2_26,
|
||||
RABBITIZER_REG_COP2_27,
|
||||
RABBITIZER_REG_COP2_28,
|
||||
RABBITIZER_REG_COP2_29,
|
||||
RABBITIZER_REG_COP2_30,
|
||||
RABBITIZER_REG_COP2_31,
|
||||
} RabbitizerRegister_Cop2;
|
||||
typedef enum RabbitizerRegister_RspGpr {
|
||||
RABBITIZER_REG_RSP_GPR_zero,
|
||||
RABBITIZER_REG_RSP_GPR_1,
|
||||
RABBITIZER_REG_RSP_GPR_2,
|
||||
RABBITIZER_REG_RSP_GPR_3,
|
||||
RABBITIZER_REG_RSP_GPR_4,
|
||||
RABBITIZER_REG_RSP_GPR_5,
|
||||
RABBITIZER_REG_RSP_GPR_6,
|
||||
RABBITIZER_REG_RSP_GPR_7,
|
||||
RABBITIZER_REG_RSP_GPR_8,
|
||||
RABBITIZER_REG_RSP_GPR_9,
|
||||
RABBITIZER_REG_RSP_GPR_10,
|
||||
RABBITIZER_REG_RSP_GPR_11,
|
||||
RABBITIZER_REG_RSP_GPR_12,
|
||||
RABBITIZER_REG_RSP_GPR_13,
|
||||
RABBITIZER_REG_RSP_GPR_14,
|
||||
RABBITIZER_REG_RSP_GPR_15,
|
||||
RABBITIZER_REG_RSP_GPR_16,
|
||||
RABBITIZER_REG_RSP_GPR_17,
|
||||
RABBITIZER_REG_RSP_GPR_18,
|
||||
RABBITIZER_REG_RSP_GPR_19,
|
||||
RABBITIZER_REG_RSP_GPR_20,
|
||||
RABBITIZER_REG_RSP_GPR_21,
|
||||
RABBITIZER_REG_RSP_GPR_22,
|
||||
RABBITIZER_REG_RSP_GPR_23,
|
||||
RABBITIZER_REG_RSP_GPR_24,
|
||||
RABBITIZER_REG_RSP_GPR_25,
|
||||
RABBITIZER_REG_RSP_GPR_26,
|
||||
RABBITIZER_REG_RSP_GPR_27,
|
||||
RABBITIZER_REG_RSP_GPR_28,
|
||||
RABBITIZER_REG_RSP_GPR_29,
|
||||
RABBITIZER_REG_RSP_GPR_30,
|
||||
RABBITIZER_REG_RSP_GPR_ra,
|
||||
} RabbitizerRegister_RspGpr;
|
||||
typedef enum RabbitizerRegister_RspCop0 {
|
||||
RABBITIZER_REG_RSP_COP0_SP_MEM_ADDR,
|
||||
RABBITIZER_REG_RSP_COP0_SP_DRAM_ADDR,
|
||||
RABBITIZER_REG_RSP_COP0_SP_RD_LEN,
|
||||
RABBITIZER_REG_RSP_COP0_SP_WR_LEN,
|
||||
RABBITIZER_REG_RSP_COP0_SP_STATUS,
|
||||
RABBITIZER_REG_RSP_COP0_SP_DMA_FULL,
|
||||
RABBITIZER_REG_RSP_COP0_SP_DMA_BUSY,
|
||||
RABBITIZER_REG_RSP_COP0_SP_SEMAPHORE,
|
||||
RABBITIZER_REG_RSP_COP0_DPC_START,
|
||||
RABBITIZER_REG_RSP_COP0_DPC_END,
|
||||
RABBITIZER_REG_RSP_COP0_DPC_CURRENT,
|
||||
RABBITIZER_REG_RSP_COP0_DPC_STATUS,
|
||||
RABBITIZER_REG_RSP_COP0_DPC_CLOCK,
|
||||
RABBITIZER_REG_RSP_COP0_DPC_BUFBUSY,
|
||||
RABBITIZER_REG_RSP_COP0_DPC_PIPEBUSY,
|
||||
RABBITIZER_REG_RSP_COP0_DPC_TMEM,
|
||||
} RabbitizerRegister_RspCop0;
|
||||
typedef enum RabbitizerRegister_RspCop2 {
|
||||
RABBITIZER_REG_RSP_COP2_0,
|
||||
RABBITIZER_REG_RSP_COP2_1,
|
||||
RABBITIZER_REG_RSP_COP2_2,
|
||||
RABBITIZER_REG_RSP_COP2_3,
|
||||
RABBITIZER_REG_RSP_COP2_4,
|
||||
RABBITIZER_REG_RSP_COP2_5,
|
||||
RABBITIZER_REG_RSP_COP2_6,
|
||||
RABBITIZER_REG_RSP_COP2_7,
|
||||
RABBITIZER_REG_RSP_COP2_8,
|
||||
RABBITIZER_REG_RSP_COP2_9,
|
||||
RABBITIZER_REG_RSP_COP2_10,
|
||||
RABBITIZER_REG_RSP_COP2_11,
|
||||
RABBITIZER_REG_RSP_COP2_12,
|
||||
RABBITIZER_REG_RSP_COP2_13,
|
||||
RABBITIZER_REG_RSP_COP2_14,
|
||||
RABBITIZER_REG_RSP_COP2_15,
|
||||
RABBITIZER_REG_RSP_COP2_16,
|
||||
RABBITIZER_REG_RSP_COP2_17,
|
||||
RABBITIZER_REG_RSP_COP2_18,
|
||||
RABBITIZER_REG_RSP_COP2_19,
|
||||
RABBITIZER_REG_RSP_COP2_20,
|
||||
RABBITIZER_REG_RSP_COP2_21,
|
||||
RABBITIZER_REG_RSP_COP2_22,
|
||||
RABBITIZER_REG_RSP_COP2_23,
|
||||
RABBITIZER_REG_RSP_COP2_24,
|
||||
RABBITIZER_REG_RSP_COP2_25,
|
||||
RABBITIZER_REG_RSP_COP2_26,
|
||||
RABBITIZER_REG_RSP_COP2_27,
|
||||
RABBITIZER_REG_RSP_COP2_28,
|
||||
RABBITIZER_REG_RSP_COP2_29,
|
||||
RABBITIZER_REG_RSP_COP2_30,
|
||||
RABBITIZER_REG_RSP_COP2_31,
|
||||
} RabbitizerRegister_RspCop2;
|
||||
typedef enum RabbitizerRegister_RspCop2Control {
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_0,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_1,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_2,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_3,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_4,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_5,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_6,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_7,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_8,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_9,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_10,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_11,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_12,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_13,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_14,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_15,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_16,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_17,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_18,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_19,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_20,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_21,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_22,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_23,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_24,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_25,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_26,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_27,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_28,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_29,
|
||||
RABBITIZER_REG_RSP_COP2_CONTROL_30,
|
||||
RABBITIZER_REG_COP1_CONTROL_31,
|
||||
} RabbitizerRegister_RspCop2Control;
|
||||
typedef enum RabbitizerRegister_RspVector {
|
||||
RABBITIZER_REG_RSP_VECTOR_v0,
|
||||
RABBITIZER_REG_RSP_VECTOR_v1,
|
||||
RABBITIZER_REG_RSP_VECTOR_v2,
|
||||
RABBITIZER_REG_RSP_VECTOR_v3,
|
||||
RABBITIZER_REG_RSP_VECTOR_v4,
|
||||
RABBITIZER_REG_RSP_VECTOR_v5,
|
||||
RABBITIZER_REG_RSP_VECTOR_v6,
|
||||
RABBITIZER_REG_RSP_VECTOR_v7,
|
||||
RABBITIZER_REG_RSP_VECTOR_v8,
|
||||
RABBITIZER_REG_RSP_VECTOR_v9,
|
||||
RABBITIZER_REG_RSP_VECTOR_v10,
|
||||
RABBITIZER_REG_RSP_VECTOR_v11,
|
||||
RABBITIZER_REG_RSP_VECTOR_v12,
|
||||
RABBITIZER_REG_RSP_VECTOR_v13,
|
||||
RABBITIZER_REG_RSP_VECTOR_v14,
|
||||
RABBITIZER_REG_RSP_VECTOR_v15,
|
||||
RABBITIZER_REG_RSP_VECTOR_v16,
|
||||
RABBITIZER_REG_RSP_VECTOR_v17,
|
||||
RABBITIZER_REG_RSP_VECTOR_v18,
|
||||
RABBITIZER_REG_RSP_VECTOR_v19,
|
||||
RABBITIZER_REG_RSP_VECTOR_v20,
|
||||
RABBITIZER_REG_RSP_VECTOR_v21,
|
||||
RABBITIZER_REG_RSP_VECTOR_v22,
|
||||
RABBITIZER_REG_RSP_VECTOR_v23,
|
||||
RABBITIZER_REG_RSP_VECTOR_v24,
|
||||
RABBITIZER_REG_RSP_VECTOR_v25,
|
||||
RABBITIZER_REG_RSP_VECTOR_v26,
|
||||
RABBITIZER_REG_RSP_VECTOR_v27,
|
||||
RABBITIZER_REG_RSP_VECTOR_v28,
|
||||
RABBITIZER_REG_RSP_VECTOR_v29,
|
||||
RABBITIZER_REG_RSP_VECTOR_v30,
|
||||
RABBITIZER_REG_RSP_VECTOR_v31,
|
||||
} RabbitizerRegister_RspVector;
|
||||
typedef enum RabbitizerRegister_R5900VF {
|
||||
RABBITIZER_REG_R5900_VF_vf0,
|
||||
RABBITIZER_REG_R5900_VF_vf1,
|
||||
RABBITIZER_REG_R5900_VF_vf2,
|
||||
RABBITIZER_REG_R5900_VF_vf3,
|
||||
RABBITIZER_REG_R5900_VF_vf4,
|
||||
RABBITIZER_REG_R5900_VF_vf5,
|
||||
RABBITIZER_REG_R5900_VF_vf6,
|
||||
RABBITIZER_REG_R5900_VF_vf7,
|
||||
RABBITIZER_REG_R5900_VF_vf8,
|
||||
RABBITIZER_REG_R5900_VF_vf9,
|
||||
RABBITIZER_REG_R5900_VF_vf10,
|
||||
RABBITIZER_REG_R5900_VF_vf11,
|
||||
RABBITIZER_REG_R5900_VF_vf12,
|
||||
RABBITIZER_REG_R5900_VF_vf13,
|
||||
RABBITIZER_REG_R5900_VF_vf14,
|
||||
RABBITIZER_REG_R5900_VF_vf15,
|
||||
RABBITIZER_REG_R5900_VF_vf16,
|
||||
RABBITIZER_REG_R5900_VF_vf17,
|
||||
RABBITIZER_REG_R5900_VF_vf18,
|
||||
RABBITIZER_REG_R5900_VF_vf19,
|
||||
RABBITIZER_REG_R5900_VF_vf20,
|
||||
RABBITIZER_REG_R5900_VF_vf21,
|
||||
RABBITIZER_REG_R5900_VF_vf22,
|
||||
RABBITIZER_REG_R5900_VF_vf23,
|
||||
RABBITIZER_REG_R5900_VF_vf24,
|
||||
RABBITIZER_REG_R5900_VF_vf25,
|
||||
RABBITIZER_REG_R5900_VF_vf26,
|
||||
RABBITIZER_REG_R5900_VF_vf27,
|
||||
RABBITIZER_REG_R5900_VF_vf28,
|
||||
RABBITIZER_REG_R5900_VF_vf29,
|
||||
RABBITIZER_REG_R5900_VF_vf30,
|
||||
RABBITIZER_REG_R5900_VF_vf31,
|
||||
} RabbitizerRegister_R5900VF;
|
||||
typedef enum RabbitizerRegister_R5900VI {
|
||||
RABBITIZER_REG_R5900_VI_vi0,
|
||||
RABBITIZER_REG_R5900_VI_vi1,
|
||||
RABBITIZER_REG_R5900_VI_vi2,
|
||||
RABBITIZER_REG_R5900_VI_vi3,
|
||||
RABBITIZER_REG_R5900_VI_vi4,
|
||||
RABBITIZER_REG_R5900_VI_vi5,
|
||||
RABBITIZER_REG_R5900_VI_vi6,
|
||||
RABBITIZER_REG_R5900_VI_vi7,
|
||||
RABBITIZER_REG_R5900_VI_vi8,
|
||||
RABBITIZER_REG_R5900_VI_vi9,
|
||||
RABBITIZER_REG_R5900_VI_vi10,
|
||||
RABBITIZER_REG_R5900_VI_vi11,
|
||||
RABBITIZER_REG_R5900_VI_vi12,
|
||||
RABBITIZER_REG_R5900_VI_vi13,
|
||||
RABBITIZER_REG_R5900_VI_vi14,
|
||||
RABBITIZER_REG_R5900_VI_vi15,
|
||||
RABBITIZER_REG_R5900_VI_vi16,
|
||||
RABBITIZER_REG_R5900_VI_vi17,
|
||||
RABBITIZER_REG_R5900_VI_vi18,
|
||||
RABBITIZER_REG_R5900_VI_vi19,
|
||||
RABBITIZER_REG_R5900_VI_vi20,
|
||||
RABBITIZER_REG_R5900_VI_vi21,
|
||||
RABBITIZER_REG_R5900_VI_vi22,
|
||||
RABBITIZER_REG_R5900_VI_vi23,
|
||||
RABBITIZER_REG_R5900_VI_vi24,
|
||||
RABBITIZER_REG_R5900_VI_vi25,
|
||||
RABBITIZER_REG_R5900_VI_vi26,
|
||||
RABBITIZER_REG_R5900_VI_vi27,
|
||||
RABBITIZER_REG_R5900_VI_vi28,
|
||||
RABBITIZER_REG_R5900_VI_vi29,
|
||||
RABBITIZER_REG_R5900_VI_vi30,
|
||||
RABBITIZER_REG_R5900_VI_vi31,
|
||||
} RabbitizerRegister_R5900VI;
|
||||
|
||||
#endif
|
83
include/instructions/Registers_enums.table.template
Normal file
83
include/instructions/Registers_enums.table.template
Normal file
@ -0,0 +1,83 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RABBITIZER_DEF_REG(prefix, name, numeric) \
|
||||
RABBITIZER_REG_##prefix##_##name
|
||||
|
||||
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric) \
|
||||
RABBITIZER_REG_##prefix##_##name
|
||||
|
||||
|
||||
typedef enum RabbitizerRegister_GprO32 {
|
||||
#include "registers/RabbitizerRegister_GprO32.inc"
|
||||
} RabbitizerRegister_GprO32;
|
||||
|
||||
typedef enum RabbitizerRegister_GprN32 {
|
||||
#include "registers/RabbitizerRegister_GprN32.inc"
|
||||
} RabbitizerRegister_GprN32;
|
||||
|
||||
typedef enum RabbitizerRegister_Cop0 {
|
||||
#include "registers/RabbitizerRegister_Cop0.inc"
|
||||
} RabbitizerRegister_Cop0;
|
||||
|
||||
// Float registers
|
||||
typedef enum RabbitizerRegister_Cop1O32 {
|
||||
#include "registers/RabbitizerRegister_Cop1O32.inc"
|
||||
} RabbitizerRegister_Cop1O32;
|
||||
|
||||
typedef enum RabbitizerRegister_Cop1N32 {
|
||||
#include "registers/RabbitizerRegister_Cop1N32.inc"
|
||||
} RabbitizerRegister_Cop1N32;
|
||||
|
||||
typedef enum RabbitizerRegister_Cop1N64 {
|
||||
#include "registers/RabbitizerRegister_Cop1N64.inc"
|
||||
} RabbitizerRegister_Cop1N64;
|
||||
|
||||
typedef enum RabbitizerRegister_Cop1Control {
|
||||
#include "registers/RabbitizerRegister_Cop1Control.inc"
|
||||
} RabbitizerRegister_Cop1Control;
|
||||
|
||||
typedef enum RabbitizerRegister_Cop2 {
|
||||
#include "registers/RabbitizerRegister_Cop2.inc"
|
||||
} RabbitizerRegister_Cop2;
|
||||
|
||||
|
||||
/* RSP */
|
||||
|
||||
typedef enum RabbitizerRegister_RspGpr {
|
||||
#include "registers/RabbitizerRegister_RspGpr.inc"
|
||||
} RabbitizerRegister_RspGpr;
|
||||
|
||||
typedef enum RabbitizerRegister_RspCop0 {
|
||||
#include "registers/RabbitizerRegister_RspCop0.inc"
|
||||
} RabbitizerRegister_RspCop0;
|
||||
|
||||
typedef enum RabbitizerRegister_RspCop2 {
|
||||
#include "registers/RabbitizerRegister_RspCop2.inc"
|
||||
} RabbitizerRegister_RspCop2;
|
||||
|
||||
typedef enum RabbitizerRegister_RspCop2Control {
|
||||
#include "registers/RabbitizerRegister_RspCop2Control.inc"
|
||||
} RabbitizerRegister_RspCop2Control;
|
||||
|
||||
typedef enum RabbitizerRegister_RspVector {
|
||||
#include "registers/RabbitizerRegister_RspVector.inc"
|
||||
} RabbitizerRegister_RspVector;
|
||||
|
||||
/* RSP */
|
||||
|
||||
/* R5900 */
|
||||
|
||||
typedef enum RabbitizerRegister_R5900VF {
|
||||
#include "registers/RabbitizerRegister_R5900VF.inc"
|
||||
} RabbitizerRegister_R5900VF;
|
||||
|
||||
typedef enum RabbitizerRegister_R5900VI {
|
||||
#include "registers/RabbitizerRegister_R5900VI.inc"
|
||||
} RabbitizerRegister_R5900VI;
|
||||
|
||||
/* R5900 */
|
||||
|
||||
|
||||
#undef RABBITIZER_DEF_REG
|
||||
#undef RABBITIZER_DEF_REG_NODOLLAR
|
@ -6,18 +6,18 @@ RABBITIZER_DEF_INSTR_ID(
|
||||
.operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate}
|
||||
)
|
||||
|
||||
#include "instructions/instr_id/cpu/cpu_normal.inc"
|
||||
#include "instructions/instr_id/cpu/cpu_special.inc"
|
||||
#include "instructions/instr_id/cpu/cpu_regimm.inc"
|
||||
#include "instructions/instr_id/cpu/cpu_cop0.inc"
|
||||
#include "instructions/instr_id/cpu/cpu_cop0_bc0.inc"
|
||||
#include "instructions/instr_id/cpu/cpu_cop0_tlb.inc"
|
||||
#include "instructions/instr_id/cpu/cpu_cop1.inc"
|
||||
#include "instructions/instr_id/cpu/cpu_cop1_bc1.inc"
|
||||
#include "instructions/instr_id/cpu/cpu_cop1_fpu_s.inc"
|
||||
#include "instructions/instr_id/cpu/cpu_cop1_fpu_d.inc"
|
||||
#include "instructions/instr_id/cpu/cpu_cop1_fpu_w.inc"
|
||||
#include "instructions/instr_id/cpu/cpu_cop1_fpu_l.inc"
|
||||
#include "cpu/cpu_normal.inc"
|
||||
#include "cpu/cpu_special.inc"
|
||||
#include "cpu/cpu_regimm.inc"
|
||||
#include "cpu/cpu_cop0.inc"
|
||||
#include "cpu/cpu_cop0_bc0.inc"
|
||||
#include "cpu/cpu_cop0_tlb.inc"
|
||||
#include "cpu/cpu_cop1.inc"
|
||||
#include "cpu/cpu_cop1_bc1.inc"
|
||||
#include "cpu/cpu_cop1_fpu_s.inc"
|
||||
#include "cpu/cpu_cop1_fpu_d.inc"
|
||||
#include "cpu/cpu_cop1_fpu_w.inc"
|
||||
#include "cpu/cpu_cop1_fpu_l.inc"
|
||||
|
||||
RABBITIZER_DEF_INSTR_ID(
|
||||
cpu, , USERDEF_00,
|
||||
|
@ -7,24 +7,24 @@ RABBITIZER_DEF_INSTR_ID(
|
||||
.instrType=RABBITIZER_INSTR_TYPE_UNKNOWN
|
||||
)
|
||||
|
||||
#include "instructions/instr_id/r5900/r5900_normal.inc"
|
||||
#include "instructions/instr_id/r5900/r5900_special.inc"
|
||||
#include "instructions/instr_id/r5900/r5900_regimm.inc"
|
||||
#include "r5900/r5900_normal.inc"
|
||||
#include "r5900/r5900_special.inc"
|
||||
#include "r5900/r5900_regimm.inc"
|
||||
|
||||
#include "instructions/instr_id/r5900/r5900_mmi.inc"
|
||||
#include "instructions/instr_id/r5900/r5900_mmi_0.inc"
|
||||
#include "instructions/instr_id/r5900/r5900_mmi_1.inc"
|
||||
#include "instructions/instr_id/r5900/r5900_mmi_2.inc"
|
||||
#include "instructions/instr_id/r5900/r5900_mmi_3.inc"
|
||||
#include "r5900/r5900_mmi.inc"
|
||||
#include "r5900/r5900_mmi_0.inc"
|
||||
#include "r5900/r5900_mmi_1.inc"
|
||||
#include "r5900/r5900_mmi_2.inc"
|
||||
#include "r5900/r5900_mmi_3.inc"
|
||||
|
||||
#include "instructions/instr_id/r5900/r5900_cop0_tlb.inc"
|
||||
#include "r5900/r5900_cop0_tlb.inc"
|
||||
|
||||
#include "instructions/instr_id/r5900/r5900_cop1_fpu_s.inc"
|
||||
#include "r5900/r5900_cop1_fpu_s.inc"
|
||||
|
||||
#include "instructions/instr_id/r5900/r5900_cop2.inc"
|
||||
#include "instructions/instr_id/r5900/r5900_cop2_bc2.inc"
|
||||
#include "instructions/instr_id/r5900/r5900_cop2_special1.inc"
|
||||
#include "instructions/instr_id/r5900/r5900_cop2_special2.inc"
|
||||
#include "r5900/r5900_cop2.inc"
|
||||
#include "r5900/r5900_cop2_bc2.inc"
|
||||
#include "r5900/r5900_cop2_special1.inc"
|
||||
#include "r5900/r5900_cop2_special2.inc"
|
||||
|
||||
RABBITIZER_DEF_INSTR_ID(
|
||||
r5900, , USERDEF_00,
|
||||
|
@ -7,18 +7,18 @@ RABBITIZER_DEF_INSTR_ID(
|
||||
.operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh}
|
||||
)
|
||||
|
||||
#include "instructions/instr_id/rsp/rsp_cop2.inc"
|
||||
#include "instructions/instr_id/rsp/rsp_cop2_vu.inc"
|
||||
#include "rsp/rsp_cop2.inc"
|
||||
#include "rsp/rsp_cop2_vu.inc"
|
||||
|
||||
#include "instructions/instr_id/rsp/rsp_normal_lwc2.inc"
|
||||
#include "instructions/instr_id/rsp/rsp_normal_swc2.inc"
|
||||
#include "rsp/rsp_normal_lwc2.inc"
|
||||
#include "rsp/rsp_normal_swc2.inc"
|
||||
|
||||
// CPU instructions but with rsp registers
|
||||
|
||||
#include "instructions/instr_id/rsp/rsp_normal.inc"
|
||||
#include "instructions/instr_id/rsp/rsp_special.inc"
|
||||
#include "instructions/instr_id/rsp/rsp_regimm.inc"
|
||||
#include "instructions/instr_id/rsp/rsp_cop0.inc"
|
||||
#include "rsp/rsp_normal.inc"
|
||||
#include "rsp/rsp_special.inc"
|
||||
#include "rsp/rsp_regimm.inc"
|
||||
#include "rsp/rsp_cop0.inc"
|
||||
|
||||
RABBITIZER_DEF_INSTR_ID(
|
||||
rsp, , USERDEF_00,
|
||||
|
15
src/instructions/InstrCategory_Names_array.table.h
Normal file
15
src/instructions/InstrCategory_Names_array.table.h
Normal file
@ -0,0 +1,15 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef InstrCategory_Names_array_table_h_automatic
|
||||
#define InstrCategory_Names_array_table_h_automatic
|
||||
|
||||
const char *const RabbitizerInstrCategory_Names[] = {
|
||||
[RABBITIZER_INSTRCAT_CPU] = "CPU",
|
||||
[RABBITIZER_INSTRCAT_RSP] = "RSP",
|
||||
[RABBITIZER_INSTRCAT_R5900] = "R5900",
|
||||
};
|
||||
|
||||
#endif
|
10
src/instructions/InstrCategory_Names_array.table.template
Normal file
10
src/instructions/InstrCategory_Names_array.table.template
Normal file
@ -0,0 +1,10 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_CATEGORY(name) [RABBITIZER_INSTRCAT_##name] = #name
|
||||
|
||||
const char *const RabbitizerInstrCategory_Names[] = {
|
||||
#include "instructions/InstrCategory.inc"
|
||||
};
|
||||
|
||||
#undef RABBITIZER_DEF_INSTR_CATEGORY
|
692
src/instructions/InstrDescriptor_Descriptors_array.table.h
Normal file
692
src/instructions/InstrDescriptor_Descriptors_array.table.h
Normal file
@ -0,0 +1,692 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef InstrDescriptor_Descriptors_array_table_h_automatic
|
||||
#define InstrDescriptor_Descriptors_array_table_h_automatic
|
||||
|
||||
const RabbitizerInstrDescriptor RabbitizerInstrDescriptor_Descriptors[] = {
|
||||
[RABBITIZER_INSTR_ID_cpu_INVALID] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate} },
|
||||
[RABBITIZER_INSTR_ID_cpu_j] = { .operands={RAB_OPERAND_cpu_label}, .instrType=RABBITIZER_INSTR_TYPE_J, .isJump=true, .isJumpWithAddress=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_jal] = { .operands={RAB_OPERAND_cpu_label}, .instrType=RABBITIZER_INSTR_TYPE_J, .isJump=true, .isJumpWithAddress=true, .doesLink=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_beq] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_I, .isBranch=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bne] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_I, .isBranch=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_beql] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_I, .isBranch=true, .isBranchLikely=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bnel] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_I, .isBranch=true, .isBranchLikely=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_blez] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_I, .isBranch=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_blezl] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_I, .isBranch=true, .isBranchLikely=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bgtz] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_I, .isBranch=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bgtzl] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_I, .isBranch=true, .isBranchLikely=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_addi] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .notEmitedByCompilers=true, .canBeLo=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_addiu] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_slti] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sltiu] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_andi] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .isUnsigned=true, .modifiesRt=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ori] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .isUnsigned=true, .modifiesRt=true, .readsRs=true, .canBeLo=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_xori] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .isUnsigned=true, .modifiesRt=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_daddi] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_daddiu] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_lui] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .isUnsigned=true, .modifiesRt=true, .canBeHi=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ldl] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ldr] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_lb] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_BYTE },
|
||||
[RABBITIZER_INSTR_ID_cpu_lh] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_SHORT },
|
||||
[RABBITIZER_INSTR_ID_cpu_lwl] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_lw] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_WORD },
|
||||
[RABBITIZER_INSTR_ID_cpu_lbu] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_BYTE, .doesUnsignedMemoryAccess=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_lhu] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_SHORT, .doesUnsignedMemoryAccess=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_lwr] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_lwu] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_WORD, .doesUnsignedMemoryAccess=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sb] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true, .accessType=RAB_ACCESSTYPE_BYTE },
|
||||
[RABBITIZER_INSTR_ID_cpu_sh] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true, .accessType=RAB_ACCESSTYPE_SHORT },
|
||||
[RABBITIZER_INSTR_ID_cpu_swl] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sw] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true, .accessType=RAB_ACCESSTYPE_WORD },
|
||||
[RABBITIZER_INSTR_ID_cpu_sdl] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sdr] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_swr] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ll] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_pref] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_lld] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ld] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_DOUBLEWORD },
|
||||
[RABBITIZER_INSTR_ID_cpu_sc] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_scd] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sd] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true, .accessType=RAB_ACCESSTYPE_DOUBLEWORD },
|
||||
[RABBITIZER_INSTR_ID_cpu_cache] = { .operands={RAB_OPERAND_cpu_op, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .notEmitedByCompilers=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_lwc1] = { .operands={RAB_OPERAND_cpu_ft, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .isFloat=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_FLOAT },
|
||||
[RABBITIZER_INSTR_ID_cpu_ldc1] = { .operands={RAB_OPERAND_cpu_ft, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .isFloat=true, .isDouble=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_DOUBLEFLOAT },
|
||||
[RABBITIZER_INSTR_ID_cpu_swc1] = { .operands={RAB_OPERAND_cpu_ft, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .isFloat=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesStore=true, .accessType=RAB_ACCESSTYPE_FLOAT },
|
||||
[RABBITIZER_INSTR_ID_cpu_sdc1] = { .operands={RAB_OPERAND_cpu_ft, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .isFloat=true, .isDouble=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesStore=true, .accessType=RAB_ACCESSTYPE_DOUBLEFLOAT },
|
||||
[RABBITIZER_INSTR_ID_cpu_lwc2] = { .operands={RAB_OPERAND_cpu_cop2t, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ldc2] = { .operands={RAB_OPERAND_cpu_cop2t, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_swc2] = { .operands={RAB_OPERAND_cpu_cop2t, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesStore=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sdc2] = { .operands={RAB_OPERAND_cpu_cop2t, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesStore=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_b] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_I, .isBranch=true, .isPseudo=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_beqz] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .isBranch=true, .isPseudo=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bnez] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .isBranch=true, .isPseudo=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sll] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_srl] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sra] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dsll] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dsrl] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dsra] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dsll32] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dsrl32] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dsra32] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dsllv] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dsrlv] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dsrav] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sllv] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_srlv] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_srav] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_mthi] = { .operands={RAB_OPERAND_cpu_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .modifiesHI=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_mtlo] = { .operands={RAB_OPERAND_cpu_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .modifiesLO=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_jr] = { .operands={RAB_OPERAND_cpu_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .isJump=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_jalr] = { .operands={RAB_OPERAND_cpu_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .isJump=true, .modifiesRd=true, .readsRs=true, .doesLink=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_jalr_rd] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .isJump=true, .modifiesRd=true, .readsRs=true, .doesLink=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_mfhi] = { .operands={RAB_OPERAND_cpu_rd}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsHI=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_mflo] = { .operands={RAB_OPERAND_cpu_rd}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsLO=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_movz] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_movn] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_div] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .readsRd=true, .modifiesHI=true, .modifiesLO=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_divu] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .readsRd=true, .modifiesHI=true, .modifiesLO=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sn64_div] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .modifiesHI=true, .modifiesLO=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sn64_divu] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .modifiesHI=true, .modifiesLO=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ddiv] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .readsRd=true, .modifiesHI=true, .modifiesLO=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ddivu] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .readsRd=true, .modifiesHI=true, .modifiesLO=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_add] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true, .notEmitedByCompilers=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_addu] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true, .maybeIsMove=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sub] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_subu] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_and] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_or] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .maybeIsMove=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_xor] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_nor] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_slt] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sltu] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dadd] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_daddu] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true, .maybeIsMove=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dsub] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dsubu] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_syscall] = { .operands={RAB_OPERAND_cpu_code}, .instrType=RABBITIZER_INSTR_TYPE_R },
|
||||
[RABBITIZER_INSTR_ID_cpu_break] = { .operands={RAB_OPERAND_cpu_code}, .instrType=RABBITIZER_INSTR_TYPE_R },
|
||||
[RABBITIZER_INSTR_ID_cpu_sync] = { .operands={0}, .instrType=RABBITIZER_INSTR_TYPE_R },
|
||||
[RABBITIZER_INSTR_ID_cpu_mult] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .modifiesHI=true, .modifiesLO=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_multu] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .modifiesHI=true, .modifiesLO=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dmult] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .modifiesHI=true, .modifiesLO=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dmultu] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .modifiesHI=true, .modifiesLO=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_tge] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_code_lower}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .isTrap=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_tgeu] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_code_lower}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .isTrap=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_tlt] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_code_lower}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .isTrap=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_tltu] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_code_lower}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .isTrap=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_teq] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_code_lower}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .isTrap=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_tne] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_code_lower}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .readsRt=true, .isTrap=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_nop] = { .operands={0}, .instrType=RABBITIZER_INSTR_TYPE_R, .isPseudo=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_move] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .maybeIsMove=true, .isPseudo=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_not] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .isPseudo=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_negu] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true, .isPseudo=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bltz] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isBranch=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bgez] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isBranch=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bltzl] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isBranch=true, .isBranchLikely=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bgezl] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isBranch=true, .isBranchLikely=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_tgei] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isTrap=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_tgeiu] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isTrap=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_tlti] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isTrap=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_tltiu] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isTrap=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_teqi] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isTrap=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_tnei] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isTrap=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bltzal] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isBranch=true, .readsRs=true, .doesLink=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bgezal] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isBranch=true, .readsRs=true, .doesLink=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bltzall] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isBranch=true, .isBranchLikely=true, .readsRs=true, .doesLink=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bgezall] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isBranch=true, .isBranchLikely=true, .readsRs=true, .doesLink=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bal] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isBranch=true, .doesLink=true, .isPseudo=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_mfc0] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_cop0d}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .modifiesRt=true, .notEmitedByCompilers=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dmfc0] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_cop0d}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .modifiesRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_cfc0] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_cop0d}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .modifiesRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_mtc0] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_cop0d}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .readsRt=true, .notEmitedByCompilers=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dmtc0] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_cop0d}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ctc0] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_cop0d}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bc0f] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bc0t] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bc0fl] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isBranch=true, .isBranchLikely=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bc0tl] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isBranch=true, .isBranchLikely=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_tlbr] = { .operands={0}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .notEmitedByCompilers=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_tlbwi] = { .operands={0}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .notEmitedByCompilers=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_tlbwr] = { .operands={0}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN },
|
||||
[RABBITIZER_INSTR_ID_cpu_tlbp] = { .operands={0}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .notEmitedByCompilers=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_eret] = { .operands={0}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .notEmitedByCompilers=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_mfc1] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true, .modifiesRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dmfc1] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true, .modifiesRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_mtc1] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_dmtc1] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_cfc1] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_cop1cs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true, .modifiesRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ctc1] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_cop1cs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bc1f] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bc1t] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bc1fl] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isBranch=true, .isBranchLikely=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_bc1tl] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isBranch=true, .isBranchLikely=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_add_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sub_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_mul_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_div_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sqrt_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_abs_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_mov_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_neg_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_round_l_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_trunc_l_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ceil_l_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_floor_l_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_round_w_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_trunc_w_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ceil_w_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_floor_w_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_d_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true, .isDouble=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_w_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_l_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_f_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_un_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_eq_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ueq_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_olt_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ult_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ole_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ule_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_sf_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ngle_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_seq_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ngl_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_lt_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_nge_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_le_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ngt_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_add_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sub_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_mul_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_div_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_sqrt_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_abs_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_mov_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_neg_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_round_l_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_trunc_l_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ceil_l_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_floor_l_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_round_w_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_trunc_w_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_ceil_w_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_floor_w_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_s_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true, .isDouble=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_w_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true, .isDouble=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_l_d] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true, .isDouble=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_f_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_un_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_eq_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ueq_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_olt_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ult_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ole_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ule_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_df_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ngle_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_deq_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ngl_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_lt_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_nge_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_le_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ngt_d] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_s_w] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_d_w] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true, .isDouble=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_s_l] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_d_l] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .isFloat=true, .isDouble=true },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_00] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_01] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_02] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_03] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_04] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_05] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_06] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_07] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_08] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_09] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_10] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_11] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_12] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_13] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_14] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_15] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_16] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_17] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_18] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_19] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_cpu_MAX] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_INVALID] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_mfc2] = { .operands={RAB_OPERAND_rsp_cop2t, RAB_OPERAND_rsp_vs_index} },
|
||||
[RABBITIZER_INSTR_ID_rsp_mtc2] = { .operands={RAB_OPERAND_rsp_cop2t, RAB_OPERAND_rsp_vs_index} },
|
||||
[RABBITIZER_INSTR_ID_rsp_cfc2] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_rsp_cop2cd}, .modifiesRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_ctc2] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_rsp_cop2cd}, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmulf] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmulu] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vrndp] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmulq] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmudl] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmudm] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmudn] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmudh] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmacf] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmacu] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vrndn] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmacq] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmadl] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmadm] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmadn] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmadh] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vadd] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vsub] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vabs] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vaddc] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vsubc] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vsar] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vand] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vnand] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vor] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vnor] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vxor] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vnxor] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vlt] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_veq] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vne] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vge] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vcl] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vch] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vcr] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmrg] = { .operands={RAB_OPERAND_rsp_vd, RAB_OPERAND_rsp_vs, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vrcp] = { .operands={RAB_OPERAND_rsp_vd_de, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vrcpl] = { .operands={RAB_OPERAND_rsp_vd_de, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vrcph] = { .operands={RAB_OPERAND_rsp_vd_de, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vmov] = { .operands={RAB_OPERAND_rsp_vd_de, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vrsq] = { .operands={RAB_OPERAND_rsp_vd_de, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vrsql] = { .operands={RAB_OPERAND_rsp_vd_de, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vrsqh] = { .operands={RAB_OPERAND_rsp_vd_de, RAB_OPERAND_rsp_vt_elementhigh} },
|
||||
[RABBITIZER_INSTR_ID_rsp_vnop] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_lbv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_lsv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_llv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_ldv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_lqv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_lrv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_lpv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_luv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_lhv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_lfv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_ltv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_sbv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_ssv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_slv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_sdv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_sqv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_srv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_spv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_suv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_shv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_sfv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_stv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_swv] = { .operands={RAB_OPERAND_rsp_vt_elementlow, RAB_OPERAND_rsp_offset_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_j] = { .operands={RAB_OPERAND_cpu_label}, .instrType=RABBITIZER_INSTR_TYPE_J, .isJump=true, .isJumpWithAddress=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_jal] = { .operands={RAB_OPERAND_cpu_label}, .instrType=RABBITIZER_INSTR_TYPE_J, .isJump=true, .isJumpWithAddress=true, .doesLink=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_beq] = { .operands={RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .readsRs=true, .readsRt=true, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_bne] = { .operands={RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .readsRs=true, .readsRt=true, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_blez] = { .operands={RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .readsRs=true, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_bgtz] = { .operands={RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .readsRs=true, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_addi] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .notEmitedByCompilers=true, .canBeLo=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_addiu] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_slti] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_sltiu] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_andi] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .isUnsigned=true, .modifiesRt=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_ori] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .isUnsigned=true, .modifiesRt=true, .readsRs=true, .canBeLo=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_xori] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .isUnsigned=true, .modifiesRt=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_lui] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_I, .isUnsigned=true, .modifiesRt=true, .canBeHi=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_lb] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_BYTE },
|
||||
[RABBITIZER_INSTR_ID_rsp_lh] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_SHORT },
|
||||
[RABBITIZER_INSTR_ID_rsp_lw] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_WORD },
|
||||
[RABBITIZER_INSTR_ID_rsp_lbu] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_BYTE, .doesUnsignedMemoryAccess=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_lhu] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true, .accessType=RAB_ACCESSTYPE_SHORT, .doesUnsignedMemoryAccess=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_sb] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true, .accessType=RAB_ACCESSTYPE_BYTE },
|
||||
[RABBITIZER_INSTR_ID_rsp_sh] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true, .accessType=RAB_ACCESSTYPE_SHORT },
|
||||
[RABBITIZER_INSTR_ID_rsp_sw] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true, .accessType=RAB_ACCESSTYPE_WORD },
|
||||
[RABBITIZER_INSTR_ID_rsp_pref] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_b] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_beqz] = { .operands={RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .readsRs=true, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_bnez] = { .operands={RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .readsRs=true, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_sll] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rt, RAB_OPERAND_cpu_sa}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_srl] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rt, RAB_OPERAND_cpu_sa}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_sra] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rt, RAB_OPERAND_cpu_sa}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_sllv] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_srlv] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_srav] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_jr] = { .operands={RAB_OPERAND_rsp_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .readsRs=true, .isJump=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_jalr] = { .operands={RAB_OPERAND_rsp_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .isJump=true, .modifiesRd=true, .readsRs=true, .doesLink=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_jalr_rd] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .isJump=true, .modifiesRd=true, .readsRs=true, .doesLink=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_movz] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_movn] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_add] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true, .notEmitedByCompilers=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_addu] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_sub] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_subu] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_and] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_or] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_xor] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_nor] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_slt] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_sltu] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs, RAB_OPERAND_rsp_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_break] = { .operands={RAB_OPERAND_cpu_code}, .instrType=RABBITIZER_INSTR_TYPE_R },
|
||||
[RABBITIZER_INSTR_ID_rsp_nop] = { .operands={0}, .instrType=RABBITIZER_INSTR_TYPE_R, .isPseudo=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_move] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .isPseudo=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_not] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rs}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .isPseudo=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_negu] = { .operands={RAB_OPERAND_rsp_rd, RAB_OPERAND_rsp_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRt=true, .isPseudo=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_bltz] = { .operands={RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .readsRs=true, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_bgez] = { .operands={RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .readsRs=true, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_bltzal] = { .operands={RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .readsRs=true, .isBranch=true, .doesLink=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_bgezal] = { .operands={RAB_OPERAND_rsp_rs, RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .readsRs=true, .isBranch=true, .doesLink=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_bal] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .isBranch=true, .doesLink=true, .isPseudo=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_mfc0] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_cop0d}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .modifiesRt=true, .notEmitedByCompilers=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_mtc0] = { .operands={RAB_OPERAND_rsp_rt, RAB_OPERAND_rsp_cop0d}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN, .readsRt=true, .notEmitedByCompilers=true },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_00] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_01] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_02] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_03] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_04] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_05] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_06] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_07] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_08] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_09] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_10] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_11] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_12] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_13] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_14] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_15] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_16] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_17] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_18] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_19] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_rsp_MAX] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_INVALID] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN },
|
||||
[RABBITIZER_INSTR_ID_r5900_lq] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .modifiesRt=true, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_sq] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_immediate_base}, .instrType=RABBITIZER_INSTR_TYPE_I, .readsRs=true, .readsRt=true, .canBeLo=true, .doesDereference=true, .doesStore=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_lqc2] = { .operands={RAB_OPERAND_r5900_vft, RAB_OPERAND_cpu_immediate_base}, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesLoad=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_sqc2] = { .operands={RAB_OPERAND_r5900_vft, RAB_OPERAND_cpu_immediate_base}, .readsRs=true, .canBeLo=true, .doesDereference=true, .doesStore=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_sync_p] = { .operands={0}, .instrType=RABBITIZER_INSTR_TYPE_R },
|
||||
[RABBITIZER_INSTR_ID_r5900_mult] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .instrType=RABBITIZER_INSTR_TYPE_R, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_mfsa] = { .operands={RAB_OPERAND_cpu_rd}, .modifiesRd=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_mtsa] = { .operands={RAB_OPERAND_cpu_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_mtsab] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_mtsah] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_immediate}, .instrType=RABBITIZER_INSTR_TYPE_REGIMM, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_madd] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_maddu] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_plzcw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs}, .modifiesRd=true, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_mfhi1] = { .operands={RAB_OPERAND_cpu_rd}, .modifiesRd=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_mthi1] = { .operands={RAB_OPERAND_cpu_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_mflo1] = { .operands={RAB_OPERAND_cpu_rd}, .readsRd=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_mtlo1] = { .operands={RAB_OPERAND_cpu_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_mult1] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_multu1] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_div1] = { .operands={RAB_OPERAND_cpu_zero, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_divu1] = { .operands={RAB_OPERAND_cpu_zero, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_madd1] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_maddu1] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl] = { .operands={RAB_OPERAND_cpu_rd}, .modifiesRd=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmthl] = { .operands={RAB_OPERAND_cpu_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psllh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psrlh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psrah] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psllw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psrlw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psraw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_paddw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psubw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pcgtw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmaxw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_paddh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psubh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pcgth] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmaxh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_paddb] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psubb] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pcgtb] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_paddsw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psubsw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pextlw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_ppacw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_paddsh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psubsh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pextlh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_ppach] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_paddsb] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psubsb] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pextlb] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_ppacb] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pext5] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_ppac5] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pabsw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pceqw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pminw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_padsbh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pabsh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pceqh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pminh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pceqb] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_padduw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psubuw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pextuw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_padduh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psubuh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pextuh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_paddub] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psubub] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pextub] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_qfsrv] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmaddw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psllvw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psrlvw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmsubw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhi] = { .operands={RAB_OPERAND_cpu_rd}, .modifiesRd=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmflo] = { .operands={RAB_OPERAND_cpu_rd}, .modifiesRd=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pinth] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmultw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pdivw] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pcpyld] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmaddh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_phmadh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pand] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pxor] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmsubh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_phmsbh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pexeh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_prevh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmulth] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pdivbw] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pexew] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_prot3w] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmadduw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psravw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_rs}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmthi] = { .operands={RAB_OPERAND_cpu_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmtlo] = { .operands={RAB_OPERAND_cpu_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pinteh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmultuw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pdivuw] = { .operands={RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pcpyud] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_por] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pnor] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pexch] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pcpyh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pexcw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_ei] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_di] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_c1__sqrt_s] = { .operands={RAB_OPERAND_cpu_copraw} },
|
||||
[RABBITIZER_INSTR_ID_r5900_rsqrt_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_adda_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_suba_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_mula_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_madd_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_msub_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_madda_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_msuba_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_max_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_min_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_trunc_w_s] = { .operands={RAB_OPERAND_cpu_fd, RAB_OPERAND_cpu_fs}, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_c_lt_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_c_le_s] = { .operands={RAB_OPERAND_cpu_fs, RAB_OPERAND_cpu_ft}, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_qmfc2] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_r5900_vfs}, .modifiesRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_cfc2] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_r5900_vis}, .modifiesRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_qmtc2] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_r5900_vfs}, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_ctc2] = { .operands={RAB_OPERAND_cpu_rt, RAB_OPERAND_r5900_vis}, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_bc2f] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_bc2t] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .isBranch=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_bc2fl] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .isBranch=true, .isBranchLikely=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_bc2tl] = { .operands={RAB_OPERAND_cpu_branch_target_label}, .isBranch=true, .isBranchLikely=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddx] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddy] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddz] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddw] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubx] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsuby] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubz] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubw] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddx] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddy] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddz] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddw] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubx] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsuby] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubz] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubw] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaxx] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaxy] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaxz] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaxw] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vminix] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vminiy] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vminiz] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vminiw] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulx] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmuly] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulz] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulw] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulq] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_Q}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaxi] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_I}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmuli] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_I}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vminii] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_I}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddq] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_Q}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddq] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_Q}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddi] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_I}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddi] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_I}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubq] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_Q}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubq] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_Q}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubi] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_I}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubi] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_I}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vadd] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmadd] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmul] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmax] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsub] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsub] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vopmsub] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmini] = { .operands={RAB_OPERAND_r5900_vfdxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_viadd] = { .operands={RAB_OPERAND_r5900_vid, RAB_OPERAND_r5900_vis, RAB_OPERAND_r5900_vit} },
|
||||
[RABBITIZER_INSTR_ID_r5900_visub] = { .operands={RAB_OPERAND_r5900_vid, RAB_OPERAND_r5900_vis, RAB_OPERAND_r5900_vit} },
|
||||
[RABBITIZER_INSTR_ID_r5900_viaddi] = { .operands={RAB_OPERAND_r5900_vit, RAB_OPERAND_r5900_vis, RAB_OPERAND_r5900_immediate5} },
|
||||
[RABBITIZER_INSTR_ID_r5900_viand] = { .operands={RAB_OPERAND_r5900_vid, RAB_OPERAND_r5900_vis, RAB_OPERAND_r5900_vit} },
|
||||
[RABBITIZER_INSTR_ID_r5900_vior] = { .operands={RAB_OPERAND_r5900_vid, RAB_OPERAND_r5900_vis, RAB_OPERAND_r5900_vit} },
|
||||
[RABBITIZER_INSTR_ID_r5900_vcallms] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_vcallmsr] = { .operands={RAB_OPERAND_r5900_vis} },
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddax] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vadday] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddaz] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddaw] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubax] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubay] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubaz] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubaw] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddax] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmadday] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddaz] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddaw] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubax] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubay] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubaz] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubaw] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vitof0] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vfsxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vitof4] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vfsxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vitof12] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vfsxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vitof15] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vfsxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vftoi0] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vfsxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vftoi4] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vfsxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vftoi12] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vfsxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vftoi15] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vfsxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulax] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulay] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulaz] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulaw] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulaq] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_Q}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw },
|
||||
[RABBITIZER_INSTR_ID_r5900_vabs] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vfsxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulai] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_I}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw },
|
||||
[RABBITIZER_INSTR_ID_r5900_vclipw] = { .operands={RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftn}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddaq] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_Q}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddaq] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_Q}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddai] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_I}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddai] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_I}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubaq] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_Q}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubaq] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_Q}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubai] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_I}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubai] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_I}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vadda] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vfsxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmadda] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmula] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsuba] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsuba] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vfsxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vopmula] = { .operands={RAB_OPERAND_r5900_ACCxyzw, RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vftxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vnop] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmove] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vfsxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmr32] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vfsxyzw}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vlqi] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vis_postincr}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsqi] = { .operands={RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vit_postincr}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vlqd] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vis_predecr}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsqd] = { .operands={RAB_OPERAND_r5900_vfsxyzw, RAB_OPERAND_r5900_vit_predecr}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vdiv] = { .operands={RAB_OPERAND_r5900_Q, RAB_OPERAND_r5900_vfsl, RAB_OPERAND_r5900_vftm} },
|
||||
[RABBITIZER_INSTR_ID_r5900_vsqrt] = { .operands={RAB_OPERAND_r5900_Q, RAB_OPERAND_r5900_vftm} },
|
||||
[RABBITIZER_INSTR_ID_r5900_vrsqrt] = { .operands={RAB_OPERAND_r5900_Q, RAB_OPERAND_r5900_vfsl,RAB_OPERAND_r5900_vftm} },
|
||||
[RABBITIZER_INSTR_ID_r5900_vwaitq] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmtir] = { .operands={RAB_OPERAND_r5900_vit, RAB_OPERAND_r5900_vfsl} },
|
||||
[RABBITIZER_INSTR_ID_r5900_vmfir] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_vis}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vilwr] = { .operands={RAB_OPERAND_r5900_vit, RAB_OPERAND_r5900_vis}, .isFloat=true, .doesDereference=true, .doesLoad=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_viswr] = { .operands={RAB_OPERAND_r5900_vit, RAB_OPERAND_r5900_vis}, .isFloat=true, .doesDereference=true, .doesStore=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vrnext] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_R}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vrget] = { .operands={RAB_OPERAND_r5900_vftxyzw, RAB_OPERAND_r5900_R}, .instrSuffix=RABINSTRSUFFIX_R5900_xyzw, .isFloat=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_vrinit] = { .operands={RAB_OPERAND_r5900_R, RAB_OPERAND_r5900_vfsl} },
|
||||
[RABBITIZER_INSTR_ID_r5900_vrxor] = { .operands={RAB_OPERAND_r5900_R, RAB_OPERAND_r5900_vfsl} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_00] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_01] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_02] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_03] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_04] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_05] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_06] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_07] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_08] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_09] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_10] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_11] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_12] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_13] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_14] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_15] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_16] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_17] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_18] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_19] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_MAX] = { .operands={0} },
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,15 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, ...) [RABBITIZER_INSTR_ID_##prefix##_##name] = { __VA_ARGS__ },
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID_ALTNAME(prefix, caseBits, name, altname, ...) RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, __VA_ARGS__)
|
||||
|
||||
const RabbitizerInstrDescriptor RabbitizerInstrDescriptor_Descriptors[] = {
|
||||
#include "instructions/instr_id/RabbitizerInstrId_cpu.inc"
|
||||
#include "instructions/instr_id/RabbitizerInstrId_rsp.inc"
|
||||
#include "instructions/instr_id/RabbitizerInstrId_r5900.inc"
|
||||
};
|
||||
|
||||
#undef RABBITIZER_DEF_INSTR_ID
|
||||
#undef RABBITIZER_DEF_INSTR_ID_ALTNAME
|
692
src/instructions/InstrId_Names_array.table.h
Normal file
692
src/instructions/InstrId_Names_array.table.h
Normal file
@ -0,0 +1,692 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef InstrId_Names_array_table_h_automatic
|
||||
#define InstrId_Names_array_table_h_automatic
|
||||
|
||||
const char *RabbitizerInstrId_Names[] = {
|
||||
[RABBITIZER_INSTR_ID_cpu_INVALID] = "INVALID",
|
||||
[RABBITIZER_INSTR_ID_cpu_j] = "j",
|
||||
[RABBITIZER_INSTR_ID_cpu_jal] = "jal",
|
||||
[RABBITIZER_INSTR_ID_cpu_beq] = "beq",
|
||||
[RABBITIZER_INSTR_ID_cpu_bne] = "bne",
|
||||
[RABBITIZER_INSTR_ID_cpu_beql] = "beql",
|
||||
[RABBITIZER_INSTR_ID_cpu_bnel] = "bnel",
|
||||
[RABBITIZER_INSTR_ID_cpu_blez] = "blez",
|
||||
[RABBITIZER_INSTR_ID_cpu_blezl] = "blezl",
|
||||
[RABBITIZER_INSTR_ID_cpu_bgtz] = "bgtz",
|
||||
[RABBITIZER_INSTR_ID_cpu_bgtzl] = "bgtzl",
|
||||
[RABBITIZER_INSTR_ID_cpu_addi] = "addi",
|
||||
[RABBITIZER_INSTR_ID_cpu_addiu] = "addiu",
|
||||
[RABBITIZER_INSTR_ID_cpu_slti] = "slti",
|
||||
[RABBITIZER_INSTR_ID_cpu_sltiu] = "sltiu",
|
||||
[RABBITIZER_INSTR_ID_cpu_andi] = "andi",
|
||||
[RABBITIZER_INSTR_ID_cpu_ori] = "ori",
|
||||
[RABBITIZER_INSTR_ID_cpu_xori] = "xori",
|
||||
[RABBITIZER_INSTR_ID_cpu_daddi] = "daddi",
|
||||
[RABBITIZER_INSTR_ID_cpu_daddiu] = "daddiu",
|
||||
[RABBITIZER_INSTR_ID_cpu_lui] = "lui",
|
||||
[RABBITIZER_INSTR_ID_cpu_ldl] = "ldl",
|
||||
[RABBITIZER_INSTR_ID_cpu_ldr] = "ldr",
|
||||
[RABBITIZER_INSTR_ID_cpu_lb] = "lb",
|
||||
[RABBITIZER_INSTR_ID_cpu_lh] = "lh",
|
||||
[RABBITIZER_INSTR_ID_cpu_lwl] = "lwl",
|
||||
[RABBITIZER_INSTR_ID_cpu_lw] = "lw",
|
||||
[RABBITIZER_INSTR_ID_cpu_lbu] = "lbu",
|
||||
[RABBITIZER_INSTR_ID_cpu_lhu] = "lhu",
|
||||
[RABBITIZER_INSTR_ID_cpu_lwr] = "lwr",
|
||||
[RABBITIZER_INSTR_ID_cpu_lwu] = "lwu",
|
||||
[RABBITIZER_INSTR_ID_cpu_sb] = "sb",
|
||||
[RABBITIZER_INSTR_ID_cpu_sh] = "sh",
|
||||
[RABBITIZER_INSTR_ID_cpu_swl] = "swl",
|
||||
[RABBITIZER_INSTR_ID_cpu_sw] = "sw",
|
||||
[RABBITIZER_INSTR_ID_cpu_sdl] = "sdl",
|
||||
[RABBITIZER_INSTR_ID_cpu_sdr] = "sdr",
|
||||
[RABBITIZER_INSTR_ID_cpu_swr] = "swr",
|
||||
[RABBITIZER_INSTR_ID_cpu_ll] = "ll",
|
||||
[RABBITIZER_INSTR_ID_cpu_pref] = "pref",
|
||||
[RABBITIZER_INSTR_ID_cpu_lld] = "lld",
|
||||
[RABBITIZER_INSTR_ID_cpu_ld] = "ld",
|
||||
[RABBITIZER_INSTR_ID_cpu_sc] = "sc",
|
||||
[RABBITIZER_INSTR_ID_cpu_scd] = "scd",
|
||||
[RABBITIZER_INSTR_ID_cpu_sd] = "sd",
|
||||
[RABBITIZER_INSTR_ID_cpu_cache] = "cache",
|
||||
[RABBITIZER_INSTR_ID_cpu_lwc1] = "lwc1",
|
||||
[RABBITIZER_INSTR_ID_cpu_ldc1] = "ldc1",
|
||||
[RABBITIZER_INSTR_ID_cpu_swc1] = "swc1",
|
||||
[RABBITIZER_INSTR_ID_cpu_sdc1] = "sdc1",
|
||||
[RABBITIZER_INSTR_ID_cpu_lwc2] = "lwc2",
|
||||
[RABBITIZER_INSTR_ID_cpu_ldc2] = "ldc2",
|
||||
[RABBITIZER_INSTR_ID_cpu_swc2] = "swc2",
|
||||
[RABBITIZER_INSTR_ID_cpu_sdc2] = "sdc2",
|
||||
[RABBITIZER_INSTR_ID_cpu_b] = "b",
|
||||
[RABBITIZER_INSTR_ID_cpu_beqz] = "beqz",
|
||||
[RABBITIZER_INSTR_ID_cpu_bnez] = "bnez",
|
||||
[RABBITIZER_INSTR_ID_cpu_sll] = "sll",
|
||||
[RABBITIZER_INSTR_ID_cpu_srl] = "srl",
|
||||
[RABBITIZER_INSTR_ID_cpu_sra] = "sra",
|
||||
[RABBITIZER_INSTR_ID_cpu_dsll] = "dsll",
|
||||
[RABBITIZER_INSTR_ID_cpu_dsrl] = "dsrl",
|
||||
[RABBITIZER_INSTR_ID_cpu_dsra] = "dsra",
|
||||
[RABBITIZER_INSTR_ID_cpu_dsll32] = "dsll32",
|
||||
[RABBITIZER_INSTR_ID_cpu_dsrl32] = "dsrl32",
|
||||
[RABBITIZER_INSTR_ID_cpu_dsra32] = "dsra32",
|
||||
[RABBITIZER_INSTR_ID_cpu_dsllv] = "dsllv",
|
||||
[RABBITIZER_INSTR_ID_cpu_dsrlv] = "dsrlv",
|
||||
[RABBITIZER_INSTR_ID_cpu_dsrav] = "dsrav",
|
||||
[RABBITIZER_INSTR_ID_cpu_sllv] = "sllv",
|
||||
[RABBITIZER_INSTR_ID_cpu_srlv] = "srlv",
|
||||
[RABBITIZER_INSTR_ID_cpu_srav] = "srav",
|
||||
[RABBITIZER_INSTR_ID_cpu_mthi] = "mthi",
|
||||
[RABBITIZER_INSTR_ID_cpu_mtlo] = "mtlo",
|
||||
[RABBITIZER_INSTR_ID_cpu_jr] = "jr",
|
||||
[RABBITIZER_INSTR_ID_cpu_jalr] = "jalr",
|
||||
[RABBITIZER_INSTR_ID_cpu_jalr_rd] = "jalr",
|
||||
[RABBITIZER_INSTR_ID_cpu_mfhi] = "mfhi",
|
||||
[RABBITIZER_INSTR_ID_cpu_mflo] = "mflo",
|
||||
[RABBITIZER_INSTR_ID_cpu_movz] = "movz",
|
||||
[RABBITIZER_INSTR_ID_cpu_movn] = "movn",
|
||||
[RABBITIZER_INSTR_ID_cpu_div] = "div",
|
||||
[RABBITIZER_INSTR_ID_cpu_divu] = "divu",
|
||||
[RABBITIZER_INSTR_ID_cpu_sn64_div] = "div",
|
||||
[RABBITIZER_INSTR_ID_cpu_sn64_divu] = "divu",
|
||||
[RABBITIZER_INSTR_ID_cpu_ddiv] = "ddiv",
|
||||
[RABBITIZER_INSTR_ID_cpu_ddivu] = "ddivu",
|
||||
[RABBITIZER_INSTR_ID_cpu_add] = "add",
|
||||
[RABBITIZER_INSTR_ID_cpu_addu] = "addu",
|
||||
[RABBITIZER_INSTR_ID_cpu_sub] = "sub",
|
||||
[RABBITIZER_INSTR_ID_cpu_subu] = "subu",
|
||||
[RABBITIZER_INSTR_ID_cpu_and] = "and",
|
||||
[RABBITIZER_INSTR_ID_cpu_or] = "or",
|
||||
[RABBITIZER_INSTR_ID_cpu_xor] = "xor",
|
||||
[RABBITIZER_INSTR_ID_cpu_nor] = "nor",
|
||||
[RABBITIZER_INSTR_ID_cpu_slt] = "slt",
|
||||
[RABBITIZER_INSTR_ID_cpu_sltu] = "sltu",
|
||||
[RABBITIZER_INSTR_ID_cpu_dadd] = "dadd",
|
||||
[RABBITIZER_INSTR_ID_cpu_daddu] = "daddu",
|
||||
[RABBITIZER_INSTR_ID_cpu_dsub] = "dsub",
|
||||
[RABBITIZER_INSTR_ID_cpu_dsubu] = "dsubu",
|
||||
[RABBITIZER_INSTR_ID_cpu_syscall] = "syscall",
|
||||
[RABBITIZER_INSTR_ID_cpu_break] = "break",
|
||||
[RABBITIZER_INSTR_ID_cpu_sync] = "sync",
|
||||
[RABBITIZER_INSTR_ID_cpu_mult] = "mult",
|
||||
[RABBITIZER_INSTR_ID_cpu_multu] = "multu",
|
||||
[RABBITIZER_INSTR_ID_cpu_dmult] = "dmult",
|
||||
[RABBITIZER_INSTR_ID_cpu_dmultu] = "dmultu",
|
||||
[RABBITIZER_INSTR_ID_cpu_tge] = "tge",
|
||||
[RABBITIZER_INSTR_ID_cpu_tgeu] = "tgeu",
|
||||
[RABBITIZER_INSTR_ID_cpu_tlt] = "tlt",
|
||||
[RABBITIZER_INSTR_ID_cpu_tltu] = "tltu",
|
||||
[RABBITIZER_INSTR_ID_cpu_teq] = "teq",
|
||||
[RABBITIZER_INSTR_ID_cpu_tne] = "tne",
|
||||
[RABBITIZER_INSTR_ID_cpu_nop] = "nop",
|
||||
[RABBITIZER_INSTR_ID_cpu_move] = "move",
|
||||
[RABBITIZER_INSTR_ID_cpu_not] = "not",
|
||||
[RABBITIZER_INSTR_ID_cpu_negu] = "negu",
|
||||
[RABBITIZER_INSTR_ID_cpu_bltz] = "bltz",
|
||||
[RABBITIZER_INSTR_ID_cpu_bgez] = "bgez",
|
||||
[RABBITIZER_INSTR_ID_cpu_bltzl] = "bltzl",
|
||||
[RABBITIZER_INSTR_ID_cpu_bgezl] = "bgezl",
|
||||
[RABBITIZER_INSTR_ID_cpu_tgei] = "tgei",
|
||||
[RABBITIZER_INSTR_ID_cpu_tgeiu] = "tgeiu",
|
||||
[RABBITIZER_INSTR_ID_cpu_tlti] = "tlti",
|
||||
[RABBITIZER_INSTR_ID_cpu_tltiu] = "tltiu",
|
||||
[RABBITIZER_INSTR_ID_cpu_teqi] = "teqi",
|
||||
[RABBITIZER_INSTR_ID_cpu_tnei] = "tnei",
|
||||
[RABBITIZER_INSTR_ID_cpu_bltzal] = "bltzal",
|
||||
[RABBITIZER_INSTR_ID_cpu_bgezal] = "bgezal",
|
||||
[RABBITIZER_INSTR_ID_cpu_bltzall] = "bltzall",
|
||||
[RABBITIZER_INSTR_ID_cpu_bgezall] = "bgezall",
|
||||
[RABBITIZER_INSTR_ID_cpu_bal] = "bal",
|
||||
[RABBITIZER_INSTR_ID_cpu_mfc0] = "mfc0",
|
||||
[RABBITIZER_INSTR_ID_cpu_dmfc0] = "dmfc0",
|
||||
[RABBITIZER_INSTR_ID_cpu_cfc0] = "cfc0",
|
||||
[RABBITIZER_INSTR_ID_cpu_mtc0] = "mtc0",
|
||||
[RABBITIZER_INSTR_ID_cpu_dmtc0] = "dmtc0",
|
||||
[RABBITIZER_INSTR_ID_cpu_ctc0] = "ctc0",
|
||||
[RABBITIZER_INSTR_ID_cpu_bc0f] = "bc0f",
|
||||
[RABBITIZER_INSTR_ID_cpu_bc0t] = "bc0t",
|
||||
[RABBITIZER_INSTR_ID_cpu_bc0fl] = "bc0fl",
|
||||
[RABBITIZER_INSTR_ID_cpu_bc0tl] = "bc0tl",
|
||||
[RABBITIZER_INSTR_ID_cpu_tlbr] = "tlbr",
|
||||
[RABBITIZER_INSTR_ID_cpu_tlbwi] = "tlbwi",
|
||||
[RABBITIZER_INSTR_ID_cpu_tlbwr] = "tlbwr",
|
||||
[RABBITIZER_INSTR_ID_cpu_tlbp] = "tlbp",
|
||||
[RABBITIZER_INSTR_ID_cpu_eret] = "eret",
|
||||
[RABBITIZER_INSTR_ID_cpu_mfc1] = "mfc1",
|
||||
[RABBITIZER_INSTR_ID_cpu_dmfc1] = "dmfc1",
|
||||
[RABBITIZER_INSTR_ID_cpu_mtc1] = "mtc1",
|
||||
[RABBITIZER_INSTR_ID_cpu_dmtc1] = "dmtc1",
|
||||
[RABBITIZER_INSTR_ID_cpu_cfc1] = "cfc1",
|
||||
[RABBITIZER_INSTR_ID_cpu_ctc1] = "ctc1",
|
||||
[RABBITIZER_INSTR_ID_cpu_bc1f] = "bc1f",
|
||||
[RABBITIZER_INSTR_ID_cpu_bc1t] = "bc1t",
|
||||
[RABBITIZER_INSTR_ID_cpu_bc1fl] = "bc1fl",
|
||||
[RABBITIZER_INSTR_ID_cpu_bc1tl] = "bc1tl",
|
||||
[RABBITIZER_INSTR_ID_cpu_add_s] = "add.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_sub_s] = "sub.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_mul_s] = "mul.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_div_s] = "div.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_sqrt_s] = "sqrt.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_abs_s] = "abs.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_mov_s] = "mov.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_neg_s] = "neg.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_round_l_s] = "round.l.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_trunc_l_s] = "trunc.l.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_ceil_l_s] = "ceil.l.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_floor_l_s] = "floor.l.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_round_w_s] = "round.w.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_trunc_w_s] = "trunc.w.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_ceil_w_s] = "ceil.w.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_floor_w_s] = "floor.w.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_d_s] = "cvt.d.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_w_s] = "cvt.w.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_l_s] = "cvt.l.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_f_s] = "c.f.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_un_s] = "c.un.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_eq_s] = "c.eq.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ueq_s] = "c.ueq.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_olt_s] = "c.olt.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ult_s] = "c.ult.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ole_s] = "c.ole.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ule_s] = "c.ule.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_sf_s] = "c.sf.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ngle_s] = "c.ngle.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_seq_s] = "c.seq.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ngl_s] = "c.ngl.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_lt_s] = "c.lt.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_nge_s] = "c.nge.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_le_s] = "c.le.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ngt_s] = "c.ngt.s",
|
||||
[RABBITIZER_INSTR_ID_cpu_add_d] = "add.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_sub_d] = "sub.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_mul_d] = "mul.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_div_d] = "div.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_sqrt_d] = "sqrt.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_abs_d] = "abs.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_mov_d] = "mov.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_neg_d] = "neg.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_round_l_d] = "round.l.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_trunc_l_d] = "trunc.l.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_ceil_l_d] = "ceil.l.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_floor_l_d] = "floor.l.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_round_w_d] = "round.w.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_trunc_w_d] = "trunc.w.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_ceil_w_d] = "ceil.w.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_floor_w_d] = "floor.w.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_s_d] = "cvt.s.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_w_d] = "cvt.w.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_l_d] = "cvt.l.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_f_d] = "c.f.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_un_d] = "c.un.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_eq_d] = "c.eq.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ueq_d] = "c.ueq.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_olt_d] = "c.olt.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ult_d] = "c.ult.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ole_d] = "c.ole.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ule_d] = "c.ule.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_df_d] = "c.df.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ngle_d] = "c.ngle.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_deq_d] = "c.deq.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ngl_d] = "c.ngl.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_lt_d] = "c.lt.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_nge_d] = "c.nge.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_le_d] = "c.le.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_c_ngt_d] = "c.ngt.d",
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_s_w] = "cvt.s.w",
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_d_w] = "cvt.d.w",
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_s_l] = "cvt.s.l",
|
||||
[RABBITIZER_INSTR_ID_cpu_cvt_d_l] = "cvt.d.l",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_00] = "USERDEF_00",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_01] = "USERDEF_01",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_02] = "USERDEF_02",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_03] = "USERDEF_03",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_04] = "USERDEF_04",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_05] = "USERDEF_05",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_06] = "USERDEF_06",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_07] = "USERDEF_07",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_08] = "USERDEF_08",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_09] = "USERDEF_09",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_10] = "USERDEF_10",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_11] = "USERDEF_11",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_12] = "USERDEF_12",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_13] = "USERDEF_13",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_14] = "USERDEF_14",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_15] = "USERDEF_15",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_16] = "USERDEF_16",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_17] = "USERDEF_17",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_18] = "USERDEF_18",
|
||||
[RABBITIZER_INSTR_ID_cpu_USERDEF_19] = "USERDEF_19",
|
||||
[RABBITIZER_INSTR_ID_cpu_MAX] = "MAX",
|
||||
[RABBITIZER_INSTR_ID_rsp_INVALID] = "INVALID",
|
||||
[RABBITIZER_INSTR_ID_rsp_mfc2] = "mfc2",
|
||||
[RABBITIZER_INSTR_ID_rsp_mtc2] = "mtc2",
|
||||
[RABBITIZER_INSTR_ID_rsp_cfc2] = "cfc2",
|
||||
[RABBITIZER_INSTR_ID_rsp_ctc2] = "ctc2",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmulf] = "vmulf",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmulu] = "vmulu",
|
||||
[RABBITIZER_INSTR_ID_rsp_vrndp] = "vrndp",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmulq] = "vmulq",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmudl] = "vmudl",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmudm] = "vmudm",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmudn] = "vmudn",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmudh] = "vmudh",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmacf] = "vmacf",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmacu] = "vmacu",
|
||||
[RABBITIZER_INSTR_ID_rsp_vrndn] = "vrndn",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmacq] = "vmacq",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmadl] = "vmadl",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmadm] = "vmadm",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmadn] = "vmadn",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmadh] = "vmadh",
|
||||
[RABBITIZER_INSTR_ID_rsp_vadd] = "vadd",
|
||||
[RABBITIZER_INSTR_ID_rsp_vsub] = "vsub",
|
||||
[RABBITIZER_INSTR_ID_rsp_vabs] = "vabs",
|
||||
[RABBITIZER_INSTR_ID_rsp_vaddc] = "vaddc",
|
||||
[RABBITIZER_INSTR_ID_rsp_vsubc] = "vsubc",
|
||||
[RABBITIZER_INSTR_ID_rsp_vsar] = "vsar",
|
||||
[RABBITIZER_INSTR_ID_rsp_vand] = "vand",
|
||||
[RABBITIZER_INSTR_ID_rsp_vnand] = "vnand",
|
||||
[RABBITIZER_INSTR_ID_rsp_vor] = "vor",
|
||||
[RABBITIZER_INSTR_ID_rsp_vnor] = "vnor",
|
||||
[RABBITIZER_INSTR_ID_rsp_vxor] = "vxor",
|
||||
[RABBITIZER_INSTR_ID_rsp_vnxor] = "vnxor",
|
||||
[RABBITIZER_INSTR_ID_rsp_vlt] = "vlt",
|
||||
[RABBITIZER_INSTR_ID_rsp_veq] = "veq",
|
||||
[RABBITIZER_INSTR_ID_rsp_vne] = "vne",
|
||||
[RABBITIZER_INSTR_ID_rsp_vge] = "vge",
|
||||
[RABBITIZER_INSTR_ID_rsp_vcl] = "vcl",
|
||||
[RABBITIZER_INSTR_ID_rsp_vch] = "vch",
|
||||
[RABBITIZER_INSTR_ID_rsp_vcr] = "vcr",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmrg] = "vmrg",
|
||||
[RABBITIZER_INSTR_ID_rsp_vrcp] = "vrcp",
|
||||
[RABBITIZER_INSTR_ID_rsp_vrcpl] = "vrcpl",
|
||||
[RABBITIZER_INSTR_ID_rsp_vrcph] = "vrcph",
|
||||
[RABBITIZER_INSTR_ID_rsp_vmov] = "vmov",
|
||||
[RABBITIZER_INSTR_ID_rsp_vrsq] = "vrsq",
|
||||
[RABBITIZER_INSTR_ID_rsp_vrsql] = "vrsql",
|
||||
[RABBITIZER_INSTR_ID_rsp_vrsqh] = "vrsqh",
|
||||
[RABBITIZER_INSTR_ID_rsp_vnop] = "vnop",
|
||||
[RABBITIZER_INSTR_ID_rsp_lbv] = "lbv",
|
||||
[RABBITIZER_INSTR_ID_rsp_lsv] = "lsv",
|
||||
[RABBITIZER_INSTR_ID_rsp_llv] = "llv",
|
||||
[RABBITIZER_INSTR_ID_rsp_ldv] = "ldv",
|
||||
[RABBITIZER_INSTR_ID_rsp_lqv] = "lqv",
|
||||
[RABBITIZER_INSTR_ID_rsp_lrv] = "lrv",
|
||||
[RABBITIZER_INSTR_ID_rsp_lpv] = "lpv",
|
||||
[RABBITIZER_INSTR_ID_rsp_luv] = "luv",
|
||||
[RABBITIZER_INSTR_ID_rsp_lhv] = "lhv",
|
||||
[RABBITIZER_INSTR_ID_rsp_lfv] = "lfv",
|
||||
[RABBITIZER_INSTR_ID_rsp_ltv] = "ltv",
|
||||
[RABBITIZER_INSTR_ID_rsp_sbv] = "sbv",
|
||||
[RABBITIZER_INSTR_ID_rsp_ssv] = "ssv",
|
||||
[RABBITIZER_INSTR_ID_rsp_slv] = "slv",
|
||||
[RABBITIZER_INSTR_ID_rsp_sdv] = "sdv",
|
||||
[RABBITIZER_INSTR_ID_rsp_sqv] = "sqv",
|
||||
[RABBITIZER_INSTR_ID_rsp_srv] = "srv",
|
||||
[RABBITIZER_INSTR_ID_rsp_spv] = "spv",
|
||||
[RABBITIZER_INSTR_ID_rsp_suv] = "suv",
|
||||
[RABBITIZER_INSTR_ID_rsp_shv] = "shv",
|
||||
[RABBITIZER_INSTR_ID_rsp_sfv] = "sfv",
|
||||
[RABBITIZER_INSTR_ID_rsp_stv] = "stv",
|
||||
[RABBITIZER_INSTR_ID_rsp_swv] = "swv",
|
||||
[RABBITIZER_INSTR_ID_rsp_j] = "j",
|
||||
[RABBITIZER_INSTR_ID_rsp_jal] = "jal",
|
||||
[RABBITIZER_INSTR_ID_rsp_beq] = "beq",
|
||||
[RABBITIZER_INSTR_ID_rsp_bne] = "bne",
|
||||
[RABBITIZER_INSTR_ID_rsp_blez] = "blez",
|
||||
[RABBITIZER_INSTR_ID_rsp_bgtz] = "bgtz",
|
||||
[RABBITIZER_INSTR_ID_rsp_addi] = "addi",
|
||||
[RABBITIZER_INSTR_ID_rsp_addiu] = "addiu",
|
||||
[RABBITIZER_INSTR_ID_rsp_slti] = "slti",
|
||||
[RABBITIZER_INSTR_ID_rsp_sltiu] = "sltiu",
|
||||
[RABBITIZER_INSTR_ID_rsp_andi] = "andi",
|
||||
[RABBITIZER_INSTR_ID_rsp_ori] = "ori",
|
||||
[RABBITIZER_INSTR_ID_rsp_xori] = "xori",
|
||||
[RABBITIZER_INSTR_ID_rsp_lui] = "lui",
|
||||
[RABBITIZER_INSTR_ID_rsp_lb] = "lb",
|
||||
[RABBITIZER_INSTR_ID_rsp_lh] = "lh",
|
||||
[RABBITIZER_INSTR_ID_rsp_lw] = "lw",
|
||||
[RABBITIZER_INSTR_ID_rsp_lbu] = "lbu",
|
||||
[RABBITIZER_INSTR_ID_rsp_lhu] = "lhu",
|
||||
[RABBITIZER_INSTR_ID_rsp_sb] = "sb",
|
||||
[RABBITIZER_INSTR_ID_rsp_sh] = "sh",
|
||||
[RABBITIZER_INSTR_ID_rsp_sw] = "sw",
|
||||
[RABBITIZER_INSTR_ID_rsp_pref] = "pref",
|
||||
[RABBITIZER_INSTR_ID_rsp_b] = "b",
|
||||
[RABBITIZER_INSTR_ID_rsp_beqz] = "beqz",
|
||||
[RABBITIZER_INSTR_ID_rsp_bnez] = "bnez",
|
||||
[RABBITIZER_INSTR_ID_rsp_sll] = "sll",
|
||||
[RABBITIZER_INSTR_ID_rsp_srl] = "srl",
|
||||
[RABBITIZER_INSTR_ID_rsp_sra] = "sra",
|
||||
[RABBITIZER_INSTR_ID_rsp_sllv] = "sllv",
|
||||
[RABBITIZER_INSTR_ID_rsp_srlv] = "srlv",
|
||||
[RABBITIZER_INSTR_ID_rsp_srav] = "srav",
|
||||
[RABBITIZER_INSTR_ID_rsp_jr] = "jr",
|
||||
[RABBITIZER_INSTR_ID_rsp_jalr] = "jalr",
|
||||
[RABBITIZER_INSTR_ID_rsp_jalr_rd] = "jalr",
|
||||
[RABBITIZER_INSTR_ID_rsp_movz] = "movz",
|
||||
[RABBITIZER_INSTR_ID_rsp_movn] = "movn",
|
||||
[RABBITIZER_INSTR_ID_rsp_add] = "add",
|
||||
[RABBITIZER_INSTR_ID_rsp_addu] = "addu",
|
||||
[RABBITIZER_INSTR_ID_rsp_sub] = "sub",
|
||||
[RABBITIZER_INSTR_ID_rsp_subu] = "subu",
|
||||
[RABBITIZER_INSTR_ID_rsp_and] = "and",
|
||||
[RABBITIZER_INSTR_ID_rsp_or] = "or",
|
||||
[RABBITIZER_INSTR_ID_rsp_xor] = "xor",
|
||||
[RABBITIZER_INSTR_ID_rsp_nor] = "nor",
|
||||
[RABBITIZER_INSTR_ID_rsp_slt] = "slt",
|
||||
[RABBITIZER_INSTR_ID_rsp_sltu] = "sltu",
|
||||
[RABBITIZER_INSTR_ID_rsp_break] = "break",
|
||||
[RABBITIZER_INSTR_ID_rsp_nop] = "nop",
|
||||
[RABBITIZER_INSTR_ID_rsp_move] = "move",
|
||||
[RABBITIZER_INSTR_ID_rsp_not] = "not",
|
||||
[RABBITIZER_INSTR_ID_rsp_negu] = "negu",
|
||||
[RABBITIZER_INSTR_ID_rsp_bltz] = "bltz",
|
||||
[RABBITIZER_INSTR_ID_rsp_bgez] = "bgez",
|
||||
[RABBITIZER_INSTR_ID_rsp_bltzal] = "bltzal",
|
||||
[RABBITIZER_INSTR_ID_rsp_bgezal] = "bgezal",
|
||||
[RABBITIZER_INSTR_ID_rsp_bal] = "bal",
|
||||
[RABBITIZER_INSTR_ID_rsp_mfc0] = "mfc0",
|
||||
[RABBITIZER_INSTR_ID_rsp_mtc0] = "mtc0",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_00] = "USERDEF_00",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_01] = "USERDEF_01",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_02] = "USERDEF_02",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_03] = "USERDEF_03",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_04] = "USERDEF_04",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_05] = "USERDEF_05",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_06] = "USERDEF_06",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_07] = "USERDEF_07",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_08] = "USERDEF_08",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_09] = "USERDEF_09",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_10] = "USERDEF_10",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_11] = "USERDEF_11",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_12] = "USERDEF_12",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_13] = "USERDEF_13",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_14] = "USERDEF_14",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_15] = "USERDEF_15",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_16] = "USERDEF_16",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_17] = "USERDEF_17",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_18] = "USERDEF_18",
|
||||
[RABBITIZER_INSTR_ID_rsp_USERDEF_19] = "USERDEF_19",
|
||||
[RABBITIZER_INSTR_ID_rsp_MAX] = "MAX",
|
||||
[RABBITIZER_INSTR_ID_r5900_INVALID] = "INVALID",
|
||||
[RABBITIZER_INSTR_ID_r5900_lq] = "lq",
|
||||
[RABBITIZER_INSTR_ID_r5900_sq] = "sq",
|
||||
[RABBITIZER_INSTR_ID_r5900_lqc2] = "lqc2",
|
||||
[RABBITIZER_INSTR_ID_r5900_sqc2] = "sqc2",
|
||||
[RABBITIZER_INSTR_ID_r5900_sync_p] = "sync.p",
|
||||
[RABBITIZER_INSTR_ID_r5900_mult] = "mult",
|
||||
[RABBITIZER_INSTR_ID_r5900_mfsa] = "mfsa",
|
||||
[RABBITIZER_INSTR_ID_r5900_mtsa] = "mtsa",
|
||||
[RABBITIZER_INSTR_ID_r5900_mtsab] = "mtsab",
|
||||
[RABBITIZER_INSTR_ID_r5900_mtsah] = "mtsah",
|
||||
[RABBITIZER_INSTR_ID_r5900_madd] = "madd",
|
||||
[RABBITIZER_INSTR_ID_r5900_maddu] = "maddu",
|
||||
[RABBITIZER_INSTR_ID_r5900_plzcw] = "plzcw",
|
||||
[RABBITIZER_INSTR_ID_r5900_mfhi1] = "mfhi1",
|
||||
[RABBITIZER_INSTR_ID_r5900_mthi1] = "mthi1",
|
||||
[RABBITIZER_INSTR_ID_r5900_mflo1] = "mflo1",
|
||||
[RABBITIZER_INSTR_ID_r5900_mtlo1] = "mtlo1",
|
||||
[RABBITIZER_INSTR_ID_r5900_mult1] = "mult1",
|
||||
[RABBITIZER_INSTR_ID_r5900_multu1] = "multu1",
|
||||
[RABBITIZER_INSTR_ID_r5900_div1] = "div1",
|
||||
[RABBITIZER_INSTR_ID_r5900_divu1] = "divu1",
|
||||
[RABBITIZER_INSTR_ID_r5900_madd1] = "madd1",
|
||||
[RABBITIZER_INSTR_ID_r5900_maddu1] = "maddu1",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl] = "pmfhl",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmthl] = "pmthl",
|
||||
[RABBITIZER_INSTR_ID_r5900_psllh] = "psllh",
|
||||
[RABBITIZER_INSTR_ID_r5900_psrlh] = "psrlh",
|
||||
[RABBITIZER_INSTR_ID_r5900_psrah] = "psrah",
|
||||
[RABBITIZER_INSTR_ID_r5900_psllw] = "psllw",
|
||||
[RABBITIZER_INSTR_ID_r5900_psrlw] = "psrlw",
|
||||
[RABBITIZER_INSTR_ID_r5900_psraw] = "psraw",
|
||||
[RABBITIZER_INSTR_ID_r5900_paddw] = "paddw",
|
||||
[RABBITIZER_INSTR_ID_r5900_psubw] = "psubw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pcgtw] = "pcgtw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmaxw] = "pmaxw",
|
||||
[RABBITIZER_INSTR_ID_r5900_paddh] = "paddh",
|
||||
[RABBITIZER_INSTR_ID_r5900_psubh] = "psubh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pcgth] = "pcgth",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmaxh] = "pmaxh",
|
||||
[RABBITIZER_INSTR_ID_r5900_paddb] = "paddb",
|
||||
[RABBITIZER_INSTR_ID_r5900_psubb] = "psubb",
|
||||
[RABBITIZER_INSTR_ID_r5900_pcgtb] = "pcgtb",
|
||||
[RABBITIZER_INSTR_ID_r5900_paddsw] = "paddsw",
|
||||
[RABBITIZER_INSTR_ID_r5900_psubsw] = "psubsw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pextlw] = "pextlw",
|
||||
[RABBITIZER_INSTR_ID_r5900_ppacw] = "ppacw",
|
||||
[RABBITIZER_INSTR_ID_r5900_paddsh] = "paddsh",
|
||||
[RABBITIZER_INSTR_ID_r5900_psubsh] = "psubsh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pextlh] = "pextlh",
|
||||
[RABBITIZER_INSTR_ID_r5900_ppach] = "ppach",
|
||||
[RABBITIZER_INSTR_ID_r5900_paddsb] = "paddsb",
|
||||
[RABBITIZER_INSTR_ID_r5900_psubsb] = "psubsb",
|
||||
[RABBITIZER_INSTR_ID_r5900_pextlb] = "pextlb",
|
||||
[RABBITIZER_INSTR_ID_r5900_ppacb] = "ppacb",
|
||||
[RABBITIZER_INSTR_ID_r5900_pext5] = "pext5",
|
||||
[RABBITIZER_INSTR_ID_r5900_ppac5] = "ppac5",
|
||||
[RABBITIZER_INSTR_ID_r5900_pabsw] = "pabsw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pceqw] = "pceqw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pminw] = "pminw",
|
||||
[RABBITIZER_INSTR_ID_r5900_padsbh] = "padsbh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pabsh] = "pabsh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pceqh] = "pceqh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pminh] = "pminh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pceqb] = "pceqb",
|
||||
[RABBITIZER_INSTR_ID_r5900_padduw] = "padduw",
|
||||
[RABBITIZER_INSTR_ID_r5900_psubuw] = "psubuw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pextuw] = "pextuw",
|
||||
[RABBITIZER_INSTR_ID_r5900_padduh] = "padduh",
|
||||
[RABBITIZER_INSTR_ID_r5900_psubuh] = "psubuh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pextuh] = "pextuh",
|
||||
[RABBITIZER_INSTR_ID_r5900_paddub] = "paddub",
|
||||
[RABBITIZER_INSTR_ID_r5900_psubub] = "psubub",
|
||||
[RABBITIZER_INSTR_ID_r5900_pextub] = "pextub",
|
||||
[RABBITIZER_INSTR_ID_r5900_qfsrv] = "qfsrv",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmaddw] = "pmaddw",
|
||||
[RABBITIZER_INSTR_ID_r5900_psllvw] = "psllvw",
|
||||
[RABBITIZER_INSTR_ID_r5900_psrlvw] = "psrlvw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmsubw] = "pmsubw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhi] = "pmfhi",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmflo] = "pmflo",
|
||||
[RABBITIZER_INSTR_ID_r5900_pinth] = "pinth",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmultw] = "pmultw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pdivw] = "pdivw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pcpyld] = "pcpyld",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmaddh] = "pmaddh",
|
||||
[RABBITIZER_INSTR_ID_r5900_phmadh] = "phmadh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pand] = "pand",
|
||||
[RABBITIZER_INSTR_ID_r5900_pxor] = "pxor",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmsubh] = "pmsubh",
|
||||
[RABBITIZER_INSTR_ID_r5900_phmsbh] = "phmsbh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pexeh] = "pexeh",
|
||||
[RABBITIZER_INSTR_ID_r5900_prevh] = "prevh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmulth] = "pmulth",
|
||||
[RABBITIZER_INSTR_ID_r5900_pdivbw] = "pdivbw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pexew] = "pexew",
|
||||
[RABBITIZER_INSTR_ID_r5900_prot3w] = "prot3w",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmadduw] = "pmadduw",
|
||||
[RABBITIZER_INSTR_ID_r5900_psravw] = "psravw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmthi] = "pmthi",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmtlo] = "pmtlo",
|
||||
[RABBITIZER_INSTR_ID_r5900_pinteh] = "pinteh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmultuw] = "pmultuw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pdivuw] = "pdivuw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pcpyud] = "pcpyud",
|
||||
[RABBITIZER_INSTR_ID_r5900_por] = "por",
|
||||
[RABBITIZER_INSTR_ID_r5900_pnor] = "pnor",
|
||||
[RABBITIZER_INSTR_ID_r5900_pexch] = "pexch",
|
||||
[RABBITIZER_INSTR_ID_r5900_pcpyh] = "pcpyh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pexcw] = "pexcw",
|
||||
[RABBITIZER_INSTR_ID_r5900_ei] = "ei",
|
||||
[RABBITIZER_INSTR_ID_r5900_di] = "di",
|
||||
[RABBITIZER_INSTR_ID_r5900_c1__sqrt_s] = "c1",
|
||||
[RABBITIZER_INSTR_ID_r5900_rsqrt_s] = "rsqrt.s",
|
||||
[RABBITIZER_INSTR_ID_r5900_adda_s] = "adda.s",
|
||||
[RABBITIZER_INSTR_ID_r5900_suba_s] = "suba.s",
|
||||
[RABBITIZER_INSTR_ID_r5900_mula_s] = "mula.s",
|
||||
[RABBITIZER_INSTR_ID_r5900_madd_s] = "madd.s",
|
||||
[RABBITIZER_INSTR_ID_r5900_msub_s] = "msub.s",
|
||||
[RABBITIZER_INSTR_ID_r5900_madda_s] = "madda.s",
|
||||
[RABBITIZER_INSTR_ID_r5900_msuba_s] = "msuba.s",
|
||||
[RABBITIZER_INSTR_ID_r5900_max_s] = "max.s",
|
||||
[RABBITIZER_INSTR_ID_r5900_min_s] = "min.s",
|
||||
[RABBITIZER_INSTR_ID_r5900_trunc_w_s] = "trunc.w.s",
|
||||
[RABBITIZER_INSTR_ID_r5900_c_lt_s] = "c.lt.s",
|
||||
[RABBITIZER_INSTR_ID_r5900_c_le_s] = "c.le.s",
|
||||
[RABBITIZER_INSTR_ID_r5900_qmfc2] = "qmfc2",
|
||||
[RABBITIZER_INSTR_ID_r5900_cfc2] = "cfc2",
|
||||
[RABBITIZER_INSTR_ID_r5900_qmtc2] = "qmtc2",
|
||||
[RABBITIZER_INSTR_ID_r5900_ctc2] = "ctc2",
|
||||
[RABBITIZER_INSTR_ID_r5900_bc2f] = "bc2f",
|
||||
[RABBITIZER_INSTR_ID_r5900_bc2t] = "bc2t",
|
||||
[RABBITIZER_INSTR_ID_r5900_bc2fl] = "bc2fl",
|
||||
[RABBITIZER_INSTR_ID_r5900_bc2tl] = "bc2tl",
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddx] = "vaddx",
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddy] = "vaddy",
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddz] = "vaddz",
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddw] = "vaddw",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubx] = "vsubx",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsuby] = "vsuby",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubz] = "vsubz",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubw] = "vsubw",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddx] = "vmaddx",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddy] = "vmaddy",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddz] = "vmaddz",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddw] = "vmaddw",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubx] = "vmsubx",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsuby] = "vmsuby",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubz] = "vmsubz",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubw] = "vmsubw",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaxx] = "vmaxx",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaxy] = "vmaxy",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaxz] = "vmaxz",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaxw] = "vmaxw",
|
||||
[RABBITIZER_INSTR_ID_r5900_vminix] = "vminix",
|
||||
[RABBITIZER_INSTR_ID_r5900_vminiy] = "vminiy",
|
||||
[RABBITIZER_INSTR_ID_r5900_vminiz] = "vminiz",
|
||||
[RABBITIZER_INSTR_ID_r5900_vminiw] = "vminiw",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulx] = "vmulx",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmuly] = "vmuly",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulz] = "vmulz",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulw] = "vmulw",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulq] = "vmulq",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaxi] = "vmaxi",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmuli] = "vmuli",
|
||||
[RABBITIZER_INSTR_ID_r5900_vminii] = "vminii",
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddq] = "vaddq",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddq] = "vmaddq",
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddi] = "vaddi",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddi] = "vmaddi",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubq] = "vsubq",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubq] = "vmsubq",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubi] = "vsubi",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubi] = "vmsubi",
|
||||
[RABBITIZER_INSTR_ID_r5900_vadd] = "vadd",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmadd] = "vmadd",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmul] = "vmul",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmax] = "vmax",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsub] = "vsub",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsub] = "vmsub",
|
||||
[RABBITIZER_INSTR_ID_r5900_vopmsub] = "vopmsub",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmini] = "vmini",
|
||||
[RABBITIZER_INSTR_ID_r5900_viadd] = "viadd",
|
||||
[RABBITIZER_INSTR_ID_r5900_visub] = "visub",
|
||||
[RABBITIZER_INSTR_ID_r5900_viaddi] = "viaddi",
|
||||
[RABBITIZER_INSTR_ID_r5900_viand] = "viand",
|
||||
[RABBITIZER_INSTR_ID_r5900_vior] = "vior",
|
||||
[RABBITIZER_INSTR_ID_r5900_vcallms] = "vcallms",
|
||||
[RABBITIZER_INSTR_ID_r5900_vcallmsr] = "vcallmsr",
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddax] = "vaddax",
|
||||
[RABBITIZER_INSTR_ID_r5900_vadday] = "vadday",
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddaz] = "vaddaz",
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddaw] = "vaddaw",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubax] = "vsubax",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubay] = "vsubay",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubaz] = "vsubaz",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubaw] = "vsubaw",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddax] = "vmaddax",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmadday] = "vmadday",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddaz] = "vmaddaz",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddaw] = "vmaddaw",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubax] = "vmsubax",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubay] = "vmsubay",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubaz] = "vmsubaz",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubaw] = "vmsubaw",
|
||||
[RABBITIZER_INSTR_ID_r5900_vitof0] = "vitof0",
|
||||
[RABBITIZER_INSTR_ID_r5900_vitof4] = "vitof4",
|
||||
[RABBITIZER_INSTR_ID_r5900_vitof12] = "vitof12",
|
||||
[RABBITIZER_INSTR_ID_r5900_vitof15] = "vitof15",
|
||||
[RABBITIZER_INSTR_ID_r5900_vftoi0] = "vftoi0",
|
||||
[RABBITIZER_INSTR_ID_r5900_vftoi4] = "vftoi4",
|
||||
[RABBITIZER_INSTR_ID_r5900_vftoi12] = "vftoi12",
|
||||
[RABBITIZER_INSTR_ID_r5900_vftoi15] = "vftoi15",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulax] = "vmulax",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulay] = "vmulay",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulaz] = "vmulaz",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulaw] = "vmulaw",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulaq] = "vmulaq",
|
||||
[RABBITIZER_INSTR_ID_r5900_vabs] = "vabs",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmulai] = "vmulai",
|
||||
[RABBITIZER_INSTR_ID_r5900_vclipw] = "vclipw",
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddaq] = "vaddaq",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddaq] = "vmaddaq",
|
||||
[RABBITIZER_INSTR_ID_r5900_vaddai] = "vaddai",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmaddai] = "vmaddai",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubaq] = "vsubaq",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubaq] = "vmsubaq",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsubai] = "vsubai",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsubai] = "vmsubai",
|
||||
[RABBITIZER_INSTR_ID_r5900_vadda] = "vadda",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmadda] = "vmadda",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmula] = "vmula",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsuba] = "vsuba",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmsuba] = "vmsuba",
|
||||
[RABBITIZER_INSTR_ID_r5900_vopmula] = "vopmula",
|
||||
[RABBITIZER_INSTR_ID_r5900_vnop] = "vnop",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmove] = "vmove",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmr32] = "vmr32",
|
||||
[RABBITIZER_INSTR_ID_r5900_vlqi] = "vlqi",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsqi] = "vsqi",
|
||||
[RABBITIZER_INSTR_ID_r5900_vlqd] = "vlqd",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsqd] = "vsqd",
|
||||
[RABBITIZER_INSTR_ID_r5900_vdiv] = "vdiv",
|
||||
[RABBITIZER_INSTR_ID_r5900_vsqrt] = "vsqrt",
|
||||
[RABBITIZER_INSTR_ID_r5900_vrsqrt] = "vrsqrt",
|
||||
[RABBITIZER_INSTR_ID_r5900_vwaitq] = "vwaitq",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmtir] = "vmtir",
|
||||
[RABBITIZER_INSTR_ID_r5900_vmfir] = "vmfir",
|
||||
[RABBITIZER_INSTR_ID_r5900_vilwr] = "vilwr",
|
||||
[RABBITIZER_INSTR_ID_r5900_viswr] = "viswr",
|
||||
[RABBITIZER_INSTR_ID_r5900_vrnext] = "vrnext",
|
||||
[RABBITIZER_INSTR_ID_r5900_vrget] = "vrget",
|
||||
[RABBITIZER_INSTR_ID_r5900_vrinit] = "vrinit",
|
||||
[RABBITIZER_INSTR_ID_r5900_vrxor] = "vrxor",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_00] = "USERDEF_00",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_01] = "USERDEF_01",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_02] = "USERDEF_02",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_03] = "USERDEF_03",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_04] = "USERDEF_04",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_05] = "USERDEF_05",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_06] = "USERDEF_06",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_07] = "USERDEF_07",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_08] = "USERDEF_08",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_09] = "USERDEF_09",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_10] = "USERDEF_10",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_11] = "USERDEF_11",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_12] = "USERDEF_12",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_13] = "USERDEF_13",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_14] = "USERDEF_14",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_15] = "USERDEF_15",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_16] = "USERDEF_16",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_17] = "USERDEF_17",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_18] = "USERDEF_18",
|
||||
[RABBITIZER_INSTR_ID_r5900_USERDEF_19] = "USERDEF_19",
|
||||
[RABBITIZER_INSTR_ID_r5900_MAX] = "MAX",
|
||||
};
|
||||
|
||||
#endif
|
15
src/instructions/InstrId_Names_array.table.template
Normal file
15
src/instructions/InstrId_Names_array.table.template
Normal file
@ -0,0 +1,15 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, ...) [RABBITIZER_INSTR_ID_##prefix##_##name] = #name,
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID_ALTNAME(prefix, caseBits, name, altname, ...) [RABBITIZER_INSTR_ID_##prefix##_##name] = #altname,
|
||||
|
||||
const char *RabbitizerInstrId_Names[] = {
|
||||
#include "instructions/instr_id/RabbitizerInstrId_cpu.inc"
|
||||
#include "instructions/instr_id/RabbitizerInstrId_rsp.inc"
|
||||
#include "instructions/instr_id/RabbitizerInstrId_r5900.inc"
|
||||
};
|
||||
|
||||
#undef RABBITIZER_DEF_INSTR_ID
|
||||
#undef RABBITIZER_DEF_INSTR_ID_ALTNAME
|
@ -3,16 +3,9 @@
|
||||
|
||||
#include "instructions/RabbitizerInstrCategory.h"
|
||||
|
||||
//#include <stddef.h>
|
||||
#include <string.h>
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_CATEGORY(name) [RABBITIZER_INSTRCAT_##name] = #name
|
||||
|
||||
const char *const RabbitizerInstrCategory_Names[] = {
|
||||
#include "instructions/InstrCategory.inc"
|
||||
};
|
||||
|
||||
#undef RABBITIZER_DEF_INSTR_CATEGORY
|
||||
#include "InstrCategory_Names_array.table.h"
|
||||
|
||||
RabbitizerInstrCategory RabbitizerInstrCategory_fromStr(const char *name) {
|
||||
if (name == NULL) {
|
||||
|
@ -7,19 +7,7 @@
|
||||
|
||||
#include "instructions/RabbitizerInstruction.h"
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, ...) [RABBITIZER_INSTR_ID_##prefix##_##name] = { __VA_ARGS__ },
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID_ALTNAME(prefix, caseBits, name, altname, ...) RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, __VA_ARGS__)
|
||||
|
||||
const RabbitizerInstrDescriptor RabbitizerInstrDescriptor_Descriptors[] = {
|
||||
#include "instructions/instr_id/RabbitizerInstrId_cpu.inc"
|
||||
#include "instructions/instr_id/RabbitizerInstrId_rsp.inc"
|
||||
#include "instructions/instr_id/RabbitizerInstrId_r5900.inc"
|
||||
};
|
||||
|
||||
#undef RABBITIZER_DEF_INSTR_ID
|
||||
#undef RABBITIZER_DEF_INSTR_ID_ALTNAME
|
||||
|
||||
#include "InstrDescriptor_Descriptors_array.table.h"
|
||||
|
||||
bool RabbitizerInstrDescriptor_hasSpecificOperand(const RabbitizerInstrDescriptor *self, RabbitizerOperandType operand) {
|
||||
size_t i;
|
||||
|
@ -5,18 +5,7 @@
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID(prefix, caseBits, name, ...) [RABBITIZER_INSTR_ID_##prefix##_##name] = #name,
|
||||
|
||||
#define RABBITIZER_DEF_INSTR_ID_ALTNAME(prefix, caseBits, name, altname, ...) [RABBITIZER_INSTR_ID_##prefix##_##name] = #altname,
|
||||
|
||||
const char *RabbitizerInstrId_Names[] = {
|
||||
#include "instructions/instr_id/RabbitizerInstrId_cpu.inc"
|
||||
#include "instructions/instr_id/RabbitizerInstrId_rsp.inc"
|
||||
#include "instructions/instr_id/RabbitizerInstrId_r5900.inc"
|
||||
};
|
||||
|
||||
#undef RABBITIZER_DEF_INSTR_ID
|
||||
#undef RABBITIZER_DEF_INSTR_ID_ALTNAME
|
||||
#include "InstrId_Names_array.table.h"
|
||||
|
||||
bool RabbitizerInstrId_isValid(RabbitizerInstrId uniqueId) {
|
||||
switch (uniqueId) {
|
||||
|
@ -12,15 +12,8 @@
|
||||
#include "instructions/RabbitizerRegister.h"
|
||||
#include "instructions/RabbitizerInstrSuffix.h"
|
||||
|
||||
#define RAB_DEF_OPERAND(prefix, operand) [RAB_OPERAND_##prefix##_##operand] = RabbitizerOperandType_process_##prefix##_##operand,
|
||||
|
||||
const OperandCallback instrOpercandCallbacks[] = {
|
||||
#include "instructions/operands/RabbitizerOperandType_cpu.inc"
|
||||
#include "instructions/operands/RabbitizerOperandType_rsp.inc"
|
||||
#include "instructions/operands/RabbitizerOperandType_r5900.inc"
|
||||
};
|
||||
|
||||
#undef RAB_DEF_OPERAND
|
||||
#include "instrOpercandCallbacks_array.table.h"
|
||||
|
||||
size_t RabbitizerInstruction_getSizeForBufferOperandsDisasm(const RabbitizerInstruction *self, size_t immOverrideLength) {
|
||||
size_t totalSize = 0;
|
||||
|
@ -0,0 +1,76 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef instrOpercandCallbacks_array_table_h_automatic
|
||||
#define instrOpercandCallbacks_array_table_h_automatic
|
||||
|
||||
const OperandCallback instrOpercandCallbacks[] = {
|
||||
[RAB_OPERAND_cpu_rs] = RabbitizerOperandType_process_cpu_rs,
|
||||
[RAB_OPERAND_cpu_rt] = RabbitizerOperandType_process_cpu_rt,
|
||||
[RAB_OPERAND_cpu_rd] = RabbitizerOperandType_process_cpu_rd,
|
||||
[RAB_OPERAND_cpu_sa] = RabbitizerOperandType_process_cpu_sa,
|
||||
[RAB_OPERAND_cpu_zero] = RabbitizerOperandType_process_cpu_zero,
|
||||
[RAB_OPERAND_cpu_cop0d] = RabbitizerOperandType_process_cpu_cop0d,
|
||||
[RAB_OPERAND_cpu_fs] = RabbitizerOperandType_process_cpu_fs,
|
||||
[RAB_OPERAND_cpu_ft] = RabbitizerOperandType_process_cpu_ft,
|
||||
[RAB_OPERAND_cpu_fd] = RabbitizerOperandType_process_cpu_fd,
|
||||
[RAB_OPERAND_cpu_cop1cs] = RabbitizerOperandType_process_cpu_cop1cs,
|
||||
[RAB_OPERAND_cpu_cop2t] = RabbitizerOperandType_process_cpu_cop2t,
|
||||
[RAB_OPERAND_cpu_op] = RabbitizerOperandType_process_cpu_op,
|
||||
[RAB_OPERAND_cpu_code] = RabbitizerOperandType_process_cpu_code,
|
||||
[RAB_OPERAND_cpu_code_lower] = RabbitizerOperandType_process_cpu_code_lower,
|
||||
[RAB_OPERAND_cpu_copraw] = RabbitizerOperandType_process_cpu_copraw,
|
||||
[RAB_OPERAND_cpu_label] = RabbitizerOperandType_process_cpu_label,
|
||||
[RAB_OPERAND_cpu_immediate] = RabbitizerOperandType_process_cpu_immediate,
|
||||
[RAB_OPERAND_cpu_branch_target_label] = RabbitizerOperandType_process_cpu_branch_target_label,
|
||||
[RAB_OPERAND_cpu_immediate_base] = RabbitizerOperandType_process_cpu_immediate_base,
|
||||
[RAB_OPERAND_rsp_rs] = RabbitizerOperandType_process_rsp_rs,
|
||||
[RAB_OPERAND_rsp_rt] = RabbitizerOperandType_process_rsp_rt,
|
||||
[RAB_OPERAND_rsp_rd] = RabbitizerOperandType_process_rsp_rd,
|
||||
[RAB_OPERAND_rsp_cop0d] = RabbitizerOperandType_process_rsp_cop0d,
|
||||
[RAB_OPERAND_rsp_cop2t] = RabbitizerOperandType_process_rsp_cop2t,
|
||||
[RAB_OPERAND_rsp_cop2cd] = RabbitizerOperandType_process_rsp_cop2cd,
|
||||
[RAB_OPERAND_rsp_vs] = RabbitizerOperandType_process_rsp_vs,
|
||||
[RAB_OPERAND_rsp_vt] = RabbitizerOperandType_process_rsp_vt,
|
||||
[RAB_OPERAND_rsp_vd] = RabbitizerOperandType_process_rsp_vd,
|
||||
[RAB_OPERAND_rsp_vt_elementhigh] = RabbitizerOperandType_process_rsp_vt_elementhigh,
|
||||
[RAB_OPERAND_rsp_vt_elementlow] = RabbitizerOperandType_process_rsp_vt_elementlow,
|
||||
[RAB_OPERAND_rsp_vd_de] = RabbitizerOperandType_process_rsp_vd_de,
|
||||
[RAB_OPERAND_rsp_vs_index] = RabbitizerOperandType_process_rsp_vs_index,
|
||||
[RAB_OPERAND_rsp_offset_rs] = RabbitizerOperandType_process_rsp_offset_rs,
|
||||
[RAB_OPERAND_rsp_immediate_base] = RabbitizerOperandType_process_rsp_immediate_base,
|
||||
[RAB_OPERAND_r5900_I] = RabbitizerOperandType_process_r5900_I,
|
||||
[RAB_OPERAND_r5900_Q] = RabbitizerOperandType_process_r5900_Q,
|
||||
[RAB_OPERAND_r5900_R] = RabbitizerOperandType_process_r5900_R,
|
||||
[RAB_OPERAND_r5900_ACC] = RabbitizerOperandType_process_r5900_ACC,
|
||||
[RAB_OPERAND_r5900_ACCxyzw] = RabbitizerOperandType_process_r5900_ACCxyzw,
|
||||
[RAB_OPERAND_r5900_vfs] = RabbitizerOperandType_process_r5900_vfs,
|
||||
[RAB_OPERAND_r5900_vft] = RabbitizerOperandType_process_r5900_vft,
|
||||
[RAB_OPERAND_r5900_vfd] = RabbitizerOperandType_process_r5900_vfd,
|
||||
[RAB_OPERAND_r5900_vfsxyzw] = RabbitizerOperandType_process_r5900_vfsxyzw,
|
||||
[RAB_OPERAND_r5900_vftxyzw] = RabbitizerOperandType_process_r5900_vftxyzw,
|
||||
[RAB_OPERAND_r5900_vfdxyzw] = RabbitizerOperandType_process_r5900_vfdxyzw,
|
||||
[RAB_OPERAND_r5900_vfsn] = RabbitizerOperandType_process_r5900_vfsn,
|
||||
[RAB_OPERAND_r5900_vftn] = RabbitizerOperandType_process_r5900_vftn,
|
||||
[RAB_OPERAND_r5900_vfdn] = RabbitizerOperandType_process_r5900_vfdn,
|
||||
[RAB_OPERAND_r5900_vfsl] = RabbitizerOperandType_process_r5900_vfsl,
|
||||
[RAB_OPERAND_r5900_vftl] = RabbitizerOperandType_process_r5900_vftl,
|
||||
[RAB_OPERAND_r5900_vfdl] = RabbitizerOperandType_process_r5900_vfdl,
|
||||
[RAB_OPERAND_r5900_vfsm] = RabbitizerOperandType_process_r5900_vfsm,
|
||||
[RAB_OPERAND_r5900_vftm] = RabbitizerOperandType_process_r5900_vftm,
|
||||
[RAB_OPERAND_r5900_vfdm] = RabbitizerOperandType_process_r5900_vfdm,
|
||||
[RAB_OPERAND_r5900_vis] = RabbitizerOperandType_process_r5900_vis,
|
||||
[RAB_OPERAND_r5900_vit] = RabbitizerOperandType_process_r5900_vit,
|
||||
[RAB_OPERAND_r5900_vid] = RabbitizerOperandType_process_r5900_vid,
|
||||
[RAB_OPERAND_r5900_vis_predecr] = RabbitizerOperandType_process_r5900_vis_predecr,
|
||||
[RAB_OPERAND_r5900_vit_predecr] = RabbitizerOperandType_process_r5900_vit_predecr,
|
||||
[RAB_OPERAND_r5900_vid_predecr] = RabbitizerOperandType_process_r5900_vid_predecr,
|
||||
[RAB_OPERAND_r5900_vis_postincr] = RabbitizerOperandType_process_r5900_vis_postincr,
|
||||
[RAB_OPERAND_r5900_vit_postincr] = RabbitizerOperandType_process_r5900_vit_postincr,
|
||||
[RAB_OPERAND_r5900_vid_postincr] = RabbitizerOperandType_process_r5900_vid_postincr,
|
||||
[RAB_OPERAND_r5900_immediate5] = RabbitizerOperandType_process_r5900_immediate5,
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,12 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RAB_DEF_OPERAND(prefix, operand) [RAB_OPERAND_##prefix##_##operand] = RabbitizerOperandType_process_##prefix##_##operand,
|
||||
|
||||
const OperandCallback instrOpercandCallbacks[] = {
|
||||
#include "instructions/operands/RabbitizerOperandType_cpu.inc"
|
||||
#include "instructions/operands/RabbitizerOperandType_rsp.inc"
|
||||
#include "instructions/operands/RabbitizerOperandType_r5900.inc"
|
||||
};
|
||||
|
||||
#undef RAB_DEF_OPERAND
|
@ -8,79 +8,7 @@
|
||||
#include "common/Utils.h"
|
||||
#include "common/RabbitizerConfig.h"
|
||||
|
||||
#define RABBITIZER_DEF_REG(prefix, name, numeric) [RABBITIZER_REG_##prefix##_##name] = { "$" #numeric, "$" #name }
|
||||
|
||||
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric) [RABBITIZER_REG_##prefix##_##name] = { "$" #numeric, #name }
|
||||
|
||||
// numeric, named
|
||||
|
||||
const char *RabbitizerRegister_GprO32_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_GprO32.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_GprN32_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_GprN32.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_Cop0_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop0.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_Cop1O32_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1O32.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_Cop1N32_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1N32.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_Cop1N64_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1N64.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_Cop1Control_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1Control.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_Cop2_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop2.inc"
|
||||
};
|
||||
|
||||
/* RSP */
|
||||
|
||||
const char *RabbitizerRegister_RspGpr_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_RspGpr.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_RspCop0_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop0.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_RspCop2_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop2.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_RspCop2Control_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop2Control.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_RspVector_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_RspVector.inc"
|
||||
};
|
||||
|
||||
/* RSP */
|
||||
|
||||
/* R5900 */
|
||||
|
||||
const char *RabbitizerRegister_R5900VF_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_R5900VF.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_R5900VI_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_R5900VI.inc"
|
||||
};
|
||||
|
||||
/* R5900 */
|
||||
#include "Registers_Names_arrays.table.h"
|
||||
|
||||
const char *RabbitizerRegister_getNameGpr(uint8_t regValue) {
|
||||
assert(regValue < ARRAY_COUNT(RabbitizerRegister_GprO32_Names));
|
||||
|
504
src/instructions/Registers_Names_arrays.table.h
Normal file
504
src/instructions/Registers_Names_arrays.table.h
Normal file
@ -0,0 +1,504 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/* Automatically generated. DO NOT MODIFY */
|
||||
|
||||
#ifndef Registers_Names_arrays_table_h_automatic
|
||||
#define Registers_Names_arrays_table_h_automatic
|
||||
|
||||
const char *RabbitizerRegister_GprO32_Names[][2] = {
|
||||
[RABBITIZER_REG_GPR_O32_zero] = { "$" "0", "$" "zero" },
|
||||
[RABBITIZER_REG_GPR_O32_at] = { "$" "1", "$" "at" },
|
||||
[RABBITIZER_REG_GPR_O32_v0] = { "$" "2", "$" "v0" },
|
||||
[RABBITIZER_REG_GPR_O32_v1] = { "$" "3", "$" "v1" },
|
||||
[RABBITIZER_REG_GPR_O32_a0] = { "$" "4", "$" "a0" },
|
||||
[RABBITIZER_REG_GPR_O32_a1] = { "$" "5", "$" "a1" },
|
||||
[RABBITIZER_REG_GPR_O32_a2] = { "$" "6", "$" "a2" },
|
||||
[RABBITIZER_REG_GPR_O32_a3] = { "$" "7", "$" "a3" },
|
||||
[RABBITIZER_REG_GPR_O32_t0] = { "$" "8", "$" "t0" },
|
||||
[RABBITIZER_REG_GPR_O32_t1] = { "$" "9", "$" "t1" },
|
||||
[RABBITIZER_REG_GPR_O32_t2] = { "$" "10", "$" "t2" },
|
||||
[RABBITIZER_REG_GPR_O32_t3] = { "$" "11", "$" "t3" },
|
||||
[RABBITIZER_REG_GPR_O32_t4] = { "$" "12", "$" "t4" },
|
||||
[RABBITIZER_REG_GPR_O32_t5] = { "$" "13", "$" "t5" },
|
||||
[RABBITIZER_REG_GPR_O32_t6] = { "$" "14", "$" "t6" },
|
||||
[RABBITIZER_REG_GPR_O32_t7] = { "$" "15", "$" "t7" },
|
||||
[RABBITIZER_REG_GPR_O32_s0] = { "$" "16", "$" "s0" },
|
||||
[RABBITIZER_REG_GPR_O32_s1] = { "$" "17", "$" "s1" },
|
||||
[RABBITIZER_REG_GPR_O32_s2] = { "$" "18", "$" "s2" },
|
||||
[RABBITIZER_REG_GPR_O32_s3] = { "$" "19", "$" "s3" },
|
||||
[RABBITIZER_REG_GPR_O32_s4] = { "$" "20", "$" "s4" },
|
||||
[RABBITIZER_REG_GPR_O32_s5] = { "$" "21", "$" "s5" },
|
||||
[RABBITIZER_REG_GPR_O32_s6] = { "$" "22", "$" "s6" },
|
||||
[RABBITIZER_REG_GPR_O32_s7] = { "$" "23", "$" "s7" },
|
||||
[RABBITIZER_REG_GPR_O32_t8] = { "$" "24", "$" "t8" },
|
||||
[RABBITIZER_REG_GPR_O32_t9] = { "$" "25", "$" "t9" },
|
||||
[RABBITIZER_REG_GPR_O32_k0] = { "$" "26", "$" "k0" },
|
||||
[RABBITIZER_REG_GPR_O32_k1] = { "$" "27", "$" "k1" },
|
||||
[RABBITIZER_REG_GPR_O32_gp] = { "$" "28", "$" "gp" },
|
||||
[RABBITIZER_REG_GPR_O32_sp] = { "$" "29", "$" "sp" },
|
||||
[RABBITIZER_REG_GPR_O32_fp] = { "$" "30", "$" "fp" },
|
||||
[RABBITIZER_REG_GPR_O32_ra] = { "$" "31", "$" "ra" },
|
||||
};
|
||||
const char *RabbitizerRegister_GprN32_Names[][2] = {
|
||||
[RABBITIZER_REG_GPR_N32_zero] = { "$" "0", "$" "zero" },
|
||||
[RABBITIZER_REG_GPR_N32_at] = { "$" "1", "$" "at" },
|
||||
[RABBITIZER_REG_GPR_N32_v0] = { "$" "2", "$" "v0" },
|
||||
[RABBITIZER_REG_GPR_N32_v1] = { "$" "3", "$" "v1" },
|
||||
[RABBITIZER_REG_GPR_N32_a0] = { "$" "4", "$" "a0" },
|
||||
[RABBITIZER_REG_GPR_N32_a1] = { "$" "5", "$" "a1" },
|
||||
[RABBITIZER_REG_GPR_N32_a2] = { "$" "6", "$" "a2" },
|
||||
[RABBITIZER_REG_GPR_N32_a3] = { "$" "7", "$" "a3" },
|
||||
[RABBITIZER_REG_GPR_N32_a4] = { "$" "8", "$" "a4" },
|
||||
[RABBITIZER_REG_GPR_N32_a5] = { "$" "9", "$" "a5" },
|
||||
[RABBITIZER_REG_GPR_N32_a6] = { "$" "10", "$" "a6" },
|
||||
[RABBITIZER_REG_GPR_N32_a7] = { "$" "11", "$" "a7" },
|
||||
[RABBITIZER_REG_GPR_N32_t0] = { "$" "12", "$" "t0" },
|
||||
[RABBITIZER_REG_GPR_N32_t1] = { "$" "13", "$" "t1" },
|
||||
[RABBITIZER_REG_GPR_N32_t2] = { "$" "14", "$" "t2" },
|
||||
[RABBITIZER_REG_GPR_N32_t3] = { "$" "15", "$" "t3" },
|
||||
[RABBITIZER_REG_GPR_N32_s0] = { "$" "16", "$" "s0" },
|
||||
[RABBITIZER_REG_GPR_N32_s1] = { "$" "17", "$" "s1" },
|
||||
[RABBITIZER_REG_GPR_N32_s2] = { "$" "18", "$" "s2" },
|
||||
[RABBITIZER_REG_GPR_N32_s3] = { "$" "19", "$" "s3" },
|
||||
[RABBITIZER_REG_GPR_N32_s4] = { "$" "20", "$" "s4" },
|
||||
[RABBITIZER_REG_GPR_N32_s5] = { "$" "21", "$" "s5" },
|
||||
[RABBITIZER_REG_GPR_N32_s6] = { "$" "22", "$" "s6" },
|
||||
[RABBITIZER_REG_GPR_N32_s7] = { "$" "23", "$" "s7" },
|
||||
[RABBITIZER_REG_GPR_N32_t8] = { "$" "24", "$" "t8" },
|
||||
[RABBITIZER_REG_GPR_N32_t9] = { "$" "25", "$" "t9" },
|
||||
[RABBITIZER_REG_GPR_N32_k0] = { "$" "26", "$" "k0" },
|
||||
[RABBITIZER_REG_GPR_N32_k1] = { "$" "27", "$" "k1" },
|
||||
[RABBITIZER_REG_GPR_N32_gp] = { "$" "28", "$" "gp" },
|
||||
[RABBITIZER_REG_GPR_N32_sp] = { "$" "29", "$" "sp" },
|
||||
[RABBITIZER_REG_GPR_N32_fp] = { "$" "30", "$" "fp" },
|
||||
[RABBITIZER_REG_GPR_N32_ra] = { "$" "31", "$" "ra" },
|
||||
};
|
||||
const char *RabbitizerRegister_Cop0_Names[][2] = {
|
||||
[RABBITIZER_REG_COP0_Index] = { "$" "0", "Index" },
|
||||
[RABBITIZER_REG_COP0_Random] = { "$" "1", "Random" },
|
||||
[RABBITIZER_REG_COP0_EntryLo0] = { "$" "2", "EntryLo0" },
|
||||
[RABBITIZER_REG_COP0_EntryLo1] = { "$" "3", "EntryLo1" },
|
||||
[RABBITIZER_REG_COP0_Context] = { "$" "4", "Context" },
|
||||
[RABBITIZER_REG_COP0_PageMask] = { "$" "5", "PageMask" },
|
||||
[RABBITIZER_REG_COP0_Wired] = { "$" "6", "Wired" },
|
||||
[RABBITIZER_REG_COP0_Reserved07] = { "$" "7", "Reserved07" },
|
||||
[RABBITIZER_REG_COP0_BadVaddr] = { "$" "8", "BadVaddr" },
|
||||
[RABBITIZER_REG_COP0_Count] = { "$" "9", "Count" },
|
||||
[RABBITIZER_REG_COP0_EntryHi] = { "$" "10", "EntryHi" },
|
||||
[RABBITIZER_REG_COP0_Compare] = { "$" "11", "Compare" },
|
||||
[RABBITIZER_REG_COP0_Status] = { "$" "12", "Status" },
|
||||
[RABBITIZER_REG_COP0_Cause] = { "$" "13", "Cause" },
|
||||
[RABBITIZER_REG_COP0_EPC] = { "$" "14", "EPC" },
|
||||
[RABBITIZER_REG_COP0_PRevID] = { "$" "15", "PRevID" },
|
||||
[RABBITIZER_REG_COP0_Config] = { "$" "16", "Config" },
|
||||
[RABBITIZER_REG_COP0_LLAddr] = { "$" "17", "LLAddr" },
|
||||
[RABBITIZER_REG_COP0_WatchLo] = { "$" "18", "WatchLo" },
|
||||
[RABBITIZER_REG_COP0_WatchHi] = { "$" "19", "WatchHi" },
|
||||
[RABBITIZER_REG_COP0_XContext] = { "$" "20", "XContext" },
|
||||
[RABBITIZER_REG_COP0_Reserved21] = { "$" "21", "Reserved21" },
|
||||
[RABBITIZER_REG_COP0_Reserved22] = { "$" "22", "Reserved22" },
|
||||
[RABBITIZER_REG_COP0_Reserved23] = { "$" "23", "Reserved23" },
|
||||
[RABBITIZER_REG_COP0_Reserved24] = { "$" "24", "Reserved24" },
|
||||
[RABBITIZER_REG_COP0_Reserved25] = { "$" "25", "Reserved25" },
|
||||
[RABBITIZER_REG_COP0_PErr] = { "$" "26", "PErr" },
|
||||
[RABBITIZER_REG_COP0_CacheErr] = { "$" "27", "CacheErr" },
|
||||
[RABBITIZER_REG_COP0_TagLo] = { "$" "28", "TagLo" },
|
||||
[RABBITIZER_REG_COP0_TagHi] = { "$" "29", "TagHi" },
|
||||
[RABBITIZER_REG_COP0_ErrorEPC] = { "$" "30", "ErrorEPC" },
|
||||
[RABBITIZER_REG_COP0_Reserved31] = { "$" "31", "Reserved31" },
|
||||
};
|
||||
const char *RabbitizerRegister_Cop1O32_Names[][2] = {
|
||||
[RABBITIZER_REG_COP1_O32_fv0] = { "$" "f0", "$" "fv0" },
|
||||
[RABBITIZER_REG_COP1_O32_fv0f] = { "$" "f1", "$" "fv0f" },
|
||||
[RABBITIZER_REG_COP1_O32_fv1] = { "$" "f2", "$" "fv1" },
|
||||
[RABBITIZER_REG_COP1_O32_fv1f] = { "$" "f3", "$" "fv1f" },
|
||||
[RABBITIZER_REG_COP1_O32_ft0] = { "$" "f4", "$" "ft0" },
|
||||
[RABBITIZER_REG_COP1_O32_ft0f] = { "$" "f5", "$" "ft0f" },
|
||||
[RABBITIZER_REG_COP1_O32_ft1] = { "$" "f6", "$" "ft1" },
|
||||
[RABBITIZER_REG_COP1_O32_ft1f] = { "$" "f7", "$" "ft1f" },
|
||||
[RABBITIZER_REG_COP1_O32_ft2] = { "$" "f8", "$" "ft2" },
|
||||
[RABBITIZER_REG_COP1_O32_ft2f] = { "$" "f9", "$" "ft2f" },
|
||||
[RABBITIZER_REG_COP1_O32_ft3] = { "$" "f10", "$" "ft3" },
|
||||
[RABBITIZER_REG_COP1_O32_ft3f] = { "$" "f11", "$" "ft3f" },
|
||||
[RABBITIZER_REG_COP1_O32_fa0] = { "$" "f12", "$" "fa0" },
|
||||
[RABBITIZER_REG_COP1_O32_fa0f] = { "$" "f13", "$" "fa0f" },
|
||||
[RABBITIZER_REG_COP1_O32_fa1] = { "$" "f14", "$" "fa1" },
|
||||
[RABBITIZER_REG_COP1_O32_fa1f] = { "$" "f15", "$" "fa1f" },
|
||||
[RABBITIZER_REG_COP1_O32_ft4] = { "$" "f16", "$" "ft4" },
|
||||
[RABBITIZER_REG_COP1_O32_ft4f] = { "$" "f17", "$" "ft4f" },
|
||||
[RABBITIZER_REG_COP1_O32_ft5] = { "$" "f18", "$" "ft5" },
|
||||
[RABBITIZER_REG_COP1_O32_ft5f] = { "$" "f19", "$" "ft5f" },
|
||||
[RABBITIZER_REG_COP1_O32_fs0] = { "$" "f20", "$" "fs0" },
|
||||
[RABBITIZER_REG_COP1_O32_fs0f] = { "$" "f21", "$" "fs0f" },
|
||||
[RABBITIZER_REG_COP1_O32_fs1] = { "$" "f22", "$" "fs1" },
|
||||
[RABBITIZER_REG_COP1_O32_fs1f] = { "$" "f23", "$" "fs1f" },
|
||||
[RABBITIZER_REG_COP1_O32_fs2] = { "$" "f24", "$" "fs2" },
|
||||
[RABBITIZER_REG_COP1_O32_fs2f] = { "$" "f25", "$" "fs2f" },
|
||||
[RABBITIZER_REG_COP1_O32_fs3] = { "$" "f26", "$" "fs3" },
|
||||
[RABBITIZER_REG_COP1_O32_fs3f] = { "$" "f27", "$" "fs3f" },
|
||||
[RABBITIZER_REG_COP1_O32_fs4] = { "$" "f28", "$" "fs4" },
|
||||
[RABBITIZER_REG_COP1_O32_fs4f] = { "$" "f29", "$" "fs4f" },
|
||||
[RABBITIZER_REG_COP1_O32_fs5] = { "$" "f30", "$" "fs5" },
|
||||
[RABBITIZER_REG_COP1_O32_fs5f] = { "$" "f31", "$" "fs5f" },
|
||||
};
|
||||
const char *RabbitizerRegister_Cop1N32_Names[][2] = {
|
||||
[RABBITIZER_REG_COP1_N32_fv0] = { "$" "f0", "$" "fv0" },
|
||||
[RABBITIZER_REG_COP1_N32_ft14] = { "$" "f1", "$" "ft14" },
|
||||
[RABBITIZER_REG_COP1_N32_fv1] = { "$" "f2", "$" "fv1" },
|
||||
[RABBITIZER_REG_COP1_N32_ft15] = { "$" "f3", "$" "ft15" },
|
||||
[RABBITIZER_REG_COP1_N32_ft0] = { "$" "f4", "$" "ft0" },
|
||||
[RABBITIZER_REG_COP1_N32_ft1] = { "$" "f5", "$" "ft1" },
|
||||
[RABBITIZER_REG_COP1_N32_ft2] = { "$" "f6", "$" "ft2" },
|
||||
[RABBITIZER_REG_COP1_N32_ft3] = { "$" "f7", "$" "ft3" },
|
||||
[RABBITIZER_REG_COP1_N32_ft4] = { "$" "f8", "$" "ft4" },
|
||||
[RABBITIZER_REG_COP1_N32_ft5] = { "$" "f9", "$" "ft5" },
|
||||
[RABBITIZER_REG_COP1_N32_ft6] = { "$" "f10", "$" "ft6" },
|
||||
[RABBITIZER_REG_COP1_N32_ft7] = { "$" "f11", "$" "ft7" },
|
||||
[RABBITIZER_REG_COP1_N32_fa0] = { "$" "f12", "$" "fa0" },
|
||||
[RABBITIZER_REG_COP1_N32_fa1] = { "$" "f13", "$" "fa1" },
|
||||
[RABBITIZER_REG_COP1_N32_fa2] = { "$" "f14", "$" "fa2" },
|
||||
[RABBITIZER_REG_COP1_N32_fa3] = { "$" "f15", "$" "fa3" },
|
||||
[RABBITIZER_REG_COP1_N32_fa4] = { "$" "f16", "$" "fa4" },
|
||||
[RABBITIZER_REG_COP1_N32_fa5] = { "$" "f17", "$" "fa5" },
|
||||
[RABBITIZER_REG_COP1_N32_fa6] = { "$" "f18", "$" "fa6" },
|
||||
[RABBITIZER_REG_COP1_N32_fa7] = { "$" "f19", "$" "fa7" },
|
||||
[RABBITIZER_REG_COP1_N32_fs0] = { "$" "f20", "$" "fs0" },
|
||||
[RABBITIZER_REG_COP1_N32_ft8] = { "$" "f21", "$" "ft8" },
|
||||
[RABBITIZER_REG_COP1_N32_fs1] = { "$" "f22", "$" "fs1" },
|
||||
[RABBITIZER_REG_COP1_N32_ft9] = { "$" "f23", "$" "ft9" },
|
||||
[RABBITIZER_REG_COP1_N32_fs2] = { "$" "f24", "$" "fs2" },
|
||||
[RABBITIZER_REG_COP1_N32_ft10] = { "$" "f25", "$" "ft10" },
|
||||
[RABBITIZER_REG_COP1_N32_fs3] = { "$" "f26", "$" "fs3" },
|
||||
[RABBITIZER_REG_COP1_N32_ft11] = { "$" "f27", "$" "ft11" },
|
||||
[RABBITIZER_REG_COP1_N32_fs4] = { "$" "f28", "$" "fs4" },
|
||||
[RABBITIZER_REG_COP1_N32_ft12] = { "$" "f29", "$" "ft12" },
|
||||
[RABBITIZER_REG_COP1_N32_fs5] = { "$" "f30", "$" "fs5" },
|
||||
[RABBITIZER_REG_COP1_N32_ft13] = { "$" "f31", "$" "ft13" },
|
||||
};
|
||||
const char *RabbitizerRegister_Cop1N64_Names[][2] = {
|
||||
[RABBITIZER_REG_COP1_N64_fv0] = { "$" "f0", "$" "fv0" },
|
||||
[RABBITIZER_REG_COP1_N64_ft12] = { "$" "f1", "$" "ft12" },
|
||||
[RABBITIZER_REG_COP1_N64_fv1] = { "$" "f2", "$" "fv1" },
|
||||
[RABBITIZER_REG_COP1_N64_ft13] = { "$" "f3", "$" "ft13" },
|
||||
[RABBITIZER_REG_COP1_N64_ft0] = { "$" "f4", "$" "ft0" },
|
||||
[RABBITIZER_REG_COP1_N64_ft1] = { "$" "f5", "$" "ft1" },
|
||||
[RABBITIZER_REG_COP1_N64_ft2] = { "$" "f6", "$" "ft2" },
|
||||
[RABBITIZER_REG_COP1_N64_ft3] = { "$" "f7", "$" "ft3" },
|
||||
[RABBITIZER_REG_COP1_N64_ft4] = { "$" "f8", "$" "ft4" },
|
||||
[RABBITIZER_REG_COP1_N64_ft5] = { "$" "f9", "$" "ft5" },
|
||||
[RABBITIZER_REG_COP1_N64_ft6] = { "$" "f10", "$" "ft6" },
|
||||
[RABBITIZER_REG_COP1_N64_ft7] = { "$" "f11", "$" "ft7" },
|
||||
[RABBITIZER_REG_COP1_N64_fa0] = { "$" "f12", "$" "fa0" },
|
||||
[RABBITIZER_REG_COP1_N64_fa1] = { "$" "f13", "$" "fa1" },
|
||||
[RABBITIZER_REG_COP1_N64_fa2] = { "$" "f14", "$" "fa2" },
|
||||
[RABBITIZER_REG_COP1_N64_fa3] = { "$" "f15", "$" "fa3" },
|
||||
[RABBITIZER_REG_COP1_N64_fa4] = { "$" "f16", "$" "fa4" },
|
||||
[RABBITIZER_REG_COP1_N64_fa5] = { "$" "f17", "$" "fa5" },
|
||||
[RABBITIZER_REG_COP1_N64_fa6] = { "$" "f18", "$" "fa6" },
|
||||
[RABBITIZER_REG_COP1_N64_fa7] = { "$" "f19", "$" "fa7" },
|
||||
[RABBITIZER_REG_COP1_N64_ft8] = { "$" "f20", "$" "ft8" },
|
||||
[RABBITIZER_REG_COP1_N64_ft9] = { "$" "f21", "$" "ft9" },
|
||||
[RABBITIZER_REG_COP1_N64_ft10] = { "$" "f22", "$" "ft10" },
|
||||
[RABBITIZER_REG_COP1_N64_ft11] = { "$" "f23", "$" "ft11" },
|
||||
[RABBITIZER_REG_COP1_N64_fs0] = { "$" "f24", "$" "fs0" },
|
||||
[RABBITIZER_REG_COP1_N64_fs1] = { "$" "f25", "$" "fs1" },
|
||||
[RABBITIZER_REG_COP1_N64_fs2] = { "$" "f26", "$" "fs2" },
|
||||
[RABBITIZER_REG_COP1_N64_fs3] = { "$" "f27", "$" "fs3" },
|
||||
[RABBITIZER_REG_COP1_N64_fs4] = { "$" "f28", "$" "fs4" },
|
||||
[RABBITIZER_REG_COP1_N64_fs5] = { "$" "f29", "$" "fs5" },
|
||||
[RABBITIZER_REG_COP1_N64_fs6] = { "$" "f30", "$" "fs6" },
|
||||
[RABBITIZER_REG_COP1_N64_fs7] = { "$" "f31", "$" "fs7" },
|
||||
};
|
||||
const char *RabbitizerRegister_Cop1Control_Names[][2] = {
|
||||
[RABBITIZER_REG_COP1_CONTROL_0] = { "$" "0", "$" "0" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_1] = { "$" "1", "$" "1" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_2] = { "$" "2", "$" "2" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_3] = { "$" "3", "$" "3" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_4] = { "$" "4", "$" "4" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_5] = { "$" "5", "$" "5" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_6] = { "$" "6", "$" "6" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_7] = { "$" "7", "$" "7" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_8] = { "$" "8", "$" "8" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_9] = { "$" "9", "$" "9" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_10] = { "$" "10", "$" "10" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_11] = { "$" "11", "$" "11" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_12] = { "$" "12", "$" "12" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_13] = { "$" "13", "$" "13" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_14] = { "$" "14", "$" "14" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_15] = { "$" "15", "$" "15" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_16] = { "$" "16", "$" "16" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_17] = { "$" "17", "$" "17" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_18] = { "$" "18", "$" "18" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_19] = { "$" "19", "$" "19" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_20] = { "$" "20", "$" "20" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_21] = { "$" "21", "$" "21" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_22] = { "$" "22", "$" "22" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_23] = { "$" "23", "$" "23" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_24] = { "$" "24", "$" "24" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_25] = { "$" "25", "$" "25" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_26] = { "$" "26", "$" "26" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_27] = { "$" "27", "$" "27" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_28] = { "$" "28", "$" "28" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_29] = { "$" "29", "$" "29" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_30] = { "$" "30", "$" "30" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_FpcCsr] = { "$" "31", "$" "FpcCsr" },
|
||||
};
|
||||
const char *RabbitizerRegister_Cop2_Names[][2] = {
|
||||
[RABBITIZER_REG_COP2_0] = { "$" "0", "$" "0" },
|
||||
[RABBITIZER_REG_COP2_1] = { "$" "1", "$" "1" },
|
||||
[RABBITIZER_REG_COP2_2] = { "$" "2", "$" "2" },
|
||||
[RABBITIZER_REG_COP2_3] = { "$" "3", "$" "3" },
|
||||
[RABBITIZER_REG_COP2_4] = { "$" "4", "$" "4" },
|
||||
[RABBITIZER_REG_COP2_5] = { "$" "5", "$" "5" },
|
||||
[RABBITIZER_REG_COP2_6] = { "$" "6", "$" "6" },
|
||||
[RABBITIZER_REG_COP2_7] = { "$" "7", "$" "7" },
|
||||
[RABBITIZER_REG_COP2_8] = { "$" "8", "$" "8" },
|
||||
[RABBITIZER_REG_COP2_9] = { "$" "9", "$" "9" },
|
||||
[RABBITIZER_REG_COP2_10] = { "$" "10", "$" "10" },
|
||||
[RABBITIZER_REG_COP2_11] = { "$" "11", "$" "11" },
|
||||
[RABBITIZER_REG_COP2_12] = { "$" "12", "$" "12" },
|
||||
[RABBITIZER_REG_COP2_13] = { "$" "13", "$" "13" },
|
||||
[RABBITIZER_REG_COP2_14] = { "$" "14", "$" "14" },
|
||||
[RABBITIZER_REG_COP2_15] = { "$" "15", "$" "15" },
|
||||
[RABBITIZER_REG_COP2_16] = { "$" "16", "$" "16" },
|
||||
[RABBITIZER_REG_COP2_17] = { "$" "17", "$" "17" },
|
||||
[RABBITIZER_REG_COP2_18] = { "$" "18", "$" "18" },
|
||||
[RABBITIZER_REG_COP2_19] = { "$" "19", "$" "19" },
|
||||
[RABBITIZER_REG_COP2_20] = { "$" "20", "$" "20" },
|
||||
[RABBITIZER_REG_COP2_21] = { "$" "21", "$" "21" },
|
||||
[RABBITIZER_REG_COP2_22] = { "$" "22", "$" "22" },
|
||||
[RABBITIZER_REG_COP2_23] = { "$" "23", "$" "23" },
|
||||
[RABBITIZER_REG_COP2_24] = { "$" "24", "$" "24" },
|
||||
[RABBITIZER_REG_COP2_25] = { "$" "25", "$" "25" },
|
||||
[RABBITIZER_REG_COP2_26] = { "$" "26", "$" "26" },
|
||||
[RABBITIZER_REG_COP2_27] = { "$" "27", "$" "27" },
|
||||
[RABBITIZER_REG_COP2_28] = { "$" "28", "$" "28" },
|
||||
[RABBITIZER_REG_COP2_29] = { "$" "29", "$" "29" },
|
||||
[RABBITIZER_REG_COP2_30] = { "$" "30", "$" "30" },
|
||||
[RABBITIZER_REG_COP2_31] = { "$" "31", "$" "31" },
|
||||
};
|
||||
const char *RabbitizerRegister_RspGpr_Names[][2] = {
|
||||
[RABBITIZER_REG_RSP_GPR_zero] = { "$" "0", "$" "zero" },
|
||||
[RABBITIZER_REG_RSP_GPR_1] = { "$" "1", "$" "1" },
|
||||
[RABBITIZER_REG_RSP_GPR_2] = { "$" "2", "$" "2" },
|
||||
[RABBITIZER_REG_RSP_GPR_3] = { "$" "3", "$" "3" },
|
||||
[RABBITIZER_REG_RSP_GPR_4] = { "$" "4", "$" "4" },
|
||||
[RABBITIZER_REG_RSP_GPR_5] = { "$" "5", "$" "5" },
|
||||
[RABBITIZER_REG_RSP_GPR_6] = { "$" "6", "$" "6" },
|
||||
[RABBITIZER_REG_RSP_GPR_7] = { "$" "7", "$" "7" },
|
||||
[RABBITIZER_REG_RSP_GPR_8] = { "$" "8", "$" "8" },
|
||||
[RABBITIZER_REG_RSP_GPR_9] = { "$" "9", "$" "9" },
|
||||
[RABBITIZER_REG_RSP_GPR_10] = { "$" "10", "$" "10" },
|
||||
[RABBITIZER_REG_RSP_GPR_11] = { "$" "11", "$" "11" },
|
||||
[RABBITIZER_REG_RSP_GPR_12] = { "$" "12", "$" "12" },
|
||||
[RABBITIZER_REG_RSP_GPR_13] = { "$" "13", "$" "13" },
|
||||
[RABBITIZER_REG_RSP_GPR_14] = { "$" "14", "$" "14" },
|
||||
[RABBITIZER_REG_RSP_GPR_15] = { "$" "15", "$" "15" },
|
||||
[RABBITIZER_REG_RSP_GPR_16] = { "$" "16", "$" "16" },
|
||||
[RABBITIZER_REG_RSP_GPR_17] = { "$" "17", "$" "17" },
|
||||
[RABBITIZER_REG_RSP_GPR_18] = { "$" "18", "$" "18" },
|
||||
[RABBITIZER_REG_RSP_GPR_19] = { "$" "19", "$" "19" },
|
||||
[RABBITIZER_REG_RSP_GPR_20] = { "$" "20", "$" "20" },
|
||||
[RABBITIZER_REG_RSP_GPR_21] = { "$" "21", "$" "21" },
|
||||
[RABBITIZER_REG_RSP_GPR_22] = { "$" "22", "$" "22" },
|
||||
[RABBITIZER_REG_RSP_GPR_23] = { "$" "23", "$" "23" },
|
||||
[RABBITIZER_REG_RSP_GPR_24] = { "$" "24", "$" "24" },
|
||||
[RABBITIZER_REG_RSP_GPR_25] = { "$" "25", "$" "25" },
|
||||
[RABBITIZER_REG_RSP_GPR_26] = { "$" "26", "$" "26" },
|
||||
[RABBITIZER_REG_RSP_GPR_27] = { "$" "27", "$" "27" },
|
||||
[RABBITIZER_REG_RSP_GPR_28] = { "$" "28", "$" "28" },
|
||||
[RABBITIZER_REG_RSP_GPR_29] = { "$" "29", "$" "29" },
|
||||
[RABBITIZER_REG_RSP_GPR_30] = { "$" "30", "$" "30" },
|
||||
[RABBITIZER_REG_RSP_GPR_ra] = { "$" "31", "$" "ra" },
|
||||
};
|
||||
const char *RabbitizerRegister_RspCop0_Names[][2] = {
|
||||
[RABBITIZER_REG_RSP_COP0_SP_MEM_ADDR] = { "$" "0", "SP_MEM_ADDR" },
|
||||
[RABBITIZER_REG_RSP_COP0_SP_DRAM_ADDR] = { "$" "1", "SP_DRAM_ADDR" },
|
||||
[RABBITIZER_REG_RSP_COP0_SP_RD_LEN] = { "$" "2", "SP_RD_LEN" },
|
||||
[RABBITIZER_REG_RSP_COP0_SP_WR_LEN] = { "$" "3", "SP_WR_LEN" },
|
||||
[RABBITIZER_REG_RSP_COP0_SP_STATUS] = { "$" "4", "SP_STATUS" },
|
||||
[RABBITIZER_REG_RSP_COP0_SP_DMA_FULL] = { "$" "5", "SP_DMA_FULL" },
|
||||
[RABBITIZER_REG_RSP_COP0_SP_DMA_BUSY] = { "$" "6", "SP_DMA_BUSY" },
|
||||
[RABBITIZER_REG_RSP_COP0_SP_SEMAPHORE] = { "$" "7", "SP_SEMAPHORE" },
|
||||
[RABBITIZER_REG_RSP_COP0_DPC_START] = { "$" "8", "DPC_START" },
|
||||
[RABBITIZER_REG_RSP_COP0_DPC_END] = { "$" "9", "DPC_END" },
|
||||
[RABBITIZER_REG_RSP_COP0_DPC_CURRENT] = { "$" "10", "DPC_CURRENT" },
|
||||
[RABBITIZER_REG_RSP_COP0_DPC_STATUS] = { "$" "11", "DPC_STATUS" },
|
||||
[RABBITIZER_REG_RSP_COP0_DPC_CLOCK] = { "$" "12", "DPC_CLOCK" },
|
||||
[RABBITIZER_REG_RSP_COP0_DPC_BUFBUSY] = { "$" "13", "DPC_BUFBUSY" },
|
||||
[RABBITIZER_REG_RSP_COP0_DPC_PIPEBUSY] = { "$" "14", "DPC_PIPEBUSY" },
|
||||
[RABBITIZER_REG_RSP_COP0_DPC_TMEM] = { "$" "15", "DPC_TMEM" },
|
||||
};
|
||||
const char *RabbitizerRegister_RspCop2_Names[][2] = {
|
||||
[RABBITIZER_REG_RSP_COP2_0] = { "$" "0", "$" "0" },
|
||||
[RABBITIZER_REG_RSP_COP2_1] = { "$" "1", "$" "1" },
|
||||
[RABBITIZER_REG_RSP_COP2_2] = { "$" "2", "$" "2" },
|
||||
[RABBITIZER_REG_RSP_COP2_3] = { "$" "3", "$" "3" },
|
||||
[RABBITIZER_REG_RSP_COP2_4] = { "$" "4", "$" "4" },
|
||||
[RABBITIZER_REG_RSP_COP2_5] = { "$" "5", "$" "5" },
|
||||
[RABBITIZER_REG_RSP_COP2_6] = { "$" "6", "$" "6" },
|
||||
[RABBITIZER_REG_RSP_COP2_7] = { "$" "7", "$" "7" },
|
||||
[RABBITIZER_REG_RSP_COP2_8] = { "$" "8", "$" "8" },
|
||||
[RABBITIZER_REG_RSP_COP2_9] = { "$" "9", "$" "9" },
|
||||
[RABBITIZER_REG_RSP_COP2_10] = { "$" "10", "$" "10" },
|
||||
[RABBITIZER_REG_RSP_COP2_11] = { "$" "11", "$" "11" },
|
||||
[RABBITIZER_REG_RSP_COP2_12] = { "$" "12", "$" "12" },
|
||||
[RABBITIZER_REG_RSP_COP2_13] = { "$" "13", "$" "13" },
|
||||
[RABBITIZER_REG_RSP_COP2_14] = { "$" "14", "$" "14" },
|
||||
[RABBITIZER_REG_RSP_COP2_15] = { "$" "15", "$" "15" },
|
||||
[RABBITIZER_REG_RSP_COP2_16] = { "$" "16", "$" "16" },
|
||||
[RABBITIZER_REG_RSP_COP2_17] = { "$" "17", "$" "17" },
|
||||
[RABBITIZER_REG_RSP_COP2_18] = { "$" "18", "$" "18" },
|
||||
[RABBITIZER_REG_RSP_COP2_19] = { "$" "19", "$" "19" },
|
||||
[RABBITIZER_REG_RSP_COP2_20] = { "$" "20", "$" "20" },
|
||||
[RABBITIZER_REG_RSP_COP2_21] = { "$" "21", "$" "21" },
|
||||
[RABBITIZER_REG_RSP_COP2_22] = { "$" "22", "$" "22" },
|
||||
[RABBITIZER_REG_RSP_COP2_23] = { "$" "23", "$" "23" },
|
||||
[RABBITIZER_REG_RSP_COP2_24] = { "$" "24", "$" "24" },
|
||||
[RABBITIZER_REG_RSP_COP2_25] = { "$" "25", "$" "25" },
|
||||
[RABBITIZER_REG_RSP_COP2_26] = { "$" "26", "$" "26" },
|
||||
[RABBITIZER_REG_RSP_COP2_27] = { "$" "27", "$" "27" },
|
||||
[RABBITIZER_REG_RSP_COP2_28] = { "$" "28", "$" "28" },
|
||||
[RABBITIZER_REG_RSP_COP2_29] = { "$" "29", "$" "29" },
|
||||
[RABBITIZER_REG_RSP_COP2_30] = { "$" "30", "$" "30" },
|
||||
[RABBITIZER_REG_RSP_COP2_31] = { "$" "31", "$" "31" },
|
||||
};
|
||||
const char *RabbitizerRegister_RspCop2Control_Names[][2] = {
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_0] = { "$" "0", "$" "0" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_1] = { "$" "1", "$" "1" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_2] = { "$" "2", "$" "2" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_3] = { "$" "3", "$" "3" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_4] = { "$" "4", "$" "4" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_5] = { "$" "5", "$" "5" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_6] = { "$" "6", "$" "6" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_7] = { "$" "7", "$" "7" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_8] = { "$" "8", "$" "8" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_9] = { "$" "9", "$" "9" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_10] = { "$" "10", "$" "10" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_11] = { "$" "11", "$" "11" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_12] = { "$" "12", "$" "12" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_13] = { "$" "13", "$" "13" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_14] = { "$" "14", "$" "14" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_15] = { "$" "15", "$" "15" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_16] = { "$" "16", "$" "16" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_17] = { "$" "17", "$" "17" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_18] = { "$" "18", "$" "18" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_19] = { "$" "19", "$" "19" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_20] = { "$" "20", "$" "20" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_21] = { "$" "21", "$" "21" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_22] = { "$" "22", "$" "22" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_23] = { "$" "23", "$" "23" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_24] = { "$" "24", "$" "24" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_25] = { "$" "25", "$" "25" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_26] = { "$" "26", "$" "26" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_27] = { "$" "27", "$" "27" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_28] = { "$" "28", "$" "28" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_29] = { "$" "29", "$" "29" },
|
||||
[RABBITIZER_REG_RSP_COP2_CONTROL_30] = { "$" "30", "$" "30" },
|
||||
[RABBITIZER_REG_COP1_CONTROL_31] = { "$" "31", "$" "31" },
|
||||
};
|
||||
const char *RabbitizerRegister_RspVector_Names[][2] = {
|
||||
[RABBITIZER_REG_RSP_VECTOR_v0] = { "$" "0", "$" "v0" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v1] = { "$" "1", "$" "v1" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v2] = { "$" "2", "$" "v2" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v3] = { "$" "3", "$" "v3" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v4] = { "$" "4", "$" "v4" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v5] = { "$" "5", "$" "v5" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v6] = { "$" "6", "$" "v6" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v7] = { "$" "7", "$" "v7" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v8] = { "$" "8", "$" "v8" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v9] = { "$" "9", "$" "v9" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v10] = { "$" "10", "$" "v10" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v11] = { "$" "11", "$" "v11" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v12] = { "$" "12", "$" "v12" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v13] = { "$" "13", "$" "v13" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v14] = { "$" "14", "$" "v14" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v15] = { "$" "15", "$" "v15" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v16] = { "$" "16", "$" "v16" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v17] = { "$" "17", "$" "v17" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v18] = { "$" "18", "$" "v18" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v19] = { "$" "19", "$" "v19" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v20] = { "$" "20", "$" "v20" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v21] = { "$" "21", "$" "v21" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v22] = { "$" "22", "$" "v22" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v23] = { "$" "23", "$" "v23" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v24] = { "$" "24", "$" "v24" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v25] = { "$" "25", "$" "v25" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v26] = { "$" "26", "$" "v26" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v27] = { "$" "27", "$" "v27" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v28] = { "$" "28", "$" "v28" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v29] = { "$" "29", "$" "v29" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v30] = { "$" "30", "$" "v30" },
|
||||
[RABBITIZER_REG_RSP_VECTOR_v31] = { "$" "31", "$" "v31" },
|
||||
};
|
||||
const char *RabbitizerRegister_R5900VF_Names[][2] = {
|
||||
[RABBITIZER_REG_R5900_VF_vf0] = { "$" "0", "$" "vf0" },
|
||||
[RABBITIZER_REG_R5900_VF_vf1] = { "$" "1", "$" "vf1" },
|
||||
[RABBITIZER_REG_R5900_VF_vf2] = { "$" "2", "$" "vf2" },
|
||||
[RABBITIZER_REG_R5900_VF_vf3] = { "$" "3", "$" "vf3" },
|
||||
[RABBITIZER_REG_R5900_VF_vf4] = { "$" "4", "$" "vf4" },
|
||||
[RABBITIZER_REG_R5900_VF_vf5] = { "$" "5", "$" "vf5" },
|
||||
[RABBITIZER_REG_R5900_VF_vf6] = { "$" "6", "$" "vf6" },
|
||||
[RABBITIZER_REG_R5900_VF_vf7] = { "$" "7", "$" "vf7" },
|
||||
[RABBITIZER_REG_R5900_VF_vf8] = { "$" "8", "$" "vf8" },
|
||||
[RABBITIZER_REG_R5900_VF_vf9] = { "$" "9", "$" "vf9" },
|
||||
[RABBITIZER_REG_R5900_VF_vf10] = { "$" "10", "$" "vf10" },
|
||||
[RABBITIZER_REG_R5900_VF_vf11] = { "$" "11", "$" "vf11" },
|
||||
[RABBITIZER_REG_R5900_VF_vf12] = { "$" "12", "$" "vf12" },
|
||||
[RABBITIZER_REG_R5900_VF_vf13] = { "$" "13", "$" "vf13" },
|
||||
[RABBITIZER_REG_R5900_VF_vf14] = { "$" "14", "$" "vf14" },
|
||||
[RABBITIZER_REG_R5900_VF_vf15] = { "$" "15", "$" "vf15" },
|
||||
[RABBITIZER_REG_R5900_VF_vf16] = { "$" "16", "$" "vf16" },
|
||||
[RABBITIZER_REG_R5900_VF_vf17] = { "$" "17", "$" "vf17" },
|
||||
[RABBITIZER_REG_R5900_VF_vf18] = { "$" "18", "$" "vf18" },
|
||||
[RABBITIZER_REG_R5900_VF_vf19] = { "$" "19", "$" "vf19" },
|
||||
[RABBITIZER_REG_R5900_VF_vf20] = { "$" "20", "$" "vf20" },
|
||||
[RABBITIZER_REG_R5900_VF_vf21] = { "$" "21", "$" "vf21" },
|
||||
[RABBITIZER_REG_R5900_VF_vf22] = { "$" "22", "$" "vf22" },
|
||||
[RABBITIZER_REG_R5900_VF_vf23] = { "$" "23", "$" "vf23" },
|
||||
[RABBITIZER_REG_R5900_VF_vf24] = { "$" "24", "$" "vf24" },
|
||||
[RABBITIZER_REG_R5900_VF_vf25] = { "$" "25", "$" "vf25" },
|
||||
[RABBITIZER_REG_R5900_VF_vf26] = { "$" "26", "$" "vf26" },
|
||||
[RABBITIZER_REG_R5900_VF_vf27] = { "$" "27", "$" "vf27" },
|
||||
[RABBITIZER_REG_R5900_VF_vf28] = { "$" "28", "$" "vf28" },
|
||||
[RABBITIZER_REG_R5900_VF_vf29] = { "$" "29", "$" "vf29" },
|
||||
[RABBITIZER_REG_R5900_VF_vf30] = { "$" "30", "$" "vf30" },
|
||||
[RABBITIZER_REG_R5900_VF_vf31] = { "$" "31", "$" "vf31" },
|
||||
};
|
||||
const char *RabbitizerRegister_R5900VI_Names[][2] = {
|
||||
[RABBITIZER_REG_R5900_VI_vi0] = { "$" "0", "$" "vi0" },
|
||||
[RABBITIZER_REG_R5900_VI_vi1] = { "$" "1", "$" "vi1" },
|
||||
[RABBITIZER_REG_R5900_VI_vi2] = { "$" "2", "$" "vi2" },
|
||||
[RABBITIZER_REG_R5900_VI_vi3] = { "$" "3", "$" "vi3" },
|
||||
[RABBITIZER_REG_R5900_VI_vi4] = { "$" "4", "$" "vi4" },
|
||||
[RABBITIZER_REG_R5900_VI_vi5] = { "$" "5", "$" "vi5" },
|
||||
[RABBITIZER_REG_R5900_VI_vi6] = { "$" "6", "$" "vi6" },
|
||||
[RABBITIZER_REG_R5900_VI_vi7] = { "$" "7", "$" "vi7" },
|
||||
[RABBITIZER_REG_R5900_VI_vi8] = { "$" "8", "$" "vi8" },
|
||||
[RABBITIZER_REG_R5900_VI_vi9] = { "$" "9", "$" "vi9" },
|
||||
[RABBITIZER_REG_R5900_VI_vi10] = { "$" "10", "$" "vi10" },
|
||||
[RABBITIZER_REG_R5900_VI_vi11] = { "$" "11", "$" "vi11" },
|
||||
[RABBITIZER_REG_R5900_VI_vi12] = { "$" "12", "$" "vi12" },
|
||||
[RABBITIZER_REG_R5900_VI_vi13] = { "$" "13", "$" "vi13" },
|
||||
[RABBITIZER_REG_R5900_VI_vi14] = { "$" "14", "$" "vi14" },
|
||||
[RABBITIZER_REG_R5900_VI_vi15] = { "$" "15", "$" "vi15" },
|
||||
[RABBITIZER_REG_R5900_VI_vi16] = { "$" "16", "$" "vi16" },
|
||||
[RABBITIZER_REG_R5900_VI_vi17] = { "$" "17", "$" "vi17" },
|
||||
[RABBITIZER_REG_R5900_VI_vi18] = { "$" "18", "$" "vi18" },
|
||||
[RABBITIZER_REG_R5900_VI_vi19] = { "$" "19", "$" "vi19" },
|
||||
[RABBITIZER_REG_R5900_VI_vi20] = { "$" "20", "$" "vi20" },
|
||||
[RABBITIZER_REG_R5900_VI_vi21] = { "$" "21", "$" "vi21" },
|
||||
[RABBITIZER_REG_R5900_VI_vi22] = { "$" "22", "$" "vi22" },
|
||||
[RABBITIZER_REG_R5900_VI_vi23] = { "$" "23", "$" "vi23" },
|
||||
[RABBITIZER_REG_R5900_VI_vi24] = { "$" "24", "$" "vi24" },
|
||||
[RABBITIZER_REG_R5900_VI_vi25] = { "$" "25", "$" "vi25" },
|
||||
[RABBITIZER_REG_R5900_VI_vi26] = { "$" "26", "$" "vi26" },
|
||||
[RABBITIZER_REG_R5900_VI_vi27] = { "$" "27", "$" "vi27" },
|
||||
[RABBITIZER_REG_R5900_VI_vi28] = { "$" "28", "$" "vi28" },
|
||||
[RABBITIZER_REG_R5900_VI_vi29] = { "$" "29", "$" "vi29" },
|
||||
[RABBITIZER_REG_R5900_VI_vi30] = { "$" "30", "$" "vi30" },
|
||||
[RABBITIZER_REG_R5900_VI_vi31] = { "$" "31", "$" "vi31" },
|
||||
};
|
||||
|
||||
#endif
|
79
src/instructions/Registers_Names_arrays.table.template
Normal file
79
src/instructions/Registers_Names_arrays.table.template
Normal file
@ -0,0 +1,79 @@
|
||||
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#define RABBITIZER_DEF_REG(prefix, name, numeric) [RABBITIZER_REG_##prefix##_##name] = { "$" #numeric, "$" #name }
|
||||
|
||||
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric) [RABBITIZER_REG_##prefix##_##name] = { "$" #numeric, #name }
|
||||
|
||||
// numeric, named
|
||||
|
||||
const char *RabbitizerRegister_GprO32_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_GprO32.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_GprN32_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_GprN32.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_Cop0_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop0.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_Cop1O32_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1O32.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_Cop1N32_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1N32.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_Cop1N64_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1N64.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_Cop1Control_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop1Control.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_Cop2_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_Cop2.inc"
|
||||
};
|
||||
|
||||
/* RSP */
|
||||
|
||||
const char *RabbitizerRegister_RspGpr_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_RspGpr.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_RspCop0_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop0.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_RspCop2_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop2.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_RspCop2Control_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_RspCop2Control.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_RspVector_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_RspVector.inc"
|
||||
};
|
||||
|
||||
/* RSP */
|
||||
|
||||
/* R5900 */
|
||||
|
||||
const char *RabbitizerRegister_R5900VF_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_R5900VF.inc"
|
||||
};
|
||||
|
||||
const char *RabbitizerRegister_R5900VI_Names[][2] = {
|
||||
#include "instructions/registers/RabbitizerRegister_R5900VI.inc"
|
||||
};
|
||||
|
||||
/* R5900 */
|
||||
|
||||
#undef RABBITIZER_DEF_REG
|
||||
#undef RABBITIZER_DEF_REG_NODOLLAR
|
@ -12,14 +12,18 @@ HEADER_GUARD_BAD=$3
|
||||
# Change dots to underscores
|
||||
HEADER_GUARD=$(echo ${HEADER_GUARD_BAD} | sed 's/\./_/g')
|
||||
|
||||
echo "#ifndef ${HEADER_GUARD}_automatic" > ${OUTPUT_FILE}
|
||||
echo "#define ${HEADER_GUARD}_automatic" >> ${OUTPUT_FILE}
|
||||
|
||||
echo "/* SPDX-FileCopyrightText: © 2022 Decompollaborate */" > ${OUTPUT_FILE}
|
||||
echo "/* SPDX-License-Identifier: MIT */" >> ${OUTPUT_FILE}
|
||||
echo >> ${OUTPUT_FILE}
|
||||
echo "/* Automatically generated. DO NOT MODIFY */" >> ${OUTPUT_FILE}
|
||||
echo >> ${OUTPUT_FILE}
|
||||
|
||||
cpp -P ${INPUT_FILE} >> ${OUTPUT_FILE}
|
||||
echo "#ifndef ${HEADER_GUARD}_automatic" >> ${OUTPUT_FILE}
|
||||
echo "#define ${HEADER_GUARD}_automatic" >> ${OUTPUT_FILE}
|
||||
|
||||
echo >> ${OUTPUT_FILE}
|
||||
|
||||
cpp -P -I include ${INPUT_FILE} >> ${OUTPUT_FILE}
|
||||
|
||||
echo >> ${OUTPUT_FILE}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user