src/cpu/x86/vm/macroAssembler_x86.cpp

Print this page




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




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




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