File 0001-Bug-399444-s390x-Drop-unnecessary-check-in-s390_irge.patch of Package valgrind

From ca2f73592e8e74a5328df0a65e0831bc1fc6dd28 Mon Sep 17 00:00:00 2001
From: Andreas Arnez <arnez@linux.ibm.com>
Date: Tue, 9 Oct 2018 11:22:27 +0200
Subject: [PATCH] Bug 399444 s390x: Drop unnecessary check in s390_irgen_VSLDB

In s390_irgen_VSLDB there was special handling for the case that the
immediate operand i4 has the value 16, which would mean that the result v1
were a full copy of the third operand v3.  However, this is impossible
because i4 can only assume values from 0 to 15; thus the special handling
can be removed.
---
 VEX/priv/guest_s390_toIR.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/VEX/priv/guest_s390_toIR.c b/VEX/priv/guest_s390_toIR.c
index c594ad51b..60b608138 100644
--- a/VEX/priv/guest_s390_toIR.c
+++ b/VEX/priv/guest_s390_toIR.c
@@ -17400,16 +17400,11 @@ s390_irgen_VSLDB(UChar v1, UChar v2, UChar v3, UChar i4)
 {
    UChar imm = i4 & 0b00001111;
 
-   if (imm == 0)
-   {
+   if (imm == 0) {
+      /* Just copy v2. */
       put_vr_qw(v1, get_vr_qw(v2));
-   }
-   else if (imm == 16)
-   {
-      put_vr_qw(v1, get_vr_qw(v3));
-   }
-   else
-   {
+   } else {
+      /* Concatenate v2's tail with v3's head. */
       put_vr_qw(v1,
                 binop(Iop_OrV128,
                       binop(Iop_ShlV128, get_vr_qw(v2), mkU8(imm * 8)),
-- 
2.20.1

openSUSE Build Service is sponsored by