arm64: print shifter in decimal mode. this is to be consistent with ARM engine

This commit is contained in:
Nguyen Anh Quynh 2014-11-08 13:58:50 +08:00
parent 9025e92fe2
commit c109e8eef3
3 changed files with 13 additions and 1 deletions

View File

@ -77,6 +77,15 @@ void printInt64(SStream *O, int64_t val)
}
}
// print number in decimal mode
void printInt32BangDec(SStream *O, int32_t val)
{
if (val >= 0)
SStream_concat(O, "#%u", val);
else
SStream_concat(O, "#-%u", -val);
}
void printInt32Bang(SStream *O, int32_t val)
{
if (val >= 0) {

View File

@ -27,4 +27,7 @@ void printUInt32Bang(SStream *O, uint32_t val);
void printUInt32(SStream *O, uint32_t val);
// print number in decimal mode
void printInt32BangDec(SStream *O, int32_t val);
#endif

View File

@ -1190,7 +1190,7 @@ static void printShifter(MCInst *MI, unsigned OpNum, SStream *O)
return;
SStream_concat(O, ", %s ", AArch64_AM_getShiftExtendName(AArch64_AM_getShiftType(Val)));
printInt32Bang(O, AArch64_AM_getShiftValue(Val));
printInt32BangDec(O, AArch64_AM_getShiftValue(Val));
if (MI->csh->detail) {
arm64_shifter shifter = ARM64_SFT_INVALID;
switch(AArch64_AM_getShiftType(Val)) {