Improve code generation on s390x for assignment of constant
values to guest registers. Motivated by the observation that
piecing together a 64-bit value requires 4 insns on z900 and 2 insns
on newer models. Specifically:
(1) Assigning 0 can be done by using XC
(2) Assigning a value that differs by a small amount from the
    value previously assigned can be done using AGSI
    (Happens a lot for guest IA updates).
(3) If the new value differs from the previous one only
    in the lower word it is sufficient to assign the lower word.
(4) If the new value equals the old value the assignment is redundant
    and can be eliminated. This happens surprisingly often.
This buys us somewhere between 5% and 11.8% of insns (as measured
on the perf bucket).


git-svn-id: svn://svn.valgrind.org/vex/trunk@2258 8f6e269a-dfd6-0310-a8e1-e2731360e62c
6 files changed