]> git.ipfire.org Git - thirdparty/valgrind.git/commit
Bug 417452 - s390x: Force 12-bit amode for vector stores in isel
authorAndreas Arnez <arnez@linux.ibm.com>
Wed, 12 Feb 2020 13:13:55 +0000 (14:13 +0100)
committerAndreas Arnez <arnez@linux.ibm.com>
Tue, 18 Feb 2020 10:16:46 +0000 (11:16 +0100)
commitf27fe920cd321ca3cf4bc03a72879fd18bf2736f
treede700d21e1b61af093301ad61e1e5a222f337508
parentb729c0f35cf9663e610756b0d56fbbf3705b5209
Bug 417452 - s390x: Force 12-bit amode for vector stores in isel

It was seen that the s390 instruction selector chose a wrong addressing
mode for storing a vector register.  The VST instruction only handles
short (12-bit unsigned) displacements, but a long (20-bit signed)
displacement was generated instead, resulting in a panic:

vex: the `impossible' happened:
   s390_insn_store_emit: unknown dst->tag for HRcVec128

The fix prevents long displacements for vector store operations.  It also
optimizes vector store operations from an Iex_Get, by converting them to a
memory copy.  This optimization was already performed for integer
registers.
NEWS
VEX/priv/host_s390_defs.c
VEX/priv/host_s390_isel.c