src/cpu/x86/vm/macroAssembler_x86.cpp

changeset 4363
2c7f594145dc
parent 4323
f0c2369fda5a
child 4366
d02120b7a34f
equal deleted inserted replaced
4362:65c8342f726a 4363:2c7f594145dc
3083 } 3083 }
3084 } 3084 }
3085 3085
3086 void MacroAssembler::pshufb(XMMRegister dst, AddressLiteral src) { 3086 void MacroAssembler::pshufb(XMMRegister dst, AddressLiteral src) {
3087 // Used in sign-bit flipping with aligned address. 3087 // Used in sign-bit flipping with aligned address.
3088 assert((UseAVX > 0) || (((intptr_t)src.target() & 15) == 0), "SSE mode requires address alignment 16 bytes"); 3088 bool aligned_adr = (((intptr_t)src.target() & 15) == 0);
3089 assert((UseAVX > 0) || aligned_adr, "SSE mode requires address alignment 16 bytes");
3089 if (reachable(src)) { 3090 if (reachable(src)) {
3090 Assembler::pshufb(dst, as_Address(src)); 3091 Assembler::pshufb(dst, as_Address(src));
3091 } else { 3092 } else {
3092 lea(rscratch1, src); 3093 lea(rscratch1, src);
3093 Assembler::pshufb(dst, Address(rscratch1, 0)); 3094 Assembler::pshufb(dst, Address(rscratch1, 0));

mercurial