]> git.ipfire.org Git - thirdparty/valgrind.git/commit
s390: Simplify the optimisation for PUTs to tracked registers.
authorFlorian Krohm <florian@eich-krohm.de>
Sun, 23 Dec 2012 01:09:16 +0000 (01:09 +0000)
committerFlorian Krohm <florian@eich-krohm.de>
Sun, 23 Dec 2012 01:09:16 +0000 (01:09 +0000)
commit4a8516e9255e4e408bc30451dcdb4609148eda7f
treee066864ae530c1789f3603a67a22a814ce2b0d24
parent745d80259356279380a169b86912f4daf34cca7f
s390: Simplify the optimisation for PUTs to tracked registers.

There is no need to treat the guest IA register specially. The first
assignment in a SB to any tracked register will always assign the full value
and not do an incremental update. Therefore, maintaining
env->first_IA_assignment is redundant. Interestingly, the old code
forgot to mark the tracking state as valid when first_IA_assignment was
true, resulting in an inefficiency (in the order of 0.8% of insns).

Also, when a tracked register already contains the value that it is
being assigned, there is not need to
(a) check whether that register requires precise memory exceptions and
(b) if so, assign the new value.
By definition, the register is up-to-date and reassigning the new value
which is also the old value is meaningless. No idea, what I was thinking
at the time.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2614
VEX/priv/host_s390_isel.c