This patchset makes the ARM and Thumb encodings of the YIELD hint instruction in the ARM cause the TCG CPU to yield control back to the top level loop. This brings them into line with the A64 encoding which already did this.
Patch 1 splits out DISAS_YIELD from DISAS_WFE, because although we currently implement them both the same way they're semantically different, and in future we might well make WFE do something else. (In particular when I was reviewing Greg's patches that proposed enabling trap-to-EL2-on-WFE I didn't notice that we would also have ended up trapping on YIELD !) Changes v1->v2: * split the CPUARMState->CPUState casting into two lines as requested by Andreas * make HELPER(wfe) call HELPER(yield) and put the comments about wfe in the former, not the latter, as suggested by Peter C This seems worth putting into 2.4 to me, since it's fairly minor and a bugfix of sorts. Peter Maydell (2): target-arm: Split DISAS_YIELD from DISAS_WFE target-arm: Implement YIELD insn to yield in ARM and Thumb translators target-arm/helper.h | 1 + target-arm/op_helper.c | 18 +++++++++++++++--- target-arm/translate-a64.c | 6 ++++++ target-arm/translate.c | 7 +++++++ target-arm/translate.h | 1 + 5 files changed, 30 insertions(+), 3 deletions(-) -- 1.9.1