83 void get_method(Register reg) { 84 movptr(reg, Address(rbp, frame::interpreter_frame_method_offset * wordSize)); 85 } 86 87 void get_constant_pool(Register reg) { 88 get_method(reg); 89 movptr(reg, Address(reg, methodOopDesc::constants_offset())); 90 } 91 92 void get_constant_pool_cache(Register reg) { 93 get_constant_pool(reg); 94 movptr(reg, Address(reg, constantPoolOopDesc::cache_offset_in_bytes())); 95 } 96 97 void get_cpool_and_tags(Register cpool, Register tags) { 98 get_constant_pool(cpool); 99 movptr(tags, Address(cpool, constantPoolOopDesc::tags_offset_in_bytes())); 100 } 101 102 void get_unsigned_2_byte_index_at_bcp(Register reg, int bcp_offset); 103 void get_cache_and_index_at_bcp(Register cache, Register index, 104 int bcp_offset, size_t index_size = sizeof(u2)); 105 void get_cache_entry_pointer_at_bcp(Register cache, Register tmp, 106 int bcp_offset, size_t index_size = sizeof(u2)); 107 void get_cache_index_at_bcp(Register index, int bcp_offset, size_t index_size = sizeof(u2)); 108 109 110 void pop_ptr(Register r = rax); 111 void pop_i(Register r = rax); 112 void pop_l(Register r = rax); 113 void pop_f(XMMRegister r = xmm0); 114 void pop_d(XMMRegister r = xmm0); 115 void push_ptr(Register r = rax); 116 void push_i(Register r = rax); 117 void push_l(Register r = rax); 118 void push_f(XMMRegister r = xmm0); 119 void push_d(XMMRegister r = xmm0); 120 121 void pop(Register r ) { ((MacroAssembler*)this)->pop(r); } 122 123 void push(Register r ) { ((MacroAssembler*)this)->push(r); } 124 void push(int32_t imm ) { ((MacroAssembler*)this)->push(imm); } 125 126 void pop(TosState state); // transition vtos -> state 127 void push(TosState state); // transition state -> vtos 128 129 void empty_expression_stack() { | 83 void get_method(Register reg) { 84 movptr(reg, Address(rbp, frame::interpreter_frame_method_offset * wordSize)); 85 } 86 87 void get_constant_pool(Register reg) { 88 get_method(reg); 89 movptr(reg, Address(reg, methodOopDesc::constants_offset())); 90 } 91 92 void get_constant_pool_cache(Register reg) { 93 get_constant_pool(reg); 94 movptr(reg, Address(reg, constantPoolOopDesc::cache_offset_in_bytes())); 95 } 96 97 void get_cpool_and_tags(Register cpool, Register tags) { 98 get_constant_pool(cpool); 99 movptr(tags, Address(cpool, constantPoolOopDesc::tags_offset_in_bytes())); 100 } 101 102 void get_unsigned_2_byte_index_at_bcp(Register reg, int bcp_offset); 103 void get_cache_and_index_at_bcp(Register cache, Register index, int bcp_offset, size_t index_size = sizeof(u2)); 104 void get_cache_and_index_and_bytecode_at_bcp(Register cache, Register index, Register bytecode, int byte_no, int bcp_offset, size_t index_size = sizeof(u2)); 105 void get_cache_entry_pointer_at_bcp(Register cache, Register tmp, int bcp_offset, size_t index_size = sizeof(u2)); 106 void get_cache_index_at_bcp(Register index, int bcp_offset, size_t index_size = sizeof(u2)); 107 108 void pop_ptr(Register r = rax); 109 void pop_i(Register r = rax); 110 void pop_l(Register r = rax); 111 void pop_f(XMMRegister r = xmm0); 112 void pop_d(XMMRegister r = xmm0); 113 void push_ptr(Register r = rax); 114 void push_i(Register r = rax); 115 void push_l(Register r = rax); 116 void push_f(XMMRegister r = xmm0); 117 void push_d(XMMRegister r = xmm0); 118 119 void pop(Register r ) { ((MacroAssembler*)this)->pop(r); } 120 121 void push(Register r ) { ((MacroAssembler*)this)->push(r); } 122 void push(int32_t imm ) { ((MacroAssembler*)this)->push(imm); } 123 124 void pop(TosState state); // transition vtos -> state 125 void push(TosState state); // transition state -> vtos 126 127 void empty_expression_stack() { |