< prev index next >

src/cpu/x86/vm/macroAssembler_x86.cpp

Print this page




 954 }
 955 
 956 void MacroAssembler::addsd(XMMRegister dst, AddressLiteral src) {
 957   if (reachable(src)) {
 958     Assembler::addsd(dst, as_Address(src));
 959   } else {
 960     lea(rscratch1, src);
 961     Assembler::addsd(dst, Address(rscratch1, 0));
 962   }
 963 }
 964 
 965 void MacroAssembler::addss(XMMRegister dst, AddressLiteral src) {
 966   if (reachable(src)) {
 967     addss(dst, as_Address(src));
 968   } else {
 969     lea(rscratch1, src);
 970     addss(dst, Address(rscratch1, 0));
 971   }
 972 }
 973 









 974 void MacroAssembler::align(int modulus) {
 975   align(modulus, offset());
 976 }
 977 
 978 void MacroAssembler::align(int modulus, int target) {
 979   if (target % modulus != 0) {
 980     nop(modulus - (target % modulus));
 981   }
 982 }
 983 
 984 void MacroAssembler::andpd(XMMRegister dst, AddressLiteral src) {
 985   // Used in sign-masking with aligned address.
 986   assert((UseAVX > 0) || (((intptr_t)src.target() & 15) == 0), "SSE mode requires address alignment 16 bytes");
 987   if (reachable(src)) {
 988     Assembler::andpd(dst, as_Address(src));
 989   } else {
 990     lea(rscratch1, src);
 991     Assembler::andpd(dst, Address(rscratch1, 0));
 992   }
 993 }




 954 }
 955 
 956 void MacroAssembler::addsd(XMMRegister dst, AddressLiteral src) {
 957   if (reachable(src)) {
 958     Assembler::addsd(dst, as_Address(src));
 959   } else {
 960     lea(rscratch1, src);
 961     Assembler::addsd(dst, Address(rscratch1, 0));
 962   }
 963 }
 964 
 965 void MacroAssembler::addss(XMMRegister dst, AddressLiteral src) {
 966   if (reachable(src)) {
 967     addss(dst, as_Address(src));
 968   } else {
 969     lea(rscratch1, src);
 970     addss(dst, Address(rscratch1, 0));
 971   }
 972 }
 973 
 974 void MacroAssembler::addpd(XMMRegister dst, AddressLiteral src) {
 975   if (reachable(src)) {
 976     Assembler::addpd(dst, as_Address(src));
 977   } else {
 978     lea(rscratch1, src);
 979     Assembler::addpd(dst, Address(rscratch1, 0));
 980   }
 981 }
 982 
 983 void MacroAssembler::align(int modulus) {
 984   align(modulus, offset());
 985 }
 986 
 987 void MacroAssembler::align(int modulus, int target) {
 988   if (target % modulus != 0) {
 989     nop(modulus - (target % modulus));
 990   }
 991 }
 992 
 993 void MacroAssembler::andpd(XMMRegister dst, AddressLiteral src) {
 994   // Used in sign-masking with aligned address.
 995   assert((UseAVX > 0) || (((intptr_t)src.target() & 15) == 0), "SSE mode requires address alignment 16 bytes");
 996   if (reachable(src)) {
 997     Assembler::andpd(dst, as_Address(src));
 998   } else {
 999     lea(rscratch1, src);
1000     Assembler::andpd(dst, Address(rscratch1, 0));
1001   }
1002 }


< prev index next >