diff --git a/NEWS b/NEWS index d7852320e..52377430c 100644 --- a/NEWS +++ b/NEWS @@ -127,6 +127,7 @@ where XXXXXX is the bug number as listed below. 417906 clone with CLONE_VFORK and no CLONE_VM fails 418435 s390x: memcmp test yields extra "Conditional jump or move depends on uninitialised value(s)" +417281 s390x: /bin/true segfaults with "grail" enabled n-i-bz Fix minor one time leaks in dhat. n-i-bz Add --run-cxx-freeres=no in outer args to avoid inner crashes. n-i-bz Add support for the Linux io_uring system calls diff --git a/VEX/priv/host_s390_defs.c b/VEX/priv/host_s390_defs.c index 80e56f603..b9b215819 100644 --- a/VEX/priv/host_s390_defs.c +++ b/VEX/priv/host_s390_defs.c @@ -676,8 +676,18 @@ s390_insn_get_reg_usage(HRegUsage *u, const s390_insn *insn) break; case S390_INSN_COND_MOVE: - s390_opnd_RMI_get_reg_usage(u, insn->variant.cond_move.src); - addHRegUse(u, HRmWrite, insn->variant.cond_move.dst); + switch (insn->variant.cond_move.cond) { + case S390_CC_NEVER: + break; + case S390_CC_ALWAYS: + s390_opnd_RMI_get_reg_usage(u, insn->variant.cond_move.src); + addHRegUse(u, HRmWrite, insn->variant.cond_move.dst); + break; + default: + s390_opnd_RMI_get_reg_usage(u, insn->variant.cond_move.src); + addHRegUse(u, HRmModify, insn->variant.cond_move.dst); + break; + } break; case S390_INSN_ALU: diff --git a/docs/internals/3_15_BUGSTATUS.txt b/docs/internals/3_15_BUGSTATUS.txt index ac4b5f48f..9509426a0 100644 --- a/docs/internals/3_15_BUGSTATUS.txt +++ b/docs/internals/3_15_BUGSTATUS.txt @@ -204,9 +204,6 @@ Uhmm, MUSL .417266 Make memcheck/tests/linux/sigqueue usable with musl Uhmm, MUSL -.417281 s390x: /bin/true segfaults with "grail" enabled -Ongoing - .417377 False-positive "uninitialised value(s)" reports from memcheck .417572 unhandled instruction bytes: 0xC5 0x79 0xD6 0xED 0xC5 0xF9 0x51