8138896: C1: NativeGeneralJump is mixed up with NativeCall in C1 patching code

Reviewed-by: twisti, vlivanov
This commit is contained in:
Martin Doerr 2015-10-05 23:53:59 +02:00
parent 039050a9f7
commit bd35ac3342
2 changed files with 2 additions and 2 deletions

View file

@ -36,7 +36,7 @@ void LIR_Assembler::patching_epilog(PatchingStub* patch, LIR_PatchCode patch_cod
// We must have enough patching space so that call can be inserted. // We must have enough patching space so that call can be inserted.
// We cannot use fat nops here, since the concurrent code rewrite may transiently // We cannot use fat nops here, since the concurrent code rewrite may transiently
// create the illegal instruction sequence. // create the illegal instruction sequence.
while ((intx) _masm->pc() - (intx) patch->pc_start() < NativeCall::instruction_size) { while ((intx) _masm->pc() - (intx) patch->pc_start() < NativeGeneralJump::instruction_size) {
_masm->nop(); _masm->nop();
} }
patch->install(_masm, patch_code, obj, info); patch->install(_masm, patch_code, obj, info);

View file

@ -1163,7 +1163,7 @@ JRT_ENTRY(void, Runtime1::patch_code(JavaThread* thread, Runtime1::StubID stub_i
} }
#endif #endif
for (int i = NativeCall::instruction_size; i < *byte_count; i++) { for (int i = NativeGeneralJump::instruction_size; i < *byte_count; i++) {
address ptr = copy_buff + i; address ptr = copy_buff + i;
int a_byte = (*ptr) & 0xFF; int a_byte = (*ptr) & 0xFF;
address dst = instr_pc + i; address dst = instr_pc + i;