Lines Matching refs:IRAtom
326 typedef IRExpr IRAtom;
330 static Bool isOriginalAtom ( MCEnv* mce, IRAtom* a1 )
343 static Bool isShadowAtom ( MCEnv* mce, IRAtom* a1 )
356 static Bool sameKindedAtoms ( IRAtom* a1, IRAtom* a2 )
456 static IRAtom* assignNew ( HChar cat, MCEnv* mce, IRType ty, IRExpr* e )
483 IRAtom* z64 = IRExpr_Const(IRConst_U64(0));
498 static IRAtom* mkDifD8 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
504 static IRAtom* mkDifD16 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
510 static IRAtom* mkDifD32 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
516 static IRAtom* mkDifD64 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
522 static IRAtom* mkDifDV128 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
528 static IRAtom* mkDifDV256 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
536 static IRAtom* mkUifU8 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
542 static IRAtom* mkUifU16 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
548 static IRAtom* mkUifU32 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
554 static IRAtom* mkUifU64 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
560 static IRAtom* mkUifU128 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
561 IRAtom *tmp1, *tmp2, *tmp3, *tmp4, *tmp5, *tmp6;
574 static IRAtom* mkUifUV128 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
580 static IRAtom* mkUifUV256 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
586 static IRAtom* mkUifU ( MCEnv* mce, IRType vty, IRAtom* a1, IRAtom* a2 ) {
603 static IRAtom* mkLeft8 ( MCEnv* mce, IRAtom* a1 ) {
608 static IRAtom* mkLeft16 ( MCEnv* mce, IRAtom* a1 ) {
613 static IRAtom* mkLeft32 ( MCEnv* mce, IRAtom* a1 ) {
618 static IRAtom* mkLeft64 ( MCEnv* mce, IRAtom* a1 ) {
628 static IRAtom* mkImproveAND8 ( MCEnv* mce, IRAtom* data, IRAtom* vbits )
636 static IRAtom* mkImproveAND16 ( MCEnv* mce, IRAtom* data, IRAtom* vbits )
644 static IRAtom* mkImproveAND32 ( MCEnv* mce, IRAtom* data, IRAtom* vbits )
652 static IRAtom* mkImproveAND64 ( MCEnv* mce, IRAtom* data, IRAtom* vbits )
660 static IRAtom* mkImproveANDV128 ( MCEnv* mce, IRAtom* data, IRAtom* vbits )
668 static IRAtom* mkImproveANDV256 ( MCEnv* mce, IRAtom* data, IRAtom* vbits )
679 static IRAtom* mkImproveOR8 ( MCEnv* mce, IRAtom* data, IRAtom* vbits )
691 static IRAtom* mkImproveOR16 ( MCEnv* mce, IRAtom* data, IRAtom* vbits )
703 static IRAtom* mkImproveOR32 ( MCEnv* mce, IRAtom* data, IRAtom* vbits )
715 static IRAtom* mkImproveOR64 ( MCEnv* mce, IRAtom* data, IRAtom* vbits )
727 static IRAtom* mkImproveORV128 ( MCEnv* mce, IRAtom* data, IRAtom* vbits )
739 static IRAtom* mkImproveORV256 ( MCEnv* mce, IRAtom* data, IRAtom* vbits )
757 static IRAtom* mkPCastTo( MCEnv* mce, IRType dst_ty, IRAtom* vbits )
760 IRAtom* tmp1;
775 IRAtom* tmp = assignNew('V', mce, Ity_I32, unop(Iop_CmpwNEZ32, vbits));
781 IRAtom* tmp = assignNew('V', mce, Ity_I32, unop(Iop_CmpwNEZ32, vbits));
788 IRAtom* tmp = assignNew('V', mce, Ity_I32, unop(Iop_CmpwNEZ32, vbits));
797 IRAtom* tmp = assignNew('V', mce, Ity_I64, unop(Iop_CmpwNEZ64, vbits));
807 IRAtom* hi64hi64
813 IRAtom* lohi64
816 IRAtom* lo64
821 IRAtom* res
848 IRAtom* tmp2 = assignNew('V', mce, Ity_I64, unop(Iop_128HIto64, vbits));
849 IRAtom* tmp3 = assignNew('V', mce, Ity_I64, unop(Iop_128to64, vbits));
850 IRAtom* tmp4 = assignNew('V', mce, Ity_I64, binop(Iop_Or64, tmp2, tmp3));
897 static IRAtom* mkPCastXXtoXXlsb ( MCEnv* mce, IRAtom* varg, IRType ty )
901 IRAtom* varg128 = varg;
903 IRAtom* pcdTo64 = mkPCastTo(mce, Ity_I64, varg128);
906 IRAtom* d63pc
909 IRAtom* d64
912 IRAtom* res
919 IRAtom* pcd = mkPCastTo(mce, Ity_I64, varg);
921 IRAtom* res
972 static IRAtom* expensiveCmpEQorNE ( MCEnv* mce,
974 IRAtom* vxx, IRAtom* vyy,
975 IRAtom* xx, IRAtom* yy )
977 IRAtom *naive, *vec, *improvement_term;
978 IRAtom *improved, *final_cast, *top;
1077 static Bool isZeroU32 ( IRAtom* e )
1085 static Bool isZeroU64 ( IRAtom* e )
1093 static IRAtom* doCmpORD ( MCEnv* mce,
1095 IRAtom* xxhash, IRAtom* yyhash,
1096 IRAtom* xx, IRAtom* yy )
1107 Bool (*isZero)(IRAtom*) = m64 ? isZeroU64 : isZeroU32;
1109 IRAtom* threeLeft1 = NULL;
1110 IRAtom* sevenLeft1 = NULL;
1169 static IRAtom* schemeE ( MCEnv* mce, IRExpr* e ); /* fwds */
1211 static void complainIfUndefined ( MCEnv* mce, IRAtom* atom, IRExpr *guard )
1213 IRAtom* vatom;
1217 IRAtom* cond;
1218 IRAtom* origin;
1350 IRAtom *g1 = assignNew('V', mce, Ity_I32, unop(Iop_1Uto32, di->guard));
1351 IRAtom *g2 = assignNew('V', mce, Ity_I32, unop(Iop_1Uto32, guard));
1352 IRAtom *e = assignNew('V', mce, Ity_I32, binop(Iop_And32, g1, g2));
1379 IRAtom* new_tmpV
1432 IRAtom* atom, IRAtom* vatom, IRExpr *guard )
1463 IRAtom *cond, *iffalse;
1481 IRAtom* vatom;
1485 IRAtom* ix = puti->ix;
1487 IRAtom* atom = puti->data;
1545 IRRegArray* descr, IRAtom* ix, Int bias )
1576 IRAtom* mkLazy2 ( MCEnv* mce, IRType finalVty, IRAtom* va1, IRAtom* va2 )
1578 IRAtom* at;
1624 IRAtom* mkLazy3 ( MCEnv* mce, IRType finalVty,
1625 IRAtom* va1, IRAtom* va2, IRAtom* va3 )
1627 IRAtom* at;
1664 IRAtom* at1 = mkPCastTo(mce, Ity_I64, va1);
1665 IRAtom* at2 = mkPCastTo(mce, Ity_I64, va2);
1722 IRAtom* at1 = mkPCastTo(mce, Ity_I64, va1);
1723 IRAtom* at2 = mkPCastTo(mce, Ity_I64, va2);
1724 IRAtom* at3 = mkPCastTo(mce, Ity_I64, va3);
1758 IRAtom* mkLazy4 ( MCEnv* mce, IRType finalVty,
1759 IRAtom* va1, IRAtom* va2, IRAtom* va3, IRAtom* va4 )
1761 IRAtom* at;
1830 IRAtom* mkLazyN ( MCEnv* mce,
1831 IRAtom** exprvec, IRType finalVtype, IRCallee* cee )
1834 IRAtom* here;
1835 IRAtom* curr;
1882 IRAtom* expensiveAddSub ( MCEnv* mce,
1885 IRAtom* qaa, IRAtom* qbb,
1886 IRAtom* aa, IRAtom* bb )
1888 IRAtom *a_min, *b_min, *a_max, *b_max;
1969 IRAtom* expensiveCountTrailingZeroes ( MCEnv* mce, IROp czop,
1970 IRAtom* atom, IRAtom* vatom )
1975 IRAtom *improver, *improved;
2045 static IRAtom* scalarShift ( MCEnv* mce,
2048 IRAtom* qaa, IRAtom* qbb,
2049 IRAtom* aa, IRAtom* bb )
2074 static IRAtom* mkPCast8x16 ( MCEnv* mce, IRAtom* at )
2079 static IRAtom* mkPCast16x8 ( MCEnv* mce, IRAtom* at )
2084 static IRAtom* mkPCast32x4 ( MCEnv* mce, IRAtom* at )
2089 static IRAtom* mkPCast64x2 ( MCEnv* mce, IRAtom* at )
2094 static IRAtom* mkPCast64x4 ( MCEnv* mce, IRAtom* at )
2099 static IRAtom* mkPCast32x8 ( MCEnv* mce, IRAtom* at )
2104 static IRAtom* mkPCast32x2 ( MCEnv* mce, IRAtom* at )
2109 static IRAtom* mkPCast16x16 ( MCEnv* mce, IRAtom* at )
2114 static IRAtom* mkPCast16x4 ( MCEnv* mce, IRAtom* at )
2119 static IRAtom* mkPCast8x32 ( MCEnv* mce, IRAtom* at )
2124 static IRAtom* mkPCast8x8 ( MCEnv* mce, IRAtom* at )
2129 static IRAtom* mkPCast16x2 ( MCEnv* mce, IRAtom* at )
2134 static IRAtom* mkPCast8x4 ( MCEnv* mce, IRAtom* at )
2177 IRAtom* binary32Fx4 ( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY )
2179 IRAtom* at;
2188 IRAtom* unary32Fx4 ( MCEnv* mce, IRAtom* vatomX )
2190 IRAtom* at;
2197 IRAtom* binary32F0x4 ( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY )
2199 IRAtom* at;
2210 IRAtom* unary32F0x4 ( MCEnv* mce, IRAtom* vatomX )
2212 IRAtom* at;
2223 IRAtom* binary64Fx2 ( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY )
2225 IRAtom* at;
2234 IRAtom* unary64Fx2 ( MCEnv* mce, IRAtom* vatomX )
2236 IRAtom* at;
2243 IRAtom* binary64F0x2 ( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY )
2245 IRAtom* at;
2256 IRAtom* unary64F0x2 ( MCEnv* mce, IRAtom* vatomX )
2258 IRAtom* at;
2269 IRAtom* binary32Fx2 ( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY )
2271 IRAtom* at;
2280 IRAtom* unary32Fx2 ( MCEnv* mce, IRAtom* vatomX )
2282 IRAtom* at;
2291 IRAtom* binary64Fx4 ( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY )
2293 IRAtom* at;
2302 IRAtom* unary64Fx4 ( MCEnv* mce, IRAtom* vatomX )
2304 IRAtom* at;
2313 IRAtom* binary32Fx8 ( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY )
2315 IRAtom* at;
2324 IRAtom* unary32Fx8 ( MCEnv* mce, IRAtom* vatomX )
2326 IRAtom* at;
2335 IRAtom* binary64Fx2_w_rm ( MCEnv* mce, IRAtom* vRM,
2336 IRAtom* vatomX, IRAtom* vatomY )
2344 IRAtom* t1 = binary64Fx2(mce, vatomX, vatomY);
2346 IRAtom* t2 = mkPCastTo(mce, Ity_V128, vRM);
2355 IRAtom* binary32Fx4_w_rm ( MCEnv* mce, IRAtom* vRM,
2356 IRAtom* vatomX, IRAtom* vatomY )
2358 IRAtom* t1 = binary32Fx4(mce, vatomX, vatomY);
2360 IRAtom* t2 = mkPCastTo(mce, Ity_V128, vRM);
2369 IRAtom* binary64Fx4_w_rm ( MCEnv* mce, IRAtom* vRM,
2370 IRAtom* vatomX, IRAtom* vatomY )
2372 IRAtom* t1 = binary64Fx4(mce, vatomX, vatomY);
2374 IRAtom* t2 = mkPCastTo(mce, Ity_V256, vRM);
2383 IRAtom* binary32Fx8_w_rm ( MCEnv* mce, IRAtom* vRM,
2384 IRAtom* vatomX, IRAtom* vatomY )
2386 IRAtom* t1 = binary32Fx8(mce, vatomX, vatomY);
2388 IRAtom* t2 = mkPCastTo(mce, Ity_V256, vRM);
2397 IRAtom* unary64Fx2_w_rm ( MCEnv* mce, IRAtom* vRM, IRAtom* vatomX )
2401 IRAtom* t1 = unary64Fx2(mce, vatomX);
2403 IRAtom* t2 = mkPCastTo(mce, Ity_V128, vRM);
2412 IRAtom* unary32Fx4_w_rm ( MCEnv* mce, IRAtom* vRM, IRAtom* vatomX )
2415 IRAtom* t1 = unary32Fx4(mce, vatomX);
2417 IRAtom* t2 = mkPCastTo(mce, Ity_V128, vRM);
2514 IRAtom* vectorNarrowBinV128 ( MCEnv* mce, IROp narrow_op,
2515 IRAtom* vatom1, IRAtom* vatom2)
2517 IRAtom *at1, *at2, *at3;
2518 IRAtom* (*pcast)( MCEnv*, IRAtom* );
2540 IRAtom* vectorNarrowBin64 ( MCEnv* mce, IROp narrow_op,
2541 IRAtom* vatom1, IRAtom* vatom2)
2543 IRAtom *at1, *at2, *at3;
2544 IRAtom* (*pcast)( MCEnv*, IRAtom* );
2561 IRAtom* vectorNarrowUnV128 ( MCEnv* mce, IROp narrow_op,
2562 IRAtom* vatom1)
2564 IRAtom *at1, *at2;
2565 IRAtom* (*pcast)( MCEnv*, IRAtom* );
2599 IRAtom* vectorWidenI64 ( MCEnv* mce, IROp longen_op,
2600 IRAtom* vatom1)
2602 IRAtom *at1, *at2;
2603 IRAtom* (*pcast)( MCEnv*, IRAtom* );
2627 IRAtom* binary8Ix32 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2629 IRAtom* at;
2636 IRAtom* binary16Ix16 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2638 IRAtom* at;
2645 IRAtom* binary32Ix8 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2647 IRAtom* at;
2654 IRAtom* binary64Ix4 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2656 IRAtom* at;
2665 IRAtom* binary8Ix16 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2667 IRAtom* at;
2674 IRAtom* binary16Ix8 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2676 IRAtom* at;
2683 IRAtom* binary32Ix4 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2685 IRAtom* at;
2692 IRAtom* binary64Ix2 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2694 IRAtom* at;
2703 IRAtom* binary8Ix8 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2705 IRAtom* at;
2712 IRAtom* binary16Ix4 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2714 IRAtom* at;
2721 IRAtom* binary32Ix2 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2723 IRAtom* at;
2730 IRAtom* binary64Ix1 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2732 IRAtom* at;
2741 IRAtom* binary8Ix4 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2743 IRAtom* at;
2750 IRAtom* binary16Ix2 ( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 )
2752 IRAtom* at;
2764 IRAtom* expr2vbits_Qop ( MCEnv* mce,
2766 IRAtom* atom1, IRAtom* atom2,
2767 IRAtom* atom3, IRAtom* atom4 )
2769 IRAtom* vatom1 = expr2vbits( mce, atom1 );
2770 IRAtom* vatom2 = expr2vbits( mce, atom2 );
2771 IRAtom* vatom3 = expr2vbits( mce, atom3 );
2772 IRAtom* vatom4 = expr2vbits( mce, atom4 );
2812 IRAtom* expr2vbits_Triop ( MCEnv* mce,
2814 IRAtom* atom1, IRAtom* atom2, IRAtom* atom3 )
2816 IRAtom* vatom1 = expr2vbits( mce, atom1 );
2817 IRAtom* vatom2 = expr2vbits( mce, atom2 );
2818 IRAtom* vatom3 = expr2vbits( mce, atom3 );
2930 IRAtom* expr2vbits_Binop ( MCEnv* mce,
2932 IRAtom* atom1, IRAtom* atom2 )
2935 IRAtom* (*uifu) (MCEnv*, IRAtom*, IRAtom*);
2936 IRAtom* (*difd) (MCEnv*, IRAtom*, IRAtom*);
2937 IRAtom* (*improve) (MCEnv*, IRAtom*, IRAtom*);
2939 IRAtom* vatom1 = expr2vbits( mce, atom1 );
2940 IRAtom* vatom2 = expr2vbits( mce, atom2 );
3537 IRAtom* (*fnPessim) (MCEnv*, IRAtom*) = NULL;
3572 IRAtom* shV
3575 IRAtom* shVnarrowed
3578 IRAtom* qV = mkPCastXXtoXXlsb(mce, shVnarrowed, Ity_I64);
3681 IRAtom* at;
3691 IRAtom* at;
3701 IRAtom* at;
3922 IRAtom* vLo64 = mkLeft64(mce, mkUifU64(mce, vatom1,vatom2));
3923 IRAtom* vHi64 = mkPCastTo(mce, Ity_I64, vLo64);
3930 IRAtom* vLo32 = mkLeft32(mce, mkUifU32(mce, vatom1,vatom2));
3931 IRAtom* vHi32 = mkPCastTo(mce, Ity_I32, vLo32);
3938 IRAtom* vLo16 = mkLeft16(mce, mkUifU16(mce, vatom1,vatom2));
3939 IRAtom* vHi16 = mkPCastTo(mce, Ity_I16, vLo16);
3946 IRAtom* vLo8 = mkLeft8(mce, mkUifU8(mce, vatom1,vatom2));
3947 IRAtom* vHi8 = mkPCastTo(mce, Ity_I8, vLo8);
4234 IRAtom* (*binaryNIxM)(MCEnv*,IRAtom*,IRAtom*) = NULL;
4265 IRAtom* shV = binaryNIxM(mce, vatom1, vatom2);
4267 IRAtom* qV = mkPCastXXtoXXlsb(mce, shV, Ity_V128);
4281 IRExpr* expr2vbits_Unop ( MCEnv* mce, IROp op, IRAtom* atom )
4288 IRAtom* vatom = expr2vbits( mce, atom );
4624 IRAtom* expr2vbits_Load_WRK ( MCEnv* mce,
4626 IRAtom* addr, UInt bias, IRAtom* guard )
4699 IRAtom* addrAct;
4704 IRAtom* eBias;
4758 IRAtom* expr2vbits_Load ( MCEnv* mce,
4760 IRAtom* addr, UInt bias,
4761 IRAtom* guard )
4791 IRAtom* expr2vbits_Load_guarded_General ( MCEnv* mce,
4793 IRAtom* addr, UInt bias,
4794 IRAtom* guard,
4795 IROp vwiden, IRAtom* valt )
4814 IRAtom* iftrue1
4825 IRAtom* iftrue2
4831 IRAtom* iffalse
4835 IRAtom* cond
4849 IRAtom* expr2vbits_Load_guarded_Simple ( MCEnv* mce,
4851 IRAtom* addr, UInt bias,
4852 IRAtom *guard )
4861 IRAtom* expr2vbits_ITE ( MCEnv* mce,
4862 IRAtom* cond, IRAtom* iftrue, IRAtom* iffalse )
4864 IRAtom *vbitsC, *vbits0, *vbits1;
4962 IRExpr* zwidenToHostWord ( MCEnv* mce, IRAtom* vatom )
5020 IRAtom* addr, UInt bias,
5021 IRAtom* data, IRAtom* vdata,
5022 IRAtom* guard )
5127 IRAtom *addrQ0, *addrQ1, *addrQ2, *addrQ3;
5128 IRAtom *vdataQ0, *vdataQ1, *vdataQ2, *vdataQ3;
5129 IRAtom *eBiasQ0, *eBiasQ1, *eBiasQ2, *eBiasQ3;
5194 IRAtom *addrLo64, *addrHi64;
5195 IRAtom *vdataLo64, *vdataHi64;
5196 IRAtom *eBiasLo64, *eBiasHi64;
5232 IRAtom *addrAct;
5239 IRAtom* eBias = tyAddr==Ity_I32 ? mkU32(bias) : mkU64(bias);
5287 IRAtom *src, *here, *curr;
5310 IRAtom* arg = d->args[i];
5352 IRAtom *cond, *iffalse, *iftrue;
5536 static IRAtom* gen_load_b ( MCEnv* mce, Int szB,
5537 IRAtom* baseaddr, Int offset );
5538 static IRAtom* gen_maxU32 ( MCEnv* mce, IRAtom* b1, IRAtom* b2 );
5540 IRAtom* baseaddr, Int offset, IRAtom* dataB,
5541 IRAtom* guard );
5572 IRAtom* orig, IRAtom* shadow )
5733 IRAtom *vdataLo = NULL, *bdataLo = NULL;
5734 IRAtom *vexpdLo = NULL, *bexpdLo = NULL;
5735 IRAtom *voldLo = NULL, *boldLo = NULL;
5736 IRAtom *expd_eq_old = NULL;
5823 IRAtom *vdataHi = NULL, *bdataHi = NULL;
5824 IRAtom *vdataLo = NULL, *bdataLo = NULL;
5825 IRAtom *vexpdHi = NULL, *bexpdHi = NULL;
5826 IRAtom *vexpdLo = NULL, *bexpdLo = NULL;
5827 IRAtom *voldHi = NULL, *boldHi = NULL;
5828 IRAtom *voldLo = NULL, *boldLo = NULL;
5829 IRAtom *xHi = NULL, *xLo = NULL, *xHL = NULL;
5830 IRAtom *expd_eq_old = NULL, *zero = NULL;
6090 IRAtom* vbits_alt
6092 IRAtom* vbits_final
6107 static Bool isBogusAtom ( IRAtom* at )
6193 IRAtom* atom = d->args[i];
6733 static IRAtom* gen_maxU32 ( MCEnv* mce, IRAtom* b1, IRAtom* b2 )
6747 static IRAtom* gen_guarded_load_b ( MCEnv* mce, Int szB,
6748 IRAtom* baseaddr,
6757 IRAtom* ea = baseaddr;
6759 IRAtom* off = aTy == Ity_I32 ? mkU32( offset )
6820 static IRAtom* gen_load_b ( MCEnv* mce, Int szB, IRAtom* baseaddr,
6835 IRAtom* expr2ori_Load_guarded_General ( MCEnv* mce,
6837 IRAtom* addr, UInt bias,
6838 IRAtom* guard, IRAtom* balt )
6844 IRAtom* iftrue
6850 IRAtom* iffalse
6854 IRAtom* cond
6864 IRAtom* baseaddr, Int offset, IRAtom* dataB,
6865 IRAtom* guard )
6872 IRAtom* ea = baseaddr;
6878 IRAtom* off = aTy == Ity_I32 ? mkU32( offset )
6917 static IRAtom* narrowTo32 ( MCEnv* mce, IRAtom* e ) {
6926 static IRAtom* zWidenFrom32 ( MCEnv* mce, IRType dstTy, IRAtom* e ) {
6935 static IRAtom* schemeE ( MCEnv* mce, IRExpr* e )
6943 IRAtom *t1, *t2, *t3, *t4;
6971 IRAtom* here;
6973 IRAtom* curr = mkU32(0);
7003 IRAtom* b1 = schemeE( mce, e->Iex.ITE.cond );
7004 IRAtom* b3 = schemeE( mce, e->Iex.ITE.iftrue );
7005 IRAtom* b2 = schemeE( mce, e->Iex.ITE.iffalse );
7009 IRAtom* b1 = schemeE( mce, e->Iex.Qop.details->arg1 );
7010 IRAtom* b2 = schemeE( mce, e->Iex.Qop.details->arg2 );
7011 IRAtom* b3 = schemeE( mce, e->Iex.Qop.details->arg3 );
7012 IRAtom* b4 = schemeE( mce, e->Iex.Qop.details->arg4 );
7017 IRAtom* b1 = schemeE( mce, e->Iex.Triop.details->arg1 );
7018 IRAtom* b2 = schemeE( mce, e->Iex.Triop.details->arg2 );
7019 IRAtom* b3 = schemeE( mce, e->Iex.Triop.details->arg3 );
7033 IRAtom* b1 = schemeE( mce, e->Iex.Binop.arg1 );
7034 IRAtom* b2 = schemeE( mce, e->Iex.Binop.arg2 );
7042 IRAtom* b1 = schemeE( mce, e->Iex.Unop.arg );
7075 IRAtom *here, *curr;
7086 IRAtom* arg = d->args[i];
7129 IRAtom *cond, *iffalse, *iftrue;
7228 IRAtom *cond, *iffalse;
7284 IRAtom* dataB;
7328 IRAtom* ori_alt
7330 IRAtom* ori_final
7356 IRAtom *t1, *t2, *t3, *t4;