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
---
target
There were two problems with VCVT fixpoint conversion. The most grave was that
the micro-ops sequence generated by the instruction triggered a failed
assertion in tcg. The second problem was that the extraction of the fraction
field from the opcode was erroneous.
Signed-off-by: Johan Bengtsson
The thumb2 decoder contained a mixup between the bit controlling
doubling and the bit controlling if the operation was an add or a sub.
Signed-off-by: Johan Bengtsson
---
target-arm/translate.c |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/target-arm/translate.c b
The PKHxx instructions were not recognized by the thumb2 decoder. The
solution provided in this changeset is identical to the arm-mode
implementation.
Signed-off-by: Johan Bengtsson
---
target-arm/translate.c | 63 ++-
1 files changed, 45 insertions
The thumb2 decoder contained a mixup between the bit controlling
doubling and the bit controlling if the operation was an add or a sub.
Signed-off-by: Johan Bengtsson
---
target-arm/translate.c |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/target-arm/translate.c b
The PKHxx instructions were not recognized by the thumb2 decoder. The
solution provided in this changeset is identical to the arm-mode
implementation.
Signed-off-by: Johan Bengtsson
---
target-arm/translate.c | 63 ++-
1 files changed, 45 insertions
Do not try to insert a conditional jump over next instruction when the
condition code is AL as this will trigger an internal error.
Signed-off-by: Johan Bengtsson
---
target-arm/translate.c |8 +---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/target-arm/translate.c b
---
target-arm/translate.c |8 +---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/target-arm/translate.c b/target-arm/translate.c
index 786c329..554583d 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -8328,9 +8328,11 @@ static void disas_thumb_insn(CPU
This patch fixes a problem in the ARM target, where an IT AL instruction
causes QEmu to abort.