Lines Matching defs:XB
304 /* Extract XB (2nd source register) field, instr[1,15:11] */
8996 unop( Iop_1Sto32, binop( Iop_CmpEQ32, sign, mkU32( 0xB ) ) ),
11625 UChar XB = ifieldRegXB( theInstr );
11626 IRTemp xB, xB2;
11628 xB = xB2 = IRTemp_INVALID;
11639 xB = newTemp(Ity_F64);
11640 assign( xB,
11642 unop( Iop_V128HIto64, getVSReg( XB ) ) ) );
11647 xB = newTemp(Ity_F64);
11649 assign( xB,
11651 unop( Iop_V128HIto64, getVSReg( XB ) ) ) );
11654 unop( Iop_V128to64, getVSReg( XB ) ) ) );
11660 breakV128to4x32(getVSReg(XB), &b3, &b2, &b1, &b0);
11664 xB = newTemp(Ity_I64);
11665 assign( xB, unop( Iop_V128HIto64, getVSReg( XB ) ) );
11667 assign( xB2, unop( Iop_V128to64, getVSReg( XB ) ) );
11671 xB = newTemp(Ity_I64);
11672 assign( xB, unop( Iop_V128HIto64, getVSReg( XB ) ) );
11676 xB = newTemp(Ity_I32);
11677 assign( xB,
11678 unop( Iop_64HIto32, unop( Iop_V128HIto64, getVSReg( XB ) ) ) );
11697 DIP("xscvdpsxds v%u,v%u\n", (UInt)XT, (UInt)XB);
11701 mkexpr( xB ) ), mkU64( 0 ) ) );
11705 DIP("xscvdpsxws v%u,v%u\n", (UInt)XT, (UInt)XB);
11711 mkexpr( xB ) ) ),
11716 DIP("xscvdpuxds v%u,v%u\n", (UInt)XT, (UInt)XB);
11721 mkexpr( xB ) ),
11727 DIP("xscvsxddp v%u,v%u\n", (UInt)XT, (UInt)XB);
11731 mkexpr( xB ) ) ),
11737 DIP("xscvuxddp v%u,v%u\n", (UInt)XT, (UInt)XB);
11741 mkexpr( xB ) ) ),
11751 DIP("xvcvdpsxws v%u,v%u\n", (UInt)XT, (UInt)XB);
11752 assign(hiResult_32, binop(Iop_F64toI32S, rmZero, mkexpr(xB)));
11775 DIP("xvcvsp%sxws v%u,v%u\n", un_signed ? "u" : "s", (UInt)XT, (UInt)XB);
11778 assign(tempResult, unop(op, getVSReg(XB)));
11815 DIP("xscvdpsp v%u,v%u\n", (UInt)XT, (UInt)XB);
11823 mkexpr( xB ) ) ) ),
11829 DIP("xscvdpuxws v%u,v%u\n", (UInt)XT, (UInt)XB);
11836 mkexpr( xB ) ) ),
11840 DIP("xscvspdp v%u,v%u\n", (UInt)XT, (UInt)XB);
11845 unop( Iop_ReinterpI32asF32, mkexpr( xB ) ) ) ),
11850 DIP("xvcvdpsp v%u,v%u\n", (UInt)XT, (UInt)XB);
11858 mkexpr( xB ) ) ) ),
11871 DIP("xvcvdpuxds v%u,v%u\n", (UInt)XT, (UInt)XB);
11874 binop( Iop_F64toI64U, mkU32( Irrm_ZERO ), mkexpr( xB ) ),
11879 DIP("xvcvdpuxws v%u,v%u\n", (UInt)XT, (UInt)XB);
11885 mkexpr( xB ) ),
11894 DIP("xvcvspdp v%u,v%u\n", (UInt)XT, (UInt)XB);
11906 DIP("xvcvspsxds v%u,v%u\n", (UInt)XT, (UInt)XB);
11920 DIP("xvcvspuxds v%u,v%u\n", (UInt)XT, (UInt)XB);
11934 DIP("xvcvdpsxds v%u,v%u\n", (UInt)XT, (UInt)XB);
11937 binop( Iop_F64toI64S, mkU32( Irrm_ZERO ), mkexpr( xB ) ),
11942 DIP("xvcvsxddp v%u,v%u\n", (UInt)XT, (UInt)XB);
11948 mkexpr( xB ) ) ),
11956 DIP("xvcvuxddp v%u,v%u\n", (UInt)XT, (UInt)XB);
11962 mkexpr( xB ) ) ),
11971 DIP("xvcvsxddp v%u,v%u\n", (UInt)XT, (UInt)XB);
11981 mkexpr( xB ) ) ) ) ),
11995 DIP("xvcvuxddp v%u,v%u\n", (UInt)XT, (UInt)XB);
12005 mkexpr( xB ) ) ) ) ),
12019 DIP("xvcvsxwdp v%u,v%u\n", (UInt)XT, (UInt)XB);
12030 DIP("xvcvuxwdp v%u,v%u\n", (UInt)XT, (UInt)XB);
12041 DIP("xvcvsxwsp v%u,v%u\n", (UInt)XT, (UInt)XB);
12042 putVSReg( XT, unop( Iop_I32StoFx4, getVSReg( XB ) ) );
12045 DIP("xvcvuxwsp v%u,v%u\n", (UInt)XT, (UInt)XB);
12046 putVSReg( XT, unop( Iop_I32UtoFx4, getVSReg( XB ) ) );
12066 UChar XB = ifieldRegXB( theInstr );
12079 assign(frB, unop(Iop_ReinterpI64asF64, unop(Iop_V128HIto64, getVSReg( XB ))));
12081 assign(frB2, unop(Iop_ReinterpI64asF64, unop(Iop_V128to64, getVSReg( XB ))));
12114 DIP("xv%sdp v%d,v%d,v%d\n", oper_name, (UInt)XT, (UInt)XA, (UInt)XB);
12130 DIP("xvsqrtdp v%d,v%d\n", (UInt)XT, (UInt)XB);
12147 /* xvm{add|sub}mdp XT,XA,XB is element-wise equivalent to fm{add|sub} FRT,FRA,FRC,FRB with . . .
12150 * XB == FRB
12155 * XB == FRC
12194 (UInt)XT, (UInt)XA, (UInt)XB);
12230 DIP("xvtsqrtdp cr%d,v%d\n", (UInt)crfD, (UInt)XB);
12231 assign( frBHi_I64, unop(Iop_V128HIto64, getVSReg( XB )) );
12232 assign( frBLo_I64, unop(Iop_V128to64, getVSReg( XB )) );
12265 DIP("xvtdivdp cr%d,v%d,v%d\n", (UInt)crfD, (UInt)XA, (UInt)XB);
12268 assign( frBHi_I64, unop(Iop_V128HIto64, getVSReg( XB )) );
12269 assign( frBLo_I64, unop(Iop_V128to64, getVSReg( XB )) );
12309 UChar XB = ifieldRegXB( theInstr );
12328 DIP("xvaddsp v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
12329 putVSReg( XT, binop(Iop_Add32Fx4, getVSReg( XA ), getVSReg( XB )) );
12333 DIP("xvmulsp v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
12334 putVSReg( XT, binop(Iop_Mul32Fx4, getVSReg( XA ), getVSReg( XB )) );
12338 DIP("xvsubsp v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
12339 putVSReg( XT, binop(Iop_Sub32Fx4, getVSReg( XA ), getVSReg( XB )) );
12352 DIP("xvdivsp v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
12354 breakV128to4xF64( getVSReg( XB ), &b3, &b2, &b1, &b0 );
12381 DIP("xvsqrtsp v%d,v%d\n", (UInt)XT, (UInt)XB);
12382 breakV128to4xF64( getVSReg( XB ), &b3, &b2, &b1, &b0 );
12453 (UInt)XT, (UInt)XA, (UInt)XB);
12457 breakV128to4xF64( getVSReg( XB ), &b3, &b2, &b1, &b0 );
12513 DIP("xvtsqrtsp cr%d,v%d\n", (UInt)crfD, (UInt)XB);
12515 breakV128to4x32( getVSReg( XB ), &b3, &b2, &b1, &b0 );
12567 DIP("xvtdivsp cr%d,v%d,v%d\n", (UInt)crfD, (UInt)XA, (UInt)XB);
12570 breakV128to4x32( getVSReg( XB ), &b3, &b2, &b1, &b0 );
12906 UChar XB = ifieldRegXB( theInstr );
12925 assign(frB, unop(Iop_V128HIto64, getVSReg( XB )));
12926 assign(frB2, unop(Iop_V128to64, getVSReg( XB )));
12928 DIP("%s v%d,v%d\n", redp ? "xvredp" : "xvrsqrtedp", (UInt)XT, (UInt)XB);
12976 DIP("%s v%d,v%d\n", resp ? "xvresp" : "xvrsqrtesp", (UInt)XT, (UInt)XB);
12977 breakV128to4xF64( getVSReg( XB ), &b3, &b2, &b1, &b0 );
13043 DIP("%s v%d,v%d v%d\n", isMin ? "xvminsp" : "xvmaxsp", (UInt)XT, (UInt)XA, (UInt)XB);
13045 breakV128to4xF64( getVSReg( XB ), &b3, &b2, &b1, &b0 );
13091 assign(frB, unop(Iop_V128HIto64, getVSReg( XB )));
13093 assign(frB2, unop(Iop_V128to64, getVSReg( XB )));
13094 DIP("%s v%d,v%d v%d\n", isMin ? "xvmindp" : "xvmaxdp", (UInt)XT, (UInt)XA, (UInt)XB);
13107 assign(frB, unop(Iop_V128HIto64, getVSReg( XB )));
13109 assign(frB2, unop(Iop_V128to64, getVSReg( XB )));
13111 DIP("xvcpsgndp v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
13140 DIP("xvcpsgnsp v%d,v%d v%d\n",(UInt)XT, (UInt)XA, (UInt)XB);
13142 breakV128to4x64U( getVSReg( XB
13189 assign(frB, unop(Iop_ReinterpI64asF64, unop(Iop_V128HIto64, getVSReg( XB ))));
13190 assign(frB2, unop(Iop_ReinterpI64asF64, unop(Iop_V128to64, getVSReg(XB))));
13192 DIP("xv%sabsdp v%d,v%d\n", make_negative ? "n" : "", (UInt)XT, (UInt)XB);
13225 getVSReg( XB ),
13251 assign(frB, unop(Iop_ReinterpI64asF64, unop(Iop_V128HIto64, getVSReg( XB ))));
13252 assign(frB2, unop(Iop_ReinterpI64asF64, unop(Iop_V128to64, getVSReg(XB))));
13253 DIP("xvnegdp v%d,v%d\n", (UInt)XT, (UInt)XB);
13274 assign( frBHi_I64, unop( Iop_V128HIto64, getVSReg( XB ) ) );
13276 assign( frBLo_I64, unop( Iop_V128to64, getVSReg( XB ) ) );
13279 DIP("xvrdpi%s v%d,v%d\n", insn_suffix, (UInt)XT, (UInt)XB);
13318 DIP("xvrspi%s v%d,v%d\n", insn_suffix, (UInt)XT, (UInt)XB);
13319 putVSReg( XT, unop( op, getVSReg(XB) ) );
13331 breakV128to4xF64( getVSReg(XB), &b3_F64, &b2_F64, &b1_F64, &b0_F64);
13344 DIP("xvrspic v%d,v%d\n", (UInt)XT, (UInt)XB);
13375 UChar XB = ifieldRegXB( theInstr );
13386 assign(frB, unop(Iop_ReinterpI64asF64, unop(Iop_V128HIto64, getVSReg( XB ))));
13394 DIP("xsadddp v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
13402 DIP("xsdivdp v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
13413 DIP("xsmadd%sdp v%d,v%d,v%d\n", mdp ? "m" : "a", (UInt)XT, (UInt)XA, (UInt)XB);
13428 DIP("xsmsub%sdp v%d,v%d,v%d\n", mdp ? "m" : "a", (UInt)XT, (UInt)XA, (UInt)XB);
13452 DIP("xsnmadd%sdp v%d,v%d,v%d\n", mdp ? "m" : "a", (UInt)XT, (UInt)XA, (UInt)XB);
13470 XB);
13486 DIP("xsmuldp v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
13494 DIP("xssubdp v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
13503 DIP("xssqrtdp v%d,v%d\n", (UInt)XT, (UInt)XB);
13515 DIP("xstdivdp crf%d,v%d,v%d\n", crfD, (UInt)XA, (UInt)XB);
13528 DIP("xstsqrtdp v%d,v%d\n", (UInt)XT, (UInt)XB);
13529 assign( frB_I64, unop(Iop_V128HIto64, getVSReg( XB )) );
13563 UChar XB = ifieldRegXB ( theInstr );
13573 assign(frB, unop(Iop_ReinterpI64asF64, unop(Iop_V128HIto64, getVSReg( XB ))));
13579 crfD, (UInt)XA, (UInt)XB);
13686 UChar XB = ifieldRegXB ( theInstr );
13697 assign( vB, getVSReg( XB ) );
13703 (UInt)XT, (UInt)XA, (UInt)XB);
13711 (UInt)XT, (UInt)XA, (UInt)XB);
13719 (UInt)XT, (UInt)XA, (UInt)XB);
13729 (UInt)XT, (UInt)XA, (UInt)XB);
13743 (UInt)XT, (UInt)XA, (UInt)XB);
13757 (UInt)XT, (UInt)XA, (UInt)XB);
13782 UChar XB = ifieldRegXB ( theInstr );
13792 assign( vB, getVSReg( XB ) );
13802 /* Move abs val of dw 0 of VSX[XB] to dw 0 of VSX[XT]. */
13805 DIP("xsabsdp v%d,v%d\n", (UInt)XT, (UInt)XB);
13815 DIP("xscpsgndp v%d,v%d v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
13832 DIP("xsnabsdp v%d,v%d\n", (UInt)XT, (UInt)XB);
13844 DIP("xsnabsdp v%d,v%d\n", (UInt)XT, (UInt)XB);
13865 DIP("%s v%d,v%d v%d\n", isMin ? "xsmaxdp" : "xsmindp", (UInt)XT, (UInt)XA, (UInt)XB);
13886 DIP("xsrdpi%s v%d,v%d\n", insn_suffix, (UInt)XT, (UInt)XB);
13902 DIP("%s v%d,v%d\n", redp ? "xsredp" : "xsrsqrtedp", (UInt)XT, (UInt)XB);
13940 UChar XB = ifieldRegXB ( theInstr );
13950 assign( vB, getVSReg( XB ) );
13954 DIP("xxlxor v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
13958 DIP("xxlor v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
13962 DIP("xxlnor v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
13967 DIP("xxland v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
13971 DIP("xxlandc v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB);
14164 UChar XB = ifieldRegXB ( theInstr );
14175 assign( vB, getVSReg( XB ) );
14190 DIP("xxsldwi v%d,v%d,v%d,%d\n", (UInt)XT, (UInt)XA, (UInt)XB, (UInt)SHW);
14212 DIP("xxpermdi v%d,v%d,v%d,0x%x\n", (UInt)XT, (UInt)XA, (UInt)XB, (UInt)DM);
14240 DIP("xxmrg%cw v%d,v%d,v%d\n", type, (UInt)XT, (UInt)XA, (UInt)XB);
14249 DIP("xxsel v%d,v%d,v%d,v%d\n", (UInt)XT, (UInt)XA, (UInt)XB, (UInt)XC);
14260 DIP("xxspltw v%d,v%d,%d\n", (UInt)XT, (UInt)XB, UIM);