[Qemu-devel] [PATCH v2 0/5] arm: fixes for eret, isb and DISAS_UPDATE handling

Alex Bennée posted 5 patches 8 years, 3 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170710192128.9048-1-alex.bennee@linaro.org
Test FreeBSD passed
Test checkpatch passed
Test docker passed
Test s390x passed
There is a newer version of this series
include/exec/exec-all.h    | 29 ++++++++++++++++++++++++++---
target/arm/translate-a64.c | 20 +++++++++++---------
target/arm/translate.c     | 24 +++++++++++++++++-------
target/arm/translate.h     |  5 ++++-
4 files changed, 58 insertions(+), 20 deletions(-)
[Qemu-devel] [PATCH v2 0/5] arm: fixes for eret, isb and DISAS_UPDATE handling
Posted by Alex Bennée 8 years, 3 months ago
Hi,

This is a quick iteration from the previous series:

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

Which was born out of the fix:

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

Following feedback I reverted the attempt to use DISAS_UPDATE for
everything and just made it match the semantics of not-chaining. So
patches 1 & 3 are purely documentation.

Patch 2 should prevent any system change prompted by writing to a
system register not exiting the loop.

Patch 4 is a minor optimisation to ISB handling
Patch 5 fixes the eret regression from the DISAS_JUMP optimisation

I think now all users of DISAS_JUMP should be safe with respect to TB
chaining.

Please review.

Alex Bennée (5):
  include/exec/exec-all: document common exit conditions
  target/arm/translate: make DISAS_UPDATE match declared semantics
  target/arm/translate.h: expand comment on DISAS_EXIT
  target/arm: use DISAS_JUMP for ISB handling
  target/arm: use DISAS_EXIT for eret handling

 include/exec/exec-all.h    | 29 ++++++++++++++++++++++++++---
 target/arm/translate-a64.c | 20 +++++++++++---------
 target/arm/translate.c     | 24 +++++++++++++++++-------
 target/arm/translate.h     |  5 ++++-
 4 files changed, 58 insertions(+), 20 deletions(-)

-- 
2.13.0