target-arm: implement Thumb-2 exception return
Support the "subs pc, lr" Thumb-2 exception return instruction. Signed-off-by: Rabin Vincent <rabin@rab.in> Signed-off-by: Paul Brook <paul@codesourcery.com>
This commit is contained in:
parent
fa26df032e
commit
b8b45b68f8
@ -8001,8 +8001,16 @@ static int disas_thumb2_insn(CPUState *env, DisasContext *s, uint16_t insn_hw1)
|
||||
gen_bx(s, tmp);
|
||||
break;
|
||||
case 5: /* Exception return. */
|
||||
/* Unpredictable in user mode. */
|
||||
goto illegal_op;
|
||||
if (IS_USER(s)) {
|
||||
goto illegal_op;
|
||||
}
|
||||
if (rn != 14 || rd != 15) {
|
||||
goto illegal_op;
|
||||
}
|
||||
tmp = load_reg(s, rn);
|
||||
tcg_gen_subi_i32(tmp, tmp, insn & 0xff);
|
||||
gen_exception_return(s, tmp);
|
||||
break;
|
||||
case 6: /* mrs cpsr. */
|
||||
tmp = new_tmp();
|
||||
if (IS_M(env)) {
|
||||
|
Loading…
Reference in New Issue
Block a user