s390x: Fix 64-bit shift in s390_irgen_VSTRS

The function s390_irgen_VSTRS in guest_s390_toIR.c contains a shift
operation that is intended to yield a 64-bit number but uses 1UL instead
of 1ULL.  This doesn't work on systems where 'unsigned long' is only 32
bits wide.  Fix by replacing 1UL by 1ULL.
This commit is contained in:
Andreas Arnez 2021-09-17 18:48:12 +02:00
parent 093bef43d6
commit 687aad3498

View File

@ -17679,7 +17679,7 @@ s390_irgen_VSTRS(UChar v1, UChar v2, UChar v3, UChar v4, UChar m5, UChar m6)
assign(result, unop(Iop_ClzNat64,
binop(Iop_Or64,
unop(Iop_V128HIto64, match),
mkU64((1UL << 48) - 1))));
mkU64((1ULL << 48) - 1))));
put_vr_qw(v1, binop(Iop_64HLtoV128, mkexpr(result), mkU64(0)));
/* Set condition code.