comparison src/share/vm/c1x/c1x_CodeInstaller.cpp @ 1441:f8ab19e5acae

Fix oop relocation for static stub calls.
author Thomas Wuerthinger <wuerthinger@ssw.jku.at>
date Wed, 03 Nov 2010 16:40:38 +0100
parents d0c8d3a2a7e8
children c0e244017dad
comparison
equal deleted inserted replaced
1440:4d1d3bd140f9 1441:f8ab19e5acae
589 case MARK_STATIC_CALL_STUB: { 589 case MARK_STATIC_CALL_STUB: {
590 assert(references->length() == 1, "static call stub needs one reference"); 590 assert(references->length() == 1, "static call stub needs one reference");
591 oop ref = ((oop*) references->base(T_OBJECT))[0]; 591 oop ref = ((oop*) references->base(T_OBJECT))[0];
592 address call_pc = _instructions->start() + CiTargetMethod_Site::pcOffset(ref); 592 address call_pc = _instructions->start() + CiTargetMethod_Site::pcOffset(ref);
593 _instructions->relocate(instruction, static_stub_Relocation::spec(call_pc)); 593 _instructions->relocate(instruction, static_stub_Relocation::spec(call_pc));
594 _instructions->relocate(instruction, oop_Relocation::spec_for_immediate(), Assembler::imm_operand);
594 break; 595 break;
595 } 596 }
596 case MARK_INVOKE_INVALID: 597 case MARK_INVOKE_INVALID:
597 case MARK_INVOKEINTERFACE: 598 case MARK_INVOKEINTERFACE:
598 case MARK_INVOKESTATIC: 599 case MARK_INVOKESTATIC: