diff --git a/src/coreclr/jit/emitxarch.cpp b/src/coreclr/jit/emitxarch.cpp index 30b5ea482838b8..02ad94b38f86fd 100644 --- a/src/coreclr/jit/emitxarch.cpp +++ b/src/coreclr/jit/emitxarch.cpp @@ -12646,16 +12646,32 @@ void emitter::emitDispConstant(const instrDesc* id, bool skipComma) const if ((val > -1000) && (val < 1000)) { - printf("%d", (int)val); - } - else if ((val > 0) || (val < -0xFFFFFF)) - { - printf("0x%zX", (ssize_t)val); + printf("%d", static_cast(val)); } else { - // (val < 0) - printf("-0x%zX", (ssize_t)-val); + switch (id->idOpSize()) + { + case EA_1BYTE: + printf("0x%X", static_cast(val)); + break; + + case EA_2BYTE: + printf("0x%X", static_cast(val)); + break; + + case EA_4BYTE: + printf("0x%X", static_cast(val)); + break; + + case EA_8BYTE: + printf("0x%X", static_cast(val)); + break; + + default: + printf("0x%zX", static_cast(val)); + break; + } } emitDispCommentForHandle(cnsVal.cnsVal, id->idDebugOnlyInfo()->idMemCookie, id->idDebugOnlyInfo()->idFlags);