comparison src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @ 12160:f98f5d48f511

7199175: JSR 292: C1 needs patching when invokedynamic/invokehandle call site is not linked Summary: Do patching rather bailing out for unlinked call with appendix Reviewed-by: twisti, kvn
author roland
date Wed, 21 Aug 2013 13:34:45 +0200
parents b800986664f4
children 7944aba7ba41
comparison
equal deleted inserted replaced
12159:b17d8f6d9ed7 12160:f98f5d48f511
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