123 void get_cache_entry_pointer_at_bcp(Register cache, 124 Register tmp, 125 int bcp_offset, 126 size_t index_size = sizeof(u2)); 127 void get_cache_index_at_bcp(Register index, 128 int bcp_offset, 129 size_t index_size = sizeof(u2)); 130 131 // load cpool->resolved_references(index); 132 void load_resolved_reference_at_index(Register result, Register index); 133 134 NOT_LP64(void f2ieee();) // truncate ftos to 32bits 135 NOT_LP64(void d2ieee();) // truncate dtos to 64bits 136 137 // Expression stack 138 void pop_ptr(Register r = rax); 139 void pop_i(Register r = rax); 140 void push_ptr(Register r = rax); 141 void push_i(Register r = rax); 142 143 #ifdef _LP64 144 void pop_l(Register r = rax); 145 void pop_f(XMMRegister r = xmm0); 146 void pop_d(XMMRegister r = xmm0); 147 void push_l(Register r = rax); 148 void push_f(XMMRegister r = xmm0); 149 void push_d(XMMRegister r = xmm0); 150 #else 151 void pop_l(Register lo = rax, Register hi = rdx); 152 void pop_f(); 153 void pop_d(); 154 155 void push_l(Register lo = rax, Register hi = rdx); 156 void push_d(Register r = rax); 157 void push_f(); 158 #endif // _LP64 159 160 void pop(Register r) { ((MacroAssembler*)this)->pop(r); } 161 void push(Register r) { ((MacroAssembler*)this)->push(r); } 162 void push(int32_t imm ) { ((MacroAssembler*)this)->push(imm); } 163 164 void pop(TosState state); // transition vtos -> state 165 void push(TosState state); // transition state -> vtos 166 167 // These are dummies to prevent surprise implicit conversions to Register 168 void pop(void* v); // Add unimplemented ambiguous method 169 void push(void* v); // Add unimplemented ambiguous method 170 171 void empty_expression_stack() { 172 movptr(rsp, Address(rbp, frame::interpreter_frame_monitor_block_top_offset * wordSize)); 173 // NULL last_sp until next java call 174 movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD); 175 } 176 | 123 void get_cache_entry_pointer_at_bcp(Register cache, 124 Register tmp, 125 int bcp_offset, 126 size_t index_size = sizeof(u2)); 127 void get_cache_index_at_bcp(Register index, 128 int bcp_offset, 129 size_t index_size = sizeof(u2)); 130 131 // load cpool->resolved_references(index); 132 void load_resolved_reference_at_index(Register result, Register index); 133 134 NOT_LP64(void f2ieee();) // truncate ftos to 32bits 135 NOT_LP64(void d2ieee();) // truncate dtos to 64bits 136 137 // Expression stack 138 void pop_ptr(Register r = rax); 139 void pop_i(Register r = rax); 140 void push_ptr(Register r = rax); 141 void push_i(Register r = rax); 142 143 void push_f(XMMRegister r); 144 void pop_f(XMMRegister r); 145 void pop_d(XMMRegister r); 146 void push_d(XMMRegister r); 147 #ifdef _LP64 148 void pop_l(Register r = rax); 149 void push_l(Register r = rax); 150 #else 151 void pop_l(Register lo = rax, Register hi = rdx); 152 void pop_f(); 153 void pop_d(); 154 155 void push_l(Register lo = rax, Register hi = rdx); 156 void push_d(); 157 void push_f(); 158 #endif // _LP64 159 160 void pop(Register r) { ((MacroAssembler*)this)->pop(r); } 161 void push(Register r) { ((MacroAssembler*)this)->push(r); } 162 void push(int32_t imm ) { ((MacroAssembler*)this)->push(imm); } 163 164 void pop(TosState state); // transition vtos -> state 165 void push(TosState state); // transition state -> vtos 166 167 // These are dummies to prevent surprise implicit conversions to Register 168 void pop(void* v); // Add unimplemented ambiguous method 169 void push(void* v); // Add unimplemented ambiguous method 170 171 void empty_expression_stack() { 172 movptr(rsp, Address(rbp, frame::interpreter_frame_monitor_block_top_offset * wordSize)); 173 // NULL last_sp until next java call 174 movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD); 175 } 176 |