src/cpu/x86/vm/macroAssembler_x86.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/cpu/x86/vm

src/cpu/x86/vm/macroAssembler_x86.hpp

Print this page
rev 5240 : 8023657: New type profiling points: arguments to call
Summary: x86 interpreter and c1 type profiling for arguments at calls
Reviewed-by:


 756   // Helper functions for statistics gathering.
 757   // Conditionally (atomically, on MPs) increments passed counter address, preserving condition codes.
 758   void cond_inc32(Condition cond, AddressLiteral counter_addr);
 759   // Unconditional atomic increment.
 760   void atomic_incl(AddressLiteral counter_addr);
 761 
 762   void lea(Register dst, AddressLiteral adr);
 763   void lea(Address dst, AddressLiteral adr);
 764   void lea(Register dst, Address adr) { Assembler::lea(dst, adr); }
 765 
 766   void leal32(Register dst, Address src) { leal(dst, src); }
 767 
 768   // Import other testl() methods from the parent class or else
 769   // they will be hidden by the following overriding declaration.
 770   using Assembler::testl;
 771   void testl(Register dst, AddressLiteral src);
 772 
 773   void orptr(Register dst, Address src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }
 774   void orptr(Register dst, Register src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }
 775   void orptr(Register dst, int32_t src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }

 776 
 777   void testptr(Register src, int32_t imm32) {  LP64_ONLY(testq(src, imm32)) NOT_LP64(testl(src, imm32)); }
 778   void testptr(Register src1, Register src2);
 779 
 780   void xorptr(Register dst, Register src) { LP64_ONLY(xorq(dst, src)) NOT_LP64(xorl(dst, src)); }
 781   void xorptr(Register dst, Address src) { LP64_ONLY(xorq(dst, src)) NOT_LP64(xorl(dst, src)); }
 782 
 783   // Calls
 784 
 785   void call(Label& L, relocInfo::relocType rtype);
 786   void call(Register entry);
 787 
 788   // NOTE: this call tranfers to the effective address of entry NOT
 789   // the address contained by entry. This is because this is more natural
 790   // for jumps/calls.
 791   void call(AddressLiteral entry);
 792 
 793   // Emit the CompiledIC call idiom
 794   void ic_call(address entry);
 795 




 756   // Helper functions for statistics gathering.
 757   // Conditionally (atomically, on MPs) increments passed counter address, preserving condition codes.
 758   void cond_inc32(Condition cond, AddressLiteral counter_addr);
 759   // Unconditional atomic increment.
 760   void atomic_incl(AddressLiteral counter_addr);
 761 
 762   void lea(Register dst, AddressLiteral adr);
 763   void lea(Address dst, AddressLiteral adr);
 764   void lea(Register dst, Address adr) { Assembler::lea(dst, adr); }
 765 
 766   void leal32(Register dst, Address src) { leal(dst, src); }
 767 
 768   // Import other testl() methods from the parent class or else
 769   // they will be hidden by the following overriding declaration.
 770   using Assembler::testl;
 771   void testl(Register dst, AddressLiteral src);
 772 
 773   void orptr(Register dst, Address src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }
 774   void orptr(Register dst, Register src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }
 775   void orptr(Register dst, int32_t src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }
 776   void orptr(Address dst, int32_t imm32) { LP64_ONLY(orq(dst, imm32)) NOT_LP64(orl(dst, imm32)); }
 777 
 778   void testptr(Register src, int32_t imm32) {  LP64_ONLY(testq(src, imm32)) NOT_LP64(testl(src, imm32)); }
 779   void testptr(Register src1, Register src2);
 780 
 781   void xorptr(Register dst, Register src) { LP64_ONLY(xorq(dst, src)) NOT_LP64(xorl(dst, src)); }
 782   void xorptr(Register dst, Address src) { LP64_ONLY(xorq(dst, src)) NOT_LP64(xorl(dst, src)); }
 783 
 784   // Calls
 785 
 786   void call(Label& L, relocInfo::relocType rtype);
 787   void call(Register entry);
 788 
 789   // NOTE: this call tranfers to the effective address of entry NOT
 790   // the address contained by entry. This is because this is more natural
 791   // for jumps/calls.
 792   void call(AddressLiteral entry);
 793 
 794   // Emit the CompiledIC call idiom
 795   void ic_call(address entry);
 796 


src/cpu/x86/vm/macroAssembler_x86.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File