summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author jeffhao <jeffhao@google.com> 2012-03-13 12:37:36 -0700
committer jeffhao <jeffhao@google.com> 2012-03-13 12:37:36 -0700
commitcfe8db47f85a5d66ebb336075960fa46effb54dc (patch)
treeb7fcc68b70d669d50aeefab339c48a1b9fbfa105
parentc4c9881e5d22432f3f1a30eeec5aa109dfc08a7d (diff)
Really fix instruction decoding for throw verification error.
The decoder was not populating register vA and vB correctly and the fix didn't fix it correctly either. This time it's correct. Change-Id: If97b367f6b1dff5fbbb30c0ad9f767e2b1d08326
-rw-r--r--src/dex_instruction.cc5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/dex_instruction.cc b/src/dex_instruction.cc
index d768c0b3e7..e0b10f9f39 100644
--- a/src/dex_instruction.cc
+++ b/src/dex_instruction.cc
@@ -91,13 +91,10 @@ void Instruction::Decode(uint32_t &vA, uint32_t &vB, uint64_t &vB_wide, uint32_t
case k10t: // op +AA
vA = (int8_t) INST_AA(insn); // sign-extend 8-bit value
break;
- case k20bc: // op AA, kind@BBBB
- vA = INST_A(insn);
- vB = INST_B(insn);
- break;
case k20t: // op +AAAA
vA = (int16_t) FETCH(1); // sign-extend 16-bit value
break;
+ case k20bc: // op AA, kind@BBBB
case k21c: // op vAA, thing@BBBB
case k22x: // op vAA, vBBBB
vA = INST_AA(insn);