From: Christian Borntraeger Date: Thu, 7 Apr 2016 18:54:53 +0000 (+0000) Subject: Bug 361226 VEX part: s390x: risbgn (EC59) not implemented X-Git-Tag: svn/VALGRIND_3_12_0^2~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0c9b29a48d9f4ed7a23c7c8f7786fec01ed1f15b;p=thirdparty%2Fvalgrind.git Bug 361226 VEX part: s390x: risbgn (EC59) not implemented git-svn-id: svn://svn.valgrind.org/vex/trunk@3216 --- diff --git a/VEX/priv/guest_s390_toIR.c b/VEX/priv/guest_s390_toIR.c index 5e6acd4412..a587d2e939 100644 --- a/VEX/priv/guest_s390_toIR.c +++ b/VEX/priv/guest_s390_toIR.c @@ -7578,7 +7578,8 @@ s390_irgen_ROSBG(UChar r1, UChar r2, UChar i3, UChar i4, UChar i5) } static const HChar * -s390_irgen_RISBG(UChar r1, UChar r2, UChar i3, UChar i4, UChar i5) +s390_irgen_RISBGx(UChar r1, UChar r2, UChar i3, UChar i4, UChar i5, + Bool set_cc) { UChar from; UChar to; @@ -7612,9 +7613,24 @@ s390_irgen_RISBG(UChar r1, UChar r2, UChar i3, UChar i4, UChar i5) put_gpr_dw0(r1, binop(Iop_And64, mkexpr(op2), mkU64(mask))); } assign(result, get_gpr_dw0(r1)); - s390_cc_thunk_putS(S390_CC_OP_LOAD_AND_TEST, result); + if (set_cc) { + s390_cc_thunk_putS(S390_CC_OP_LOAD_AND_TEST, result); + return "risbg"; + } + + return "risbgn"; +} + +static const HChar * +s390_irgen_RISBG(UChar r1, UChar r2, UChar i3, UChar i4, UChar i5) +{ + return s390_irgen_RISBGx(r1, r2, i3, i4, i5, True); +} - return "risbg"; +static const HChar * +s390_irgen_RISBGN(UChar r1, UChar r2, UChar i3, UChar i4, UChar i5) +{ + return s390_irgen_RISBGx(r1, r2, i3, i4, i5, False); } static const HChar * @@ -16059,7 +16075,13 @@ s390_decode_6byte_and_irgen(const UChar *bytes) ovl.fmt.RIE_RRUUU.i4, ovl.fmt.RIE_RRUUU.i5); goto ok; - case 0xec0000000059ULL: /* RISBGN */ goto unimplemented; + case 0xec0000000059ULL: s390_format_RIE_RRUUU(s390_irgen_RISBGN, + ovl.fmt.RIE_RRUUU.r1, + ovl.fmt.RIE_RRUUU.r2, + ovl.fmt.RIE_RRUUU.i3, + ovl.fmt.RIE_RRUUU.i4, + ovl.fmt.RIE_RRUUU.i5); + goto ok; case 0xec000000005dULL: /* RISBHG */ goto unimplemented; case 0xec0000000064ULL: s390_format_RIE_RRPU(s390_irgen_CGRJ, ovl.fmt.RIE_RRPU.r1,