mirror of
https://github.com/Decompollaborate/rabbitizer.git
synced 2025-01-30 15:32:43 +00:00
Allow disabling upper case for immediates
This commit is contained in:
parent
3d70f9d285
commit
d5b4b096b4
@ -57,7 +57,8 @@ typedef struct RabbitizerConfig_ToolchainTweaks {
|
||||
typedef struct RabbitizerConfig_Misc {
|
||||
int opcodeLJust; // The minimal number of characters to left-align the opcode name
|
||||
bool unknownInstrComment; // Generate a pseudo-disassembly comment when disassembling non implemented instructions
|
||||
bool omit0XOnSmallHex;
|
||||
bool omit0XOnSmallImm;
|
||||
bool upperCaseImm;
|
||||
} RabbitizerConfig_Misc;
|
||||
|
||||
typedef struct RabbitizerConfig {
|
||||
|
@ -39,6 +39,7 @@ class _RabbitizerConfig:
|
||||
|
||||
misc_opcodeLJust: int = 11
|
||||
misc_unknownInstrComment: bool = True
|
||||
misc_omit0XOnSmallHex: bool = False
|
||||
misc_omit0XOnSmallImm: bool = False
|
||||
misc_upperCaseImm: bool = False
|
||||
|
||||
config: _RabbitizerConfig
|
||||
|
@ -124,7 +124,8 @@ DEF_MEMBER_GET_SET_BOOL(toolchainTweaks, sn64DivFix)
|
||||
|
||||
DEF_MEMBER_GET_SET_INT(misc, opcodeLJust, false, 0, 0)
|
||||
DEF_MEMBER_GET_SET_BOOL(misc, unknownInstrComment)
|
||||
DEF_MEMBER_GET_SET_BOOL(misc, omit0XOnSmallHex)
|
||||
DEF_MEMBER_GET_SET_BOOL(misc, omit0XOnSmallImm)
|
||||
DEF_MEMBER_GET_SET_BOOL(misc, upperCaseImm)
|
||||
|
||||
|
||||
static PyGetSetDef rabbitizer_global_config_GetSets[] = {
|
||||
@ -148,7 +149,8 @@ static PyGetSetDef rabbitizer_global_config_GetSets[] = {
|
||||
|
||||
MEMBER_GET_SET(misc, opcodeLJust, "", NULL),
|
||||
MEMBER_GET_SET(misc, unknownInstrComment, "", NULL),
|
||||
MEMBER_GET_SET(misc, omit0XOnSmallHex, "", NULL),
|
||||
MEMBER_GET_SET(misc, omit0XOnSmallImm, "", NULL),
|
||||
MEMBER_GET_SET(misc, upperCaseImm, "", NULL),
|
||||
|
||||
{ 0 },
|
||||
};
|
||||
|
@ -45,6 +45,7 @@ RabbitizerConfig RabbitizerConfig_Cfg = {
|
||||
.misc = {
|
||||
.opcodeLJust = 7+4,
|
||||
.unknownInstrComment = true,
|
||||
.omit0XOnSmallHex = false,
|
||||
.omit0XOnSmallImm = false,
|
||||
.upperCaseImm = true,
|
||||
}
|
||||
};
|
||||
|
@ -151,8 +151,7 @@ size_t RabbitizerOperandType_processLabel(const RabbitizerInstruction *self, cha
|
||||
return immOverrideLength;
|
||||
}
|
||||
|
||||
RABUTILS_BUFFER_CPY(dst, totalSize, "func_");
|
||||
RABUTILS_BUFFER_SPRINTF(dst, totalSize, "%06X", RabbitizerInstruction_getInstrIndexAsVram(self));
|
||||
RABUTILS_BUFFER_SPRINTF(dst, totalSize, "func_%06X", RabbitizerInstruction_getInstrIndexAsVram(self));
|
||||
return totalSize;
|
||||
}
|
||||
|
||||
@ -166,16 +165,24 @@ size_t RabbitizerOperandType_processImmediate(const RabbitizerInstruction *self,
|
||||
}
|
||||
|
||||
number = RabbitizerInstruction_getProcessedImmediate(self);
|
||||
if (RabbitizerConfig_Cfg.misc.omit0XOnSmallHex) {
|
||||
if (RabbitizerConfig_Cfg.misc.omit0XOnSmallImm) {
|
||||
if (number > -10 && number < 10) {
|
||||
RABUTILS_BUFFER_SPRINTF(dst, totalSize, "%i", number);
|
||||
return totalSize;
|
||||
}
|
||||
}
|
||||
if (number < 0) {
|
||||
if (RabbitizerConfig_Cfg.misc.upperCaseImm) {
|
||||
RABUTILS_BUFFER_SPRINTF(dst, totalSize, "-0x%X", -number);
|
||||
} else {
|
||||
RABUTILS_BUFFER_SPRINTF(dst, totalSize, "-0x%x", -number);
|
||||
}
|
||||
} else {
|
||||
if (RabbitizerConfig_Cfg.misc.upperCaseImm) {
|
||||
RABUTILS_BUFFER_SPRINTF(dst, totalSize, "0x%X", number);
|
||||
} else {
|
||||
RABUTILS_BUFFER_SPRINTF(dst, totalSize, "0x%x", number);
|
||||
}
|
||||
}
|
||||
return totalSize;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user