]> git.ipfire.org Git - thirdparty/valgrind.git/commit
Merge in branches/DCAS:
authorJulian Seward <jseward@acm.org>
Wed, 1 Jul 2009 08:06:34 +0000 (08:06 +0000)
committerJulian Seward <jseward@acm.org>
Wed, 1 Jul 2009 08:06:34 +0000 (08:06 +0000)
commit829fa0660970e698735e6f896a563cbf82b121c2
treea594c972f866f3fa037cb4db7daa6e96b431a5cd
parent86d7727592c90330c999c466be4540d1a7639d64
Merge in branches/DCAS:

This branch adds proper support for atomic instructions, proper in the
sense that the atomicity is preserved through the compilation
pipeline, and thus in the instrumented code.

The change adds a new IR statement kind, IRStmt_CAS, which represents
single- and doubleword compare-and-swap.  This is used as the basis
for the translation of all LOCK-prefixed instructions on x86 and
amd64.

The change also extends IRExpr_Load and IRStmt_Store so that
load-linked and store-conditional operations can be represented.  This
facilitates correct translation of l[wd]arx and st[wd]cx. on ppc in
the sense that these instructions will now eventually be regenerated
at the end of the compilation pipeline.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1901
26 files changed:
VEX/priv/guest-amd64/gdefs.h
VEX/priv/guest-amd64/ghelpers.c
VEX/priv/guest-amd64/toIR.c
VEX/priv/guest-arm/toIR.c
VEX/priv/guest-ppc/ghelpers.c
VEX/priv/guest-ppc/toIR.c
VEX/priv/guest-x86/toIR.c
VEX/priv/host-amd64/hdefs.c
VEX/priv/host-amd64/hdefs.h
VEX/priv/host-amd64/isel.c
VEX/priv/host-arm/isel.c
VEX/priv/host-ppc/hdefs.c
VEX/priv/host-ppc/hdefs.h
VEX/priv/host-ppc/isel.c
VEX/priv/host-x86/hdefs.c
VEX/priv/host-x86/hdefs.h
VEX/priv/host-x86/isel.c
VEX/priv/ir/irdefs.c
VEX/priv/ir/irmatch.c
VEX/priv/ir/iropt.c
VEX/priv/main/vex_main.c
VEX/pub/libvex.h
VEX/pub/libvex_guest_ppc32.h
VEX/pub/libvex_guest_ppc64.h
VEX/pub/libvex_ir.h
VEX/pub/libvex_trc_values.h