100 void push_jint (jint i) { _rsp_offset++; push(i); }
101 void push_oop (jobject o) { _rsp_offset++; pushoop(o); }
102 // Seems to always be in wordSize
103 void push_addr (Address a) { _rsp_offset++; pushptr(a); }
104 void push_reg (Register r) { _rsp_offset++; push(r); }
105 void pop_reg (Register r) { _rsp_offset--; pop(r); assert(_rsp_offset >= 0, "stack offset underflow"); }
106
107 void dec_stack (int nof_words) {
108 _rsp_offset -= nof_words;
109 assert(_rsp_offset >= 0, "stack offset underflow");
110 addptr(rsp, wordSize * nof_words);
111 }
112
113 void dec_stack_after_call (int nof_words) {
114 _rsp_offset -= nof_words;
115 assert(_rsp_offset >= 0, "stack offset underflow");
116 }
117
118 void invalidate_registers(bool inv_rax, bool inv_rbx, bool inv_rcx, bool inv_rdx, bool inv_rsi, bool inv_rdi) PRODUCT_RETURN;
119
120 #endif // CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP
|
100 void push_jint (jint i) { _rsp_offset++; push(i); }
101 void push_oop (jobject o) { _rsp_offset++; pushoop(o); }
102 // Seems to always be in wordSize
103 void push_addr (Address a) { _rsp_offset++; pushptr(a); }
104 void push_reg (Register r) { _rsp_offset++; push(r); }
105 void pop_reg (Register r) { _rsp_offset--; pop(r); assert(_rsp_offset >= 0, "stack offset underflow"); }
106
107 void dec_stack (int nof_words) {
108 _rsp_offset -= nof_words;
109 assert(_rsp_offset >= 0, "stack offset underflow");
110 addptr(rsp, wordSize * nof_words);
111 }
112
113 void dec_stack_after_call (int nof_words) {
114 _rsp_offset -= nof_words;
115 assert(_rsp_offset >= 0, "stack offset underflow");
116 }
117
118 void invalidate_registers(bool inv_rax, bool inv_rbx, bool inv_rcx, bool inv_rdx, bool inv_rsi, bool inv_rdi) PRODUCT_RETURN;
119
120 // This platform only uses signal-based null checks. The Label is not needed.
121 void null_check(Register r, Label *Lnull = NULL) { MacroAssembler::null_check(r); }
122
123 #endif // CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP
|