< prev index next >

src/hotspot/cpu/x86/macroAssembler_x86.hpp

Print this page




 833   // Unconditional atomic increment.
 834   void atomic_incl(Address counter_addr);
 835   void atomic_incl(AddressLiteral counter_addr, Register scr = rscratch1);
 836 #ifdef _LP64
 837   void atomic_incq(Address counter_addr);
 838   void atomic_incq(AddressLiteral counter_addr, Register scr = rscratch1);
 839 #endif
 840   void atomic_incptr(AddressLiteral counter_addr, Register scr = rscratch1) { LP64_ONLY(atomic_incq(counter_addr, scr)) NOT_LP64(atomic_incl(counter_addr, scr)) ; }
 841   void atomic_incptr(Address counter_addr) { LP64_ONLY(atomic_incq(counter_addr)) NOT_LP64(atomic_incl(counter_addr)) ; }
 842 
 843   void lea(Register dst, AddressLiteral adr);
 844   void lea(Address dst, AddressLiteral adr);
 845   void lea(Register dst, Address adr) { Assembler::lea(dst, adr); }
 846 
 847   void leal32(Register dst, Address src) { leal(dst, src); }
 848 
 849   // Import other testl() methods from the parent class or else
 850   // they will be hidden by the following overriding declaration.
 851   using Assembler::testl;
 852   void testl(Register dst, AddressLiteral src);
 853   using Assembler::testq;
 854   void testq(Register dst, AddressLiteral src);
 855 
 856   void orptr(Register dst, Address src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }
 857   void orptr(Register dst, Register src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }
 858   void orptr(Register dst, int32_t src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }
 859   void orptr(Address dst, int32_t imm32) { LP64_ONLY(orq(dst, imm32)) NOT_LP64(orl(dst, imm32)); }
 860 
 861   void testptr(Register src, int32_t imm32) { LP64_ONLY(testq(src, imm32)) NOT_LP64(testl(src, imm32)); }
 862   void testptr(Register src1, Address src2) { LP64_ONLY(testq(src1, src2)) NOT_LP64(testl(src1, src2)); }
 863   void testptr(Register src1, Register src2);
 864 
 865   void xorptr(Register dst, Register src) { LP64_ONLY(xorq(dst, src)) NOT_LP64(xorl(dst, src)); }
 866   void xorptr(Register dst, Address src) { LP64_ONLY(xorq(dst, src)) NOT_LP64(xorl(dst, src)); }
 867 
 868   // Calls
 869 
 870   void call(Label& L, relocInfo::relocType rtype);
 871   void call(Register entry);
 872 
 873   // NOTE: this call transfers to the effective address of entry NOT
 874   // the address contained by entry. This is because this is more natural
 875   // for jumps/calls.
 876   void call(AddressLiteral entry);
 877 
 878   // Emit the CompiledIC call idiom
 879   void ic_call(address entry, jint method_index = 0);
 880 
 881   // Jumps




 833   // Unconditional atomic increment.
 834   void atomic_incl(Address counter_addr);
 835   void atomic_incl(AddressLiteral counter_addr, Register scr = rscratch1);
 836 #ifdef _LP64
 837   void atomic_incq(Address counter_addr);
 838   void atomic_incq(AddressLiteral counter_addr, Register scr = rscratch1);
 839 #endif
 840   void atomic_incptr(AddressLiteral counter_addr, Register scr = rscratch1) { LP64_ONLY(atomic_incq(counter_addr, scr)) NOT_LP64(atomic_incl(counter_addr, scr)) ; }
 841   void atomic_incptr(Address counter_addr) { LP64_ONLY(atomic_incq(counter_addr)) NOT_LP64(atomic_incl(counter_addr)) ; }
 842 
 843   void lea(Register dst, AddressLiteral adr);
 844   void lea(Address dst, AddressLiteral adr);
 845   void lea(Register dst, Address adr) { Assembler::lea(dst, adr); }
 846 
 847   void leal32(Register dst, Address src) { leal(dst, src); }
 848 
 849   // Import other testl() methods from the parent class or else
 850   // they will be hidden by the following overriding declaration.
 851   using Assembler::testl;
 852   void testl(Register dst, AddressLiteral src);


 853 
 854   void orptr(Register dst, Address src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }
 855   void orptr(Register dst, Register src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }
 856   void orptr(Register dst, int32_t src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }
 857   void orptr(Address dst, int32_t imm32) { LP64_ONLY(orq(dst, imm32)) NOT_LP64(orl(dst, imm32)); }
 858 
 859   void testptr(Register src, int32_t imm32) {  LP64_ONLY(testq(src, imm32)) NOT_LP64(testl(src, imm32)); }
 860   void testptr(Register src1, Address src2) { LP64_ONLY(testq(src1, src2)) NOT_LP64(testl(src1, src2)); }
 861   void testptr(Register src1, Register src2);
 862 
 863   void xorptr(Register dst, Register src) { LP64_ONLY(xorq(dst, src)) NOT_LP64(xorl(dst, src)); }
 864   void xorptr(Register dst, Address src) { LP64_ONLY(xorq(dst, src)) NOT_LP64(xorl(dst, src)); }
 865 
 866   // Calls
 867 
 868   void call(Label& L, relocInfo::relocType rtype);
 869   void call(Register entry);
 870 
 871   // NOTE: this call transfers to the effective address of entry NOT
 872   // the address contained by entry. This is because this is more natural
 873   // for jumps/calls.
 874   void call(AddressLiteral entry);
 875 
 876   // Emit the CompiledIC call idiom
 877   void ic_call(address entry, jint method_index = 0);
 878 
 879   // Jumps


< prev index next >