|
From: Andreas A. <ar...@so...> - 2020-03-13 19:37:04
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=95df121886a398f2bf5205eb63d5a9bceca5a764 commit 95df121886a398f2bf5205eb63d5a9bceca5a764 Author: Andreas Arnez <ar...@li...> Date: Fri Mar 13 17:20:20 2020 +0100 s390x: Actually use "load on condition" for conditional moves Although the implementation of the cond_move insn is prepared to emit "load on condition" instructions, it doesn't, because of a reversed check. The check is supposed to prevent emitting LOCx instructions when the condition code mask is set to "always", but it's accidentally negated. Fix the reversal of the check, so LOCx instructions are actually emitted when applicable. Diff: --- VEX/priv/host_s390_defs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VEX/priv/host_s390_defs.c b/VEX/priv/host_s390_defs.c index 98c160d712..80e56f603a 100644 --- a/VEX/priv/host_s390_defs.c +++ b/VEX/priv/host_s390_defs.c @@ -10105,7 +10105,7 @@ s390_insn_cond_move_emit(UChar *buf, const s390_insn *insn) if (s390_host_has_lsc) { /* LOCx is not the preferred way to implement an unconditional load. */ - if (cond != S390_CC_ALWAYS) goto use_branch_insn; + if (cond == S390_CC_ALWAYS) goto use_branch_insn; switch (src.tag) { case S390_OPND_REG: |