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)); |