src/cpu/x86/vm/assembler_x86.hpp

changeset 2686
b40d4fa697bf
parent 2602
41d4973cf100
child 2697
09f96c3ff1ad
equal deleted inserted replaced
2685:1927db75dd85 2686:b40d4fa697bf
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

mercurial