[Qemu-devel] [PATCH v1 0/6] DISAS_UPDATE fixes for eret

Alex Bennée posted 6 patches 8 years, 3 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170710154749.13624-1-alex.bennee@linaro.org
Test FreeBSD passed
Test checkpatch passed
Test docker passed
Test s390x passed
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(-)
[Qemu-devel] [PATCH v1 0/6] DISAS_UPDATE fixes for eret
Posted by Alex Bennée 8 years, 3 months ago
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