'grail' fixes for s390x:
commit8d510c468a20b7528e2fca870f3236b4e2cb965f
authorJulian Seward <jseward@acm.org>
Sun, 1 Dec 2019 06:01:20 +0000 (1 07:01 +0100)
committerJulian Seward <jseward@acm.org>
Thu, 2 Jan 2020 05:45:02 +0000 (2 06:45 +0100)
tree5e8ca3207b03417ba858e862421c6d1cc43690e0
parent076a79a48e251067758e1e9d8e50681450ed3889
'grail' fixes for s390x:

This isn't a good result.  It merely disables the new functionality on s390x,
for the reason stated below.

* guest_generic_bb_to_IR.c bb_to_IR(): Disable, hopefully temporarily, the key
  &&-recovery transformation on s390x, since it causes Memcheck to crash for
  reasons I couldn't figure out.  It also exposes some missing Iex_ITE cases
  in the s390x insn selector, although those shouldn't be a big deal to fix.

  Maybe it's some strangeness to do with the s390x "ex" instruction.  I don't
  exactly understand how that trickery works, but from some study of it, I
  didn't see anything obviously wrong.

  It is only chasing through conditional branches that is disabled for s390x.
  Chasing through unconditional branches (jumps and calls to known
  destinations) is still enabled.

* host_s390_isel.c s390_isel_cc(): No functional change.  Code has been added
  here to handle the new Iop_And1 and Iop_Or1, and it is somewhat tested, but
  is not needed until conditional branch chasing is enabled on s390x.
VEX/priv/guest_generic_bb_to_IR.c
VEX/priv/host_s390_isel.c