src/share/vm/opto/chaitin.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/chaitin.cpp Thu Feb 16 10:56:39 2012
--- new/src/share/vm/opto/chaitin.cpp Thu Feb 16 10:56:39 2012
*** 1,7 ****
--- 1,7 ----
/*
! * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
! * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 1944,1965 ****
--- 1944,1977 ----
// Old SP
tty->print_cr("# -- Old %s -- Framesize: %d --",fp,
reg2offset_unchecked(OptoReg::add(_matcher._old_SP,-1)) - reg2offset_unchecked(_matcher._new_SP)+jintSize);
// Preserve area dump
+ int regs_per_slot = NOT_LP64(1) LP64_ONLY(2);
+ int fixed_slots = C->fixed_slots();
+ OptoReg::Name begin_in_preserve = OptoReg::add(_matcher._old_SP, -(int)C->in_preserve_stack_slots());
+ OptoReg::Name return_addr = _matcher.return_addr();
+
reg = OptoReg::add(reg, -1);
! while( OptoReg::is_stack(reg)) {
! while (OptoReg::is_stack(reg)) {
tty->print("#r%3.3d %s+%2d: ",reg,fp,reg2offset_unchecked(reg));
! if( _matcher.return_addr() == reg )
! if (return_addr == reg) {
tty->print_cr("return address");
else if( _matcher.return_addr() == OptoReg::add(reg,1) &&
VerifyStackAtCalls )
+ } else if (reg >= begin_in_preserve) {
+ // Preserved slots are present on x86
+ if (return_addr == OptoReg::add(reg, regs_per_slot))
+ tty->print_cr("saved fp register");
+ else if (return_addr == OptoReg::add(reg, 2*regs_per_slot) &&
+ VerifyStackAtCalls)
tty->print_cr("0xBADB100D +VerifyStackAtCalls");
else if ((int)OptoReg::reg2stack(reg) < C->fixed_slots())
tty->print_cr("Fixed slot %d", OptoReg::reg2stack(reg));
else
! tty->print_cr("pad2, in_preserve");
! tty->print_cr("in_preserve");
+ } else if ((int)OptoReg::reg2stack(reg) < fixed_slots) {
+ tty->print_cr("Fixed slot %d", OptoReg::reg2stack(reg));
+ } else {
+ tty->print_cr("pad2, stack alignment");
+ }
reg = OptoReg::add(reg, -1);
}
// Spill area dump
reg = OptoReg::add(_matcher._new_SP, _framesize );
src/share/vm/opto/chaitin.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File