Lines Matching defs:EA
124 * address of the EA; in BE mode, stvx still stores word zero at the lowest
4892 IRTemp EA = newTemp(ty);
4897 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
4900 // lowest 4 bits of immediate before forming EA
4902 assign( EA, ea_rAor0_simm( rA_addr, simm16 ) );
4905 // lowest 2 bits of immediate before forming EA
4907 assign( EA, ea_rAor0_simm( rA_addr, simm16 ) );
4910 assign( EA, ea_rAor0_simm( rA_addr, simm16 ) );
4917 val = load(Ity_I8, mkexpr(EA));
4927 val = load(Ity_I8, mkexpr(EA));
4929 putIReg( rA_addr, mkexpr(EA) );
4934 val = load(Ity_I16, mkexpr(EA));
4944 val = load(Ity_I16, mkexpr(EA));
4946 putIReg( rA_addr, mkexpr(EA) );
4951 val = load(Ity_I16, mkexpr(EA));
4961 val = load(Ity_I16, mkexpr(EA));
4963 putIReg( rA_addr, mkexpr(EA) );
4968 val = load(Ity_I32, mkexpr(EA));
4978 val = load(Ity_I32, mkexpr(EA));
4980 putIReg( rA_addr, mkexpr(EA) );
4997 val = load(Ity_I8, mkexpr(EA));
4999 putIReg( rA_addr, mkexpr(EA) );
5004 val = load(Ity_I8, mkexpr(EA));
5014 val = load(Ity_I16, mkexpr(EA));
5016 putIReg( rA_addr, mkexpr(EA) );
5021 val = load(Ity_I16, mkexpr(EA));
5031 val = load(Ity_I16, mkexpr(EA));
5033 putIReg( rA_addr, mkexpr(EA) );
5038 val = load(Ity_I16, mkexpr(EA));
5048 val = load(Ity_I32, mkexpr(EA));
5050 putIReg( rA_addr, mkexpr(EA) );
5055 val = load(Ity_I32, mkexpr(EA));
5067 putIReg( rD_addr, load(Ity_I64, mkexpr(EA)) );
5068 putIReg( rA_addr, mkexpr(EA) );
5073 putIReg( rD_addr, load(Ity_I64, mkexpr(EA)) );
5083 unop(Iop_32Sto64, load(Ity_I32, mkexpr(EA))) );
5084 putIReg( rA_addr, mkexpr(EA) );
5090 unop(Iop_32Sto64, load(Ity_I32, mkexpr(EA))) );
5099 /* DS Form - 64bit Loads. In each case EA will have been formed
5105 EA)) );
5114 putIReg( rD_addr, load(Ity_I64, mkexpr(EA)) );
5115 putIReg( rA_addr, mkexpr(EA) );
5121 unop(Iop_32Sto64, load(Ity_I32, mkexpr(EA))) );
5138 // trap if EA misaligned on 16 byte address
5141 assign(high, load(ty, mkexpr( EA ) ) );
5143 mkexpr( EA ),
5146 assign(low, load(ty, mkexpr( EA ) ) );
5148 mkexpr( EA ),
5153 mkexpr( EA ),
5156 mkexpr( EA ),
5159 gen_SIGBUS_if_misaligned( EA, 16 );
5192 IRTemp EA = newTemp(ty);
5199 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
5202 // lowest 2 bits of immediate before forming EA
5205 assign( EA, ea_rAor0_simm( rA_addr, simm16 ) );
5212 store( mkexpr(EA), mkNarrowTo8(ty, mkexpr(rS)) );
5221 putIReg( rA_addr, mkexpr(EA) );
5222 store( mkexpr(EA), mkNarrowTo8(ty, mkexpr(rS)) );
5227 store( mkexpr(EA), mkNarrowTo16(ty, mkexpr(rS)) );
5236 putIReg( rA_addr, mkexpr(EA) );
5237 store( mkexpr(EA), mkNarrowTo16(ty, mkexpr(rS)) );
5242 store( mkexpr(EA), mkNarrowTo32(ty, mkexpr(rS)) );
5251 putIReg( rA_addr, mkexpr(EA) );
5252 store( mkexpr(EA), mkNarrowTo32(ty, mkexpr(rS)) );
5269 putIReg( rA_addr, mkexpr(EA) );
5270 store( mkexpr(EA), mkNarrowTo8(ty, mkexpr(rS)) );
5275 store( mkexpr(EA), mkNarrowTo8(ty, mkexpr(rS)) );
5284 putIReg( rA_addr, mkexpr(EA) );
5285 store( mkexpr(EA), mkNarrowTo16(ty, mkexpr(rS)) );
5290 store( mkexpr(EA), mkNarrowTo16(ty, mkexpr(rS)) );
5299 putIReg( rA_addr, mkexpr(EA) );
5300 store( mkexpr(EA), mkNarrowTo32(ty, mkexpr(rS)) );
5305 store( mkexpr(EA), mkNarrowTo32(ty, mkexpr(rS)) );
5316 putIReg( rA_addr, mkexpr(EA) );
5317 store( mkexpr(EA), mkexpr(rS) );
5322 store( mkexpr(EA), mkexpr(rS) );
5331 /* DS Form - 64bit Stores. In each case EA will have been formed
5340 store( mkexpr(EA), mkexpr(rS) );
5348 putIReg( rA_addr, mkexpr(EA) );
5349 store( mkexpr(EA), mkexpr(rS) );
5413 IRTemp EA = newTemp(ty);
5418 assign( EA, ea_rAor0_simm( rA_addr, simm16 ) );
5428 irx_addr = binop(mkAdd, mkexpr(EA), mode64 ? mkU64(ea_off) : mkU32(ea_off));
5438 irx_addr = binop(mkAdd, mkexpr(EA), mode64 ? mkU64(ea_off) : mkU32(ea_off));
5458 IRTemp EA, // EA
5464 IRExpr* e_EA = mkexpr(EA);
5481 /* rD |= (8Uto32(*(EA+i))) << shift */
5510 IRTemp EA, // EA
5516 IRExpr* e_EA = mkexpr(EA);
5532 /* *(EA+i) = 32to8(rS >> shift) */
5576 /* rD = Mem[EA]; (rD+1)%32 = Mem[EA+4] */
5612 /* Mem[EA] = rD; Mem[EA+4] = (rD+1)%32 */
6272 IRTemp EA = newTemp(ty);
6274 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
6313 gen_SIGBUS_if_misaligned( EA, 4 );
6317 stmt( stmt_load(res, mkexpr(EA), NULL/*this is a load*/) );
6333 stmt( stmt_load(res, mkexpr(EA), NULL/*this is a load*/) );
6348 gen_SIGBUS_if_misaligned( EA, 2 );
6352 stmt( stmt_load(res, mkexpr(EA), NULL/*this is a load*/) );
6371 gen_SIGBUS_if_misaligned( EA, 4 );
6378 stmt( stmt_load( resSC, mkexpr(EA), mkexpr(rS)) );
6409 stmt( stmt_load( resSC, mkexpr(EA), mkexpr(rS)) );
6436 gen_SIGBUS_if_misaligned( EA, 2 );
6443 stmt( stmt_load( resSC, mkexpr(EA), mkexpr(rS)) );
6506 gen_SIGBUS_if_misaligned( EA, 8 );
6510 stmt( stmt_load( res, mkexpr(EA), NULL/*this is a load*/) );
6529 gen_SIGBUS_if_misaligned( EA, 8 );
6536 stmt( stmt_load( resSC, mkexpr(EA), mkexpr(rS)) );
6562 gen_SIGBUS_if_misaligned( EA, 16 );
6568 mkexpr(EA), NULL/*this is a load*/) );
6570 binop(Iop_Add64, mkexpr(EA), mkU64(8) ),
6574 mkexpr(EA), NULL/*this is a load*/) );
6576 binop(Iop_Add64, mkexpr(EA), mkU64(8) ),
6581 binop( Iop_Add32, mkexpr(EA), mkU32(4) ),
6584 binop( Iop_Add32, mkexpr(EA), mkU32(12) ),
6605 gen_SIGBUS_if_misaligned( EA, 16 );
6615 stmt( stmt_load( resSC, mkexpr(EA), mkexpr(rS_hi) ) );
6616 store( binop( Iop_Add64, mkexpr(EA), mkU64(8) ),
6619 stmt( stmt_load( resSC, mkexpr(EA), mkexpr(rS_lo) ) );
6620 store( binop( Iop_Add64, mkexpr(EA), mkU64(8) ),
6625 mkexpr(EA),
6628 store( binop(Iop_Add32, mkexpr(EA), mkU32(12) ), mkexpr(rS_lo) );
6936 IRTemp EA = newTemp(ty);
6945 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
6951 assign( w1, unop(Iop_16Uto32, load(Ity_I16, mkexpr(EA))) );
6959 assign( w1, load(Ity_I32, mkexpr(EA)) );
6971 assign( w1, load( Ity_I32, mkexpr( EA ) ) );
6973 nextAddr = binop( mkSzOp( ty, Iop_Add8 ), mkexpr( EA ),
6987 store( mkexpr(EA), unop(Iop_32to16, gen_byterev16(w1)) );
6993 store( mkexpr(EA), gen_byterev32(w1) );
7005 store( mkexpr( EA ),
7505 IRTemp EA = newTemp(ty);
7519 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
7522 /* Round EA down to the start of the containing block. */
7524 mkexpr(EA),
7532 /* Round EA down to the start of the containing block. */
7534 mkexpr(EA),
7549 IRTemp EA = newTemp(ty);
7552 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
7554 /* Round EA down to the start of the containing block. */
7556 mkexpr(EA),
7741 IRTemp EA = newTemp(ty);
7757 assign( EA, ea_rAor0_simm(rA_addr, simm16) );
7759 unop(Iop_F32toF64, load(Ity_F32, mkexpr(EA))) );
7766 assign( EA, ea_rA_simm(rA_addr, simm16) );
7768 unop(Iop_F32toF64, load(Ity_F32, mkexpr(EA))) );
7769 putIReg( rA_addr, mkexpr(EA) );
7774 assign( EA, ea_rAor0_simm(rA_addr, simm16) );
7775 putFReg( frD_addr, load(Ity_F64, mkexpr(EA)) );
7782 assign( EA, ea_rA_simm(rA_addr, simm16) );
7783 putFReg( frD_addr, load(Ity_F64, mkexpr(EA)) );
7784 putIReg( rA_addr, mkexpr(EA) );
7796 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
7798 load(Ity_F32, mkexpr(EA))) );
7805 assign( EA, ea_rA_idxd(rA_addr, rB_addr) );
7807 unop(Iop_F32toF64, load(Ity_F32, mkexpr(EA))) );
7808 putIReg( rA_addr, mkexpr(EA) );
7813 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
7814 putFReg( frD_addr, load(Ity_F64, mkexpr(EA)) );
7821 assign( EA, ea_rA_idxd(rA_addr, rB_addr) );
7822 putFReg( frD_addr, load(Ity_F64, mkexpr(EA)) );
7823 putIReg( rA_addr, mkexpr(EA) );
7828 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
7829 assign( iLo, load(Ity_I32, mkexpr(EA)) );
7841 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
7842 assign( iLo, load(Ity_I32, mkexpr(EA)) );
7880 IRTemp EA = newTemp(ty);
7897 assign( EA, ea_rAor0_simm(rA_addr, simm16) );
7901 store( mkexpr(EA), unop(Iop_TruncF64asF32, mkexpr(frS)) );
7908 assign( EA, ea_rA_simm(rA_addr, simm16) );
7910 store( mkexpr(EA), unop(Iop_TruncF64asF32, mkexpr(frS)) );
7911 putIReg( rA_addr, mkexpr(EA) );
7916 assign( EA, ea_rAor0_simm(rA_addr, simm16) );
7917 store( mkexpr(EA), mkexpr(frS) );
7924 assign( EA, ea_rA_simm(rA_addr, simm16) );
7925 store( mkexpr(EA), mkexpr(frS) );
7926 putIReg( rA_addr, mkexpr(EA) );
7937 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
7939 store( mkexpr(EA),
7947 assign( EA, ea_rA_idxd(rA_addr, rB_addr) );
7949 store( mkexpr(EA), unop(Iop_TruncF64asF32, mkexpr(frS)) );
7950 putIReg( rA_addr, mkexpr(EA) );
7955 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
7956 store( mkexpr(EA), mkexpr(frS) );
7963 assign( EA, ea_rA_idxd(rA_addr, rB_addr) );
7964 store( mkexpr(EA), mkexpr(frS) );
7965 putIReg( rA_addr, mkexpr(EA) );
7971 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
7972 store( mkexpr(EA),
15386 IRTemp EA = newTemp( ty );
15393 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
15402 exp = unop( Iop_64to32, load( Ity_I64, mkexpr( EA ) ) );
15404 exp = unop( Iop_64HIto32, load( Ity_I64, mkexpr( EA ) ) );
15417 exp = unop( Iop_64to32, load( Ity_I64, mkexpr( EA ) ) );
15419 exp = unop( Iop_64HIto32, load( Ity_I64, mkexpr( EA ) ) );
15437 load( Ity_I32, mkexpr( EA ) ) ) ) );
15446 exp = load( Ity_I64, mkexpr( EA ) );
15460 high = load( Ity_I64, mkexpr( EA ) );
15461 high_addr = binop( addOp, mkexpr( EA ), ty == Ity_I64 ? mkU64( ea_off )
15471 assign( data, load( Ity_I64, mkexpr( EA ) ) );
15486 t0_BE = load( Ity_V128, mkexpr( EA ) );
15494 t0 = load( Ity_V128, mkexpr( EA ) );
15523 IRTemp EA = newTemp( ty );
15530 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
15543 store( mkexpr( EA ), low32 );
15556 store( mkexpr( EA ), mkexpr( val32 ) );
15564 store( mkexpr( EA ), high64 );
15573 store( mkexpr( EA ), high64 );
15574 store( binop( mkSzOp( ty, Iop_Add8 ), mkexpr( EA ),
15587 // This instruction supports word-aligned stores, so EA may not be
15591 store( mkexpr( EA ), unop( Iop_64HIto32, mkexpr( hi64 ) ) );
15593 irx_addr = binop( mkSzOp( ty, Iop_Add8 ), mkexpr( EA ),
15597 irx_addr = binop( mkSzOp( ty, Iop_Add8 ), mkexpr( EA ),
15601 irx_addr = binop( mkSzOp( ty, Iop_Add8 ), mkexpr( EA ),
15749 IRTemp EA = newTemp(ty);
15757 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
15758 assign( EA_align16, addr_align( mkexpr(EA), 16 ) );
15768 binop(Iop_And32, mkNarrowTo32(ty, mkexpr(EA)),
15775 binop(Iop_And32, mkNarrowTo32(ty, mkexpr(EA)),
15817 binop(Iop_And32, mkNarrowTo32(ty, mkexpr(EA)),
15824 binop(Iop_And32, mkNarrowTo32(ty, mkexpr(EA)),
15863 /* loads addressed byte into vector[EA[0:3]
15865 can simply load entire vector from 16-aligned EA */
15912 IRTemp EA = newTemp(ty);
15924 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
15931 mkNarrowTo32(ty, mkexpr(EA)) )) );
15939 store( mkexpr(EA),
15946 assign( addr_aligned, addr_align(mkexpr(EA), 2) );
15963 assign( addr_aligned, addr_align(mkexpr(EA), 4) );
15981 store( addr_align( mkexpr(EA), 16 ), mkexpr(vS) );
15986 store( addr_align( mkexpr(EA), 16 ), mkexpr(vS) );