]> git.ipfire.org Git - thirdparty/valgrind.git/commit
Bug 369459 - valgrind on arm64 violates the ARMv8 spec (ldxr/stxr)
authorJulian Seward <jseward@acm.org>
Mon, 24 Apr 2017 09:23:43 +0000 (09:23 +0000)
committerJulian Seward <jseward@acm.org>
Mon, 24 Apr 2017 09:23:43 +0000 (09:23 +0000)
commit6b72dc54b722af5f6a87ebe258d3da6bcba059b7
tree5b9bc134e964ca9e6b76f6069bb6fae80aaeb73e
parent95c019d0005090901f30220da6c207d2895014dc
Bug 369459 - valgrind on arm64 violates the ARMv8 spec (ldxr/stxr)

This implements a fallback LL/SC implementation as described in bug 344524.

The fallback implementation is not enabled by default, and there is no
auto-detection for when it should be used.  To use it, run with the
flag --sim-hints=fallback-llsc.  This commit also allows the existing
MIPS fallback implementation to be enabled with that flag.

VEX side changes:

* priv/main_main.c, pub/libvex.h

  Adds new field guest__use_fallback_LLSC to VexAbiInfo

* pub/libvex_guest_arm64.h priv/guest_arm64_toIR.c

  add front end support, new guest state fields
  guest_LLSC_{SIZE,ADDR,DATA}, also documentation of the scheme

* priv/guest_mips_toIR.c

  allow manual selection of fallback implementation via
  --sim-hints=fallback-llsc

* priv/host_arm64_defs.c priv/host_arm64_defs.h priv/host_arm64_isel.c

  Add support for generating CAS on arm64, as needed by the front end changes

git-svn-id: svn://svn.valgrind.org/vex/trunk@3352
VEX/priv/guest_arm64_toIR.c
VEX/priv/guest_mips_toIR.c
VEX/priv/host_arm64_defs.c
VEX/priv/host_arm64_defs.h
VEX/priv/host_arm64_isel.c
VEX/priv/main_main.c
VEX/pub/libvex.h
VEX/pub/libvex_guest_arm64.h