518 |
518 |
519 |
519 |
520 void LIR_Assembler::jobject2reg_with_patching(Register reg, CodeEmitInfo *info) { |
520 void LIR_Assembler::jobject2reg_with_patching(Register reg, CodeEmitInfo *info) { |
521 // Allocate a new index in table to hold the object once it's been patched |
521 // Allocate a new index in table to hold the object once it's been patched |
522 int oop_index = __ oop_recorder()->allocate_oop_index(NULL); |
522 int oop_index = __ oop_recorder()->allocate_oop_index(NULL); |
523 PatchingStub* patch = new PatchingStub(_masm, PatchingStub::load_mirror_id, oop_index); |
523 PatchingStub* patch = new PatchingStub(_masm, patching_id(info), oop_index); |
524 |
524 |
525 AddressLiteral addrlit(NULL, oop_Relocation::spec(oop_index)); |
525 AddressLiteral addrlit(NULL, oop_Relocation::spec(oop_index)); |
526 assert(addrlit.rspec().type() == relocInfo::oop_type, "must be an oop reloc"); |
526 assert(addrlit.rspec().type() == relocInfo::oop_type, "must be an oop reloc"); |
527 // It may not seem necessary to use a sethi/add pair to load a NULL into dest, but the |
527 // It may not seem necessary to use a sethi/add pair to load a NULL into dest, but the |
528 // NULL will be dynamically patched later and the patched value may be large. We must |
528 // NULL will be dynamically patched later and the patched value may be large. We must |