103 void push(TosState state); // transition state -> vtos
104
105 void pop(Register r ) { ((MacroAssembler*)this)->pop(r); }
106
107 void push(Register r ) { ((MacroAssembler*)this)->push(r); }
108 void push(int32_t imm ) { ((MacroAssembler*)this)->push(imm); }
109
110 // These are dummies to prevent surprise implicit conversions to Register
111 void pop(void* v ); // Add unimplemented ambiguous method
112 void push(void* v ); // Add unimplemented ambiguous method
113
114 DEBUG_ONLY(void verify_stack_tag(frame::Tag t);)
115
116 #endif // CC_INTERP
117
118 #ifndef CC_INTERP
119
120 void empty_expression_stack() {
121 movptr(rsp, Address(rbp, frame::interpreter_frame_monitor_block_top_offset * wordSize));
122 // NULL last_sp until next java call
123 movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
124 }
125
126 // Tagged stack helpers for swap and dup
127 void load_ptr_and_tag(int n, Register val, Register tag);
128 void store_ptr_and_tag(int n, Register val, Register tag);
129
130 // Tagged Local support
131
132 void tag_local(frame::Tag tag, int n);
133 void tag_local(Register tag, int n);
134 void tag_local(frame::Tag tag, Register idx);
135 void tag_local(Register tag, Register idx);
136
137 #ifdef ASSERT
138 void verify_local_tag(frame::Tag tag, int n);
139 void verify_local_tag(frame::Tag tag, Register idx);
140 #endif // ASSERT
141
142 // Super call_VM calls - correspond to MacroAssembler::call_VM(_leaf) calls
143 void super_call_VM_leaf(address entry_point);
|
103 void push(TosState state); // transition state -> vtos
104
105 void pop(Register r ) { ((MacroAssembler*)this)->pop(r); }
106
107 void push(Register r ) { ((MacroAssembler*)this)->push(r); }
108 void push(int32_t imm ) { ((MacroAssembler*)this)->push(imm); }
109
110 // These are dummies to prevent surprise implicit conversions to Register
111 void pop(void* v ); // Add unimplemented ambiguous method
112 void push(void* v ); // Add unimplemented ambiguous method
113
114 DEBUG_ONLY(void verify_stack_tag(frame::Tag t);)
115
116 #endif // CC_INTERP
117
118 #ifndef CC_INTERP
119
120 void empty_expression_stack() {
121 movptr(rsp, Address(rbp, frame::interpreter_frame_monitor_block_top_offset * wordSize));
122 // NULL last_sp until next java call
123 movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), NULL_WORD);
124 }
125
126 // Tagged stack helpers for swap and dup
127 void load_ptr_and_tag(int n, Register val, Register tag);
128 void store_ptr_and_tag(int n, Register val, Register tag);
129
130 // Tagged Local support
131
132 void tag_local(frame::Tag tag, int n);
133 void tag_local(Register tag, int n);
134 void tag_local(frame::Tag tag, Register idx);
135 void tag_local(Register tag, Register idx);
136
137 #ifdef ASSERT
138 void verify_local_tag(frame::Tag tag, int n);
139 void verify_local_tag(frame::Tag tag, Register idx);
140 #endif // ASSERT
141
142 // Super call_VM calls - correspond to MacroAssembler::call_VM(_leaf) calls
143 void super_call_VM_leaf(address entry_point);
|