Merged update from upstream sources
This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/valgrind.git#3e351e4f337233e9698984c34aa8a8cdb503c32e
This commit is contained in:
parent
3830046e7b
commit
7535eca5ce
@ -1,7 +1,16 @@
|
|||||||
diff --git a/VEX/priv/guest_s390_defs.h b/VEX/priv/guest_s390_defs.h
|
diff --git a/VEX/priv/guest_s390_defs.h b/VEX/priv/guest_s390_defs.h
|
||||||
index 9f93cff19..ea878d8af 100644
|
index 9f93cff19..905429015 100644
|
||||||
--- a/VEX/priv/guest_s390_defs.h
|
--- a/VEX/priv/guest_s390_defs.h
|
||||||
+++ b/VEX/priv/guest_s390_defs.h
|
+++ b/VEX/priv/guest_s390_defs.h
|
||||||
|
@@ -8,7 +8,7 @@
|
||||||
|
This file is part of Valgrind, a dynamic binary instrumentation
|
||||||
|
framework.
|
||||||
|
|
||||||
|
- Copyright IBM Corp. 2010-2017
|
||||||
|
+ Copyright IBM Corp. 2010-2020
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License as
|
||||||
@@ -263,26 +263,27 @@ extern ULong last_execute_target;
|
@@ -263,26 +263,27 @@ extern ULong last_execute_target;
|
||||||
before S390_VEC_OP_LAST. */
|
before S390_VEC_OP_LAST. */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@ -51,9 +60,18 @@ index 9f93cff19..ea878d8af 100644
|
|||||||
|
|
||||||
/* Arguments of s390x_dirtyhelper_vec_op(...) which are packed into one
|
/* Arguments of s390x_dirtyhelper_vec_op(...) which are packed into one
|
||||||
diff --git a/VEX/priv/guest_s390_helpers.c b/VEX/priv/guest_s390_helpers.c
|
diff --git a/VEX/priv/guest_s390_helpers.c b/VEX/priv/guest_s390_helpers.c
|
||||||
index a470d9f8d..b9c0514ba 100644
|
index a470d9f8d..b71b621ae 100644
|
||||||
--- a/VEX/priv/guest_s390_helpers.c
|
--- a/VEX/priv/guest_s390_helpers.c
|
||||||
+++ b/VEX/priv/guest_s390_helpers.c
|
+++ b/VEX/priv/guest_s390_helpers.c
|
||||||
|
@@ -8,7 +8,7 @@
|
||||||
|
This file is part of Valgrind, a dynamic binary instrumentation
|
||||||
|
framework.
|
||||||
|
|
||||||
|
- Copyright IBM Corp. 2010-2017
|
||||||
|
+ Copyright IBM Corp. 2010-2020
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License as
|
||||||
@@ -314,20 +314,11 @@ ULong s390x_dirtyhelper_STCKE(ULong *addr) {return 3;}
|
@@ -314,20 +314,11 @@ ULong s390x_dirtyhelper_STCKE(ULong *addr) {return 3;}
|
||||||
/*--- Dirty helper for Store Facility instruction ---*/
|
/*--- Dirty helper for Store Facility instruction ---*/
|
||||||
/*------------------------------------------------------------*/
|
/*------------------------------------------------------------*/
|
||||||
@ -79,14 +97,15 @@ index a470d9f8d..b9c0514ba 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
ULong
|
ULong
|
||||||
@@ -336,6 +327,76 @@ s390x_dirtyhelper_STFLE(VexGuestS390XState *guest_state, ULong *addr)
|
@@ -336,6 +327,77 @@ s390x_dirtyhelper_STFLE(VexGuestS390XState *guest_state, ULong *addr)
|
||||||
ULong hoststfle[S390_NUM_FACILITY_DW], cc, num_dw, i;
|
ULong hoststfle[S390_NUM_FACILITY_DW], cc, num_dw, i;
|
||||||
register ULong reg0 asm("0") = guest_state->guest_r0 & 0xF; /* r0[56:63] */
|
register ULong reg0 asm("0") = guest_state->guest_r0 & 0xF; /* r0[56:63] */
|
||||||
|
|
||||||
+ /* Restrict to facilities that we know about and assume to be compatible with
|
+ /* Restrict to facilities that we know about and that we assume to be
|
||||||
+ Valgrind. Of course, in this way we may reject features that Valgrind is
|
+ compatible with Valgrind. Of course, in this way we may reject features
|
||||||
+ not really involved in (and thus would be compatible), but quering for
|
+ that Valgrind is not really involved in (and thus would be compatible
|
||||||
+ such features doesn't seem like a typical use case. */
|
+ with), but quering for such features doesn't seem like a typical use
|
||||||
|
+ case. */
|
||||||
+ ULong accepted_facility[S390_NUM_FACILITY_DW] = {
|
+ ULong accepted_facility[S390_NUM_FACILITY_DW] = {
|
||||||
+ /* === 0 .. 63 === */
|
+ /* === 0 .. 63 === */
|
||||||
+ (s390_stfle_range(0, 16)
|
+ (s390_stfle_range(0, 16)
|
||||||
@ -156,7 +175,7 @@ index a470d9f8d..b9c0514ba 100644
|
|||||||
/* We cannot store more than S390_NUM_FACILITY_DW
|
/* We cannot store more than S390_NUM_FACILITY_DW
|
||||||
(and it makes not much sense to do so anyhow) */
|
(and it makes not much sense to do so anyhow) */
|
||||||
if (reg0 > S390_NUM_FACILITY_DW - 1)
|
if (reg0 > S390_NUM_FACILITY_DW - 1)
|
||||||
@@ -351,35 +412,9 @@ s390x_dirtyhelper_STFLE(VexGuestS390XState *guest_state, ULong *addr)
|
@@ -351,35 +413,9 @@ s390x_dirtyhelper_STFLE(VexGuestS390XState *guest_state, ULong *addr)
|
||||||
/* Update guest register 0 with what STFLE set r0 to */
|
/* Update guest register 0 with what STFLE set r0 to */
|
||||||
guest_state->guest_r0 = reg0;
|
guest_state->guest_r0 = reg0;
|
||||||
|
|
||||||
@ -194,7 +213,7 @@ index a470d9f8d..b9c0514ba 100644
|
|||||||
|
|
||||||
return cc;
|
return cc;
|
||||||
}
|
}
|
||||||
@@ -2500,25 +2535,26 @@ s390x_dirtyhelper_vec_op(VexGuestS390XState *guest_state,
|
@@ -2500,25 +2536,26 @@ s390x_dirtyhelper_vec_op(VexGuestS390XState *guest_state,
|
||||||
vassert(d->op > S390_VEC_OP_INVALID && d->op < S390_VEC_OP_LAST);
|
vassert(d->op > S390_VEC_OP_INVALID && d->op < S390_VEC_OP_LAST);
|
||||||
static const UChar opcodes[][2] = {
|
static const UChar opcodes[][2] = {
|
||||||
{0x00, 0x00}, /* invalid */
|
{0x00, 0x00}, /* invalid */
|
||||||
@ -240,7 +259,7 @@ index a470d9f8d..b9c0514ba 100644
|
|||||||
};
|
};
|
||||||
|
|
||||||
union {
|
union {
|
||||||
@@ -2612,6 +2648,7 @@ s390x_dirtyhelper_vec_op(VexGuestS390XState *guest_state,
|
@@ -2612,6 +2649,7 @@ s390x_dirtyhelper_vec_op(VexGuestS390XState *guest_state,
|
||||||
case S390_VEC_OP_VGFMA:
|
case S390_VEC_OP_VGFMA:
|
||||||
case S390_VEC_OP_VMAH:
|
case S390_VEC_OP_VMAH:
|
||||||
case S390_VEC_OP_VMALH:
|
case S390_VEC_OP_VMALH:
|
||||||
@ -248,7 +267,7 @@ index a470d9f8d..b9c0514ba 100644
|
|||||||
the_insn.VRRd.v1 = 1;
|
the_insn.VRRd.v1 = 1;
|
||||||
the_insn.VRRd.v2 = 2;
|
the_insn.VRRd.v2 = 2;
|
||||||
the_insn.VRRd.v3 = 3;
|
the_insn.VRRd.v3 = 3;
|
||||||
@@ -2621,9 +2658,9 @@ s390x_dirtyhelper_vec_op(VexGuestS390XState *guest_state,
|
@@ -2621,9 +2659,9 @@ s390x_dirtyhelper_vec_op(VexGuestS390XState *guest_state,
|
||||||
the_insn.VRRd.m6 = d->m5;
|
the_insn.VRRd.m6 = d->m5;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -262,7 +281,7 @@ index a470d9f8d..b9c0514ba 100644
|
|||||||
the_insn.VRRc.v2 = 2;
|
the_insn.VRRc.v2 = 2;
|
||||||
the_insn.VRRc.v3 = 3;
|
the_insn.VRRc.v3 = 3;
|
||||||
diff --git a/VEX/priv/guest_s390_toIR.c b/VEX/priv/guest_s390_toIR.c
|
diff --git a/VEX/priv/guest_s390_toIR.c b/VEX/priv/guest_s390_toIR.c
|
||||||
index c27a8d3fe..d4f428c24 100644
|
index c27a8d3fe..5f2c5ce98 100644
|
||||||
--- a/VEX/priv/guest_s390_toIR.c
|
--- a/VEX/priv/guest_s390_toIR.c
|
||||||
+++ b/VEX/priv/guest_s390_toIR.c
|
+++ b/VEX/priv/guest_s390_toIR.c
|
||||||
@@ -8,7 +8,7 @@
|
@@ -8,7 +8,7 @@
|
||||||
@ -691,7 +710,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
|
|
||||||
return "vpopct";
|
return "vpopct";
|
||||||
}
|
}
|
||||||
@@ -18335,12 +18516,52 @@ s390_irgen_VMALH(UChar v1, UChar v2, UChar v3, UChar v4, UChar m5)
|
@@ -18335,12 +18516,53 @@ s390_irgen_VMALH(UChar v1, UChar v2, UChar v3, UChar v4, UChar m5)
|
||||||
return "vmalh";
|
return "vmalh";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -704,12 +723,13 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
+ IRTemp cc = newTemp(Ity_I64);
|
+ IRTemp cc = newTemp(Ity_I64);
|
||||||
+
|
+
|
||||||
+ s390x_vec_op_details_t details = { .serialized = 0ULL };
|
+ s390x_vec_op_details_t details = { .serialized = 0ULL };
|
||||||
+ details.op = S390_VEC_OP_VMALH;
|
+ details.op = S390_VEC_OP_VMSL;
|
||||||
+ details.v1 = v1;
|
+ details.v1 = v1;
|
||||||
+ details.v2 = v2;
|
+ details.v2 = v2;
|
||||||
+ details.v3 = v3;
|
+ details.v3 = v3;
|
||||||
+ details.v4 = v4;
|
+ details.v4 = v4;
|
||||||
+ details.m4 = m5;
|
+ details.m4 = m5;
|
||||||
|
+ details.m5 = m6;
|
||||||
+
|
+
|
||||||
+ d = unsafeIRDirty_1_N(cc, 0, "s390x_dirtyhelper_vec_op",
|
+ d = unsafeIRDirty_1_N(cc, 0, "s390x_dirtyhelper_vec_op",
|
||||||
+ &s390x_dirtyhelper_vec_op,
|
+ &s390x_dirtyhelper_vec_op,
|
||||||
@ -746,7 +766,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
|
|
||||||
/* For Iop_F32toF64 we do this:
|
/* For Iop_F32toF64 we do this:
|
||||||
f32[0] -> f64[0]
|
f32[0] -> f64[0]
|
||||||
@@ -18353,14 +18574,21 @@ s390_vector_fp_convert(IROp op, IRType fromType, IRType toType,
|
@@ -18353,14 +18575,21 @@ s390_vector_fp_convert(IROp op, IRType fromType, IRType toType,
|
||||||
The magic below with scaling factors is used to achieve the logic
|
The magic below with scaling factors is used to achieve the logic
|
||||||
described above.
|
described above.
|
||||||
*/
|
*/
|
||||||
@ -774,7 +794,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
result = binop(op,
|
result = binop(op,
|
||||||
mkexpr(encode_bfp_rounding_mode(m5)),
|
mkexpr(encode_bfp_rounding_mode(m5)),
|
||||||
argument);
|
argument);
|
||||||
@@ -18369,10 +18597,6 @@ s390_vector_fp_convert(IROp op, IRType fromType, IRType toType,
|
@@ -18369,10 +18598,6 @@ s390_vector_fp_convert(IROp op, IRType fromType, IRType toType,
|
||||||
}
|
}
|
||||||
put_vr(v1, toType, i * destinationIndexScaleFactor, result);
|
put_vr(v1, toType, i * destinationIndexScaleFactor, result);
|
||||||
}
|
}
|
||||||
@ -785,7 +805,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const HChar *
|
static const HChar *
|
||||||
@@ -18380,12 +18604,8 @@ s390_irgen_VCDG(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5)
|
@@ -18380,12 +18605,8 @@ s390_irgen_VCDG(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5)
|
||||||
{
|
{
|
||||||
s390_insn_assert("vcdg", m3 == 3);
|
s390_insn_assert("vcdg", m3 == 3);
|
||||||
|
|
||||||
@ -800,7 +820,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
|
|
||||||
return "vcdg";
|
return "vcdg";
|
||||||
}
|
}
|
||||||
@@ -18395,12 +18615,8 @@ s390_irgen_VCDLG(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5)
|
@@ -18395,12 +18616,8 @@ s390_irgen_VCDLG(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5)
|
||||||
{
|
{
|
||||||
s390_insn_assert("vcdlg", m3 == 3);
|
s390_insn_assert("vcdlg", m3 == 3);
|
||||||
|
|
||||||
@ -815,7 +835,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
|
|
||||||
return "vcdlg";
|
return "vcdlg";
|
||||||
}
|
}
|
||||||
@@ -18410,12 +18626,8 @@ s390_irgen_VCGD(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5)
|
@@ -18410,12 +18627,8 @@ s390_irgen_VCGD(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5)
|
||||||
{
|
{
|
||||||
s390_insn_assert("vcgd", m3 == 3);
|
s390_insn_assert("vcgd", m3 == 3);
|
||||||
|
|
||||||
@ -830,7 +850,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
|
|
||||||
return "vcgd";
|
return "vcgd";
|
||||||
}
|
}
|
||||||
@@ -18425,12 +18637,8 @@ s390_irgen_VCLGD(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5)
|
@@ -18425,12 +18638,8 @@ s390_irgen_VCLGD(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5)
|
||||||
{
|
{
|
||||||
s390_insn_assert("vclgd", m3 == 3);
|
s390_insn_assert("vclgd", m3 == 3);
|
||||||
|
|
||||||
@ -845,7 +865,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
|
|
||||||
return "vclgd";
|
return "vclgd";
|
||||||
}
|
}
|
||||||
@@ -18438,246 +18646,262 @@ s390_irgen_VCLGD(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5)
|
@@ -18438,246 +18647,262 @@ s390_irgen_VCLGD(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5)
|
||||||
static const HChar *
|
static const HChar *
|
||||||
s390_irgen_VFI(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5)
|
s390_irgen_VFI(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5)
|
||||||
{
|
{
|
||||||
@ -1259,7 +1279,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
|
|
||||||
IRTemp cc_s390 = newTemp(Ity_I32);
|
IRTemp cc_s390 = newTemp(Ity_I32);
|
||||||
assign(cc_s390, convert_vex_bfpcc_to_s390(cc_vex));
|
assign(cc_s390, convert_vex_bfpcc_to_s390(cc_vex));
|
||||||
@@ -18695,213 +18919,253 @@ s390_irgen_WFK(UChar v1, UChar v2, UChar m3, UChar m4)
|
@@ -18695,213 +18920,253 @@ s390_irgen_WFK(UChar v1, UChar v2, UChar m3, UChar m4)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const HChar *
|
static const HChar *
|
||||||
@ -1662,7 +1682,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* New insns are added here.
|
/* New insns are added here.
|
||||||
@@ -20489,11 +20753,23 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
@@ -20489,11 +20754,23 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
||||||
RXY_dl2(ovl),
|
RXY_dl2(ovl),
|
||||||
RXY_dh2(ovl)); goto ok;
|
RXY_dh2(ovl)); goto ok;
|
||||||
case 0xe60000000034ULL: /* VPKZ */ goto unimplemented;
|
case 0xe60000000034ULL: /* VPKZ */ goto unimplemented;
|
||||||
@ -1690,7 +1710,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
case 0xe60000000049ULL: /* VLIP */ goto unimplemented;
|
case 0xe60000000049ULL: /* VLIP */ goto unimplemented;
|
||||||
case 0xe60000000050ULL: /* VCVB */ goto unimplemented;
|
case 0xe60000000050ULL: /* VCVB */ goto unimplemented;
|
||||||
case 0xe60000000052ULL: /* VCVBG */ goto unimplemented;
|
case 0xe60000000052ULL: /* VCVBG */ goto unimplemented;
|
||||||
@@ -20691,12 +20967,18 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
@@ -20691,12 +20968,18 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
||||||
case 0xe7000000006bULL: s390_format_VRR_VVV(s390_irgen_VNO, VRR_v1(ovl),
|
case 0xe7000000006bULL: s390_format_VRR_VVV(s390_irgen_VNO, VRR_v1(ovl),
|
||||||
VRR_v2(ovl), VRR_r3(ovl),
|
VRR_v2(ovl), VRR_r3(ovl),
|
||||||
VRR_rxb(ovl)); goto ok;
|
VRR_rxb(ovl)); goto ok;
|
||||||
@ -1712,7 +1732,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
case 0xe70000000070ULL: s390_format_VRR_VVVM(s390_irgen_VESLV, VRR_v1(ovl),
|
case 0xe70000000070ULL: s390_format_VRR_VVVM(s390_irgen_VESLV, VRR_v1(ovl),
|
||||||
VRR_v2(ovl), VRR_r3(ovl),
|
VRR_v2(ovl), VRR_r3(ovl),
|
||||||
VRR_m4(ovl), VRR_rxb(ovl)); goto ok;
|
VRR_m4(ovl), VRR_rxb(ovl)); goto ok;
|
||||||
@@ -20749,7 +21031,9 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
@@ -20749,7 +21032,9 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
||||||
case 0xe70000000084ULL: s390_format_VRR_VVVM(s390_irgen_VPDI, VRR_v1(ovl),
|
case 0xe70000000084ULL: s390_format_VRR_VVVM(s390_irgen_VPDI, VRR_v1(ovl),
|
||||||
VRR_v2(ovl), VRR_r3(ovl),
|
VRR_v2(ovl), VRR_r3(ovl),
|
||||||
VRR_m4(ovl), VRR_rxb(ovl)); goto ok;
|
VRR_m4(ovl), VRR_rxb(ovl)); goto ok;
|
||||||
@ -1723,7 +1743,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
case 0xe7000000008aULL: s390_format_VRR_VVVVMM(s390_irgen_VSTRC, VRRd_v1(ovl),
|
case 0xe7000000008aULL: s390_format_VRR_VVVVMM(s390_irgen_VSTRC, VRRd_v1(ovl),
|
||||||
VRRd_v2(ovl), VRRd_v3(ovl),
|
VRRd_v2(ovl), VRRd_v3(ovl),
|
||||||
VRRd_v4(ovl), VRRd_m5(ovl),
|
VRRd_v4(ovl), VRRd_m5(ovl),
|
||||||
@@ -20780,8 +21064,16 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
@@ -20780,8 +21065,16 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
||||||
case 0xe70000000097ULL: s390_format_VRR_VVVMM(s390_irgen_VPKS, VRR_v1(ovl),
|
case 0xe70000000097ULL: s390_format_VRR_VVVMM(s390_irgen_VPKS, VRR_v1(ovl),
|
||||||
VRR_v2(ovl), VRR_r3(ovl),
|
VRR_v2(ovl), VRR_r3(ovl),
|
||||||
VRR_m4(ovl), VRR_m5(ovl), VRR_rxb(ovl)); goto ok;
|
VRR_m4(ovl), VRR_m5(ovl), VRR_rxb(ovl)); goto ok;
|
||||||
@ -1742,7 +1762,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
case 0xe700000000a1ULL: s390_format_VRR_VVVM(s390_irgen_VMLH, VRR_v1(ovl),
|
case 0xe700000000a1ULL: s390_format_VRR_VVVM(s390_irgen_VMLH, VRR_v1(ovl),
|
||||||
VRR_v2(ovl), VRR_r3(ovl),
|
VRR_v2(ovl), VRR_r3(ovl),
|
||||||
VRR_m4(ovl), VRR_rxb(ovl)); goto ok;
|
VRR_m4(ovl), VRR_rxb(ovl)); goto ok;
|
||||||
@@ -20834,7 +21126,11 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
@@ -20834,7 +21127,11 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
||||||
case 0xe700000000b4ULL: s390_format_VRR_VVVM(s390_irgen_VGFM, VRR_v1(ovl),
|
case 0xe700000000b4ULL: s390_format_VRR_VVVM(s390_irgen_VGFM, VRR_v1(ovl),
|
||||||
VRR_v2(ovl), VRR_r3(ovl),
|
VRR_v2(ovl), VRR_r3(ovl),
|
||||||
VRR_m4(ovl), VRR_rxb(ovl)); goto ok;
|
VRR_m4(ovl), VRR_rxb(ovl)); goto ok;
|
||||||
@ -1755,7 +1775,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
case 0xe700000000b9ULL: s390_format_VRRd_VVVVM(s390_irgen_VACCC, VRRd_v1(ovl),
|
case 0xe700000000b9ULL: s390_format_VRRd_VVVVM(s390_irgen_VACCC, VRRd_v1(ovl),
|
||||||
VRRd_v2(ovl), VRRd_v3(ovl),
|
VRRd_v2(ovl), VRRd_v3(ovl),
|
||||||
VRRd_v4(ovl), VRRd_m5(ovl),
|
VRRd_v4(ovl), VRRd_m5(ovl),
|
||||||
@@ -20871,11 +21167,11 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
@@ -20871,11 +21168,11 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
||||||
VRRa_v2(ovl), VRRa_m3(ovl),
|
VRRa_v2(ovl), VRRa_m3(ovl),
|
||||||
VRRa_m4(ovl), VRRa_m5(ovl),
|
VRRa_m4(ovl), VRRa_m5(ovl),
|
||||||
VRRa_rxb(ovl)); goto ok;
|
VRRa_rxb(ovl)); goto ok;
|
||||||
@ -1769,7 +1789,7 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
VRRa_v2(ovl), VRRa_m3(ovl),
|
VRRa_v2(ovl), VRRa_m3(ovl),
|
||||||
VRRa_m4(ovl), VRRa_m5(ovl),
|
VRRa_m4(ovl), VRRa_m5(ovl),
|
||||||
VRRa_rxb(ovl)); goto ok;
|
VRRa_rxb(ovl)); goto ok;
|
||||||
@@ -20956,8 +21252,16 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
@@ -20956,8 +21253,16 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
|
||||||
VRRa_m3(ovl), VRRa_m4(ovl),
|
VRRa_m3(ovl), VRRa_m4(ovl),
|
||||||
VRRa_m5(ovl),
|
VRRa_m5(ovl),
|
||||||
VRRa_rxb(ovl)); goto ok;
|
VRRa_rxb(ovl)); goto ok;
|
||||||
@ -1789,9 +1809,18 @@ index c27a8d3fe..d4f428c24 100644
|
|||||||
VRR_v2(ovl), VRR_r3(ovl),
|
VRR_v2(ovl), VRR_r3(ovl),
|
||||||
VRR_m4(ovl), VRR_rxb(ovl)); goto ok;
|
VRR_m4(ovl), VRR_rxb(ovl)); goto ok;
|
||||||
diff --git a/VEX/priv/host_s390_defs.c b/VEX/priv/host_s390_defs.c
|
diff --git a/VEX/priv/host_s390_defs.c b/VEX/priv/host_s390_defs.c
|
||||||
index 3b6121fec..a59db6578 100644
|
index 3b6121fec..8762975b2 100644
|
||||||
--- a/VEX/priv/host_s390_defs.c
|
--- a/VEX/priv/host_s390_defs.c
|
||||||
+++ b/VEX/priv/host_s390_defs.c
|
+++ b/VEX/priv/host_s390_defs.c
|
||||||
|
@@ -8,7 +8,7 @@
|
||||||
|
This file is part of Valgrind, a dynamic binary instrumentation
|
||||||
|
framework.
|
||||||
|
|
||||||
|
- Copyright IBM Corp. 2010-2017
|
||||||
|
+ Copyright IBM Corp. 2010-2020
|
||||||
|
Copyright (C) 2012-2017 Florian Krohm (britzel@acm.org)
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
@@ -684,6 +684,8 @@ s390_insn* genMove_S390(HReg from, HReg to, Bool mode64)
|
@@ -684,6 +684,8 @@ s390_insn* genMove_S390(HReg from, HReg to, Bool mode64)
|
||||||
switch (hregClass(from)) {
|
switch (hregClass(from)) {
|
||||||
case HRcInt64:
|
case HRcInt64:
|
||||||
@ -1845,9 +1874,18 @@ index 3b6121fec..a59db6578 100644
|
|||||||
UChar v2 = hregNumber(insn->variant.unop.src.variant.reg);
|
UChar v2 = hregNumber(insn->variant.unop.src.variant.reg);
|
||||||
return s390_emit_VFSQ(buf, v1, v2, s390_getM_from_size(insn->size), 0);
|
return s390_emit_VFSQ(buf, v1, v2, s390_getM_from_size(insn->size), 0);
|
||||||
diff --git a/VEX/priv/host_s390_defs.h b/VEX/priv/host_s390_defs.h
|
diff --git a/VEX/priv/host_s390_defs.h b/VEX/priv/host_s390_defs.h
|
||||||
index 3f6473e10..46d8e1f12 100644
|
index 3f6473e10..9b69f4d38 100644
|
||||||
--- a/VEX/priv/host_s390_defs.h
|
--- a/VEX/priv/host_s390_defs.h
|
||||||
+++ b/VEX/priv/host_s390_defs.h
|
+++ b/VEX/priv/host_s390_defs.h
|
||||||
|
@@ -8,7 +8,7 @@
|
||||||
|
This file is part of Valgrind, a dynamic binary instrumentation
|
||||||
|
framework.
|
||||||
|
|
||||||
|
- Copyright IBM Corp. 2010-2017
|
||||||
|
+ Copyright IBM Corp. 2010-2020
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License as
|
||||||
@@ -205,6 +205,7 @@ typedef enum {
|
@@ -205,6 +205,7 @@ typedef enum {
|
||||||
S390_VEC_COUNT_ONES,
|
S390_VEC_COUNT_ONES,
|
||||||
S390_VEC_FLOAT_NEG,
|
S390_VEC_FLOAT_NEG,
|
||||||
@ -1866,9 +1904,18 @@ index 3f6473e10..46d8e1f12 100644
|
|||||||
|
|
||||||
/*---------------------------------------------------------------*/
|
/*---------------------------------------------------------------*/
|
||||||
diff --git a/VEX/priv/host_s390_isel.c b/VEX/priv/host_s390_isel.c
|
diff --git a/VEX/priv/host_s390_isel.c b/VEX/priv/host_s390_isel.c
|
||||||
index 134f3eb6f..58f70ff4e 100644
|
index 134f3eb6f..2f9854038 100644
|
||||||
--- a/VEX/priv/host_s390_isel.c
|
--- a/VEX/priv/host_s390_isel.c
|
||||||
+++ b/VEX/priv/host_s390_isel.c
|
+++ b/VEX/priv/host_s390_isel.c
|
||||||
|
@@ -8,7 +8,7 @@
|
||||||
|
This file is part of Valgrind, a dynamic binary instrumentation
|
||||||
|
framework.
|
||||||
|
|
||||||
|
- Copyright IBM Corp. 2010-2017
|
||||||
|
+ Copyright IBM Corp. 2010-2020
|
||||||
|
Copyright (C) 2012-2017 Florian Krohm (britzel@acm.org)
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
@@ -2362,9 +2362,10 @@ s390_isel_float128_expr_wrk(HReg *dst_hi, HReg *dst_lo, ISelEnv *env,
|
@@ -2362,9 +2362,10 @@ s390_isel_float128_expr_wrk(HReg *dst_hi, HReg *dst_lo, ISelEnv *env,
|
||||||
case Iop_NegF128:
|
case Iop_NegF128:
|
||||||
if (left->tag == Iex_Unop &&
|
if (left->tag == Iex_Unop &&
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
Summary: Tool for finding memory management bugs in programs
|
Summary: Tool for finding memory management bugs in programs
|
||||||
Name: %{?scl_prefix}valgrind
|
Name: %{?scl_prefix}valgrind
|
||||||
Version: 3.16.1
|
Version: 3.16.1
|
||||||
Release: 7%{?dist}
|
Release: 8%{?dist}
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: http://www.valgrind.org/
|
URL: http://www.valgrind.org/
|
||||||
@ -491,6 +491,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Dec 3 2020 Mark Wielaard <mjw@fedoraproject.org> - 3.16.1-8
|
||||||
|
- Update valgrind-3.16.1-s390x-z14-vector.patch
|
||||||
|
|
||||||
* Thu Dec 3 2020 Mark Wielaard <mjw@fedoraproject.org> - 3.16.1-7
|
* Thu Dec 3 2020 Mark Wielaard <mjw@fedoraproject.org> - 3.16.1-7
|
||||||
- Add valgrind-3.16.1-pthread-intercept.patch
|
- Add valgrind-3.16.1-pthread-intercept.patch
|
||||||
- Add valgrind-3.16.1-s390_emit_load_mem.patch
|
- Add valgrind-3.16.1-s390_emit_load_mem.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user