]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
mips64: add support for Cavium LHX
authorPetar Jovanovic <mips32r2@gmail.com>
Tue, 16 Jun 2015 23:40:21 +0000 (23:40 +0000)
committerPetar Jovanovic <mips32r2@gmail.com>
Tue, 16 Jun 2015 23:40:21 +0000 (23:40 +0000)
This patch adds support for LHX (Load Halfword Indexed) instruction.
It is available on CVMv2/MIPS DSP.

Issue reported in BZ #345987.

Patch by Crestez Dan Leonard.

git-svn-id: svn://svn.valgrind.org/vex/trunk@3152

VEX/priv/guest_mips_toIR.c

index 8e94298142181d7d29f57057a77a13210248df2e..84d2608ff5baf35f499d5b47a9bf8b19a596d582 100644 (file)
@@ -2638,6 +2638,16 @@ static Bool dis_instr_CVM ( UInt theInstr )
                                                   True));
                      break;
                   }
+                  case 0x04:  // LHX rd, index(base)
+                     DIP("lhx r%d, r%d(r%d)", regRd, regRt, regRs);
+                     LOADX_STORE_PATTERN;
+                     if (mode64)
+                        putIReg(regRd, unop(Iop_16Sto64, load(Ity_I16,
+                                                              mkexpr(t1))));
+                     else
+                        putIReg(regRd, unop(Iop_16Sto32, load(Ity_I16,
+                                                              mkexpr(t1))));
+                     break;
                   case 0x08: {  // LDX rd, index(base)
                      DIP("ldx r%d, r%d(r%d)", regRd, regRt, regRs);
                      vassert(mode64); /* Currently Implemented only for n64 */