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, AddressLiteral src2) { testptr(src1, as_Address(src2)); }
864 void testptr(Register src1, Register src2);
865
866 void xorptr(Register dst, Register src) { LP64_ONLY(xorq(dst, src)) NOT_LP64(xorl(dst, src)); }
867 void xorptr(Register dst, Address src) { LP64_ONLY(xorq(dst, src)) NOT_LP64(xorl(dst, src)); }
868
869 // Calls
870
871 void call(Label& L, relocInfo::relocType rtype);
872 void call(Register entry);
873
874 // NOTE: this call transfers to the effective address of entry NOT
875 // the address contained by entry. This is because this is more natural
876 // for jumps/calls.
877 void call(AddressLiteral entry);
878
879 // Emit the CompiledIC call idiom
880 void ic_call(address entry, jint method_index = 0);
881
882 // Jumps
883
|
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
882
|