[Arm64] Fix smul[lh] disassembly
authorSteve MacLean <sdmaclea.qdt@qualcommdatacenter.com>
Mon, 2 Oct 2017 22:30:01 +0000 (18:30 -0400)
committerSteve MacLean <sdmaclea.qdt@qualcommdatacenter.com>
Tue, 3 Oct 2017 18:38:13 +0000 (14:38 -0400)
src/jit/emitarm64.cpp

index d901f8a..68e5841 100644 (file)
@@ -10824,6 +10824,15 @@ void emitter::emitDispIns(
                 emitDispReg(encodingZRtoSP(id->idReg1()), size, true);
                 emitDispReg(encodingZRtoSP(id->idReg2()), size, true);
             }
+            else if ((ins == INS_smull) || (ins == INS_smulh))
+            {
+                // Rd is always 8 bytes
+                emitDispReg(id->idReg1(), EA_8BYTE, true);
+
+                // Rn, Rm effective size depends on instruction type
+                size = (ins == INS_smulh) ? EA_8BYTE : EA_4BYTE;
+                emitDispReg(id->idReg2(), size, true);
+            }
             else
             {
                 emitDispReg(id->idReg1(), size, true);