mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 11:04:34 +02:00
7125136: SIGILL on linux amd64 in gc/ArrayJuggle/Juggle29
For C2 moved saving EBP after ESP adjustment. For C1 generated 5 byte nop instruction first if needed. Reviewed-by: never, twisti, azeemj
This commit is contained in:
parent
24b07e7ae6
commit
539616f85a
6 changed files with 205 additions and 207 deletions
|
@ -381,6 +381,16 @@ void C1_MacroAssembler::unverified_entry(Register receiver, Register ic_klass) {
|
|||
|
||||
|
||||
void C1_MacroAssembler::verified_entry() {
|
||||
if (C1Breakpoint || VerifyFPU || !UseStackBanging) {
|
||||
// Verified Entry first instruction should be 5 bytes long for correct
|
||||
// patching by patch_verified_entry().
|
||||
//
|
||||
// C1Breakpoint and VerifyFPU have one byte first instruction.
|
||||
// Also first instruction will be one byte "push(rbp)" if stack banging
|
||||
// code is not generated (see build_frame() above).
|
||||
// For all these cases generate long instruction first.
|
||||
fat_nop();
|
||||
}
|
||||
if (C1Breakpoint)int3();
|
||||
// build frame
|
||||
verify_FPU(0, "method_entry");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue