summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChih-Min Chao <cmchao@gmail.com>2010-06-28 23:54:05 +0800
committerAurelien Jarno <aurelien@aurel32.net>2010-07-01 23:57:02 +0200
commit9067bac11da17f8a15614d300f51d84e0602b0c0 (patch)
treed063ba37a01d24c21375f2aa412efcb9f73e41ba
parenttarget-arm: fix addsub/subadd implementation (diff)
downloadqemu-kvm-9067bac11da17f8a15614d300f51d84e0602b0c0.tar.gz
qemu-kvm-9067bac11da17f8a15614d300f51d84e0602b0c0.tar.bz2
qemu-kvm-9067bac11da17f8a15614d300f51d84e0602b0c0.zip
target-arm : fix thumb2 parallel add/sub opcode decoding
Signed-off-by: Chih-Min Chao <cmchao@gmail.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit ed89a2f1b11db03fbdb0ddab93c25913a16c0374)
-rw-r--r--target-arm/translate.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/target-arm/translate.c b/target-arm/translate.c
index 45bf77256..d910f72fa 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -561,7 +561,7 @@ static void gen_arm_parallel_addsub(int op1, int op2, TCGv a, TCGv b)
/* For unknown reasons Arm and Thumb-2 use arbitrarily different encodings. */
#define PAS_OP(pfx) \
- switch (op2) { \
+ switch (op1) { \
case 0: gen_pas_helper(glue(pfx,add8)); break; \
case 1: gen_pas_helper(glue(pfx,add16)); break; \
case 2: gen_pas_helper(glue(pfx,addsubx)); break; \
@@ -573,7 +573,7 @@ static void gen_thumb2_parallel_addsub(int op1, int op2, TCGv a, TCGv b)
{
TCGv_ptr tmp;
- switch (op1) {
+ switch (op2) {
#define gen_pas_helper(name) glue(gen_helper_,name)(a, a, b, tmp)
case 0:
tmp = tcg_temp_new_ptr();