Home | History | Annotate | Download | only in priv

Lines Matching defs:assign

450 static void assign ( IRTemp dst, IRExpr* e )
543 assign( ones8x16, unop(Iop_Dup8x16, mkU8(0x1)) );
544 assign( *vOdd, binop(Iop_MullEven8Ux16, mkexpr(ones8x16), vIn) );
545 assign( *vEvn, binop(Iop_MullEven8Ux16, mkexpr(ones8x16),
561 assign( ones8x16, unop(Iop_Dup8x16, mkU8(0x1)) );
562 assign( *vOdd, binop(Iop_MullEven8Sx16, mkexpr(ones8x16), vIn) );
563 assign( *vEvn, binop(Iop_MullEven8Sx16, mkexpr(ones8x16),
579 assign( ones16x8, unop(Iop_Dup16x8, mkU16(0x1)) );
580 assign( *vOdd, binop(Iop_MullEven16Ux8, mkexpr(ones16x8), vIn) );
581 assign( *vEvn, binop(Iop_MullEven16Ux8, mkexpr(ones16x8),
597 assign( ones16x8, unop(Iop_Dup16x8, mkU16(0x1)) );
598 assign( *vOdd, binop(Iop_MullEven16Sx8, mkexpr(ones16x8), vIn) );
599 assign( *vEvn, binop(Iop_MullEven16Sx8, mkexpr(ones16x8),
622 assign( hi64, unop(Iop_V128HIto64, t128) );
623 assign( lo64, unop(Iop_V128to64, t128) );
624 assign( *t3, unop(Iop_32Sto64, unop(Iop_64HIto32, mkexpr(hi64))) );
625 assign( *t2, unop(Iop_32Sto64, unop(Iop_64to32, mkexpr(hi64))) );
626 assign( *t1, unop(Iop_32Sto64, unop(Iop_64HIto32, mkexpr(lo64))) );
627 assign( *t0, unop(Iop_32Sto64, unop(Iop_64to32, mkexpr(lo64))) );
649 assign( hi64, unop(Iop_V128HIto64, t128) );
650 assign( lo64, unop(Iop_V128to64, t128) );
651 assign( *t3, unop(Iop_32Uto64, unop(Iop_64HIto32, mkexpr(hi64))) );
652 assign( *t2, unop(Iop_32Uto64, unop(Iop_64to32, mkexpr(hi64))) );
653 assign( *t1, unop(Iop_32Uto64, unop(Iop_64HIto32, mkexpr(lo64))) );
654 assign( *t0, unop(Iop_32Uto64, unop(Iop_64to32, mkexpr(lo64))) );
665 assign( hi32, unop(Iop_64HIto32, t64));
666 assign( lo32, unop(Iop_64to32, t64));
688 assign( hi32, unop(Iop_64HIto32, t64));
689 assign( lo32, unop(Iop_64to32, t64));
1419 assign( v0, result );
1420 assign( v1, binop(Iop_ShrV128, result, mkU8(32)) );
1421 assign( v2, binop(Iop_ShrV128, result, mkU8(64)) );
1422 assign( v3, binop(Iop_ShrV128, result, mkU8(96)) );
1424 assign( rZeros, unop(Iop_1Uto8,
1434 assign( rOnes, unop(Iop_1Uto8,
1591 assign( t64, binop(Iop_MullS32, argL, argR) );
2148 assign( val, IRExpr_Get( OFFB_FPROUND, Ity_I32 ) );
2150 assign( val, mkU32(0x0) );
2377 assign( rA, getIReg(rA_addr) );
2378 assign( rB, getIReg(rB_addr) ); // XO-Form: rD, rA, rB
2384 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
2393 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
2407 assign( rD, mkSzExtendS16(ty, uimm16) );
2410 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
2419 assign( rD, mkSzExtendS32(ty, uimm16 << 16) );
2422 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
2430 assign( rD, unop(Iop_128to64,
2434 assign( rD, unop(Iop_64to32,
2442 assign( rD, binop( mkSzOp(ty, Iop_Sub8),
2459 assign( rD, binop( mkSzOp(ty, Iop_Add8),
2471 assign( rD, binop( mkSzOp(ty, Iop_Add8),
2488 assign( old_xer_ca, mkWidenFrom32(ty, getXER_CA32(), False) );
2489 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
2514 assign( old_xer_ca, mkWidenFrom32(ty, getXER_CA32(), False) );
2516 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
2540 assign( old_xer_ca, mkWidenFrom32(ty, getXER_CA32(), False) );
2541 assign( rD, binop( mkSzOp(ty, Iop_Add8),
2567 assign( rD, mk64lo32Uto64( binop(Iop_DivS64, dividend,
2574 assign( rD, binop(Iop_DivS32, mkexpr(rA), mkexpr(rB)) );
2598 assign( rD, mk64lo32Uto64( binop(Iop_DivU64, dividend,
2605 assign( rD, binop(Iop_DivU32, mkexpr(rA), mkexpr(rB)) );
2624 assign( rD, binop(Iop_Sar64,
2630 assign( rD, unop(Iop_64HIto32,
2646 assign( rD, binop(Iop_Sar64,
2652 assign( rD, unop(Iop_64HIto32,
2667 assign( rD, binop(Iop_MullS32, a, b) );
2674 assign( rD, unop(Iop_64to32,
2693 assign( rD, binop( mkSzOp(ty, Iop_Add8),
2707 assign( rD, binop( mkSzOp(ty, Iop_Sub8),
2720 assign( rD, binop( mkSzOp(ty, Iop_Sub8),
2737 assign( old_xer_ca, mkWidenFrom32(ty, getXER_CA32(), False) );
2738 assign( rD, binop( mkSzOp(ty, Iop_Add8),
2764 assign( old_xer_ca, mkWidenFrom32(ty, getXER_CA32(), False) );
2766 assign( rD, binop( mkSzOp(ty, Iop_Add8),
2791 assign( old_xer_ca, mkWidenFrom32(ty, getXER_CA32(), False) );
2792 assign( rD, binop( mkSzOp(ty, Iop_Add8),
2814 assign( rD, unop(Iop_128HIto64,
2827 assign( rD, unop(Iop_128HIto64,
2836 assign( rD, binop(Iop_Mul64, mkexpr(rA), mkexpr(rB)) );
2847 assign( rD, binop(Iop_DivS64, mkexpr(rA), mkexpr(rB)) );
2862 assign( rD, binop(Iop_DivU64, mkexpr(rA), mkexpr(rB)) );
3032 assign( rS, getIReg(rS_addr) );
3033 assign( rB, getIReg(rB_addr) );
3038 assign( rA, binop( mkSzOp(ty, Iop_And8), mkexpr(rS),
3046 assign( rA, binop( mkSzOp(ty, Iop_And8), mkexpr(rS),
3054 assign( rA, binop( mkSzOp(ty, Iop_Or8), mkexpr(rS),
3060 assign( rA, binop( mkSzOp(ty, Iop_Or8), mkexpr(rS),
3066 assign( rA, binop( mkSzOp(ty, Iop_Xor8), mkexpr(rS),
3072 assign( rA, binop( mkSzOp(ty, Iop_Xor8), mkexpr(rS),
3084 assign(rA, binop( mkSzOp(ty, Iop_And8),
3091 assign(rA, binop( mkSzOp(ty, Iop_And8), mkexpr(rS),
3110 assign(rA, mkWidenFrom32(ty,
3116 // TODO: alternatively: assign(rA, verbose_Clz32(rS));
3123 assign( rA, unop( mkSzOp(ty, Iop_Not8),
3136 assign( rA, unop(Iop_8Sto64, unop(Iop_64to8, mkexpr(rS))) );
3138 assign( rA, unop(Iop_8Sto32, unop(Iop_32to8, mkexpr(rS))) );
3149 assign( rA, unop(Iop_16Sto64,
3152 assign( rA, unop(Iop_16Sto32,
3159 assign( rA, unop( mkSzOp(ty, Iop_Not8),
3167 assign( rA, unop( mkSzOp(ty, Iop_Not8),
3175 assign( rA, mkexpr(rS) );
3179 assign( rA, binop( mkSzOp(ty, Iop_Or8),
3187 assign( rA, binop( mkSzOp(ty, Iop_Or8), mkexpr(rS),
3194 assign( rA, binop( mkSzOp(ty, Iop_Xor8),
3206 assign(rA, unop(Iop_32Sto64, unop(Iop_64to32, mkexpr(rS))));
3218 assign(rA, IRExpr_Mux0X( unop(Iop_1Uto8, irx),
3221 // TODO: alternatively: assign(rA, verbose_Clz64(rS));
3228 assign( rA, unop( Iop_V128to64,
3234 assign( rA, unop( Iop_V128to32,
3245 assign( frB, getFReg(rB_addr)); // always F64
3247 assign( rA, unop( Iop_ReinterpF64asI64, mkexpr(frB)) );
3249 assign( rA, unop( Iop_64to32, unop( Iop_ReinterpF64asI64, mkexpr(frB))) );
3260 assign( frA, unop( Iop_ReinterpI64asF64, mkexpr(rB)) );
3262 assign( frA, unop( Iop_ReinterpI64asF64, unop( Iop_32Uto64, mkexpr(rB))) );
3328 assign( rS, getIReg(rS_addr) );
3333 assign( iTot1, unop(Iop_1Uto32, unop(to_bit, mkexpr(rS))) );
3334 assign( rS1, binop(shr_op, mkexpr(rS), mkU8(8)) );
3335 assign( iTot2, binop(Iop_Add32,
3338 assign( rS2, binop(shr_op, mkexpr(rS1), mkU8(8)) );
3339 assign( iTot3, binop(Iop_Add32,
3342 assign( rS3, binop(shr_op, mkexpr(rS2), mkU8(8)) );
3343 assign( iTot4, binop(Iop_Add32,
3347 assign( rS4, binop(shr_op, mkexpr(rS3), mkU8(8)) );
3348 assign( iTot5, binop(Iop_Add32,
3351 assign( rS5, binop(shr_op, mkexpr(rS4), mkU8(8)) );
3352 assign( iTot6, binop(Iop_Add32,
3355 assign( rS6, binop(shr_op, mkexpr(rS5), mkU8(8)) );
3356 assign( iTot7, binop(Iop_Add32,
3359 assign( rS7, binop(shr_op, mkexpr(rS6), mkU8(8)) );
3360 assign( iTot8, binop(Iop_Add32,
3363 assign( rA, unop(Iop_32Uto64,
3366 assign( rA, mkexpr(iTot4) );
3370 assign( iTot1, unop(Iop_1Uto32, unop(to_bit, mkexpr(rS))) );
3371 assign( rS1, binop(shr_op, mkexpr(rS), mkU8(8)) );
3372 assign( iTot2, binop(Iop_Add32,
3375 assign( rS2, binop(shr_op, mkexpr(rS1), mkU8(8)) );
3376 assign( iTot3, binop(Iop_Add32,
3379 assign( rS3, binop(shr_op, mkexpr(rS2), mkU8(8)) );
3380 assign( iTot4, binop(Iop_Add32,
3383 assign( iLo, unop(Iop_1Uto32, unop(Iop_32to1, mkexpr(iTot4) )) );
3386 assign( rS4, binop(shr_op, mkexpr(rS3), mkU8(8)) );
3387 assign( iTot5, unop(Iop_1Uto32, unop(to_bit, mkexpr(rS4))) );
3388 assign( rS5, binop(shr_op, mkexpr(rS4), mkU8(8)) );
3389 assign( iTot6, binop(Iop_Add32,
3392 assign( rS6, binop(shr_op, mkexpr(rS5), mkU8(8)) );
3393 assign( iTot7, binop(Iop_Add32,
3396 assign( rS7, binop(shr_op, mkexpr(rS6), mkU8(8)));
3397 assign( iTot8, binop(Iop_Add32,
3400 assign( iHi, binop(Iop_And32, mkU32(1), mkexpr(iTot8)) ),
3401 assign( rA, binop(Iop_32HLto64, mkexpr(iHi), mkexpr(iLo)) );
3403 assign( rA, binop(Iop_Or32, mkU32(0), mkexpr(iLo)) );
3443 assign( rS, getIReg(rS_addr) );
3444 assign( rB, getIReg(rB_addr) );
3457 assign( rot, binop(Iop_Or64, r,
3459 assign( rA,
3468 assign( rA,
3491 assign( rTmp, r );
3493 assign( rot, binop(Iop_Or64, mkexpr(rTmp),
3495 assign( rA, binop(Iop_And64, mkexpr(rot), mkU64(mask64)) );
3503 assign( rA, binop(Iop_Shl32, mkexpr(rS), mkU8(sh_imm)) );
3510 assign( rA, binop(Iop_Shr32, mkexpr(rS), mkU8(MaskBeg)) );
3518 assign( rA, binop(Iop_And32,
3540 assign(rot, binop(Iop_Or64, r, binop(Iop_Shl64, r, mkU8(32))));
3541 assign( rA, binop(Iop_And64, mkexpr(rot), mkU64(mask64)) );
3546 assign( rA, binop(Iop_And32,
3572 assign( rA, binop(Iop_And64, r, mkU64(mask64)) );
3578 assign( rA, binop(Iop_And64, r, mkU64(mask64)) );
3588 assign( rA, binop(Iop_And64, r, mkU64(mask64)) );
3595 assign(rA, r & m);
3605 assign( rA, binop(Iop_Shr64, mkexpr(rS), mkU8(msk_imm)) );
3611 assign( rA, binop(Iop_And64, r, mkU64(mask64)) );
3622 assign( rA, binop(Iop_Shl64, mkexpr(rS), mkU8(sh_imm)) );
3628 assign( rA, binop(Iop_And64, r, mkU64(mask64)) );
3638 assign( rA_orig, getIReg(rA_addr) );
3639 assign( rA, binop(Iop_Or64,
3688 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
3694 assign( EA, ea_rAor0_simm( rA_addr, simm16 ) );
3944 assign( rB, getIReg(rB_addr) );
3945 assign( rS, getIReg(rS_addr) );
3949 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
3955 assign( EA, ea_rAor0_simm( rA_addr, simm16 ) );
4130 assign( EA, ea_rAor0_simm( rA_addr, simm16 ) );
4284 assign( t_EA, ea_rAor0(rA_addr) );
4295 assign( t_nbytes, mkU32(NumBytes==0 ? 32 : NumBytes) );
4312 assign( t_EA, ea_rAor0_idxd(rA_addr,rB_addr) );
4313 assign( t_nbytes, unop( Iop_8Uto32, getXER_BC() ) );
4320 assign( t_EA, ea_rAor0(rA_addr) );
4330 assign( t_nbytes, mkU32(NumBytes==0 ? 32 : NumBytes) );
4339 assign( t_EA, ea_rAor0_idxd(rA_addr,rB_addr) );
4340 assign( t_nbytes, unop( Iop_8Uto32, getXER_BC() ) );
4369 assign( ok, mkU32(0xFFFFFFFF) );
4372 assign( ok, unop( Iop_1Sto32,
4377 assign( ok, unop( Iop_1Sto32,
4399 assign( res, mkU32(1) );
4404 assign( cr_bi, getCRbit_anywhere( BI, &where ) );
4408 assign( res, mkexpr(cr_bi) );
4413 assign( res, binop(Iop_Xor32, mkexpr(cr_bi),
4481 assign(t_tgt, mode64 ? mkU64(tgt) : mkU32(tgt) );
4511 assign( ctr_ok, branch_ctr_ok( BO ) );
4512 assign( cond_ok, branch_cond_ok( BO, BI ) );
4513 assign( do_branch,
4551 assign( cond_ok, branch_cond_ok( BO, BI ) );
4555 assign( lr_old, addr_align( getGST( PPC_GST_CTR ), 4 ));
4590 assign( ctr_ok, branch_ctr_ok( BO ) );
4591 assign( cond_ok, branch_cond_ok( BO, BI ) );
4592 assign( do_branch,
4595 assign( lr_old, addr_align( getGST( PPC_GST_LR ), 4 ));
4667 assign( crbA, getCRbit(crbA_addr) );
4671 assign( crbB, getCRbit(crbB_addr) );
4676 assign( crbD, binop(Iop_And32, mkexpr(crbA), mkexpr(crbB)) );
4680 assign( crbD, binop(Iop_And32,
4686 assign( crbD, unop(Iop_Not32,
4691 assign( crbD, unop(Iop_Not32,
4696 assign( crbD, unop(Iop_Not32,
4701 assign( crbD, binop(Iop_Or32, mkexpr(crbA), mkexpr(crbB)) );
4705 assign( crbD, binop(Iop_Or32,
4711 assign( crbD, binop(Iop_Xor32, mkexpr(crbA), mkexpr(crbB)) );
4783 assign( argL, argL0 );
4784 assign( argR, argR0 );
4984 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
5049 assign( rS, mkNarrowTo32(ty, getIReg(rS_addr)) );
5142 assign( rS, getIReg(rS_addr) );
5199 assign( rS, getIReg(rS_addr) );
5200 assign( rB, getIReg(rB_addr) );
5201 assign( rS_lo32, mkNarrowTo32(ty, mkexpr(rS)) );
5202 assign( rB_lo32, mkNarrowTo32(ty, mkexpr(rB)) );
5226 assign( rA, mkWidenFrom32(ty, e_tmp, /* Signed */False) );
5239 assign( sh_amt, binop(Iop_And32, mkU32(0x3F),
5241 assign( outofrange,
5251 assign( rA, mkWidenFrom32(ty, e_tmp, /* Signed */True) );
5266 assign( rA, binop(Iop_Sar64,
5271 assign( rA, binop(Iop_Sar32, mkexpr(rS_lo32),
5304 assign( rA, mkWidenFrom32(ty, e_tmp, /* Signed */False) );
5318 assign( rA,
5339 assign( sh_amt, binop(Iop_And64, mkU64(0x7F), mkexpr(rB)) );
5340 assign( outofrange,
5344 assign( rA,
5363 assign( rA, binop(Iop_Sar64, getIReg(rS_addr), mkU8(sh_imm)) );
5381 assign( rA,
5469 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
5475 assign( w1, unop(Iop_16Uto32, loadBE(Ity_I16, mkexpr(EA))) );
5476 assign( w2, gen_byterev16(w1) );
5483 assign( w1, loadBE(Ity_I32, mkexpr(EA)) );
5484 assign( w2, gen_byterev32(w1) );
5491 assign( w1, mkNarrowTo32(ty, getIReg(rS_addr)) );
5497 assign( w1, mkNarrowTo32(ty, getIReg(rS_addr)) );
5536 assign( rS, getIReg(rS_addr) );
5856 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
5860 assign( addr, binop( Iop_And64,
5870 assign( addr, binop( Iop_And32,
5889 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
5892 assign( addr, binop( mkSzOp(ty, Iop_And8),
5935 assign( rm_PPC32, getGST_masked( PPC_GST_FPSCR, MASK_FPSCR_RN ) );
5972 assign( rA, getIReg(rA_addr) );
5973 assign( rB, getIReg(rB_addr) );
5982 assign( EA, ea_rAor0_simm(rA_addr, simm16) );
5991 assign( EA, ea_rA_simm(rA_addr, simm16) );
5999 assign( EA, ea_rAor0_simm(rA_addr, simm16) );
6007 assign( EA, ea_rA_simm(rA_addr, simm16) );
6021 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
6030 assign( EA, ea_rA_idxd(rA_addr, rB_addr) );
6038 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
6046 assign( EA, ea_rA_idxd(rA_addr, rB_addr) );
6053 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
6054 assign( iLo, loadBE(Ity_I32, mkexpr(EA)) );
6055 assign( iHi, binop(Iop_Sub32,
6098 assign( frS, getFReg(frS_addr) );
6099 assign( rA, getIReg(rA_addr) );
6100 assign( rB, getIReg(rB_addr) );
6111 assign( EA, ea_rAor0_simm(rA_addr, simm16) );
6123 assign( EA, ea_rA_simm(rA_addr, simm16) );
6132 assign( EA, ea_rAor0_simm(rA_addr, simm16) );
6140 assign( EA, ea_rA_simm(rA_addr, simm16) );
6153 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
6163 assign( EA, ea_rA_idxd(rA_addr, rB_addr) );
6172 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
6180 assign( EA, ea_rA_idxd(rA_addr, rB_addr) );
6188 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
6239 assign( frA, getFReg(frA_addr));
6240 assign( frB, getFReg(frB_addr));
6241 assign( frC, getFReg(frC_addr));
6251 assign( frD, triop( Iop_DivF64r32,
6260 assign( frD, triop( Iop_SubF64r32,
6269 assign( frD, triop( Iop_AddF64r32,
6281 assign( frD, binop( Iop_SqrtF64, rm, mkexpr(frB) ));
6292 assign( frD, triop( Iop_DivF64r32,
6303 assign( frD, triop( Iop_MulF64r32,
6314 assign( frD, unop(Iop_Est5FRSqrt, mkexpr(frB)) );
6330 assign( frD, triop(Iop_DivF64, rm, mkexpr(frA), mkexpr(frB)) );
6338 assign( frD, triop(Iop_SubF64, rm, mkexpr(frA), mkexpr(frB)) );
6346 assign( frD, triop(Iop_AddF64, rm, mkexpr(frA), mkexpr(frB)) );
6355 assign( frD, binop(Iop_SqrtF64, rm, mkexpr(frB)) );
6368 assign( cc, binop(Iop_CmpF64, mkexpr(frA),
6370 assign( cc_b0, binop(Iop_And32, mkexpr(cc), mkU32(1)) );
6374 assign( frD,
6396 assign( frD, triop( Iop_DivF64,
6407 assign( frD, triop(Iop_MulF64, rm, mkexpr(frA), mkexpr(frC)) );
6416 assign( frD, unop(Iop_Est5FRSqrt, mkexpr(frB)) );
6482 assign( rmt, get_IR_roundingmode() );
6485 assign( frA, getFReg(frA_addr));
6486 assign( frB, getFReg(frB_addr));
6487 assign( frC, getFReg(frC_addr));
6503 assign( frD, qop( Iop_MSubF64r32, rm,
6510 assign( frD, qop( Iop_MAddF64r32, rm,
6517 assign( frD, unop( Iop_NegF64,
6525 assign( frD, unop( Iop_NegF64,
6541 assign( frD, qop( Iop_MSubF64, rm,
6548 assign( frD, qop( Iop_MAddF64, rm,
6555 assign( frD, unop( Iop_NegF64,
6563 assign( frD, unop( Iop_NegF64,
6621 assign( frA, getFReg(frA_addr));
6622 assign( frB, getFReg(frB_addr));
6624 assign( ccIR, binop(Iop_CmpF64, mkexpr(frA), mkexpr(frB)) );
6638 assign(
6730 assign( frB, getFReg(frB_addr));
6735 assign( frD, binop( Iop_RoundF64toF32, rm, mkexpr(frB) ));
6740 assign( r_tmp32,
6742 assign( frD, unop( Iop_ReinterpI64asF64,
6750 assign( r_tmp32,
6752 assign( frD, unop( Iop_ReinterpI64asF64,
6760 assign( r_tmp64,
6762 assign( frD, unop( Iop_ReinterpI64asF64, mkexpr(r_tmp64)) );
6769 assign( r_tmp64,
6771 assign( frD, unop( Iop_ReinterpI64asF64, mkexpr(r_tmp64)) );
6778 assign( r_tmp64, unop( Iop_ReinterpF64asI64, mkexpr(frB)) );
6779 assign( frD,
6787 assign( r_tmp64,
6792 assign( r_tmp64,
6797 assign( r_tmp64,
6802 assign( r_tmp64,
6812 assign(frD, IRExpr_Mux0X( unop(Iop_32to8,
6895 assign( EA_hi, ea_rAor0_idxd( rA_addr, rB_addr ) );
6899 assign( EA_hi, ea_rAor0_simm( rA_addr, simm16 ) );
6904 assign( EA_hi, ea_rAor0_simm( rA_addr, simm16 ) );
6912 assign( EA_lo, binop(Iop_Add64, mkexpr(EA_hi), mkU64(8)) );
6914 assign( EA_lo, binop(Iop_Add32, mkexpr(EA_hi), mkU32(8)) );
6916 assign( frT_hi, getFReg(frT_hi_addr) );
6917 assign( frT_lo, getFReg(frT_lo_addr) );
6956 assign( frB, getFReg(frB_addr));
6966 assign( frA, getFReg(frA_addr) );
6969 assign(signA, binop(Iop_And32,
6974 assign( itmpB, unop(Iop_ReinterpF64asI64, mkexpr(frB)) );
6977 assign(hiD, binop(Iop_Or32,
6985 assign( frD, unop(Iop_ReinterpI64asF64,
6994 assign( frD, unop( Iop_NegF64, mkexpr(frB) ));
6999 assign( frD, mkexpr(frB) );
7004 assign( frD, unop( Iop_NegF64, unop( Iop_AbsF64, mkexpr(frB) )));
7009 assign( frD, unop( Iop_AbsF64, mkexpr(frB) ));
7077 assign( tmp, binop(Iop_And32,
7157 assign( frB, getFReg(frB_addr));
7158 assign( rB_32, unop( Iop_64to32,
7262 assign( vB, getVReg(vB_addr));
7295 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
7296 assign( EA_align16, addr_align( mkexpr(EA), 16 ) );
7429 assign( vS, getVReg(vS_addr));
7430 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
7435 assign( eb, binop(Iop_And8, mkU8(0xF),
7438 assign( idx, binop(Iop_Shl8,
7448 assign( addr_aligned, addr_align(mkexpr(EA), 2) );
7449 assign( eb, binop(Iop_And8, mkU8(0xF),
7451 assign( idx, binop(Iop_Shl8,
7461 assign( addr_aligned, addr_align(mkexpr(EA), 4) );
7462 assign( eb, binop(Iop_And8, mkU8(0xF),
7464 assign( idx, binop(Iop_Shl8,
7518 assign( vA, getVReg(vA_addr));
7519 assign( vB, getVReg(vB_addr));
7813 assign( z3, binop(Iop_Add64, mkexpr(b3),
7817 assign( z2, binop(Iop_Add64, mkexpr(b2),
7821 assign( z1, binop(Iop_Add64, mkexpr(b1),
7825 assign( z0, binop(Iop_Add64, mkexpr(b0),
7853 assign( z3, binop(Iop_Add64, mkexpr(b3),
7857 assign( z2, binop(Iop_Add64, mkexpr(b2),
7861 assign( z1, binop(Iop_Add64, mkexpr(b1),
7865 assign( z0, binop(Iop_Add64, mkexpr(b0),
7887 assign( z3, binop(Iop_Add64, mkexpr(b3),
7889 assign( z2, binop(Iop_Add64, mkexpr(b2),
7891 assign( z1, binop(Iop_Add64, mkexpr(b1),
7893 assign( z0, binop(Iop_Add64, mkexpr(b0),
7909 assign( z2, binop(Iop_Add64, mkexpr(b2),
7911 assign( z0, binop(Iop_Add64, mkexpr(b0),
7927 assign( z0, binop(Iop_Add64, mkexpr(b0),
7958 assign( vA, getVReg(vA_addr));
7959 assign( vB, getVReg(vB_addr));
8017 assign( vA, getVReg(vA_addr));
8018 assign( vB, getVReg(vB_addr));
8029 assign( vD, binop(Iop_CmpEQ8x16, mkexpr(vA), mkexpr(vB)) );
8035 assign( vD, binop(Iop_CmpEQ16x8, mkexpr(vA), mkexpr(vB)) );
8041 assign( vD, binop(Iop_CmpEQ32x4, mkexpr(vA), mkexpr(vB)) );
8047 assign( vD, binop(Iop_CmpGT8Ux16, mkexpr(vA), mkexpr(vB)) );
8053 assign( vD, binop(Iop_CmpGT16Ux8, mkexpr(vA), mkexpr(vB)) );
8059 assign( vD, binop(Iop_CmpGT32Ux4, mkexpr(vA), mkexpr(vB)) );
8065 assign( vD, binop(Iop_CmpGT8Sx16, mkexpr(vA), mkexpr(vB)) );
8071 assign( vD, binop(Iop_CmpGT16Sx8, mkexpr(vA), mkexpr(vB)) );
8077 assign( vD, binop(Iop_CmpGT32Sx4, mkexpr(vA), mkexpr(vB)) );
8130 assign( vA, getVReg(vA_addr));
8131 assign( vB, getVReg(vB_addr));
8132 assign( vC, getVReg(vC_addr));
8133 assign( zeros, unop(Iop_Dup32x4, mkU32(0)) );
8146 assign(cSigns, binop(Iop_CmpGT16Sx8, mkexpr(zeros), mkexpr(vC)));
8147 assign(aLo, binop(Iop_InterleaveLO16x8, mkexpr(zeros), mkexpr(vA)));
8148 assign(bLo, binop(Iop_InterleaveLO16x8, mkexpr(zeros), mkexpr(vB)));
8149 assign(cLo, binop(Iop_InterleaveLO16x8, mkexpr(cSigns),mkexpr(vC)));
8150 assign(aHi, binop(Iop_InterleaveHI16x8, mkexpr(zeros), mkexpr(vA)));
8151 assign(bHi, binop(Iop_InterleaveHI16x8, mkexpr(zeros), mkexpr(vB)));
8152 assign(cHi, binop(Iop_InterleaveHI16x8, mkexpr(cSigns),mkexpr(vC)));
8154 assign( zLo, binop(Iop_Add32x4, mkexpr(cLo),
8160 assign( zHi, binop(Iop_Add32x4, mkexpr(cHi),
8175 assign(cSigns, binop(Iop_CmpGT16Sx8, mkexpr(zeros), mkexpr(vC)) );
8176 assign(aLo, binop(Iop_InterleaveLO16x8, mkexpr(zeros), mkexpr(vA)));
8177 assign(bLo, binop(Iop_InterleaveLO16x8, mkexpr(zeros), mkexpr(vB)));
8178 assign(cLo, binop(Iop_InterleaveLO16x8, mkexpr(cSigns),mkexpr(vC)));
8179 assign(aHi, binop(Iop_InterleaveHI16x8, mkexpr(zeros), mkexpr(vA)));
8180 assign(bHi, binop(Iop_InterleaveHI16x8, mkexpr(zeros), mkexpr(vB)));
8181 assign(cHi, binop(Iop_InterleaveHI16x8, mkexpr(cSigns),mkexpr(vC)));
8184 assign( zKonst, binop(Iop_ShlN32x4, unop(Iop_Dup32x4, mkU32(0x1)),
8187 assign( zLo, binop(Iop_Add32x4, mkexpr(cLo),
8194 assign( zHi, binop(Iop_Add32x4, mkexpr(cHi),
8207 assign(aLo, binop(Iop_InterleaveLO16x8, mkexpr(zeros), mkexpr(vA)));
8208 assign(bLo, binop(Iop_InterleaveLO16x8, mkexpr(zeros), mkexpr(vB)));
8209 assign(cLo, binop(Iop_InterleaveLO16x8, mkexpr(zeros), mkexpr(vC)));
8210 assign(aHi, binop(Iop_InterleaveHI16x8, mkexpr(zeros), mkexpr(vA)));
8211 assign(bHi, binop(Iop_InterleaveHI16x8, mkexpr(zeros), mkexpr(vB)));
8212 assign(cHi, binop(Iop_InterleaveHI16x8, mkexpr(zeros), mkexpr(vC)));
8213 assign(zLo, binop(Iop_Add32x4,
8216 assign(zHi, binop(Iop_Add32x4,
8232 assign( abEvn, MK_Iop_MullOdd8Ux16( mkexpr(vA), mkexpr(vB) ));
8233 assign( abOdd, binop(Iop_MullEven8Ux16, mkexpr(vA), mkexpr(vB)) );
8262 assign( abEE, MK_Iop_MullOdd16Sx8( mkexpr(aEvn), mkexpr(bEvn) ));
8263 assign( abEO, binop(Iop_MullEven16Sx8, mkexpr(aEvn), mkexpr(bEvn)) );
8264 assign( abOE, MK_Iop_MullOdd16Sx8( mkexpr(aOdd), mkexpr(bOdd) ));
8265 assign( abOO, binop(Iop_MullEven16Sx8, mkexpr(aOdd), mkexpr(bOdd)) );
8278 assign( abEvn, MK_Iop_MullOdd16Ux8( mkexpr(vA), mkexpr(vB) ));
8279 assign( abOdd, binop(Iop_MullEven16Ux8, mkexpr(vA), mkexpr(vB)) );
8289 assign( abEvn, MK_Iop_MullOdd16Ux8(mkexpr(vA), mkexpr(vB) ));
8290 assign( abOdd, binop(Iop_MullEven16Ux8, mkexpr(vA), mkexpr(vB)) );
8298 assign( z3, binop(Iop_Add64, mkexpr(c3),
8300 assign( z2, binop(Iop_Add64, mkexpr(c2),
8302 assign( z1, binop(Iop_Add64, mkexpr(c1),
8304 assign( z0, binop(Iop_Add64, mkexpr(c0),
8316 assign( abEvn, MK_Iop_MullOdd16Sx8( mkexpr(vA), mkexpr(vB) ));
8317 assign( abOdd, binop(Iop_MullEven16Sx8, mkexpr(vA), mkexpr(vB)) );
8327 assign( abEvn, MK_Iop_MullOdd16Sx8( mkexpr(vA), mkexpr(vB) ));
8328 assign( abOdd, binop(Iop_MullEven16Sx8, mkexpr(vA), mkexpr(vB)) );
8336 assign( z3, binop(Iop_Add64, mkexpr(c3),
8338 assign( z2, binop(Iop_Add64, mkexpr(c2),
8340 assign( z1, binop(Iop_Add64, mkexpr(c1),
8342 assign( z0, binop(Iop_Add64, mkexpr(c0),
8371 assign( vA, getVReg(vA_addr));
8372 assign( vB, getVReg(vB_addr));
8416 assign( sh, binop(Iop_And8, mkU8(0x7),
8426 assign( sh, binop(Iop_And8, mkU8(0x78),
8454 assign( sh, binop(Iop_And8, mkU8(0x7),
8479 assign( sh, binop(Iop_And8, mkU8(0x78),
8515 assign( vA, getVReg(vA_addr));
8516 assign( vB, getVReg(vB_addr));
8517 assign( vC, getVReg(vC_addr));
8544 assign( vC_andF,
8547 assign( a_perm,
8549 assign( b_perm,
8552 assign( mask, binop(Iop_SarN8x16,
8691 assign( vA, getVReg(vA_addr));
8692 assign( vB, getVReg(vB_addr));
8732 assign( vA_tmp, binop(Iop_AndV128, mkexpr(vA),
8736 assign( vB_tmp, binop(Iop_AndV128, mkexpr(vB),
8752 assign( vA_tmp, binop(Iop_AndV128, mkexpr(vA),
8756 assign( vB_tmp, binop(Iop_AndV128, mkexpr(vB),
8791 assign( a1, binop(Iop_ShlN16x8,
8794 assign( a2, binop(Iop_ShlN16x8,
8797 assign( a3, binop(Iop_ShrN16x8,
8800 assign( a_tmp, binop(Iop_OrV128, mkexpr(a1),
8803 assign( b1, binop(Iop_ShlN16x8,
8806 assign( b2, binop(Iop_ShlN16x8,
8809 assign( b3, binop(Iop_ShrN16x8,
8812 assign( b_tmp, binop(Iop_OrV128, mkexpr(b1),
8832 assign( zeros, unop(Iop_Dup32x4, mkU32(0)) );
8838 assign( signs, binop(Iop_CmpGT8Sx16, mkexpr(zeros), mkexpr(vB)) );
8845 assign( signs, binop(Iop_CmpGT16Sx8, mkexpr(zeros), mkexpr(vB)) );
8852 assign( signs, binop(Iop_CmpGT8Sx16, mkexpr(zeros), mkexpr(vB)) );
8859 assign( signs, binop(Iop_CmpGT16Sx8, mkexpr(zeros), mkexpr(vB)) );
8874 assign( z0, binop(Iop_ShlN16x8,
8877 assign( z1, binop(Iop_ShrN16x8,
8880 assign( z01, binop(Iop_InterleaveHI16x8, mkexpr(zeros),
8882 assign( z2, binop(Iop_ShrN16x8,
8887 assign( z3, binop(Iop_ShrN16x8,
8890 assign( z23, binop(Iop_InterleaveHI16x8, mkexpr(zeros),
8907 assign( z0, binop(Iop_ShlN16x8,
8910 assign( z1, binop(Iop_ShrN16x8,
8913 assign( z01, binop(Iop_InterleaveLO16x8, mkexpr(zeros),
8915 assign( z2, binop(Iop_ShrN16x8,
8920 assign( z3, binop(Iop_ShrN16x8,
8923 assign( z23, binop(Iop_InterleaveLO16x8, mkexpr(zeros),
8955 assign( vA, getVReg(vA_addr));
8956 assign( vB, getVReg(vB_addr));
8957 assign( vC, getVReg(vC_addr));
9066 assign( vA, getVReg(vA_addr));
9067 assign( vB, getVReg(vB_addr));
9078 assign( vD, binop(Iop_CmpEQ32Fx4, mkexpr(vA), mkexpr(vB)) );
9084 assign( vD, binop(Iop_CmpGE32Fx4, mkexpr(vA), mkexpr(vB)) );
9090 assign( vD, binop(Iop_CmpGT32Fx4, mkexpr(vA), mkexpr(vB)) );
9100 assign( zeros, unop(Iop_Dup32x4, mkU32(0)) );
9110 assign( gt, unop(Iop_NotV128,
9112 assign( lt, unop(Iop_NotV128,
9118 assign( vD, binop(Iop_ShlN32x4,
9159 assign( vB, getVReg(vB_addr));
9163 assign( vScale, unop(Iop_Dup32x4, mkU32( float_to_bits(scale) )) );
9165 assign( vInvScale,
10170 // assign(n1, mkexpr(arg));
10171 // assign(n2, binop(Iop_Or32, mkexpr(n1), binop(Iop_Shr32, mkexpr(n1), mkU8(1))));
10172 // assign(n3, binop(Iop_Or32, mkexpr(n2), binop(Iop_Shr32, mkexpr(n2), mkU8(2))));
10173 // assign(n4, binop(Iop_Or32, mkexpr(n3), binop(Iop_Shr32, mkexpr(n3), mkU8(4))));
10174 // assign(n5, binop(Iop_Or32, mkexpr(n4), binop(Iop_Shr32, mkexpr(n4), mkU8(8))));
10175 // assign(n6, binop(Iop_Or32, mkexpr(n5), binop(Iop_Shr32, mkexpr(n5), mkU8(16))));
10180 // assign(n7, unop(Iop_Not32, mkexpr(n6)));
10192 // assign(n8,
10198 // assign(n9,
10204 // assign(n10,
10210 // assign(n11,
10214 // assign(n12,