summaryrefslogtreecommitdiffstats
path: root/target/arm/translate.c
diff options
context:
space:
mode:
authorRichard Henderson2019-09-04 21:30:46 +0200
committerPeter Maydell2019-09-05 14:23:04 +0200
commite6f69612cc79e2acc05dafda8695f791a916946f (patch)
treed77068ce1df942c6004356dd29373ac333bbab48 /target/arm/translate.c
parenttarget/arm: Convert T16 adjust sp (immediate) (diff)
downloadqemu-e6f69612cc79e2acc05dafda8695f791a916946f.tar.gz
qemu-e6f69612cc79e2acc05dafda8695f791a916946f.tar.xz
qemu-e6f69612cc79e2acc05dafda8695f791a916946f.zip
target/arm: Convert T16, extract
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20190904193059.26202-57-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target/arm/translate.c')
-rw-r--r--target/arm/translate.c14
1 files changed, 1 insertions, 13 deletions
diff --git a/target/arm/translate.c b/target/arm/translate.c
index 8399a2c1f6..09c05de320 100644
--- a/target/arm/translate.c
+++ b/target/arm/translate.c
@@ -10766,21 +10766,9 @@ static void disas_thumb_insn(DisasContext *s, uint32_t insn)
op = (insn >> 8) & 0xf;
switch (op) {
case 0: /* add/sub (sp, immediate), in decodetree */
+ case 2: /* sign/zero extend, in decodetree */
goto illegal_op;
- case 2: /* sign/zero extend. */
- ARCH(6);
- rd = insn & 7;
- rm = (insn >> 3) & 7;
- tmp = load_reg(s, rm);
- switch ((insn >> 6) & 3) {
- case 0: gen_sxth(tmp); break;
- case 1: gen_sxtb(tmp); break;
- case 2: gen_uxth(tmp); break;
- case 3: gen_uxtb(tmp); break;
- }
- store_reg(s, rd, tmp);
- break;
case 4: case 5: case 0xc: case 0xd:
/*
* 0b1011_x10x_xxxx_xxxx