hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp
Print this page
rev 611 : Merge
*** 1,10 ****
- #ifdef USE_PRAGMA_IDENT_HDR
- #pragma ident "@(#)c1_MacroAssembler_x86.hpp 1.36 07/07/02 16:50:32 JVM"
- #endif
/*
! * Copyright 1999-2005 Sun Microsystems, Inc. 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.
--- 1,7 ----
/*
! * Copyright 1999-2008 Sun Microsystems, Inc. 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.
*** 95,114 ****
void set_rsp_offset(int n) { _rsp_offset = n; }
// Note: NEVER push values directly, but only through following push_xxx functions;
// This helps us to track the rsp changes compared to the entry rsp (->_rsp_offset)
! void push_jint (jint i) { _rsp_offset++; pushl(i); }
void push_oop (jobject o) { _rsp_offset++; pushoop(o); }
! void push_addr (Address a) { _rsp_offset++; pushl(a); }
! void push_reg (Register r) { _rsp_offset++; pushl(r); }
! void pop (Register r) { _rsp_offset--; popl (r); assert(_rsp_offset >= 0, "stack offset underflow"); }
void dec_stack (int nof_words) {
_rsp_offset -= nof_words;
assert(_rsp_offset >= 0, "stack offset underflow");
! addl(rsp, wordSize * nof_words);
}
void dec_stack_after_call (int nof_words) {
_rsp_offset -= nof_words;
assert(_rsp_offset >= 0, "stack offset underflow");
--- 92,112 ----
void set_rsp_offset(int n) { _rsp_offset = n; }
// Note: NEVER push values directly, but only through following push_xxx functions;
// This helps us to track the rsp changes compared to the entry rsp (->_rsp_offset)
! void push_jint (jint i) { _rsp_offset++; push(i); }
void push_oop (jobject o) { _rsp_offset++; pushoop(o); }
! // Seems to always be in wordSize
! void push_addr (Address a) { _rsp_offset++; pushptr(a); }
! void push_reg (Register r) { _rsp_offset++; push(r); }
! void pop_reg (Register r) { _rsp_offset--; pop(r); assert(_rsp_offset >= 0, "stack offset underflow"); }
void dec_stack (int nof_words) {
_rsp_offset -= nof_words;
assert(_rsp_offset >= 0, "stack offset underflow");
! addptr(rsp, wordSize * nof_words);
}
void dec_stack_after_call (int nof_words) {
_rsp_offset -= nof_words;
assert(_rsp_offset >= 0, "stack offset underflow");