target/arm: Convert T16, nop hints

Backports commit 56e6250ede81b4e4b4ddb623874d6c3cdad4a96d from qemu
This commit is contained in:
Richard Henderson 2019-11-20 12:31:31 -05:00 committed by Lioncash
parent 676f1c8783
commit a45db7fcd1
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7
2 changed files with 18 additions and 2 deletions

View file

@ -19,6 +19,7 @@
# This file is processed by scripts/decodetree.py
#
&empty !extern
&s_rrr_shi !extern s rd rn rm shim shty
&s_rrr_shr !extern s rn rd rm rs shty
&s_rri_rot !extern s rn rd imm rot
@ -204,3 +205,19 @@ SETEND 1011 0110 010 1 E:1 000 &setend
REV 1011 1010 00 ... ... @rdm
REV16 1011 1010 01 ... ... @rdm
REVSH 1011 1010 11 ... ... @rdm
# Hints
{
YIELD 1011 1111 0001 0000
WFE 1011 1111 0010 0000
WFI 1011 1111 0011 0000
# TODO: Implement SEV, SEVL; may help SMP performance.
# SEV 1011 1111 0100 0000
# SEVL 1011 1111 0101 0000
# The canonical nop has the second nibble as 0000, but the whole of the
# rest of the space is a reserved hint, behaves as nop.
NOP 1011 1111 ---- 0000
}

View file

@ -11245,8 +11245,7 @@ static void disas_thumb_insn(DisasContext *s, uint32_t insn)
case 15: /* IT, nop-hint. */
if ((insn & 0xf) == 0) {
gen_nop_hint(s, (insn >> 4) & 0xf);
break;
goto illegal_op; /* nop hint, in decodetree */
}
/*
* IT (If-Then)