RegisterDescriptor

This commit is contained in:
angie 2022-12-19 17:07:32 -03:00
parent 8a9824bbd3
commit 6758468699
31 changed files with 2908 additions and 754 deletions

View File

@ -399,7 +399,7 @@
RSP_COP2_CONTROL_28,
RSP_COP2_CONTROL_29,
RSP_COP2_CONTROL_30,
COP1_CONTROL_31,
RSP_COP2_CONTROL_31,
};
enum class Vector {
RSP_VECTOR_v0,
@ -438,72 +438,72 @@
};
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,
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,
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,
};
};

View File

@ -1,11 +1,11 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
#define RABBITIZER_DEF_REG(prefix, name, numeric) \
prefix##_##name
#define RABBITIZER_DEF_REG(prefix, name, numeric, ...) \
prefix##_##name,
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric) \
prefix##_##name
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \
prefix##_##name,
namespace Cpu {
enum class GprO32 {

View File

@ -28,6 +28,8 @@ typedef enum RabbitizerInstrType {
RABBITIZER_INSTR_TYPE_MAX,
} RabbitizerInstrType;
// Please note the members of this struct may be renamed or removed without further notice.
// For consistent usage please use the functions instead
typedef struct RabbitizerInstrDescriptor {
RabbitizerOperandType operands[4];
RabbitizerInstrType instrType;
@ -140,7 +142,6 @@ typedef struct RabbitizerInstrDescriptor {
bool doesUnsignedMemoryAccess;
} RabbitizerInstrDescriptor;
// TODO: less redundant name
extern const RabbitizerInstrDescriptor RabbitizerInstrDescriptor_Descriptors[];

View File

@ -0,0 +1,92 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
#ifndef RABBITIZER_REGISTERDESCRIPTOR_H
#define RABBITIZER_REGISTERDESCRIPTOR_H
#pragma once
#include <stdbool.h>
#include "common/Utils.h"
#ifdef __cplusplus
extern "C" {
#endif
// Please note the members of this struct may be renamed or removed without further notice.
// For consistent usage please use the functions instead
typedef struct RabbitizerRegisterDescriptor {
bool isClobberedByFuncCall; // A function call invalidates the value hold by the register
bool isReserved; // This register is not implemented and is reserved for future use
bool isKernel; // Kernel-only registers ($k0, $k1)
bool isZero; // $zero
bool isAt; // $at
bool isReturnReg; // $v0, $v1
bool isRa; // $ra
bool isStackPointer; // $sp
bool isGp; // $gp
bool isTemp; // $tX
bool isArg; // $aX
bool isSaved; // $sX
} RabbitizerRegisterDescriptor;
extern const RabbitizerRegisterDescriptor RabbitizerRegister_GprO32_Descriptors[];
extern const RabbitizerRegisterDescriptor RabbitizerRegister_GprN32_Descriptors[];
extern const RabbitizerRegisterDescriptor RabbitizerRegister_Cop0_Descriptors[];
extern const RabbitizerRegisterDescriptor RabbitizerRegister_Cop1O32_Descriptors[];
extern const RabbitizerRegisterDescriptor RabbitizerRegister_Cop1N32_Descriptors[];
extern const RabbitizerRegisterDescriptor RabbitizerRegister_Cop1N64_Descriptors[];
extern const RabbitizerRegisterDescriptor RabbitizerRegister_Cop1Control_Descriptors[];
extern const RabbitizerRegisterDescriptor RabbitizerRegister_Cop2_Descriptors[];
/* RSP */
extern const RabbitizerRegisterDescriptor RabbitizerRegister_RspGpr_Descriptors[];
extern const RabbitizerRegisterDescriptor RabbitizerRegister_RspCop0_Descriptors[];
extern const RabbitizerRegisterDescriptor RabbitizerRegister_RspCop2_Descriptors[];
extern const RabbitizerRegisterDescriptor RabbitizerRegister_RspCop2Control_Descriptors[];
extern const RabbitizerRegisterDescriptor RabbitizerRegister_RspVector_Descriptors[];
/* RSP */
/* R5900 */
extern const RabbitizerRegisterDescriptor RabbitizerRegister_R5900VF_Descriptors[];
extern const RabbitizerRegisterDescriptor RabbitizerRegister_R5900VI_Descriptors[];
/* R5900 */
NODISCARD NON_NULL(1) PURE
bool RabbitizerRegisterDescriptor_isClobberedByFuncCall(const RabbitizerRegisterDescriptor *self);
NODISCARD NON_NULL(1) PURE
bool RabbitizerRegisterDescriptor_isReserved(const RabbitizerRegisterDescriptor *self);
NODISCARD NON_NULL(1) PURE
bool RabbitizerRegisterDescriptor_isKernel(const RabbitizerRegisterDescriptor *self);
NODISCARD NON_NULL(1) PURE
bool RabbitizerRegisterDescriptor_isZero(const RabbitizerRegisterDescriptor *self);
NODISCARD NON_NULL(1) PURE
bool RabbitizerRegisterDescriptor_isAt(const RabbitizerRegisterDescriptor *self);
NODISCARD NON_NULL(1) PURE
bool RabbitizerRegisterDescriptor_isReturnReg(const RabbitizerRegisterDescriptor *self);
NODISCARD NON_NULL(1) PURE
bool RabbitizerRegisterDescriptor_isRa(const RabbitizerRegisterDescriptor *self);
NODISCARD NON_NULL(1) PURE
bool RabbitizerRegisterDescriptor_isStackPointer(const RabbitizerRegisterDescriptor *self);
NODISCARD NON_NULL(1) PURE
bool RabbitizerRegisterDescriptor_isGp(const RabbitizerRegisterDescriptor *self);
NODISCARD NON_NULL(1) PURE
bool RabbitizerRegisterDescriptor_isTemp(const RabbitizerRegisterDescriptor *self);
NODISCARD NON_NULL(1) PURE
bool RabbitizerRegisterDescriptor_isArg(const RabbitizerRegisterDescriptor *self);
NODISCARD NON_NULL(1) PURE
bool RabbitizerRegisterDescriptor_isSaved(const RabbitizerRegisterDescriptor *self);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -396,7 +396,7 @@ typedef enum RabbitizerRegister_RspCop2Control {
RABBITIZER_REG_RSP_COP2_CONTROL_28,
RABBITIZER_REG_RSP_COP2_CONTROL_29,
RABBITIZER_REG_RSP_COP2_CONTROL_30,
RABBITIZER_REG_COP1_CONTROL_31,
RABBITIZER_REG_RSP_COP2_CONTROL_31,
} RabbitizerRegister_RspCop2Control;
typedef enum RabbitizerRegister_RspVector {
RABBITIZER_REG_RSP_VECTOR_v0,
@ -433,72 +433,72 @@ typedef enum RabbitizerRegister_RspVector {
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,
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,
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

View File

@ -1,11 +1,11 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
#define RABBITIZER_DEF_REG(prefix, name, numeric) \
RABBITIZER_REG_##prefix##_##name
#define RABBITIZER_DEF_REG(prefix, name, numeric, ...) \
RABBITIZER_REG_##prefix##_##name,
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric) \
RABBITIZER_REG_##prefix##_##name
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \
RABBITIZER_REG_##prefix##_##name,
typedef enum RabbitizerRegister_GprO32 {

View File

@ -1,35 +1,131 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG_NODOLLAR(COP0, Index, 0),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Random, 1),
RABBITIZER_DEF_REG_NODOLLAR(COP0, EntryLo0, 2),
RABBITIZER_DEF_REG_NODOLLAR(COP0, EntryLo1, 3),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Context, 4),
RABBITIZER_DEF_REG_NODOLLAR(COP0, PageMask, 5),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Wired, 6),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Reserved07, 7),
RABBITIZER_DEF_REG_NODOLLAR(COP0, BadVaddr, 8),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Count, 9),
RABBITIZER_DEF_REG_NODOLLAR(COP0, EntryHi, 10),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Compare, 11),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Status, 12),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Cause, 13),
RABBITIZER_DEF_REG_NODOLLAR(COP0, EPC, 14),
RABBITIZER_DEF_REG_NODOLLAR(COP0, PRevID, 15),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Config, 16),
RABBITIZER_DEF_REG_NODOLLAR(COP0, LLAddr, 17),
RABBITIZER_DEF_REG_NODOLLAR(COP0, WatchLo, 18),
RABBITIZER_DEF_REG_NODOLLAR(COP0, WatchHi, 19),
RABBITIZER_DEF_REG_NODOLLAR(COP0, XContext, 20),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Reserved21, 21),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Reserved22, 22),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Reserved23, 23),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Reserved24, 24),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Reserved25, 25),
RABBITIZER_DEF_REG_NODOLLAR(COP0, PErr, 26),
RABBITIZER_DEF_REG_NODOLLAR(COP0, CacheErr, 27),
RABBITIZER_DEF_REG_NODOLLAR(COP0, TagLo, 28),
RABBITIZER_DEF_REG_NODOLLAR(COP0, TagHi, 29),
RABBITIZER_DEF_REG_NODOLLAR(COP0, ErrorEPC, 30),
RABBITIZER_DEF_REG_NODOLLAR(COP0, Reserved31, 31),
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Index, 0,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Random, 1,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, EntryLo0, 2,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, EntryLo1, 3,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Context, 4,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, PageMask, 5,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Wired, 6,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Reserved07, 7,
.isReserved=true
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, BadVaddr, 8,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Count, 9,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, EntryHi, 10,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Compare, 11,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Status, 12,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Cause, 13,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, EPC, 14,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, PRevID, 15,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Config, 16,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, LLAddr, 17,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, WatchLo, 18,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, WatchHi, 19,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, XContext, 20,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Reserved21, 21,
.isReserved=true
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Reserved22, 22,
.isReserved=true
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Reserved23, 23,
.isReserved=true
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Reserved24, 24,
.isReserved=true
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Reserved25, 25,
.isReserved=true
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, PErr, 26,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, CacheErr, 27,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, TagLo, 28,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, TagHi, 29,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, ErrorEPC, 30,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
COP0, Reserved31, 31,
.isReserved=true
)

View File

@ -1,35 +1,131 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG(COP1_CONTROL, 0, 0),
RABBITIZER_DEF_REG(COP1_CONTROL, 1, 1),
RABBITIZER_DEF_REG(COP1_CONTROL, 2, 2),
RABBITIZER_DEF_REG(COP1_CONTROL, 3, 3),
RABBITIZER_DEF_REG(COP1_CONTROL, 4, 4),
RABBITIZER_DEF_REG(COP1_CONTROL, 5, 5),
RABBITIZER_DEF_REG(COP1_CONTROL, 6, 6),
RABBITIZER_DEF_REG(COP1_CONTROL, 7, 7),
RABBITIZER_DEF_REG(COP1_CONTROL, 8, 8),
RABBITIZER_DEF_REG(COP1_CONTROL, 9, 9),
RABBITIZER_DEF_REG(COP1_CONTROL, 10, 10),
RABBITIZER_DEF_REG(COP1_CONTROL, 11, 11),
RABBITIZER_DEF_REG(COP1_CONTROL, 12, 12),
RABBITIZER_DEF_REG(COP1_CONTROL, 13, 13),
RABBITIZER_DEF_REG(COP1_CONTROL, 14, 14),
RABBITIZER_DEF_REG(COP1_CONTROL, 15, 15),
RABBITIZER_DEF_REG(COP1_CONTROL, 16, 16),
RABBITIZER_DEF_REG(COP1_CONTROL, 17, 17),
RABBITIZER_DEF_REG(COP1_CONTROL, 18, 18),
RABBITIZER_DEF_REG(COP1_CONTROL, 19, 19),
RABBITIZER_DEF_REG(COP1_CONTROL, 20, 20),
RABBITIZER_DEF_REG(COP1_CONTROL, 21, 21),
RABBITIZER_DEF_REG(COP1_CONTROL, 22, 22),
RABBITIZER_DEF_REG(COP1_CONTROL, 23, 23),
RABBITIZER_DEF_REG(COP1_CONTROL, 24, 24),
RABBITIZER_DEF_REG(COP1_CONTROL, 25, 25),
RABBITIZER_DEF_REG(COP1_CONTROL, 26, 26),
RABBITIZER_DEF_REG(COP1_CONTROL, 27, 27),
RABBITIZER_DEF_REG(COP1_CONTROL, 28, 28),
RABBITIZER_DEF_REG(COP1_CONTROL, 29, 29),
RABBITIZER_DEF_REG(COP1_CONTROL, 30, 30),
RABBITIZER_DEF_REG(COP1_CONTROL, FpcCsr, 31),
RABBITIZER_DEF_REG(
COP1_CONTROL, 0, 0,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 1, 1,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 2, 2,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 3, 3,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 4, 4,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 5, 5,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 6, 6,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 7, 7,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 8, 8,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 9, 9,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 10, 10,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 11, 11,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 12, 12,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 13, 13,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 14, 14,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 15, 15,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 16, 16,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 17, 17,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 18, 18,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 19, 19,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 20, 20,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 21, 21,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 22, 22,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 23, 23,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 24, 24,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 25, 25,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 26, 26,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 27, 27,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 28, 28,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 29, 29,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, 30, 30,
0
)
RABBITIZER_DEF_REG(
COP1_CONTROL, FpcCsr, 31,
0
)

View File

@ -1,35 +1,131 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG(COP1_N32, fv0, f0),
RABBITIZER_DEF_REG(COP1_N32, ft14, f1),
RABBITIZER_DEF_REG(COP1_N32, fv1, f2),
RABBITIZER_DEF_REG(COP1_N32, ft15, f3),
RABBITIZER_DEF_REG(COP1_N32, ft0, f4),
RABBITIZER_DEF_REG(COP1_N32, ft1, f5),
RABBITIZER_DEF_REG(COP1_N32, ft2, f6),
RABBITIZER_DEF_REG(COP1_N32, ft3, f7),
RABBITIZER_DEF_REG(COP1_N32, ft4, f8),
RABBITIZER_DEF_REG(COP1_N32, ft5, f9),
RABBITIZER_DEF_REG(COP1_N32, ft6, f10),
RABBITIZER_DEF_REG(COP1_N32, ft7, f11),
RABBITIZER_DEF_REG(COP1_N32, fa0, f12),
RABBITIZER_DEF_REG(COP1_N32, fa1, f13),
RABBITIZER_DEF_REG(COP1_N32, fa2, f14),
RABBITIZER_DEF_REG(COP1_N32, fa3, f15),
RABBITIZER_DEF_REG(COP1_N32, fa4, f16),
RABBITIZER_DEF_REG(COP1_N32, fa5, f17),
RABBITIZER_DEF_REG(COP1_N32, fa6, f18),
RABBITIZER_DEF_REG(COP1_N32, fa7, f19),
RABBITIZER_DEF_REG(COP1_N32, fs0, f20),
RABBITIZER_DEF_REG(COP1_N32, ft8, f21),
RABBITIZER_DEF_REG(COP1_N32, fs1, f22),
RABBITIZER_DEF_REG(COP1_N32, ft9, f23),
RABBITIZER_DEF_REG(COP1_N32, fs2, f24),
RABBITIZER_DEF_REG(COP1_N32, ft10, f25),
RABBITIZER_DEF_REG(COP1_N32, fs3, f26),
RABBITIZER_DEF_REG(COP1_N32, ft11, f27),
RABBITIZER_DEF_REG(COP1_N32, fs4, f28),
RABBITIZER_DEF_REG(COP1_N32, ft12, f29),
RABBITIZER_DEF_REG(COP1_N32, fs5, f30),
RABBITIZER_DEF_REG(COP1_N32, ft13, f31),
RABBITIZER_DEF_REG(
COP1_N32, fv0, f0,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft14, f1,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fv1, f2,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft15, f3,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft0, f4,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft1, f5,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft2, f6,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft3, f7,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft4, f8,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft5, f9,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft6, f10,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft7, f11,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fa0, f12,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fa1, f13,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fa2, f14,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fa3, f15,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fa4, f16,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fa5, f17,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fa6, f18,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fa7, f19,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fs0, f20,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft8, f21,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fs1, f22,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft9, f23,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fs2, f24,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft10, f25,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fs3, f26,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft11, f27,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fs4, f28,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft12, f29,
0
)
RABBITIZER_DEF_REG(
COP1_N32, fs5, f30,
0
)
RABBITIZER_DEF_REG(
COP1_N32, ft13, f31,
0
)

View File

@ -1,35 +1,131 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG(COP1_N64, fv0, f0),
RABBITIZER_DEF_REG(COP1_N64, ft12, f1),
RABBITIZER_DEF_REG(COP1_N64, fv1, f2),
RABBITIZER_DEF_REG(COP1_N64, ft13, f3),
RABBITIZER_DEF_REG(COP1_N64, ft0, f4),
RABBITIZER_DEF_REG(COP1_N64, ft1, f5),
RABBITIZER_DEF_REG(COP1_N64, ft2, f6),
RABBITIZER_DEF_REG(COP1_N64, ft3, f7),
RABBITIZER_DEF_REG(COP1_N64, ft4, f8),
RABBITIZER_DEF_REG(COP1_N64, ft5, f9),
RABBITIZER_DEF_REG(COP1_N64, ft6, f10),
RABBITIZER_DEF_REG(COP1_N64, ft7, f11),
RABBITIZER_DEF_REG(COP1_N64, fa0, f12),
RABBITIZER_DEF_REG(COP1_N64, fa1, f13),
RABBITIZER_DEF_REG(COP1_N64, fa2, f14),
RABBITIZER_DEF_REG(COP1_N64, fa3, f15),
RABBITIZER_DEF_REG(COP1_N64, fa4, f16),
RABBITIZER_DEF_REG(COP1_N64, fa5, f17),
RABBITIZER_DEF_REG(COP1_N64, fa6, f18),
RABBITIZER_DEF_REG(COP1_N64, fa7, f19),
RABBITIZER_DEF_REG(COP1_N64, ft8, f20),
RABBITIZER_DEF_REG(COP1_N64, ft9, f21),
RABBITIZER_DEF_REG(COP1_N64, ft10, f22),
RABBITIZER_DEF_REG(COP1_N64, ft11, f23),
RABBITIZER_DEF_REG(COP1_N64, fs0, f24),
RABBITIZER_DEF_REG(COP1_N64, fs1, f25),
RABBITIZER_DEF_REG(COP1_N64, fs2, f26),
RABBITIZER_DEF_REG(COP1_N64, fs3, f27),
RABBITIZER_DEF_REG(COP1_N64, fs4, f28),
RABBITIZER_DEF_REG(COP1_N64, fs5, f29),
RABBITIZER_DEF_REG(COP1_N64, fs6, f30),
RABBITIZER_DEF_REG(COP1_N64, fs7, f31),
RABBITIZER_DEF_REG(
COP1_N64, fv0, f0,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft12, f1,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fv1, f2,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft13, f3,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft0, f4,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft1, f5,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft2, f6,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft3, f7,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft4, f8,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft5, f9,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft6, f10,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft7, f11,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fa0, f12,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fa1, f13,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fa2, f14,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fa3, f15,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fa4, f16,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fa5, f17,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fa6, f18,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fa7, f19,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft8, f20,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft9, f21,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft10, f22,
0
)
RABBITIZER_DEF_REG(
COP1_N64, ft11, f23,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fs0, f24,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fs1, f25,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fs2, f26,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fs3, f27,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fs4, f28,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fs5, f29,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fs6, f30,
0
)
RABBITIZER_DEF_REG(
COP1_N64, fs7, f31,
0
)

View File

@ -1,35 +1,131 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG(COP1_O32, fv0, f0),
RABBITIZER_DEF_REG(COP1_O32, fv0f, f1),
RABBITIZER_DEF_REG(COP1_O32, fv1, f2),
RABBITIZER_DEF_REG(COP1_O32, fv1f, f3),
RABBITIZER_DEF_REG(COP1_O32, ft0, f4),
RABBITIZER_DEF_REG(COP1_O32, ft0f, f5),
RABBITIZER_DEF_REG(COP1_O32, ft1, f6),
RABBITIZER_DEF_REG(COP1_O32, ft1f, f7),
RABBITIZER_DEF_REG(COP1_O32, ft2, f8),
RABBITIZER_DEF_REG(COP1_O32, ft2f, f9),
RABBITIZER_DEF_REG(COP1_O32, ft3, f10),
RABBITIZER_DEF_REG(COP1_O32, ft3f, f11),
RABBITIZER_DEF_REG(COP1_O32, fa0, f12),
RABBITIZER_DEF_REG(COP1_O32, fa0f, f13),
RABBITIZER_DEF_REG(COP1_O32, fa1, f14),
RABBITIZER_DEF_REG(COP1_O32, fa1f, f15),
RABBITIZER_DEF_REG(COP1_O32, ft4, f16),
RABBITIZER_DEF_REG(COP1_O32, ft4f, f17),
RABBITIZER_DEF_REG(COP1_O32, ft5, f18),
RABBITIZER_DEF_REG(COP1_O32, ft5f, f19),
RABBITIZER_DEF_REG(COP1_O32, fs0, f20),
RABBITIZER_DEF_REG(COP1_O32, fs0f, f21),
RABBITIZER_DEF_REG(COP1_O32, fs1, f22),
RABBITIZER_DEF_REG(COP1_O32, fs1f, f23),
RABBITIZER_DEF_REG(COP1_O32, fs2, f24),
RABBITIZER_DEF_REG(COP1_O32, fs2f, f25),
RABBITIZER_DEF_REG(COP1_O32, fs3, f26),
RABBITIZER_DEF_REG(COP1_O32, fs3f, f27),
RABBITIZER_DEF_REG(COP1_O32, fs4, f28),
RABBITIZER_DEF_REG(COP1_O32, fs4f, f29),
RABBITIZER_DEF_REG(COP1_O32, fs5, f30),
RABBITIZER_DEF_REG(COP1_O32, fs5f, f31),
RABBITIZER_DEF_REG(
COP1_O32, fv0, f0,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fv0f, f1,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fv1, f2,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fv1f, f3,
0
)
RABBITIZER_DEF_REG(
COP1_O32, ft0, f4,
0
)
RABBITIZER_DEF_REG(
COP1_O32, ft0f, f5,
0
)
RABBITIZER_DEF_REG(
COP1_O32, ft1, f6,
0
)
RABBITIZER_DEF_REG(
COP1_O32, ft1f, f7,
0
)
RABBITIZER_DEF_REG(
COP1_O32, ft2, f8,
0
)
RABBITIZER_DEF_REG(
COP1_O32, ft2f, f9,
0
)
RABBITIZER_DEF_REG(
COP1_O32, ft3, f10,
0
)
RABBITIZER_DEF_REG(
COP1_O32, ft3f, f11,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fa0, f12,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fa0f, f13,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fa1, f14,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fa1f, f15,
0
)
RABBITIZER_DEF_REG(
COP1_O32, ft4, f16,
0
)
RABBITIZER_DEF_REG(
COP1_O32, ft4f, f17,
0
)
RABBITIZER_DEF_REG(
COP1_O32, ft5, f18,
0
)
RABBITIZER_DEF_REG(
COP1_O32, ft5f, f19,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fs0, f20,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fs0f, f21,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fs1, f22,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fs1f, f23,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fs2, f24,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fs2f, f25,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fs3, f26,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fs3f, f27,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fs4, f28,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fs4f, f29,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fs5, f30,
0
)
RABBITIZER_DEF_REG(
COP1_O32, fs5f, f31,
0
)

View File

@ -1,35 +1,131 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG(COP2, 0, 0),
RABBITIZER_DEF_REG(COP2, 1, 1),
RABBITIZER_DEF_REG(COP2, 2, 2),
RABBITIZER_DEF_REG(COP2, 3, 3),
RABBITIZER_DEF_REG(COP2, 4, 4),
RABBITIZER_DEF_REG(COP2, 5, 5),
RABBITIZER_DEF_REG(COP2, 6, 6),
RABBITIZER_DEF_REG(COP2, 7, 7),
RABBITIZER_DEF_REG(COP2, 8, 8),
RABBITIZER_DEF_REG(COP2, 9, 9),
RABBITIZER_DEF_REG(COP2, 10, 10),
RABBITIZER_DEF_REG(COP2, 11, 11),
RABBITIZER_DEF_REG(COP2, 12, 12),
RABBITIZER_DEF_REG(COP2, 13, 13),
RABBITIZER_DEF_REG(COP2, 14, 14),
RABBITIZER_DEF_REG(COP2, 15, 15),
RABBITIZER_DEF_REG(COP2, 16, 16),
RABBITIZER_DEF_REG(COP2, 17, 17),
RABBITIZER_DEF_REG(COP2, 18, 18),
RABBITIZER_DEF_REG(COP2, 19, 19),
RABBITIZER_DEF_REG(COP2, 20, 20),
RABBITIZER_DEF_REG(COP2, 21, 21),
RABBITIZER_DEF_REG(COP2, 22, 22),
RABBITIZER_DEF_REG(COP2, 23, 23),
RABBITIZER_DEF_REG(COP2, 24, 24),
RABBITIZER_DEF_REG(COP2, 25, 25),
RABBITIZER_DEF_REG(COP2, 26, 26),
RABBITIZER_DEF_REG(COP2, 27, 27),
RABBITIZER_DEF_REG(COP2, 28, 28),
RABBITIZER_DEF_REG(COP2, 29, 29),
RABBITIZER_DEF_REG(COP2, 30, 30),
RABBITIZER_DEF_REG(COP2, 31, 31),
RABBITIZER_DEF_REG(
COP2, 0, 0,
0
)
RABBITIZER_DEF_REG(
COP2, 1, 1,
0
)
RABBITIZER_DEF_REG(
COP2, 2, 2,
0
)
RABBITIZER_DEF_REG(
COP2, 3, 3,
0
)
RABBITIZER_DEF_REG(
COP2, 4, 4,
0
)
RABBITIZER_DEF_REG(
COP2, 5, 5,
0
)
RABBITIZER_DEF_REG(
COP2, 6, 6,
0
)
RABBITIZER_DEF_REG(
COP2, 7, 7,
0
)
RABBITIZER_DEF_REG(
COP2, 8, 8,
0
)
RABBITIZER_DEF_REG(
COP2, 9, 9,
0
)
RABBITIZER_DEF_REG(
COP2, 10, 10,
0
)
RABBITIZER_DEF_REG(
COP2, 11, 11,
0
)
RABBITIZER_DEF_REG(
COP2, 12, 12,
0
)
RABBITIZER_DEF_REG(
COP2, 13, 13,
0
)
RABBITIZER_DEF_REG(
COP2, 14, 14,
0
)
RABBITIZER_DEF_REG(
COP2, 15, 15,
0
)
RABBITIZER_DEF_REG(
COP2, 16, 16,
0
)
RABBITIZER_DEF_REG(
COP2, 17, 17,
0
)
RABBITIZER_DEF_REG(
COP2, 18, 18,
0
)
RABBITIZER_DEF_REG(
COP2, 19, 19,
0
)
RABBITIZER_DEF_REG(
COP2, 20, 20,
0
)
RABBITIZER_DEF_REG(
COP2, 21, 21,
0
)
RABBITIZER_DEF_REG(
COP2, 22, 22,
0
)
RABBITIZER_DEF_REG(
COP2, 23, 23,
0
)
RABBITIZER_DEF_REG(
COP2, 24, 24,
0
)
RABBITIZER_DEF_REG(
COP2, 25, 25,
0
)
RABBITIZER_DEF_REG(
COP2, 26, 26,
0
)
RABBITIZER_DEF_REG(
COP2, 27, 27,
0
)
RABBITIZER_DEF_REG(
COP2, 28, 28,
0
)
RABBITIZER_DEF_REG(
COP2, 29, 29,
0
)
RABBITIZER_DEF_REG(
COP2, 30, 30,
0
)
RABBITIZER_DEF_REG(
COP2, 31, 31,
0
)

View File

@ -1,35 +1,149 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG(GPR_N32, zero, 0),
RABBITIZER_DEF_REG(GPR_N32, at, 1),
RABBITIZER_DEF_REG(GPR_N32, v0, 2),
RABBITIZER_DEF_REG(GPR_N32, v1, 3),
RABBITIZER_DEF_REG(GPR_N32, a0, 4),
RABBITIZER_DEF_REG(GPR_N32, a1, 5),
RABBITIZER_DEF_REG(GPR_N32, a2, 6),
RABBITIZER_DEF_REG(GPR_N32, a3, 7),
RABBITIZER_DEF_REG(GPR_N32, a4, 8),
RABBITIZER_DEF_REG(GPR_N32, a5, 9),
RABBITIZER_DEF_REG(GPR_N32, a6, 10),
RABBITIZER_DEF_REG(GPR_N32, a7, 11),
RABBITIZER_DEF_REG(GPR_N32, t0, 12),
RABBITIZER_DEF_REG(GPR_N32, t1, 13),
RABBITIZER_DEF_REG(GPR_N32, t2, 14),
RABBITIZER_DEF_REG(GPR_N32, t3, 15),
RABBITIZER_DEF_REG(GPR_N32, s0, 16),
RABBITIZER_DEF_REG(GPR_N32, s1, 17),
RABBITIZER_DEF_REG(GPR_N32, s2, 18),
RABBITIZER_DEF_REG(GPR_N32, s3, 19),
RABBITIZER_DEF_REG(GPR_N32, s4, 20),
RABBITIZER_DEF_REG(GPR_N32, s5, 21),
RABBITIZER_DEF_REG(GPR_N32, s6, 22),
RABBITIZER_DEF_REG(GPR_N32, s7, 23),
RABBITIZER_DEF_REG(GPR_N32, t8, 24),
RABBITIZER_DEF_REG(GPR_N32, t9, 25),
RABBITIZER_DEF_REG(GPR_N32, k0, 26),
RABBITIZER_DEF_REG(GPR_N32, k1, 27),
RABBITIZER_DEF_REG(GPR_N32, gp, 28),
RABBITIZER_DEF_REG(GPR_N32, sp, 29),
RABBITIZER_DEF_REG(GPR_N32, fp, 30),
RABBITIZER_DEF_REG(GPR_N32, ra, 31),
RABBITIZER_DEF_REG(
GPR_N32, zero, 0,
.isZero=true
)
RABBITIZER_DEF_REG(
GPR_N32, at, 1,
.isClobberedByFuncCall=true,
.isAt=true
)
RABBITIZER_DEF_REG(
GPR_N32, v0, 2,
.isClobberedByFuncCall=true,
.isReturnReg=true
)
RABBITIZER_DEF_REG(
GPR_N32, v1, 3,
.isClobberedByFuncCall=true,
.isReturnReg=true
)
RABBITIZER_DEF_REG(
GPR_N32, a0, 4,
.isClobberedByFuncCall=true,
.isArg=true
)
RABBITIZER_DEF_REG(
GPR_N32, a1, 5,
.isClobberedByFuncCall=true,
.isArg=true
)
RABBITIZER_DEF_REG(
GPR_N32, a2, 6,
.isClobberedByFuncCall=true,
.isArg=true
)
RABBITIZER_DEF_REG(
GPR_N32, a3, 7,
.isClobberedByFuncCall=true,
.isArg=true
)
RABBITIZER_DEF_REG(
GPR_N32, a4, 8,
.isClobberedByFuncCall=true,
.isArg=true
)
RABBITIZER_DEF_REG(
GPR_N32, a5, 9,
.isClobberedByFuncCall=true,
.isArg=true
)
RABBITIZER_DEF_REG(
GPR_N32, a6, 10,
.isClobberedByFuncCall=true,
.isArg=true
)
RABBITIZER_DEF_REG(
GPR_N32, a7, 11,
.isClobberedByFuncCall=true,
.isArg=true
)
RABBITIZER_DEF_REG(
GPR_N32, t0, 12,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_N32, t1, 13,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_N32, t2, 14,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_N32, t3, 15,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_N32, s0, 16,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_N32, s1, 17,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_N32, s2, 18,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_N32, s3, 19,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_N32, s4, 20,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_N32, s5, 21,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_N32, s6, 22,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_N32, s7, 23,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_N32, t8, 24,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_N32, t9, 25,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_N32, k0, 26,
.isKernel=true
)
RABBITIZER_DEF_REG(
GPR_N32, k1, 27,
.isKernel=true
)
RABBITIZER_DEF_REG(
GPR_N32, gp, 28,
.isGp=true
)
RABBITIZER_DEF_REG(
GPR_N32, sp, 29,
.isStackPointer=true
)
RABBITIZER_DEF_REG(
GPR_N32, fp, 30,
0
)
RABBITIZER_DEF_REG(
GPR_N32, ra, 31,
.isClobberedByFuncCall=true,
.isRa=true
)

View File

@ -1,35 +1,149 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG(GPR_O32, zero, 0),
RABBITIZER_DEF_REG(GPR_O32, at, 1),
RABBITIZER_DEF_REG(GPR_O32, v0, 2),
RABBITIZER_DEF_REG(GPR_O32, v1, 3),
RABBITIZER_DEF_REG(GPR_O32, a0, 4),
RABBITIZER_DEF_REG(GPR_O32, a1, 5),
RABBITIZER_DEF_REG(GPR_O32, a2, 6),
RABBITIZER_DEF_REG(GPR_O32, a3, 7),
RABBITIZER_DEF_REG(GPR_O32, t0, 8),
RABBITIZER_DEF_REG(GPR_O32, t1, 9),
RABBITIZER_DEF_REG(GPR_O32, t2, 10),
RABBITIZER_DEF_REG(GPR_O32, t3, 11),
RABBITIZER_DEF_REG(GPR_O32, t4, 12),
RABBITIZER_DEF_REG(GPR_O32, t5, 13),
RABBITIZER_DEF_REG(GPR_O32, t6, 14),
RABBITIZER_DEF_REG(GPR_O32, t7, 15),
RABBITIZER_DEF_REG(GPR_O32, s0, 16),
RABBITIZER_DEF_REG(GPR_O32, s1, 17),
RABBITIZER_DEF_REG(GPR_O32, s2, 18),
RABBITIZER_DEF_REG(GPR_O32, s3, 19),
RABBITIZER_DEF_REG(GPR_O32, s4, 20),
RABBITIZER_DEF_REG(GPR_O32, s5, 21),
RABBITIZER_DEF_REG(GPR_O32, s6, 22),
RABBITIZER_DEF_REG(GPR_O32, s7, 23),
RABBITIZER_DEF_REG(GPR_O32, t8, 24),
RABBITIZER_DEF_REG(GPR_O32, t9, 25),
RABBITIZER_DEF_REG(GPR_O32, k0, 26),
RABBITIZER_DEF_REG(GPR_O32, k1, 27),
RABBITIZER_DEF_REG(GPR_O32, gp, 28),
RABBITIZER_DEF_REG(GPR_O32, sp, 29),
RABBITIZER_DEF_REG(GPR_O32, fp, 30),
RABBITIZER_DEF_REG(GPR_O32, ra, 31),
RABBITIZER_DEF_REG(
GPR_O32, zero, 0,
.isZero=true
)
RABBITIZER_DEF_REG(
GPR_O32, at, 1,
.isClobberedByFuncCall=true,
.isAt=true
)
RABBITIZER_DEF_REG(
GPR_O32, v0, 2,
.isClobberedByFuncCall=true,
.isReturnReg=true
)
RABBITIZER_DEF_REG(
GPR_O32, v1, 3,
.isClobberedByFuncCall=true,
.isReturnReg=true
)
RABBITIZER_DEF_REG(
GPR_O32, a0, 4,
.isClobberedByFuncCall=true,
.isArg=true
)
RABBITIZER_DEF_REG(
GPR_O32, a1, 5,
.isClobberedByFuncCall=true,
.isArg=true
)
RABBITIZER_DEF_REG(
GPR_O32, a2, 6,
.isClobberedByFuncCall=true,
.isArg=true
)
RABBITIZER_DEF_REG(
GPR_O32, a3, 7,
.isClobberedByFuncCall=true,
.isArg=true
)
RABBITIZER_DEF_REG(
GPR_O32, t0, 8,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_O32, t1, 9,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_O32, t2, 10,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_O32, t3, 11,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_O32, t4, 12,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_O32, t5, 13,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_O32, t6, 14,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_O32, t7, 15,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_O32, s0, 16,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_O32, s1, 17,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_O32, s2, 18,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_O32, s3, 19,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_O32, s4, 20,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_O32, s5, 21,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_O32, s6, 22,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_O32, s7, 23,
.isSaved=true
)
RABBITIZER_DEF_REG(
GPR_O32, t8, 24,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_O32, t9, 25,
.isClobberedByFuncCall=true,
.isTemp=true
)
RABBITIZER_DEF_REG(
GPR_O32, k0, 26,
.isKernel=true
)
RABBITIZER_DEF_REG(
GPR_O32, k1, 27,
.isKernel=true
)
RABBITIZER_DEF_REG(
GPR_O32, gp, 28,
.isGp=true
)
RABBITIZER_DEF_REG(
GPR_O32, sp, 29,
.isStackPointer=true
)
RABBITIZER_DEF_REG(
GPR_O32, fp, 30,
0
)
RABBITIZER_DEF_REG(
GPR_O32, ra, 31,
.isClobberedByFuncCall=true,
.isRa=true
)

View File

@ -1,35 +1,131 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG(R5900_VF, vf0, 0),
RABBITIZER_DEF_REG(R5900_VF, vf1, 1),
RABBITIZER_DEF_REG(R5900_VF, vf2, 2),
RABBITIZER_DEF_REG(R5900_VF, vf3, 3),
RABBITIZER_DEF_REG(R5900_VF, vf4, 4),
RABBITIZER_DEF_REG(R5900_VF, vf5, 5),
RABBITIZER_DEF_REG(R5900_VF, vf6, 6),
RABBITIZER_DEF_REG(R5900_VF, vf7, 7),
RABBITIZER_DEF_REG(R5900_VF, vf8, 8),
RABBITIZER_DEF_REG(R5900_VF, vf9, 9),
RABBITIZER_DEF_REG(R5900_VF, vf10, 10),
RABBITIZER_DEF_REG(R5900_VF, vf11, 11),
RABBITIZER_DEF_REG(R5900_VF, vf12, 12),
RABBITIZER_DEF_REG(R5900_VF, vf13, 13),
RABBITIZER_DEF_REG(R5900_VF, vf14, 14),
RABBITIZER_DEF_REG(R5900_VF, vf15, 15),
RABBITIZER_DEF_REG(R5900_VF, vf16, 16),
RABBITIZER_DEF_REG(R5900_VF, vf17, 17),
RABBITIZER_DEF_REG(R5900_VF, vf18, 18),
RABBITIZER_DEF_REG(R5900_VF, vf19, 19),
RABBITIZER_DEF_REG(R5900_VF, vf20, 20),
RABBITIZER_DEF_REG(R5900_VF, vf21, 21),
RABBITIZER_DEF_REG(R5900_VF, vf22, 22),
RABBITIZER_DEF_REG(R5900_VF, vf23, 23),
RABBITIZER_DEF_REG(R5900_VF, vf24, 24),
RABBITIZER_DEF_REG(R5900_VF, vf25, 25),
RABBITIZER_DEF_REG(R5900_VF, vf26, 26),
RABBITIZER_DEF_REG(R5900_VF, vf27, 27),
RABBITIZER_DEF_REG(R5900_VF, vf28, 28),
RABBITIZER_DEF_REG(R5900_VF, vf29, 29),
RABBITIZER_DEF_REG(R5900_VF, vf30, 30),
RABBITIZER_DEF_REG(R5900_VF, vf31, 31),
RABBITIZER_DEF_REG(
R5900_VF, vf0, 0,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf1, 1,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf2, 2,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf3, 3,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf4, 4,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf5, 5,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf6, 6,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf7, 7,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf8, 8,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf9, 9,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf10, 10,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf11, 11,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf12, 12,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf13, 13,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf14, 14,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf15, 15,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf16, 16,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf17, 17,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf18, 18,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf19, 19,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf20, 20,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf21, 21,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf22, 22,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf23, 23,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf24, 24,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf25, 25,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf26, 26,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf27, 27,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf28, 28,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf29, 29,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf30, 30,
0
)
RABBITIZER_DEF_REG(
R5900_VF, vf31, 31,
0
)

View File

@ -1,35 +1,131 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG(R5900_VI, vi0, 0),
RABBITIZER_DEF_REG(R5900_VI, vi1, 1),
RABBITIZER_DEF_REG(R5900_VI, vi2, 2),
RABBITIZER_DEF_REG(R5900_VI, vi3, 3),
RABBITIZER_DEF_REG(R5900_VI, vi4, 4),
RABBITIZER_DEF_REG(R5900_VI, vi5, 5),
RABBITIZER_DEF_REG(R5900_VI, vi6, 6),
RABBITIZER_DEF_REG(R5900_VI, vi7, 7),
RABBITIZER_DEF_REG(R5900_VI, vi8, 8),
RABBITIZER_DEF_REG(R5900_VI, vi9, 9),
RABBITIZER_DEF_REG(R5900_VI, vi10, 10),
RABBITIZER_DEF_REG(R5900_VI, vi11, 11),
RABBITIZER_DEF_REG(R5900_VI, vi12, 12),
RABBITIZER_DEF_REG(R5900_VI, vi13, 13),
RABBITIZER_DEF_REG(R5900_VI, vi14, 14),
RABBITIZER_DEF_REG(R5900_VI, vi15, 15),
RABBITIZER_DEF_REG(R5900_VI, vi16, 16),
RABBITIZER_DEF_REG(R5900_VI, vi17, 17),
RABBITIZER_DEF_REG(R5900_VI, vi18, 18),
RABBITIZER_DEF_REG(R5900_VI, vi19, 19),
RABBITIZER_DEF_REG(R5900_VI, vi20, 20),
RABBITIZER_DEF_REG(R5900_VI, vi21, 21),
RABBITIZER_DEF_REG(R5900_VI, vi22, 22),
RABBITIZER_DEF_REG(R5900_VI, vi23, 23),
RABBITIZER_DEF_REG(R5900_VI, vi24, 24),
RABBITIZER_DEF_REG(R5900_VI, vi25, 25),
RABBITIZER_DEF_REG(R5900_VI, vi26, 26),
RABBITIZER_DEF_REG(R5900_VI, vi27, 27),
RABBITIZER_DEF_REG(R5900_VI, vi28, 28),
RABBITIZER_DEF_REG(R5900_VI, vi29, 29),
RABBITIZER_DEF_REG(R5900_VI, vi30, 30),
RABBITIZER_DEF_REG(R5900_VI, vi31, 31),
RABBITIZER_DEF_REG(
R5900_VI, vi0, 0,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi1, 1,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi2, 2,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi3, 3,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi4, 4,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi5, 5,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi6, 6,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi7, 7,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi8, 8,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi9, 9,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi10, 10,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi11, 11,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi12, 12,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi13, 13,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi14, 14,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi15, 15,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi16, 16,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi17, 17,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi18, 18,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi19, 19,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi20, 20,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi21, 21,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi22, 22,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi23, 23,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi24, 24,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi25, 25,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi26, 26,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi27, 27,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi28, 28,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi29, 29,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi30, 30,
0
)
RABBITIZER_DEF_REG(
R5900_VI, vi31, 31,
0
)

View File

@ -1,19 +1,67 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, SP_MEM_ADDR, 0),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, SP_DRAM_ADDR, 1),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, SP_RD_LEN, 2),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, SP_WR_LEN, 3),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, SP_STATUS, 4),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, SP_DMA_FULL, 5),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, SP_DMA_BUSY, 6),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, SP_SEMAPHORE, 7),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, DPC_START, 8),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, DPC_END, 9),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, DPC_CURRENT, 10),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, DPC_STATUS, 11),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, DPC_CLOCK, 12),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, DPC_BUFBUSY, 13),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, DPC_PIPEBUSY, 14),
RABBITIZER_DEF_REG_NODOLLAR(RSP_COP0, DPC_TMEM, 15),
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, SP_MEM_ADDR, 0,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, SP_DRAM_ADDR, 1,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, SP_RD_LEN, 2,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, SP_WR_LEN, 3,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, SP_STATUS, 4,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, SP_DMA_FULL, 5,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, SP_DMA_BUSY, 6,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, SP_SEMAPHORE, 7,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, DPC_START, 8,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, DPC_END, 9,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, DPC_CURRENT, 10,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, DPC_STATUS, 11,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, DPC_CLOCK, 12,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, DPC_BUFBUSY, 13,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, DPC_PIPEBUSY, 14,
0
)
RABBITIZER_DEF_REG_NODOLLAR(
RSP_COP0, DPC_TMEM, 15,
0
)

View File

@ -1,35 +1,131 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG(RSP_COP2, 0, 0),
RABBITIZER_DEF_REG(RSP_COP2, 1, 1),
RABBITIZER_DEF_REG(RSP_COP2, 2, 2),
RABBITIZER_DEF_REG(RSP_COP2, 3, 3),
RABBITIZER_DEF_REG(RSP_COP2, 4, 4),
RABBITIZER_DEF_REG(RSP_COP2, 5, 5),
RABBITIZER_DEF_REG(RSP_COP2, 6, 6),
RABBITIZER_DEF_REG(RSP_COP2, 7, 7),
RABBITIZER_DEF_REG(RSP_COP2, 8, 8),
RABBITIZER_DEF_REG(RSP_COP2, 9, 9),
RABBITIZER_DEF_REG(RSP_COP2, 10, 10),
RABBITIZER_DEF_REG(RSP_COP2, 11, 11),
RABBITIZER_DEF_REG(RSP_COP2, 12, 12),
RABBITIZER_DEF_REG(RSP_COP2, 13, 13),
RABBITIZER_DEF_REG(RSP_COP2, 14, 14),
RABBITIZER_DEF_REG(RSP_COP2, 15, 15),
RABBITIZER_DEF_REG(RSP_COP2, 16, 16),
RABBITIZER_DEF_REG(RSP_COP2, 17, 17),
RABBITIZER_DEF_REG(RSP_COP2, 18, 18),
RABBITIZER_DEF_REG(RSP_COP2, 19, 19),
RABBITIZER_DEF_REG(RSP_COP2, 20, 20),
RABBITIZER_DEF_REG(RSP_COP2, 21, 21),
RABBITIZER_DEF_REG(RSP_COP2, 22, 22),
RABBITIZER_DEF_REG(RSP_COP2, 23, 23),
RABBITIZER_DEF_REG(RSP_COP2, 24, 24),
RABBITIZER_DEF_REG(RSP_COP2, 25, 25),
RABBITIZER_DEF_REG(RSP_COP2, 26, 26),
RABBITIZER_DEF_REG(RSP_COP2, 27, 27),
RABBITIZER_DEF_REG(RSP_COP2, 28, 28),
RABBITIZER_DEF_REG(RSP_COP2, 29, 29),
RABBITIZER_DEF_REG(RSP_COP2, 30, 30),
RABBITIZER_DEF_REG(RSP_COP2, 31, 31),
RABBITIZER_DEF_REG(
RSP_COP2, 0, 0,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 1, 1,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 2, 2,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 3, 3,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 4, 4,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 5, 5,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 6, 6,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 7, 7,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 8, 8,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 9, 9,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 10, 10,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 11, 11,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 12, 12,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 13, 13,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 14, 14,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 15, 15,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 16, 16,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 17, 17,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 18, 18,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 19, 19,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 20, 20,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 21, 21,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 22, 22,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 23, 23,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 24, 24,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 25, 25,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 26, 26,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 27, 27,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 28, 28,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 29, 29,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 30, 30,
0
)
RABBITIZER_DEF_REG(
RSP_COP2, 31, 31,
0
)

View File

@ -1,35 +1,131 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 0, 0),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 1, 1),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 2, 2),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 3, 3),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 4, 4),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 5, 5),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 6, 6),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 7, 7),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 8, 8),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 9, 9),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 10, 10),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 11, 11),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 12, 12),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 13, 13),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 14, 14),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 15, 15),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 16, 16),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 17, 17),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 18, 18),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 19, 19),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 20, 20),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 21, 21),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 22, 22),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 23, 23),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 24, 24),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 25, 25),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 26, 26),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 27, 27),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 28, 28),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 29, 29),
RABBITIZER_DEF_REG(RSP_COP2_CONTROL, 30, 30),
RABBITIZER_DEF_REG(COP1_CONTROL, 31, 31),
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 0, 0,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 1, 1,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 2, 2,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 3, 3,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 4, 4,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 5, 5,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 6, 6,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 7, 7,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 8, 8,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 9, 9,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 10, 10,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 11, 11,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 12, 12,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 13, 13,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 14, 14,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 15, 15,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 16, 16,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 17, 17,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 18, 18,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 19, 19,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 20, 20,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 21, 21,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 22, 22,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 23, 23,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 24, 24,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 25, 25,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 26, 26,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 27, 27,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 28, 28,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 29, 29,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 30, 30,
0
)
RABBITIZER_DEF_REG(
RSP_COP2_CONTROL, 31, 31,
0
)

View File

@ -1,35 +1,132 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG(RSP_GPR, zero, 0),
RABBITIZER_DEF_REG(RSP_GPR, 1, 1),
RABBITIZER_DEF_REG(RSP_GPR, 2, 2),
RABBITIZER_DEF_REG(RSP_GPR, 3, 3),
RABBITIZER_DEF_REG(RSP_GPR, 4, 4),
RABBITIZER_DEF_REG(RSP_GPR, 5, 5),
RABBITIZER_DEF_REG(RSP_GPR, 6, 6),
RABBITIZER_DEF_REG(RSP_GPR, 7, 7),
RABBITIZER_DEF_REG(RSP_GPR, 8, 8),
RABBITIZER_DEF_REG(RSP_GPR, 9, 9),
RABBITIZER_DEF_REG(RSP_GPR, 10, 10),
RABBITIZER_DEF_REG(RSP_GPR, 11, 11),
RABBITIZER_DEF_REG(RSP_GPR, 12, 12),
RABBITIZER_DEF_REG(RSP_GPR, 13, 13),
RABBITIZER_DEF_REG(RSP_GPR, 14, 14),
RABBITIZER_DEF_REG(RSP_GPR, 15, 15),
RABBITIZER_DEF_REG(RSP_GPR, 16, 16),
RABBITIZER_DEF_REG(RSP_GPR, 17, 17),
RABBITIZER_DEF_REG(RSP_GPR, 18, 18),
RABBITIZER_DEF_REG(RSP_GPR, 19, 19),
RABBITIZER_DEF_REG(RSP_GPR, 20, 20),
RABBITIZER_DEF_REG(RSP_GPR, 21, 21),
RABBITIZER_DEF_REG(RSP_GPR, 22, 22),
RABBITIZER_DEF_REG(RSP_GPR, 23, 23),
RABBITIZER_DEF_REG(RSP_GPR, 24, 24),
RABBITIZER_DEF_REG(RSP_GPR, 25, 25),
RABBITIZER_DEF_REG(RSP_GPR, 26, 26),
RABBITIZER_DEF_REG(RSP_GPR, 27, 27),
RABBITIZER_DEF_REG(RSP_GPR, 28, 28),
RABBITIZER_DEF_REG(RSP_GPR, 29, 29),
RABBITIZER_DEF_REG(RSP_GPR, 30, 30),
RABBITIZER_DEF_REG(RSP_GPR, ra, 31),
RABBITIZER_DEF_REG(
RSP_GPR, zero, 0,
.isZero=true
)
RABBITIZER_DEF_REG(
RSP_GPR, 1, 1,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 2, 2,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 3, 3,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 4, 4,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 5, 5,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 6, 6,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 7, 7,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 8, 8,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 9, 9,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 10, 10,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 11, 11,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 12, 12,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 13, 13,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 14, 14,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 15, 15,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 16, 16,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 17, 17,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 18, 18,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 19, 19,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 20, 20,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 21, 21,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 22, 22,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 23, 23,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 24, 24,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 25, 25,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 26, 26,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 27, 27,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 28, 28,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 29, 29,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, 30, 30,
0
)
RABBITIZER_DEF_REG(
RSP_GPR, ra, 31,
.isClobberedByFuncCall=true,
.isRa=true
)

View File

@ -1,35 +1,131 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
RABBITIZER_DEF_REG(RSP_VECTOR, v0, 0),
RABBITIZER_DEF_REG(RSP_VECTOR, v1, 1),
RABBITIZER_DEF_REG(RSP_VECTOR, v2, 2),
RABBITIZER_DEF_REG(RSP_VECTOR, v3, 3),
RABBITIZER_DEF_REG(RSP_VECTOR, v4, 4),
RABBITIZER_DEF_REG(RSP_VECTOR, v5, 5),
RABBITIZER_DEF_REG(RSP_VECTOR, v6, 6),
RABBITIZER_DEF_REG(RSP_VECTOR, v7, 7),
RABBITIZER_DEF_REG(RSP_VECTOR, v8, 8),
RABBITIZER_DEF_REG(RSP_VECTOR, v9, 9),
RABBITIZER_DEF_REG(RSP_VECTOR, v10, 10),
RABBITIZER_DEF_REG(RSP_VECTOR, v11, 11),
RABBITIZER_DEF_REG(RSP_VECTOR, v12, 12),
RABBITIZER_DEF_REG(RSP_VECTOR, v13, 13),
RABBITIZER_DEF_REG(RSP_VECTOR, v14, 14),
RABBITIZER_DEF_REG(RSP_VECTOR, v15, 15),
RABBITIZER_DEF_REG(RSP_VECTOR, v16, 16),
RABBITIZER_DEF_REG(RSP_VECTOR, v17, 17),
RABBITIZER_DEF_REG(RSP_VECTOR, v18, 18),
RABBITIZER_DEF_REG(RSP_VECTOR, v19, 19),
RABBITIZER_DEF_REG(RSP_VECTOR, v20, 20),
RABBITIZER_DEF_REG(RSP_VECTOR, v21, 21),
RABBITIZER_DEF_REG(RSP_VECTOR, v22, 22),
RABBITIZER_DEF_REG(RSP_VECTOR, v23, 23),
RABBITIZER_DEF_REG(RSP_VECTOR, v24, 24),
RABBITIZER_DEF_REG(RSP_VECTOR, v25, 25),
RABBITIZER_DEF_REG(RSP_VECTOR, v26, 26),
RABBITIZER_DEF_REG(RSP_VECTOR, v27, 27),
RABBITIZER_DEF_REG(RSP_VECTOR, v28, 28),
RABBITIZER_DEF_REG(RSP_VECTOR, v29, 29),
RABBITIZER_DEF_REG(RSP_VECTOR, v30, 30),
RABBITIZER_DEF_REG(RSP_VECTOR, v31, 31),
RABBITIZER_DEF_REG(
RSP_VECTOR, v0, 0,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v1, 1,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v2, 2,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v3, 3,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v4, 4,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v5, 5,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v6, 6,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v7, 7,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v8, 8,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v9, 9,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v10, 10,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v11, 11,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v12, 12,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v13, 13,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v14, 14,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v15, 15,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v16, 16,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v17, 17,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v18, 18,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v19, 19,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v20, 20,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v21, 21,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v22, 22,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v23, 23,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v24, 24,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v25, 25,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v26, 26,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v27, 27,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v28, 28,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v29, 29,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v30, 30,
0
)
RABBITIZER_DEF_REG(
RSP_VECTOR, v31, 31,
0
)

View File

@ -14,6 +14,7 @@
#include "instructions/RabbitizerInstrSuffix.h"
#include "instructions/RabbitizerInstrDescriptor.h"
#include "instructions/RabbitizerRegister.h"
#include "instructions/RabbitizerRegisterDescriptor.h"
#include "instructions/RabbitizerInstruction.h"
#include "instructions/RabbitizerInstructionRsp.h"
#include "instructions/RabbitizerInstructionR5900.h"

View File

@ -5,11 +5,11 @@
#include "instructions/RabbitizerRegister.h"
#define RABBITIZER_DEF_REG(prefix, name, numeric) \
{ "RegGprN32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }
#define RABBITIZER_DEF_REG(prefix, name, numeric, ...) \
{ "RegGprN32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL },
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric) \
{ "RegGprN32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \
{ "RegGprN32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL },
RabbitizerEnumMetadata rabbitizer_enum_RegGprN32_enumvalues[] = {
#include "instructions/registers/RabbitizerRegister_GprN32.inc"

View File

@ -5,11 +5,11 @@
#include "instructions/RabbitizerRegister.h"
#define RABBITIZER_DEF_REG(prefix, name, numeric) \
{ "RegGprO32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }
#define RABBITIZER_DEF_REG(prefix, name, numeric, ...) \
{ "RegGprO32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL },
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric) \
{ "RegGprO32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \
{ "RegGprO32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL },
RabbitizerEnumMetadata rabbitizer_enum_RegGprO32_enumvalues[] = {
#include "instructions/registers/RabbitizerRegister_GprO32.inc"

View File

@ -454,7 +454,7 @@ pub mod registers {
RSP_COP2_CONTROL_28,
RSP_COP2_CONTROL_29,
RSP_COP2_CONTROL_30,
COP1_CONTROL_31,
RSP_COP2_CONTROL_31,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@ -501,38 +501,38 @@ pub mod registers {
#[derive(num_enum::TryFromPrimitive)]
#[derive(num_enum::IntoPrimitive)]
pub enum R5900VF {
vf0,
vf1,
vf2,
vf3,
vf4,
vf5,
vf6,
vf7,
vf8,
vf9,
vf10,
vf11,
vf12,
vf13,
vf14,
vf15,
vf16,
vf17,
vf18,
vf19,
vf20,
vf21,
vf22,
vf23,
vf24,
vf25,
vf26,
vf27,
vf28,
vf29,
vf30,
vf31,
vf0,
vf1,
vf2,
vf3,
vf4,
vf5,
vf6,
vf7,
vf8,
vf9,
vf10,
vf11,
vf12,
vf13,
vf14,
vf15,
vf16,
vf17,
vf18,
vf19,
vf20,
vf21,
vf22,
vf23,
vf24,
vf25,
vf26,
vf27,
vf28,
vf29,
vf30,
vf31,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@ -540,37 +540,37 @@ vf31,
#[derive(num_enum::TryFromPrimitive)]
#[derive(num_enum::IntoPrimitive)]
pub enum R5900VI {
vi0,
vi1,
vi2,
vi3,
vi4,
vi5,
vi6,
vi7,
vi8,
vi9,
vi10,
vi11,
vi12,
vi13,
vi14,
vi15,
vi16,
vi17,
vi18,
vi19,
vi20,
vi21,
vi22,
vi23,
vi24,
vi25,
vi26,
vi27,
vi28,
vi29,
vi30,
vi31,
vi0,
vi1,
vi2,
vi3,
vi4,
vi5,
vi6,
vi7,
vi8,
vi9,
vi10,
vi11,
vi12,
vi13,
vi14,
vi15,
vi16,
vi17,
vi18,
vi19,
vi20,
vi21,
vi22,
vi23,
vi24,
vi25,
vi26,
vi27,
vi28,
vi29,
vi30,
vi31,
}
}

View File

@ -5,10 +5,10 @@
#define HASH_EXPANSION(x) x
#define SPECIAL_RS_TAG(...) HASH_EXPANSION(HASH)[__VA_ARGS__]
#define RABBITIZER_DEF_REG(prefix, name, numeric) \
name
#define RABBITIZER_DEF_REG(prefix, name, numeric, ...) \
name,
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric) \
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \
RABBITIZER_DEF_REG(prefix, name, numeric)
pub mod registers {
@ -69,8 +69,8 @@ pub mod registers {
#undef RABBITIZER_DEF_REG
#define RABBITIZER_DEF_REG(prefix, name, numeric) \
prefix##_##name
#define RABBITIZER_DEF_REG(prefix, name, numeric, ...) \
prefix##_##name,
SPECIAL_RS_TAG(repr(u32))
SPECIAL_RS_TAG(derive(Debug, Copy, Clone, Hash, PartialEq, Eq))
@ -104,8 +104,8 @@ pub mod registers {
#undef RABBITIZER_DEF_REG
#define RABBITIZER_DEF_REG(prefix, name, numeric) \
name
#define RABBITIZER_DEF_REG(prefix, name, numeric, ...) \
name,
SPECIAL_RS_TAG(repr(u32))
SPECIAL_RS_TAG(derive(Debug, Copy, Clone, Hash, PartialEq, Eq))
@ -118,8 +118,8 @@ pub mod registers {
#undef RABBITIZER_DEF_REG
#define RABBITIZER_DEF_REG(prefix, name, numeric) \
prefix##_##name
#define RABBITIZER_DEF_REG(prefix, name, numeric, ...) \
prefix##_##name,
SPECIAL_RS_TAG(repr(u32))
SPECIAL_RS_TAG(derive(Debug, Copy, Clone, Hash, PartialEq, Eq))
@ -141,8 +141,8 @@ pub mod registers {
#undef RABBITIZER_DEF_REG
#define RABBITIZER_DEF_REG(prefix, name, numeric) \
name
#define RABBITIZER_DEF_REG(prefix, name, numeric, ...) \
name,
SPECIAL_RS_TAG(repr(u32))
SPECIAL_RS_TAG(derive(Debug, Copy, Clone, Hash, PartialEq, Eq))

View File

@ -0,0 +1,46 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
#include "instructions/RabbitizerRegisterDescriptor.h"
#include "instructions/RabbitizerRegister.h"
#include "RegisterDescriptor_Descriptors_arrays.table.h"
bool RabbitizerRegisterDescriptor_isClobberedByFuncCall(const RabbitizerRegisterDescriptor *self) {
return self->isClobberedByFuncCall;
}
bool RabbitizerRegisterDescriptor_isReserved(const RabbitizerRegisterDescriptor *self) {
return self->isReserved;
}
bool RabbitizerRegisterDescriptor_isKernel(const RabbitizerRegisterDescriptor *self) {
return self->isKernel;
}
bool RabbitizerRegisterDescriptor_isZero(const RabbitizerRegisterDescriptor *self) {
return self->isZero;
}
bool RabbitizerRegisterDescriptor_isAt(const RabbitizerRegisterDescriptor *self) {
return self->isAt;
}
bool RabbitizerRegisterDescriptor_isReturnReg(const RabbitizerRegisterDescriptor *self) {
return self->isReturnReg;
}
bool RabbitizerRegisterDescriptor_isRa(const RabbitizerRegisterDescriptor *self) {
return self->isRa;
}
bool RabbitizerRegisterDescriptor_isStackPointer(const RabbitizerRegisterDescriptor *self) {
return self->isStackPointer;
}
bool RabbitizerRegisterDescriptor_isGp(const RabbitizerRegisterDescriptor *self) {
return self->isGp;
}
bool RabbitizerRegisterDescriptor_isTemp(const RabbitizerRegisterDescriptor *self) {
return self->isTemp;
}
bool RabbitizerRegisterDescriptor_isArg(const RabbitizerRegisterDescriptor *self) {
return self->isArg;
}
bool RabbitizerRegisterDescriptor_isSaved(const RabbitizerRegisterDescriptor *self) {
return self->isSaved;
}

View File

@ -0,0 +1,504 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
/* Automatically generated. DO NOT MODIFY */
#ifndef RegisterDescriptor_Descriptors_arrays_table_h_automatic
#define RegisterDescriptor_Descriptors_arrays_table_h_automatic
const RabbitizerRegisterDescriptor RabbitizerRegister_GprO32_Descriptors[] = {
[RABBITIZER_REG_GPR_O32_zero] = { .isZero=true },
[RABBITIZER_REG_GPR_O32_at] = { .isClobberedByFuncCall=true, .isAt=true },
[RABBITIZER_REG_GPR_O32_v0] = { .isClobberedByFuncCall=true, .isReturnReg=true },
[RABBITIZER_REG_GPR_O32_v1] = { .isClobberedByFuncCall=true, .isReturnReg=true },
[RABBITIZER_REG_GPR_O32_a0] = { .isClobberedByFuncCall=true, .isArg=true },
[RABBITIZER_REG_GPR_O32_a1] = { .isClobberedByFuncCall=true, .isArg=true },
[RABBITIZER_REG_GPR_O32_a2] = { .isClobberedByFuncCall=true, .isArg=true },
[RABBITIZER_REG_GPR_O32_a3] = { .isClobberedByFuncCall=true, .isArg=true },
[RABBITIZER_REG_GPR_O32_t0] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_O32_t1] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_O32_t2] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_O32_t3] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_O32_t4] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_O32_t5] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_O32_t6] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_O32_t7] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_O32_s0] = { .isSaved=true },
[RABBITIZER_REG_GPR_O32_s1] = { .isSaved=true },
[RABBITIZER_REG_GPR_O32_s2] = { .isSaved=true },
[RABBITIZER_REG_GPR_O32_s3] = { .isSaved=true },
[RABBITIZER_REG_GPR_O32_s4] = { .isSaved=true },
[RABBITIZER_REG_GPR_O32_s5] = { .isSaved=true },
[RABBITIZER_REG_GPR_O32_s6] = { .isSaved=true },
[RABBITIZER_REG_GPR_O32_s7] = { .isSaved=true },
[RABBITIZER_REG_GPR_O32_t8] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_O32_t9] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_O32_k0] = { .isKernel=true },
[RABBITIZER_REG_GPR_O32_k1] = { .isKernel=true },
[RABBITIZER_REG_GPR_O32_gp] = { .isGp=true },
[RABBITIZER_REG_GPR_O32_sp] = { .isStackPointer=true },
[RABBITIZER_REG_GPR_O32_fp] = { 0 },
[RABBITIZER_REG_GPR_O32_ra] = { .isClobberedByFuncCall=true, .isRa=true },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_GprN32_Descriptors[] = {
[RABBITIZER_REG_GPR_N32_zero] = { .isZero=true },
[RABBITIZER_REG_GPR_N32_at] = { .isClobberedByFuncCall=true, .isAt=true },
[RABBITIZER_REG_GPR_N32_v0] = { .isClobberedByFuncCall=true, .isReturnReg=true },
[RABBITIZER_REG_GPR_N32_v1] = { .isClobberedByFuncCall=true, .isReturnReg=true },
[RABBITIZER_REG_GPR_N32_a0] = { .isClobberedByFuncCall=true, .isArg=true },
[RABBITIZER_REG_GPR_N32_a1] = { .isClobberedByFuncCall=true, .isArg=true },
[RABBITIZER_REG_GPR_N32_a2] = { .isClobberedByFuncCall=true, .isArg=true },
[RABBITIZER_REG_GPR_N32_a3] = { .isClobberedByFuncCall=true, .isArg=true },
[RABBITIZER_REG_GPR_N32_a4] = { .isClobberedByFuncCall=true, .isArg=true },
[RABBITIZER_REG_GPR_N32_a5] = { .isClobberedByFuncCall=true, .isArg=true },
[RABBITIZER_REG_GPR_N32_a6] = { .isClobberedByFuncCall=true, .isArg=true },
[RABBITIZER_REG_GPR_N32_a7] = { .isClobberedByFuncCall=true, .isArg=true },
[RABBITIZER_REG_GPR_N32_t0] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_N32_t1] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_N32_t2] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_N32_t3] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_N32_s0] = { .isSaved=true },
[RABBITIZER_REG_GPR_N32_s1] = { .isSaved=true },
[RABBITIZER_REG_GPR_N32_s2] = { .isSaved=true },
[RABBITIZER_REG_GPR_N32_s3] = { .isSaved=true },
[RABBITIZER_REG_GPR_N32_s4] = { .isSaved=true },
[RABBITIZER_REG_GPR_N32_s5] = { .isSaved=true },
[RABBITIZER_REG_GPR_N32_s6] = { .isSaved=true },
[RABBITIZER_REG_GPR_N32_s7] = { .isSaved=true },
[RABBITIZER_REG_GPR_N32_t8] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_N32_t9] = { .isClobberedByFuncCall=true, .isTemp=true },
[RABBITIZER_REG_GPR_N32_k0] = { .isKernel=true },
[RABBITIZER_REG_GPR_N32_k1] = { .isKernel=true },
[RABBITIZER_REG_GPR_N32_gp] = { .isGp=true },
[RABBITIZER_REG_GPR_N32_sp] = { .isStackPointer=true },
[RABBITIZER_REG_GPR_N32_fp] = { 0 },
[RABBITIZER_REG_GPR_N32_ra] = { .isClobberedByFuncCall=true, .isRa=true },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_Cop0_Descriptors[] = {
[RABBITIZER_REG_COP0_Index] = { 0 },
[RABBITIZER_REG_COP0_Random] = { 0 },
[RABBITIZER_REG_COP0_EntryLo0] = { 0 },
[RABBITIZER_REG_COP0_EntryLo1] = { 0 },
[RABBITIZER_REG_COP0_Context] = { 0 },
[RABBITIZER_REG_COP0_PageMask] = { 0 },
[RABBITIZER_REG_COP0_Wired] = { 0 },
[RABBITIZER_REG_COP0_Reserved07] = { .isReserved=true },
[RABBITIZER_REG_COP0_BadVaddr] = { 0 },
[RABBITIZER_REG_COP0_Count] = { 0 },
[RABBITIZER_REG_COP0_EntryHi] = { 0 },
[RABBITIZER_REG_COP0_Compare] = { 0 },
[RABBITIZER_REG_COP0_Status] = { 0 },
[RABBITIZER_REG_COP0_Cause] = { 0 },
[RABBITIZER_REG_COP0_EPC] = { 0 },
[RABBITIZER_REG_COP0_PRevID] = { 0 },
[RABBITIZER_REG_COP0_Config] = { 0 },
[RABBITIZER_REG_COP0_LLAddr] = { 0 },
[RABBITIZER_REG_COP0_WatchLo] = { 0 },
[RABBITIZER_REG_COP0_WatchHi] = { 0 },
[RABBITIZER_REG_COP0_XContext] = { 0 },
[RABBITIZER_REG_COP0_Reserved21] = { .isReserved=true },
[RABBITIZER_REG_COP0_Reserved22] = { .isReserved=true },
[RABBITIZER_REG_COP0_Reserved23] = { .isReserved=true },
[RABBITIZER_REG_COP0_Reserved24] = { .isReserved=true },
[RABBITIZER_REG_COP0_Reserved25] = { .isReserved=true },
[RABBITIZER_REG_COP0_PErr] = { 0 },
[RABBITIZER_REG_COP0_CacheErr] = { 0 },
[RABBITIZER_REG_COP0_TagLo] = { 0 },
[RABBITIZER_REG_COP0_TagHi] = { 0 },
[RABBITIZER_REG_COP0_ErrorEPC] = { 0 },
[RABBITIZER_REG_COP0_Reserved31] = { .isReserved=true },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_Cop1O32_Descriptors[] = {
[RABBITIZER_REG_COP1_O32_fv0] = { 0 },
[RABBITIZER_REG_COP1_O32_fv0f] = { 0 },
[RABBITIZER_REG_COP1_O32_fv1] = { 0 },
[RABBITIZER_REG_COP1_O32_fv1f] = { 0 },
[RABBITIZER_REG_COP1_O32_ft0] = { 0 },
[RABBITIZER_REG_COP1_O32_ft0f] = { 0 },
[RABBITIZER_REG_COP1_O32_ft1] = { 0 },
[RABBITIZER_REG_COP1_O32_ft1f] = { 0 },
[RABBITIZER_REG_COP1_O32_ft2] = { 0 },
[RABBITIZER_REG_COP1_O32_ft2f] = { 0 },
[RABBITIZER_REG_COP1_O32_ft3] = { 0 },
[RABBITIZER_REG_COP1_O32_ft3f] = { 0 },
[RABBITIZER_REG_COP1_O32_fa0] = { 0 },
[RABBITIZER_REG_COP1_O32_fa0f] = { 0 },
[RABBITIZER_REG_COP1_O32_fa1] = { 0 },
[RABBITIZER_REG_COP1_O32_fa1f] = { 0 },
[RABBITIZER_REG_COP1_O32_ft4] = { 0 },
[RABBITIZER_REG_COP1_O32_ft4f] = { 0 },
[RABBITIZER_REG_COP1_O32_ft5] = { 0 },
[RABBITIZER_REG_COP1_O32_ft5f] = { 0 },
[RABBITIZER_REG_COP1_O32_fs0] = { 0 },
[RABBITIZER_REG_COP1_O32_fs0f] = { 0 },
[RABBITIZER_REG_COP1_O32_fs1] = { 0 },
[RABBITIZER_REG_COP1_O32_fs1f] = { 0 },
[RABBITIZER_REG_COP1_O32_fs2] = { 0 },
[RABBITIZER_REG_COP1_O32_fs2f] = { 0 },
[RABBITIZER_REG_COP1_O32_fs3] = { 0 },
[RABBITIZER_REG_COP1_O32_fs3f] = { 0 },
[RABBITIZER_REG_COP1_O32_fs4] = { 0 },
[RABBITIZER_REG_COP1_O32_fs4f] = { 0 },
[RABBITIZER_REG_COP1_O32_fs5] = { 0 },
[RABBITIZER_REG_COP1_O32_fs5f] = { 0 },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_Cop1N32_Descriptors[] = {
[RABBITIZER_REG_COP1_N32_fv0] = { 0 },
[RABBITIZER_REG_COP1_N32_ft14] = { 0 },
[RABBITIZER_REG_COP1_N32_fv1] = { 0 },
[RABBITIZER_REG_COP1_N32_ft15] = { 0 },
[RABBITIZER_REG_COP1_N32_ft0] = { 0 },
[RABBITIZER_REG_COP1_N32_ft1] = { 0 },
[RABBITIZER_REG_COP1_N32_ft2] = { 0 },
[RABBITIZER_REG_COP1_N32_ft3] = { 0 },
[RABBITIZER_REG_COP1_N32_ft4] = { 0 },
[RABBITIZER_REG_COP1_N32_ft5] = { 0 },
[RABBITIZER_REG_COP1_N32_ft6] = { 0 },
[RABBITIZER_REG_COP1_N32_ft7] = { 0 },
[RABBITIZER_REG_COP1_N32_fa0] = { 0 },
[RABBITIZER_REG_COP1_N32_fa1] = { 0 },
[RABBITIZER_REG_COP1_N32_fa2] = { 0 },
[RABBITIZER_REG_COP1_N32_fa3] = { 0 },
[RABBITIZER_REG_COP1_N32_fa4] = { 0 },
[RABBITIZER_REG_COP1_N32_fa5] = { 0 },
[RABBITIZER_REG_COP1_N32_fa6] = { 0 },
[RABBITIZER_REG_COP1_N32_fa7] = { 0 },
[RABBITIZER_REG_COP1_N32_fs0] = { 0 },
[RABBITIZER_REG_COP1_N32_ft8] = { 0 },
[RABBITIZER_REG_COP1_N32_fs1] = { 0 },
[RABBITIZER_REG_COP1_N32_ft9] = { 0 },
[RABBITIZER_REG_COP1_N32_fs2] = { 0 },
[RABBITIZER_REG_COP1_N32_ft10] = { 0 },
[RABBITIZER_REG_COP1_N32_fs3] = { 0 },
[RABBITIZER_REG_COP1_N32_ft11] = { 0 },
[RABBITIZER_REG_COP1_N32_fs4] = { 0 },
[RABBITIZER_REG_COP1_N32_ft12] = { 0 },
[RABBITIZER_REG_COP1_N32_fs5] = { 0 },
[RABBITIZER_REG_COP1_N32_ft13] = { 0 },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_Cop1N64_Descriptors[] = {
[RABBITIZER_REG_COP1_N64_fv0] = { 0 },
[RABBITIZER_REG_COP1_N64_ft12] = { 0 },
[RABBITIZER_REG_COP1_N64_fv1] = { 0 },
[RABBITIZER_REG_COP1_N64_ft13] = { 0 },
[RABBITIZER_REG_COP1_N64_ft0] = { 0 },
[RABBITIZER_REG_COP1_N64_ft1] = { 0 },
[RABBITIZER_REG_COP1_N64_ft2] = { 0 },
[RABBITIZER_REG_COP1_N64_ft3] = { 0 },
[RABBITIZER_REG_COP1_N64_ft4] = { 0 },
[RABBITIZER_REG_COP1_N64_ft5] = { 0 },
[RABBITIZER_REG_COP1_N64_ft6] = { 0 },
[RABBITIZER_REG_COP1_N64_ft7] = { 0 },
[RABBITIZER_REG_COP1_N64_fa0] = { 0 },
[RABBITIZER_REG_COP1_N64_fa1] = { 0 },
[RABBITIZER_REG_COP1_N64_fa2] = { 0 },
[RABBITIZER_REG_COP1_N64_fa3] = { 0 },
[RABBITIZER_REG_COP1_N64_fa4] = { 0 },
[RABBITIZER_REG_COP1_N64_fa5] = { 0 },
[RABBITIZER_REG_COP1_N64_fa6] = { 0 },
[RABBITIZER_REG_COP1_N64_fa7] = { 0 },
[RABBITIZER_REG_COP1_N64_ft8] = { 0 },
[RABBITIZER_REG_COP1_N64_ft9] = { 0 },
[RABBITIZER_REG_COP1_N64_ft10] = { 0 },
[RABBITIZER_REG_COP1_N64_ft11] = { 0 },
[RABBITIZER_REG_COP1_N64_fs0] = { 0 },
[RABBITIZER_REG_COP1_N64_fs1] = { 0 },
[RABBITIZER_REG_COP1_N64_fs2] = { 0 },
[RABBITIZER_REG_COP1_N64_fs3] = { 0 },
[RABBITIZER_REG_COP1_N64_fs4] = { 0 },
[RABBITIZER_REG_COP1_N64_fs5] = { 0 },
[RABBITIZER_REG_COP1_N64_fs6] = { 0 },
[RABBITIZER_REG_COP1_N64_fs7] = { 0 },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_Cop1Control_Descriptors[] = {
[RABBITIZER_REG_COP1_CONTROL_0] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_1] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_2] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_3] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_4] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_5] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_6] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_7] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_8] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_9] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_10] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_11] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_12] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_13] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_14] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_15] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_16] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_17] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_18] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_19] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_20] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_21] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_22] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_23] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_24] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_25] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_26] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_27] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_28] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_29] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_30] = { 0 },
[RABBITIZER_REG_COP1_CONTROL_FpcCsr] = { 0 },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_Cop2_Descriptors[] = {
[RABBITIZER_REG_COP2_0] = { 0 },
[RABBITIZER_REG_COP2_1] = { 0 },
[RABBITIZER_REG_COP2_2] = { 0 },
[RABBITIZER_REG_COP2_3] = { 0 },
[RABBITIZER_REG_COP2_4] = { 0 },
[RABBITIZER_REG_COP2_5] = { 0 },
[RABBITIZER_REG_COP2_6] = { 0 },
[RABBITIZER_REG_COP2_7] = { 0 },
[RABBITIZER_REG_COP2_8] = { 0 },
[RABBITIZER_REG_COP2_9] = { 0 },
[RABBITIZER_REG_COP2_10] = { 0 },
[RABBITIZER_REG_COP2_11] = { 0 },
[RABBITIZER_REG_COP2_12] = { 0 },
[RABBITIZER_REG_COP2_13] = { 0 },
[RABBITIZER_REG_COP2_14] = { 0 },
[RABBITIZER_REG_COP2_15] = { 0 },
[RABBITIZER_REG_COP2_16] = { 0 },
[RABBITIZER_REG_COP2_17] = { 0 },
[RABBITIZER_REG_COP2_18] = { 0 },
[RABBITIZER_REG_COP2_19] = { 0 },
[RABBITIZER_REG_COP2_20] = { 0 },
[RABBITIZER_REG_COP2_21] = { 0 },
[RABBITIZER_REG_COP2_22] = { 0 },
[RABBITIZER_REG_COP2_23] = { 0 },
[RABBITIZER_REG_COP2_24] = { 0 },
[RABBITIZER_REG_COP2_25] = { 0 },
[RABBITIZER_REG_COP2_26] = { 0 },
[RABBITIZER_REG_COP2_27] = { 0 },
[RABBITIZER_REG_COP2_28] = { 0 },
[RABBITIZER_REG_COP2_29] = { 0 },
[RABBITIZER_REG_COP2_30] = { 0 },
[RABBITIZER_REG_COP2_31] = { 0 },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_RspGpr_Descriptors[] = {
[RABBITIZER_REG_RSP_GPR_zero] = { .isZero=true },
[RABBITIZER_REG_RSP_GPR_1] = { 0 },
[RABBITIZER_REG_RSP_GPR_2] = { 0 },
[RABBITIZER_REG_RSP_GPR_3] = { 0 },
[RABBITIZER_REG_RSP_GPR_4] = { 0 },
[RABBITIZER_REG_RSP_GPR_5] = { 0 },
[RABBITIZER_REG_RSP_GPR_6] = { 0 },
[RABBITIZER_REG_RSP_GPR_7] = { 0 },
[RABBITIZER_REG_RSP_GPR_8] = { 0 },
[RABBITIZER_REG_RSP_GPR_9] = { 0 },
[RABBITIZER_REG_RSP_GPR_10] = { 0 },
[RABBITIZER_REG_RSP_GPR_11] = { 0 },
[RABBITIZER_REG_RSP_GPR_12] = { 0 },
[RABBITIZER_REG_RSP_GPR_13] = { 0 },
[RABBITIZER_REG_RSP_GPR_14] = { 0 },
[RABBITIZER_REG_RSP_GPR_15] = { 0 },
[RABBITIZER_REG_RSP_GPR_16] = { 0 },
[RABBITIZER_REG_RSP_GPR_17] = { 0 },
[RABBITIZER_REG_RSP_GPR_18] = { 0 },
[RABBITIZER_REG_RSP_GPR_19] = { 0 },
[RABBITIZER_REG_RSP_GPR_20] = { 0 },
[RABBITIZER_REG_RSP_GPR_21] = { 0 },
[RABBITIZER_REG_RSP_GPR_22] = { 0 },
[RABBITIZER_REG_RSP_GPR_23] = { 0 },
[RABBITIZER_REG_RSP_GPR_24] = { 0 },
[RABBITIZER_REG_RSP_GPR_25] = { 0 },
[RABBITIZER_REG_RSP_GPR_26] = { 0 },
[RABBITIZER_REG_RSP_GPR_27] = { 0 },
[RABBITIZER_REG_RSP_GPR_28] = { 0 },
[RABBITIZER_REG_RSP_GPR_29] = { 0 },
[RABBITIZER_REG_RSP_GPR_30] = { 0 },
[RABBITIZER_REG_RSP_GPR_ra] = { .isClobberedByFuncCall=true, .isRa=true },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_RspCop0_Descriptors[] = {
[RABBITIZER_REG_RSP_COP0_SP_MEM_ADDR] = { 0 },
[RABBITIZER_REG_RSP_COP0_SP_DRAM_ADDR] = { 0 },
[RABBITIZER_REG_RSP_COP0_SP_RD_LEN] = { 0 },
[RABBITIZER_REG_RSP_COP0_SP_WR_LEN] = { 0 },
[RABBITIZER_REG_RSP_COP0_SP_STATUS] = { 0 },
[RABBITIZER_REG_RSP_COP0_SP_DMA_FULL] = { 0 },
[RABBITIZER_REG_RSP_COP0_SP_DMA_BUSY] = { 0 },
[RABBITIZER_REG_RSP_COP0_SP_SEMAPHORE] = { 0 },
[RABBITIZER_REG_RSP_COP0_DPC_START] = { 0 },
[RABBITIZER_REG_RSP_COP0_DPC_END] = { 0 },
[RABBITIZER_REG_RSP_COP0_DPC_CURRENT] = { 0 },
[RABBITIZER_REG_RSP_COP0_DPC_STATUS] = { 0 },
[RABBITIZER_REG_RSP_COP0_DPC_CLOCK] = { 0 },
[RABBITIZER_REG_RSP_COP0_DPC_BUFBUSY] = { 0 },
[RABBITIZER_REG_RSP_COP0_DPC_PIPEBUSY] = { 0 },
[RABBITIZER_REG_RSP_COP0_DPC_TMEM] = { 0 },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_RspCop2_Descriptors[] = {
[RABBITIZER_REG_RSP_COP2_0] = { 0 },
[RABBITIZER_REG_RSP_COP2_1] = { 0 },
[RABBITIZER_REG_RSP_COP2_2] = { 0 },
[RABBITIZER_REG_RSP_COP2_3] = { 0 },
[RABBITIZER_REG_RSP_COP2_4] = { 0 },
[RABBITIZER_REG_RSP_COP2_5] = { 0 },
[RABBITIZER_REG_RSP_COP2_6] = { 0 },
[RABBITIZER_REG_RSP_COP2_7] = { 0 },
[RABBITIZER_REG_RSP_COP2_8] = { 0 },
[RABBITIZER_REG_RSP_COP2_9] = { 0 },
[RABBITIZER_REG_RSP_COP2_10] = { 0 },
[RABBITIZER_REG_RSP_COP2_11] = { 0 },
[RABBITIZER_REG_RSP_COP2_12] = { 0 },
[RABBITIZER_REG_RSP_COP2_13] = { 0 },
[RABBITIZER_REG_RSP_COP2_14] = { 0 },
[RABBITIZER_REG_RSP_COP2_15] = { 0 },
[RABBITIZER_REG_RSP_COP2_16] = { 0 },
[RABBITIZER_REG_RSP_COP2_17] = { 0 },
[RABBITIZER_REG_RSP_COP2_18] = { 0 },
[RABBITIZER_REG_RSP_COP2_19] = { 0 },
[RABBITIZER_REG_RSP_COP2_20] = { 0 },
[RABBITIZER_REG_RSP_COP2_21] = { 0 },
[RABBITIZER_REG_RSP_COP2_22] = { 0 },
[RABBITIZER_REG_RSP_COP2_23] = { 0 },
[RABBITIZER_REG_RSP_COP2_24] = { 0 },
[RABBITIZER_REG_RSP_COP2_25] = { 0 },
[RABBITIZER_REG_RSP_COP2_26] = { 0 },
[RABBITIZER_REG_RSP_COP2_27] = { 0 },
[RABBITIZER_REG_RSP_COP2_28] = { 0 },
[RABBITIZER_REG_RSP_COP2_29] = { 0 },
[RABBITIZER_REG_RSP_COP2_30] = { 0 },
[RABBITIZER_REG_RSP_COP2_31] = { 0 },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_RspCop2Control_Descriptors[] = {
[RABBITIZER_REG_RSP_COP2_CONTROL_0] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_1] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_2] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_3] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_4] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_5] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_6] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_7] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_8] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_9] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_10] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_11] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_12] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_13] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_14] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_15] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_16] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_17] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_18] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_19] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_20] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_21] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_22] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_23] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_24] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_25] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_26] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_27] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_28] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_29] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_30] = { 0 },
[RABBITIZER_REG_RSP_COP2_CONTROL_31] = { 0 },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_RspVector_Descriptors[] = {
[RABBITIZER_REG_RSP_VECTOR_v0] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v1] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v2] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v3] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v4] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v5] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v6] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v7] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v8] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v9] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v10] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v11] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v12] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v13] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v14] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v15] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v16] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v17] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v18] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v19] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v20] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v21] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v22] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v23] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v24] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v25] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v26] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v27] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v28] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v29] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v30] = { 0 },
[RABBITIZER_REG_RSP_VECTOR_v31] = { 0 },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_R5900VF_Descriptors[] = {
[RABBITIZER_REG_R5900_VF_vf0] = { 0 },
[RABBITIZER_REG_R5900_VF_vf1] = { 0 },
[RABBITIZER_REG_R5900_VF_vf2] = { 0 },
[RABBITIZER_REG_R5900_VF_vf3] = { 0 },
[RABBITIZER_REG_R5900_VF_vf4] = { 0 },
[RABBITIZER_REG_R5900_VF_vf5] = { 0 },
[RABBITIZER_REG_R5900_VF_vf6] = { 0 },
[RABBITIZER_REG_R5900_VF_vf7] = { 0 },
[RABBITIZER_REG_R5900_VF_vf8] = { 0 },
[RABBITIZER_REG_R5900_VF_vf9] = { 0 },
[RABBITIZER_REG_R5900_VF_vf10] = { 0 },
[RABBITIZER_REG_R5900_VF_vf11] = { 0 },
[RABBITIZER_REG_R5900_VF_vf12] = { 0 },
[RABBITIZER_REG_R5900_VF_vf13] = { 0 },
[RABBITIZER_REG_R5900_VF_vf14] = { 0 },
[RABBITIZER_REG_R5900_VF_vf15] = { 0 },
[RABBITIZER_REG_R5900_VF_vf16] = { 0 },
[RABBITIZER_REG_R5900_VF_vf17] = { 0 },
[RABBITIZER_REG_R5900_VF_vf18] = { 0 },
[RABBITIZER_REG_R5900_VF_vf19] = { 0 },
[RABBITIZER_REG_R5900_VF_vf20] = { 0 },
[RABBITIZER_REG_R5900_VF_vf21] = { 0 },
[RABBITIZER_REG_R5900_VF_vf22] = { 0 },
[RABBITIZER_REG_R5900_VF_vf23] = { 0 },
[RABBITIZER_REG_R5900_VF_vf24] = { 0 },
[RABBITIZER_REG_R5900_VF_vf25] = { 0 },
[RABBITIZER_REG_R5900_VF_vf26] = { 0 },
[RABBITIZER_REG_R5900_VF_vf27] = { 0 },
[RABBITIZER_REG_R5900_VF_vf28] = { 0 },
[RABBITIZER_REG_R5900_VF_vf29] = { 0 },
[RABBITIZER_REG_R5900_VF_vf30] = { 0 },
[RABBITIZER_REG_R5900_VF_vf31] = { 0 },
};
const RabbitizerRegisterDescriptor RabbitizerRegister_R5900VI_Descriptors[] = {
[RABBITIZER_REG_R5900_VI_vi0] = { 0 },
[RABBITIZER_REG_R5900_VI_vi1] = { 0 },
[RABBITIZER_REG_R5900_VI_vi2] = { 0 },
[RABBITIZER_REG_R5900_VI_vi3] = { 0 },
[RABBITIZER_REG_R5900_VI_vi4] = { 0 },
[RABBITIZER_REG_R5900_VI_vi5] = { 0 },
[RABBITIZER_REG_R5900_VI_vi6] = { 0 },
[RABBITIZER_REG_R5900_VI_vi7] = { 0 },
[RABBITIZER_REG_R5900_VI_vi8] = { 0 },
[RABBITIZER_REG_R5900_VI_vi9] = { 0 },
[RABBITIZER_REG_R5900_VI_vi10] = { 0 },
[RABBITIZER_REG_R5900_VI_vi11] = { 0 },
[RABBITIZER_REG_R5900_VI_vi12] = { 0 },
[RABBITIZER_REG_R5900_VI_vi13] = { 0 },
[RABBITIZER_REG_R5900_VI_vi14] = { 0 },
[RABBITIZER_REG_R5900_VI_vi15] = { 0 },
[RABBITIZER_REG_R5900_VI_vi16] = { 0 },
[RABBITIZER_REG_R5900_VI_vi17] = { 0 },
[RABBITIZER_REG_R5900_VI_vi18] = { 0 },
[RABBITIZER_REG_R5900_VI_vi19] = { 0 },
[RABBITIZER_REG_R5900_VI_vi20] = { 0 },
[RABBITIZER_REG_R5900_VI_vi21] = { 0 },
[RABBITIZER_REG_R5900_VI_vi22] = { 0 },
[RABBITIZER_REG_R5900_VI_vi23] = { 0 },
[RABBITIZER_REG_R5900_VI_vi24] = { 0 },
[RABBITIZER_REG_R5900_VI_vi25] = { 0 },
[RABBITIZER_REG_R5900_VI_vi26] = { 0 },
[RABBITIZER_REG_R5900_VI_vi27] = { 0 },
[RABBITIZER_REG_R5900_VI_vi28] = { 0 },
[RABBITIZER_REG_R5900_VI_vi29] = { 0 },
[RABBITIZER_REG_R5900_VI_vi30] = { 0 },
[RABBITIZER_REG_R5900_VI_vi31] = { 0 },
};
#endif

View File

@ -0,0 +1,79 @@
/* SPDX-FileCopyrightText: © 2022 Decompollaborate */
/* SPDX-License-Identifier: MIT */
#define RABBITIZER_DEF_REG(prefix, name, numeric, ...) \
[RABBITIZER_REG_##prefix##_##name] = { __VA_ARGS__ },
#define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \
RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__)
const RabbitizerRegisterDescriptor RabbitizerRegister_GprO32_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_GprO32.inc"
};
const RabbitizerRegisterDescriptor RabbitizerRegister_GprN32_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_GprN32.inc"
};
const RabbitizerRegisterDescriptor RabbitizerRegister_Cop0_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_Cop0.inc"
};
const RabbitizerRegisterDescriptor RabbitizerRegister_Cop1O32_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_Cop1O32.inc"
};
const RabbitizerRegisterDescriptor RabbitizerRegister_Cop1N32_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_Cop1N32.inc"
};
const RabbitizerRegisterDescriptor RabbitizerRegister_Cop1N64_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_Cop1N64.inc"
};
const RabbitizerRegisterDescriptor RabbitizerRegister_Cop1Control_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_Cop1Control.inc"
};
const RabbitizerRegisterDescriptor RabbitizerRegister_Cop2_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_Cop2.inc"
};
/* RSP */
const RabbitizerRegisterDescriptor RabbitizerRegister_RspGpr_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_RspGpr.inc"
};
const RabbitizerRegisterDescriptor RabbitizerRegister_RspCop0_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_RspCop0.inc"
};
const RabbitizerRegisterDescriptor RabbitizerRegister_RspCop2_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_RspCop2.inc"
};
const RabbitizerRegisterDescriptor RabbitizerRegister_RspCop2Control_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_RspCop2Control.inc"
};
const RabbitizerRegisterDescriptor RabbitizerRegister_RspVector_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_RspVector.inc"
};
/* RSP */
/* R5900 */
const RabbitizerRegisterDescriptor RabbitizerRegister_R5900VF_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_R5900VF.inc"
};
const RabbitizerRegisterDescriptor RabbitizerRegister_R5900VI_Descriptors[] = {
#include "instructions/registers/RabbitizerRegister_R5900VI.inc"
};
/* R5900 */
#undef RABBITIZER_DEF_REG
#undef RABBITIZER_DEF_REG_NODOLLAR

View File

@ -396,7 +396,7 @@ const char *RabbitizerRegister_RspCop2Control_Names[][2] = {
[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" },
[RABBITIZER_REG_RSP_COP2_CONTROL_31] = { "$" "31", "$" "31" },
};
const char *RabbitizerRegister_RspVector_Names[][2] = {
[RABBITIZER_REG_RSP_VECTOR_v0] = { "$" "0", "$" "v0" },
@ -433,72 +433,72 @@ const char *RabbitizerRegister_RspVector_Names[][2] = {
[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" },
[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" },
[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

View File

@ -1,9 +1,11 @@
/* 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(prefix, name, numeric, ...) \
[RABBITIZER_REG_##prefix##_##name] = { "$" #numeric, "$" #name },
#define RABBITIZER_DEF_REG_NODOLLAR(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