578 void emit_data(jint data, relocInfo::relocType rtype, int format); |
578 void emit_data(jint data, relocInfo::relocType rtype, int format); |
579 void emit_data(jint data, RelocationHolder const& rspec, int format); |
579 void emit_data(jint data, RelocationHolder const& rspec, int format); |
580 void emit_data64(jlong data, relocInfo::relocType rtype, int format = 0); |
580 void emit_data64(jlong data, relocInfo::relocType rtype, int format = 0); |
581 void emit_data64(jlong data, RelocationHolder const& rspec, int format = 0); |
581 void emit_data64(jlong data, RelocationHolder const& rspec, int format = 0); |
582 |
582 |
583 |
|
584 bool reachable(AddressLiteral adr) NOT_LP64({ return true;}); |
583 bool reachable(AddressLiteral adr) NOT_LP64({ return true;}); |
585 |
584 |
586 // These are all easily abused and hence protected |
585 // These are all easily abused and hence protected |
587 |
586 |
588 // 32BIT ONLY SECTION |
587 // 32BIT ONLY SECTION |
680 #else |
679 #else |
681 static bool is_simm(int32_t x, int nbits) { return -(1 << (nbits-1)) <= x && |
680 static bool is_simm(int32_t x, int nbits) { return -(1 << (nbits-1)) <= x && |
682 x < (1 << (nbits-1)); } |
681 x < (1 << (nbits-1)); } |
683 static bool is_simm32(int32_t x) { return true; } |
682 static bool is_simm32(int32_t x) { return true; } |
684 #endif // _LP64 |
683 #endif // _LP64 |
|
684 |
|
685 static bool is_polling_page_far() NOT_LP64({ return false;}); |
685 |
686 |
686 // Generic instructions |
687 // Generic instructions |
687 // Does 32bit or 64bit as needed for the platform. In some sense these |
688 // Does 32bit or 64bit as needed for the platform. In some sense these |
688 // belong in macro assembler but there is no need for both varieties to exist |
689 // belong in macro assembler but there is no need for both varieties to exist |
689 |
690 |
2092 void lea(Address dst, AddressLiteral adr); |
2093 void lea(Address dst, AddressLiteral adr); |
2093 void lea(Register dst, Address adr) { Assembler::lea(dst, adr); } |
2094 void lea(Register dst, Address adr) { Assembler::lea(dst, adr); } |
2094 |
2095 |
2095 void leal32(Register dst, Address src) { leal(dst, src); } |
2096 void leal32(Register dst, Address src) { leal(dst, src); } |
2096 |
2097 |
2097 void test32(Register src1, AddressLiteral src2); |
2098 // Import other testl() methods from the parent class or else |
|
2099 // they will be hidden by the following overriding declaration. |
|
2100 using Assembler::testl; |
|
2101 void testl(Register dst, AddressLiteral src); |
2098 |
2102 |
2099 void orptr(Register dst, Address src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); } |
2103 void orptr(Register dst, Address src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); } |
2100 void orptr(Register dst, Register src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); } |
2104 void orptr(Register dst, Register src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); } |
2101 void orptr(Register dst, int32_t src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); } |
2105 void orptr(Register dst, int32_t src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); } |
2102 |
2106 |