Lines Matching defs:sign
801 /* break V128 to 4xI32's, then sign-extend to I64's */
909 /* else: sign dep saturate: 1->0x80000000, 0->0x7FFFFFFF */
1051 /* Sign extend imm16 -> IRExpr* */
1060 /* Sign extend imm32 -> IRExpr* */
2153 i.e sHi != sign extension of sLo */
2284 i.e sHi != sign extension of sLo */
2337 i.e sHi != sign extension of sLo */
2442 If it is <= 31, behave like SRAWI; else XER.CA is the sign
2461 /* yes -- get sign bit of argL */
2561 If it is <= 31, behave like SRAWI; else XER.CA is the sign
2581 /* yes -- get sign bit of argL */
2615 If it is <= 63, behave like SRADI; else XER.CA is the sign
2635 /* yes -- get sign bit of argL */
3678 /* rD[hi32] are undefined: setting them to sign of lo32
3737 /* rD[hi32] are undefined: setting them to sign of lo32
3759 /* rD[hi32] are undefined: setting them to sign of lo32
3778 /* rD[hi32] are undefined: setting them to sign of lo32
4343 case 0x3BA: // extsb (Extend Sign Byte, PPC32 p397
4356 case 0x39A: // extsh (Extend Sign Half Word, PPC32 p398)
4415 case 0x3DA: // extsw (Extend Sign Word, PPC64 p430)
6834 XER.CA = amt > 31 ? sign-of-rS : (computation as per srawi)
6932 XER.CA = amt > 63 ? sign-of-rS : (computation as per srawi)
9181 /* need to preserve sign of zero */
9183 (sign(frB)) ? -fabs((double)r_tmp64) : (double)r_tmp64 */
9393 case 0x008: // fcpsgn (Floating Copy Sign, ISA_V2.05 p126)
9402 /* get A's sign bit */
9410 /* mask off B's sign bit and or in A's sign bit */
9987 static IRExpr * Generate_neg_sign_mask( IRExpr * sign )
9990 unop( Iop_1Sto32, binop( Iop_CmpEQ32, sign, mkU32( 0xB ) ) ),
9991 unop( Iop_1Sto32, binop( Iop_CmpEQ32, sign, mkU32( 0xD ) ) )
9995 static IRExpr * Generate_pos_sign_mask( IRExpr * sign )
10000 binop( Iop_CmpEQ32, sign, mkU32( 0xA ) ) ),
10002 binop( Iop_CmpEQ32, sign, mkU32( 0xC ) ) ) ),
10005 binop( Iop_CmpEQ32, sign, mkU32( 0xE ) ) ),
10007 binop( Iop_CmpEQ32, sign, mkU32( 0xF ) ) ) ) );
11276 IRTemp sign = newTemp( Ity_I32 );
11650 /* Get the sign of the DFP number, ignore sign for QNaN */
11651 assign( sign,
11674 mkexpr( sign ),
11736 IRTemp sign = newTemp( Ity_I32 );
11739 /* Positive sign = 0xC, negative sign = 0xD */
11741 assign( sign,
11749 /* Positive sign = 0xF, negative sign = 0xD */
11752 /* Complement sign bit then OR into bit position 1 */
11760 assign( sign, binop( Iop_Or32, mkexpr( tmp32 ), mkU32( 0xD ) ) );
11766 /* Put sign in bottom 4 bits, move most significant 4-bits from
11779 mkexpr( sign ),
11849 IRTemp sign = newTemp( Ity_I32 );
11855 /* Signed BCD string, least significant 4 bits are sign bits
11856 * positive sign = 0xC, negative sign = 0xD
11877 /* Get the sign of the BCD string. */
11878 assign( sign,
11883 assign( neg_sign_mask, Generate_neg_sign_mask( mkexpr( sign ) ) );
11884 assign( pos_sign_mask, Generate_pos_sign_mask( mkexpr( sign ) ) );
11889 /* Check for invalid sign and BCD digit. Don't check the bottom
11890 * four bits of bcd_l as that is the sign value.
11905 /* Generate the result assuming the sign value was valid. */
11919 * sign value and the validity of the BCD digits.
12025 IRTemp sign = newTemp( Ity_I32 );
12028 /* Positive sign = 0xC, negative sign = 0xD */
12029 assign( sign,
12039 /* Positive sign = 0xF, negative sign = 0xD.
12040 * Need to complement sign bit then OR into bit position 1.
12049 assign( sign, binop( Iop_Or32, mkexpr( tmp32 ), mkU32( 0xD ) ) );
12077 mkexpr( sign ) ) ) );
12180 IRTemp sign = newTemp( Ity_I32 );
12185 /* The sign of the BCD string is stored in lower 4 bits */
12186 assign( sign,
12190 assign( neg_sign_mask, Generate_neg_sign_mask( mkexpr( sign ) ) );
12191 assign( pos_sign_mask, Generate_pos_sign_mask( mkexpr( sign ) ) );
12196 /* Generate the value assuminig the sign and BCD digits are vaild */
12207 /* Remove bottom four sign bits */
12239 /* Check for invalid sign and invalid BCD digit. Don't check the
12240 * bottom four bits of frBI64_lo as that is the sign value.
12268 /* Calculate the value of the result assuming sign and BCD digits
12295 * If there was an invalid BCD digit or invalid sign value, replace
14130 /* need to preserve sign of zero */
14132 (sign(frB)) ? -fabs((double)intermediateResult) : (double)intermediateResult */
14382 case 0x3c0: // xvcpsgndp (VSX Vector Copy Sign Double-Precision)
14797 * FIXED 7/1/2012: carll fnmadd and fnmsubs fixed to not negate sign
15249 /* Scalar copy sign double-precision */
16500 /* vA: V128_8Ux16 -> 4 x V128_32Ux4, sign-extended */
16540 /* vA: V128_8Sx16 -> 4 x V128_32Sx4, sign-extended */
16545 /* break V128 to 4xI32's, sign-extending to I64's */
16578 /* vA: V128_16Sx8 -> 2 x V128_32Sx4, sign-extended */
16581 /* break V128 to 4xI32's, sign-extending to I64's */
16604 /* break V128 to 4xI32's, sign-extending to I64's */
16622 /* break V128 to 4xI32's, sign-extending to I64's */
16987 case 0x25: { // vmsummbm (Multiply Sum Mixed-Sign B Modulo, AV p201)
16997 /* sign-extend vA, zero-extend vB, for mixed-sign multiply
17071 /* break V128 to 4xI32's, sign-extending to I64's */