mbox series

[v1,0/6] DISAS_UPDATE fixes for eret

Message ID 20170710154749.13624-1-alex.bennee@linaro.org
Headers show
Series DISAS_UPDATE fixes for eret | expand

Message

Alex Bennée July 10, 2017, 3:47 p.m. UTC
Hi,

This is a follow-up to the eret patch I posted on Friday:

  https://lists.nongnu.org/archive/html/qemu-devel/2017-07/msg01831.html

It fixes the same bug but does it in a slightly more holistic way. We
start by expanding the commentary on the common DISAS_n exit flags in
exec-all.h. I then update ARMs usage of DISAS_UPDATE to:

  - explicitly exit the run-loop (and not fall-through to DISAS_JUMP)
  - make setting the PC optional (as helpers may set it)

I then get rid of the architecture specific hack DISAS_EXIT and use
DISAS_UPDATE for all the eret paths.

Please review.

Alex Bennée (6):
  include/exec/exec-all: document common exit conditions
  target/arm/translate.c: make DISAS_UPDATE match declared semantics
  target/arm/translate-a64: make DISAS_UPDATE match declared semantics
  target/arm/translate-a64: get rid of DISAS_EXIT
  target/arm: use DISAS_JUMP for ISB handling
  target/arm: ensure eret exits the run-loop via DISAS_UPDATE

 include/exec/exec-all.h    | 29 ++++++++++++++++++++++++++---
 target/arm/translate-a64.c | 21 +++++++++++----------
 target/arm/translate.c     | 36 ++++++++++++++++++++++++++----------
 target/arm/translate.h     |  4 ----
 4 files changed, 63 insertions(+), 27 deletions(-)

-- 
2.13.0