From 960bb903f98a69abe6209faf0dddfa597b7d73b3 Mon Sep 17 00:00:00 2001 From: Kunal Pathak Date: Fri, 23 Dec 2022 20:36:49 -0800 Subject: [PATCH 1/2] Fix the double register name displayed --- src/coreclr/jit/emitarm.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/coreclr/jit/emitarm.cpp b/src/coreclr/jit/emitarm.cpp index 741d2d50dfbac0..61b7a26faf88a9 100644 --- a/src/coreclr/jit/emitarm.cpp +++ b/src/coreclr/jit/emitarm.cpp @@ -6927,8 +6927,18 @@ void emitter::emitDispReg(regNumber reg, emitAttr attr, bool addComma) { if (isFloatReg(reg)) { - const char* size = attr == EA_8BYTE ? "d" : "s"; - printf("%s%s", size, emitFloatRegName(reg, attr) + 1); + if (attr == EA_8BYTE) + { + char regNum[2]; + unsigned regIndex = reg - REG_F0; + regIndex >>= 1; + + printf("d%s", _itoa(regIndex, regNum, 10)); + } + else + { + printf("s%s", emitFloatRegName(reg, attr) + 1); + } } else { From bc65a2f9426ced9b17360c62dbedee01507bb19f Mon Sep 17 00:00:00 2001 From: Kunal Pathak Date: Tue, 27 Dec 2022 09:05:59 -0800 Subject: [PATCH 2/2] Replace itoa with hand-coded --- src/coreclr/jit/emitarm.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/coreclr/jit/emitarm.cpp b/src/coreclr/jit/emitarm.cpp index 61b7a26faf88a9..c75b145a7507f6 100644 --- a/src/coreclr/jit/emitarm.cpp +++ b/src/coreclr/jit/emitarm.cpp @@ -6929,11 +6929,18 @@ void emitter::emitDispReg(regNumber reg, emitAttr attr, bool addComma) { if (attr == EA_8BYTE) { - char regNum[2]; unsigned regIndex = reg - REG_F0; regIndex >>= 1; - printf("d%s", _itoa(regIndex, regNum, 10)); + if (regIndex < 10) + { + printf("d%c", regIndex + '0'); + } + else + { + assert(regIndex < 100); + printf("d%c%c", (regIndex / 10), (regIndex % 10)); + } } else {