Lines Matching defs:EA
124 * address of the EA; in BE mode, stvx still stores word zero at the lowest
5000 IRTemp EA = newTemp(ty);
5005 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
5008 // lowest 4 bits of immediate before forming EA
5010 assign( EA, ea_rAor0_simm( rA_addr, simm16 ) );
5013 // lowest 2 bits of immediate before forming EA
5015 assign( EA, ea_rAor0_simm( rA_addr, simm16 ) );
5018 assign( EA, ea_rAor0_simm( rA_addr, simm16 ) );
5025 val = load(Ity_I8, mkexpr(EA));
5035 val = load(Ity_I8, mkexpr(EA));
5037 putIReg( rA_addr, mkexpr(EA) );
5042 val = load(Ity_I16, mkexpr(EA));
5052 val = load(Ity_I16, mkexpr(EA));
5054 putIReg( rA_addr, mkexpr(EA) );
5059 val = load(Ity_I16, mkexpr(EA));
5069 val = load(Ity_I16, mkexpr(EA));
5071 putIReg( rA_addr, mkexpr(EA) );
5076 val = load(Ity_I32, mkexpr(EA));
5086 val = load(Ity_I32, mkexpr(EA));
5088 putIReg( rA_addr, mkexpr(EA) );
5105 val = load(Ity_I8, mkexpr(EA));
5107 putIReg( rA_addr, mkexpr(EA) );
5112 val = load(Ity_I8, mkexpr(EA));
5122 val = load(Ity_I16, mkexpr(EA));
5124 putIReg( rA_addr, mkexpr(EA) );
5129 val = load(Ity_I16, mkexpr(EA));
5139 val = load(Ity_I16, mkexpr(EA));
5141 putIReg( rA_addr, mkexpr(EA) );
5146 val = load(Ity_I16, mkexpr(EA));
5156 val = load(Ity_I32, mkexpr(EA));
5158 putIReg( rA_addr, mkexpr(EA) );
5163 val = load(Ity_I32, mkexpr(EA));
5175 putIReg( rD_addr, load(Ity_I64, mkexpr(EA)) );
5176 putIReg( rA_addr, mkexpr(EA) );
5181 putIReg( rD_addr, load(Ity_I64, mkexpr(EA)) );
5191 unop(Iop_32Sto64, load(Ity_I32, mkexpr(EA))) );
5192 putIReg( rA_addr, mkexpr(EA) );
5198 unop(Iop_32Sto64, load(Ity_I32, mkexpr(EA))) );
5207 /* DS Form - 64bit Loads. In each case EA will have been formed
5213 putIReg( rD_addr, load(Ity_I64, mkexpr(EA)) );
5222 putIReg( rD_addr, load(Ity_I64, mkexpr(EA)) );
5223 putIReg( rA_addr, mkexpr(EA) );
5229 unop(Iop_32Sto64, load(Ity_I32, mkexpr(EA))) );
5246 // trap if EA misaligned on 16 byte address
5249 assign(high, load(ty, mkexpr( EA ) ) );
5251 mkexpr( EA ),
5254 assign(low, load(ty, mkexpr( EA ) ) );
5256 mkexpr( EA ),
5261 mkexpr( EA ),
5264 mkexpr( EA ),
5267 gen_SIGBUS_if_misaligned( EA, 16 );
5300 IRTemp EA = newTemp(ty);
5307 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
5310 // lowest 2 bits of immediate before forming EA
5313 assign( EA, ea_rAor0_simm( rA_addr, simm16 ) );
5320 store( mkexpr(EA), mkNarrowTo8(ty, mkexpr(rS)) );
5329 putIReg( rA_addr, mkexpr(EA) );
5330 store( mkexpr(EA), mkNarrowTo8(ty, mkexpr(rS)) );
5335 store( mkexpr(EA), mkNarrowTo16(ty, mkexpr(rS)) );
5344 putIReg( rA_addr, mkexpr(EA) );
5345 store( mkexpr(EA), mkNarrowTo16(ty, mkexpr(rS)) );
5350 store( mkexpr(EA), mkNarrowTo32(ty, mkexpr(rS)) );
5359 putIReg( rA_addr, mkexpr(EA) );
5360 store( mkexpr(EA), mkNarrowTo32(ty, mkexpr(rS)) );
5377 putIReg( rA_addr, mkexpr(EA) );
5378 store( mkexpr(EA), mkNarrowTo8(ty, mkexpr(rS)) );
5383 store( mkexpr(EA), mkNarrowTo8(ty, mkexpr(rS)) );
5392 putIReg( rA_addr, mkexpr(EA) );
5393 store( mkexpr(EA), mkNarrowTo16(ty, mkexpr(rS)) );
5398 store( mkexpr(EA), mkNarrowTo16(ty, mkexpr(rS)) );
5407 putIReg( rA_addr, mkexpr(EA) );
5408 store( mkexpr(EA), mkNarrowTo32(ty, mkexpr(rS)) );
5413 store( mkexpr(EA), mkNarrowTo32(ty, mkexpr(rS)) );
5424 putIReg( rA_addr, mkexpr(EA) );
5425 store( mkexpr(EA), mkexpr(rS) );
5430 store( mkexpr(EA), mkexpr(rS) );
5439 /* DS Form - 64bit Stores. In each case EA will have been formed
5448 store( mkexpr(EA), mkexpr(rS) );
5456 putIReg( rA_addr, mkexpr(EA) );
5457 store( mkexpr(EA), mkexpr(rS) );
5521 IRTemp EA = newTemp(ty);
5526 assign( EA, ea_rAor0_simm( rA_addr, simm16 ) );
5536 irx_addr = binop(mkAdd, mkexpr(EA), mode64 ? mkU64(ea_off) : mkU32(ea_off));
5546 irx_addr = binop(mkAdd, mkexpr(EA), mode64 ? mkU64(ea_off) : mkU32(ea_off));
5566 IRTemp EA, // EA
5572 IRExpr* e_EA = mkexpr(EA);
5589 /* rD |= (8Uto32(*(EA+i))) << shift */
5618 IRTemp EA, // EA
5624 IRExpr* e_EA = mkexpr(EA);
5640 /* *(EA+i) = 32to8(rS >> shift) */
5684 /* rD = Mem[EA]; (rD+1)%32 = Mem[EA+4] */
5720 /* Mem[EA] = rD; Mem[EA+4] = (rD+1)%32 */
6381 IRTemp EA = newTemp(ty);
6383 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
6430 gen_SIGBUS_if_misaligned( EA, 4 );
6434 stmt( stmt_load(res, mkexpr(EA), NULL/*this is a load*/) );
6450 stmt( stmt_load(res, mkexpr(EA), NULL/*this is a load*/) );
6465 gen_SIGBUS_if_misaligned( EA, 2 );
6469 stmt( stmt_load(res, mkexpr(EA), NULL/*this is a load*/) );
6488 gen_SIGBUS_if_misaligned( EA, 4 );
6495 stmt( stmt_load( resSC, mkexpr(EA), mkexpr(rS)) );
6526 stmt( stmt_load( resSC, mkexpr(EA), mkexpr(rS)) );
6553 gen_SIGBUS_if_misaligned( EA, 2 );
6560 stmt( stmt_load( resSC, mkexpr(EA), mkexpr(rS)) );
6623 gen_SIGBUS_if_misaligned( EA, 8 );
6627 stmt( stmt_load( res, mkexpr(EA), NULL/*this is a load*/) );
6646 gen_SIGBUS_if_misaligned( EA, 8 );
6653 stmt( stmt_load( resSC, mkexpr(EA), mkexpr(rS)) );
6679 gen_SIGBUS_if_misaligned( EA, 16 );
6685 mkexpr(EA), NULL/*this is a load*/) );
6687 binop(Iop_Add64, mkexpr(EA), mkU64(8) ),
6691 mkexpr(EA), NULL/*this is a load*/) );
6693 binop(Iop_Add64, mkexpr(EA), mkU64(8) ),
6698 binop( Iop_Add32, mkexpr(EA), mkU32(4) ),
6701 binop( Iop_Add32, mkexpr(EA), mkU32(12) ),
6722 gen_SIGBUS_if_misaligned( EA, 16 );
6732 stmt( stmt_load( resSC, mkexpr(EA), mkexpr(rS_hi) ) );
6733 store( binop( Iop_Add64, mkexpr(EA), mkU64(8) ),
6736 stmt( stmt_load( resSC, mkexpr(EA), mkexpr(rS_lo) ) );
6737 store( binop( Iop_Add64, mkexpr(EA), mkU64(8) ),
6742 mkexpr(EA),
6745 store( binop(Iop_Add32, mkexpr(EA), mkU32(12) ), mkexpr(rS_lo) );
7053 IRTemp EA = newTemp(ty);
7062 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
7068 assign( w1, unop(Iop_16Uto32, load(Ity_I16, mkexpr(EA))) );
7076 assign( w1, load(Ity_I32, mkexpr(EA)) );
7088 assign( w1, load( Ity_I32, mkexpr( EA ) ) );
7090 nextAddr = binop( mkSzOp( ty, Iop_Add8 ), mkexpr( EA ),
7104 store( mkexpr(EA), unop(Iop_32to16, gen_byterev16(w1)) );
7110 store( mkexpr(EA), gen_byterev32(w1) );
7122 store( mkexpr( EA ),
7646 IRTemp EA = newTemp(ty);
7660 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
7663 /* Round EA down to the start of the containing block. */
7665 mkexpr(EA),
7673 /* Round EA down to the start of the containing block. */
7675 mkexpr(EA),
7690 IRTemp EA = newTemp(ty);
7693 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
7695 /* Round EA down to the start of the containing block. */
7697 mkexpr(EA),
7882 IRTemp EA
7898 assign( EA, ea_rAor0_simm(rA_addr, simm16) );
7900 unop(Iop_F32toF64, load(Ity_F32, mkexpr(EA))) );
7907 assign( EA, ea_rA_simm(rA_addr, simm16) );
7909 unop(Iop_F32toF64, load(Ity_F32, mkexpr(EA))) );
7910 putIReg( rA_addr, mkexpr(EA) );
7915 assign( EA, ea_rAor0_simm(rA_addr, simm16) );
7916 putFReg( frD_addr, load(Ity_F64, mkexpr(EA)) );
7923 assign( EA, ea_rA_simm(rA_addr, simm16) );
7924 putFReg( frD_addr, load(Ity_F64, mkexpr(EA)) );
7925 putIReg( rA_addr, mkexpr(EA) );
7937 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
7939 load(Ity_F32, mkexpr(EA))) );
7946 assign( EA, ea_rA_idxd(rA_addr, rB_addr) );
7948 unop(Iop_F32toF64, load(Ity_F32, mkexpr(EA))) );
7949 putIReg( rA_addr, mkexpr(EA) );
7954 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
7955 putFReg( frD_addr, load(Ity_F64, mkexpr(EA)) );
7962 assign( EA, ea_rA_idxd(rA_addr, rB_addr) );
7963 putFReg( frD_addr, load(Ity_F64, mkexpr(EA)) );
7964 putIReg( rA_addr, mkexpr(EA) );
7969 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
7970 assign( iLo, load(Ity_I32, mkexpr(EA)) );
7982 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
7983 assign( iLo, load(Ity_I32, mkexpr(EA)) );
8021 IRTemp EA = newTemp(ty);
8038 assign( EA, ea_rAor0_simm(rA_addr, simm16) );
8042 store( mkexpr(EA), unop(Iop_TruncF64asF32, mkexpr(frS)) );
8049 assign( EA, ea_rA_simm(rA_addr, simm16) );
8051 store( mkexpr(EA), unop(Iop_TruncF64asF32, mkexpr(frS)) );
8052 putIReg( rA_addr, mkexpr(EA) );
8057 assign( EA, ea_rAor0_simm(rA_addr, simm16) );
8058 store( mkexpr(EA), mkexpr(frS) );
8065 assign( EA, ea_rA_simm(rA_addr, simm16) );
8066 store( mkexpr(EA), mkexpr(frS) );
8067 putIReg( rA_addr, mkexpr(EA) );
8078 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
8080 store( mkexpr(EA),
8088 assign( EA, ea_rA_idxd(rA_addr, rB_addr) );
8090 store( mkexpr(EA), unop(Iop_TruncF64asF32, mkexpr(frS)) );
8091 putIReg( rA_addr, mkexpr(EA) );
8096 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
8097 store( mkexpr(EA), mkexpr(frS) );
8104 assign( EA, ea_rA_idxd(rA_addr, rB_addr) );
8105 store( mkexpr(EA), mkexpr(frS) );
8106 putIReg( rA_addr, mkexpr(EA) );
8112 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
8113 store( mkexpr(EA),
15527 IRTemp EA = newTemp( ty );
15534 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
15543 exp = unop( Iop_64to32, load( Ity_I64, mkexpr( EA ) ) );
15545 exp = unop( Iop_64HIto32, load( Ity_I64, mkexpr( EA ) ) );
15558 exp = unop( Iop_64to32, load( Ity_I64, mkexpr( EA ) ) );
15560 exp = unop( Iop_64HIto32, load( Ity_I64, mkexpr( EA ) ) );
15578 load( Ity_I32, mkexpr( EA ) ) ) ) );
15587 exp = load( Ity_I64, mkexpr( EA ) );
15601 high = load( Ity_I64, mkexpr( EA ) );
15602 high_addr = binop( addOp, mkexpr( EA ), ty == Ity_I64 ? mkU64( ea_off )
15612 assign( data, load( Ity_I64, mkexpr( EA ) ) );
15627 t0_BE = load( Ity_V128, mkexpr( EA ) );
15635 t0 = load( Ity_V128, mkexpr( EA ) );
15664 IRTemp EA = newTemp( ty );
15671 assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
15684 store( mkexpr( EA ), low32 );
15697 store( mkexpr( EA ), mkexpr( val32 ) );
15705 store( mkexpr( EA ), high64 );
15714 store( mkexpr( EA ), high64 );
15715 store( binop( mkSzOp( ty, Iop_Add8 ), mkexpr( EA ),
15728 // This instruction supports word-aligned stores, so EA may not be
15732 store( mkexpr( EA ), unop( Iop_64HIto32, mkexpr( hi64 ) ) );
15734 irx_addr = binop( mkSzOp( ty, Iop_Add8 ), mkexpr( EA ),
15738 irx_addr = binop( mkSzOp( ty, Iop_Add8 ), mkexpr( EA ),
15742 irx_addr = binop( mkSzOp( ty, Iop_Add8 ), mkexpr( EA ),
15890 IRTemp EA = newTemp(ty);
15898 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
15899 assign( EA_align16, addr_align( mkexpr(EA), 16 ) );
15909 binop(Iop_And32, mkNarrowTo32(ty, mkexpr(EA)),
15916 binop(Iop_And32, mkNarrowTo32(ty, mkexpr(EA)),
15958 binop(Iop_And32, mkNarrowTo32(ty, mkexpr(EA)),
15965 binop(Iop_And32, mkNarrowTo32(ty, mkexpr(EA)),
16004 /* loads addressed byte into vector[EA[0:3]
16006 can simply load entire vector from 16-aligned EA */
16053 IRTemp EA = newTemp(ty);
16065 assign( EA, ea_rAor0_idxd(rA_addr, rB_addr) );
16072 mkNarrowTo32(ty, mkexpr(EA)) )) );
16080 store( mkexpr(EA),
16087 assign( addr_aligned, addr_align(mkexpr(EA), 2) );
16104 assign( addr_aligned, addr_align(mkexpr(EA), 4) );
16122 store( addr_align( mkexpr(EA), 16 ), mkexpr(vS) );
16127 store( addr_align( mkexpr(EA), 16 ), mkexpr(vS) );