[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] Fix bug in translation of REVSH
From: |
Johan Bengtsson |
Subject: |
[Qemu-devel] [PATCH] Fix bug in translation of REVSH |
Date: |
Mon, 18 Oct 2010 14:49:36 +0200 |
The translation of REVSH shifted the low byte 8 steps left before performing
an 8-bit sign extend, causing this part of the expression to alwas be 0.
The fix for this is either to extend before shifting or switch to a 16-bit
extend. I choose the former.
Signed-off-by: Johan Bengtsson <address@hidden>
---
target-arm/translate.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/target-arm/translate.c b/target-arm/translate.c
index 652cac9..e2fa4df 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -253,8 +253,8 @@ static void gen_revsh(TCGv var)
TCGv tmp = new_tmp();
tcg_gen_shri_i32(tmp, var, 8);
tcg_gen_andi_i32(tmp, tmp, 0x00ff);
- tcg_gen_shli_i32(var, var, 8);
tcg_gen_ext8s_i32(var, var);
+ tcg_gen_shli_i32(var, var, 8);
tcg_gen_or_i32(var, var, tmp);
dead_tmp(tmp);
}
--
1.7.0.4
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [PATCH] Fix bug in translation of REVSH,
Johan Bengtsson <=