< prev index next >

src/cpu/arm/vm/interp_masm_arm.hpp

Print this page


 124   // Helpers for runtime call arguments/results
 125   void get_const(Register reg)                             { ldr(reg, Address(Rmethod, Method::const_offset())); }
 126   void get_constant_pool(Register reg)                     { get_const(reg); ldr(reg, Address(reg, ConstMethod::constants_offset())); }
 127   void get_constant_pool_cache(Register reg)               { get_constant_pool(reg); ldr(reg, Address(reg, ConstantPool::cache_offset_in_bytes())); }
 128   void get_cpool_and_tags(Register cpool, Register tags)   { get_constant_pool(cpool); ldr(tags, Address(cpool, ConstantPool::tags_offset_in_bytes())); }
 129 
 130   // Sets reg. Blows Rtemp.
 131   void get_unsigned_2_byte_index_at_bcp(Register reg, int bcp_offset);
 132 
 133   // Sets index. Blows reg_tmp.
 134   void get_index_at_bcp(Register index, int bcp_offset, Register reg_tmp, size_t index_size = sizeof(u2));
 135   // Sets cache, index.
 136   void get_cache_and_index_at_bcp(Register cache, Register index, int bcp_offset, size_t index_size = sizeof(u2));
 137   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));
 138   // Sets cache. Blows reg_tmp.
 139   void get_cache_entry_pointer_at_bcp(Register cache, Register reg_tmp, int bcp_offset, size_t index_size = sizeof(u2));
 140 
 141   // Load object from cpool->resolved_references(*bcp+1)
 142   void load_resolved_reference_at_index(Register result, Register tmp);
 143 



 144   void store_check_part1(Register card_table_base);                // Sets card_table_base register.
 145   void store_check_part2(Register obj, Register card_table_base, Register tmp);
 146 
 147   void set_card(Register card_table_base, Address card_table_addr, Register tmp);
 148 
 149   void pop_ptr(Register r);
 150   void pop_i(Register r = R0_tos);
 151 #ifdef AARCH64
 152   void pop_l(Register r = R0_tos);
 153 #else
 154   void pop_l(Register lo = R0_tos_lo, Register hi = R1_tos_hi);
 155 #endif
 156   void pop_f(FloatRegister fd);
 157   void pop_d(FloatRegister fd);
 158 
 159   void push_ptr(Register r);
 160   void push_i(Register r = R0_tos);
 161 #ifdef AARCH64
 162   void push_l(Register r = R0_tos);
 163 #else




 124   // Helpers for runtime call arguments/results
 125   void get_const(Register reg)                             { ldr(reg, Address(Rmethod, Method::const_offset())); }
 126   void get_constant_pool(Register reg)                     { get_const(reg); ldr(reg, Address(reg, ConstMethod::constants_offset())); }
 127   void get_constant_pool_cache(Register reg)               { get_constant_pool(reg); ldr(reg, Address(reg, ConstantPool::cache_offset_in_bytes())); }
 128   void get_cpool_and_tags(Register cpool, Register tags)   { get_constant_pool(cpool); ldr(tags, Address(cpool, ConstantPool::tags_offset_in_bytes())); }
 129 
 130   // Sets reg. Blows Rtemp.
 131   void get_unsigned_2_byte_index_at_bcp(Register reg, int bcp_offset);
 132 
 133   // Sets index. Blows reg_tmp.
 134   void get_index_at_bcp(Register index, int bcp_offset, Register reg_tmp, size_t index_size = sizeof(u2));
 135   // Sets cache, index.
 136   void get_cache_and_index_at_bcp(Register cache, Register index, int bcp_offset, size_t index_size = sizeof(u2));
 137   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));
 138   // Sets cache. Blows reg_tmp.
 139   void get_cache_entry_pointer_at_bcp(Register cache, Register reg_tmp, int bcp_offset, size_t index_size = sizeof(u2));
 140 
 141   // Load object from cpool->resolved_references(*bcp+1)
 142   void load_resolved_reference_at_index(Register result, Register tmp);
 143 
 144   // load cpool->resolved_klass_at(index); Rtemp is corrupted upon return
 145   void load_resolved_klass_at_offset(Register Rcpool, Register Rindex, Register Rklass);
 146 
 147   void store_check_part1(Register card_table_base);                // Sets card_table_base register.
 148   void store_check_part2(Register obj, Register card_table_base, Register tmp);
 149 
 150   void set_card(Register card_table_base, Address card_table_addr, Register tmp);
 151 
 152   void pop_ptr(Register r);
 153   void pop_i(Register r = R0_tos);
 154 #ifdef AARCH64
 155   void pop_l(Register r = R0_tos);
 156 #else
 157   void pop_l(Register lo = R0_tos_lo, Register hi = R1_tos_hi);
 158 #endif
 159   void pop_f(FloatRegister fd);
 160   void pop_d(FloatRegister fd);
 161 
 162   void push_ptr(Register r);
 163   void push_i(Register r = R0_tos);
 164 #ifdef AARCH64
 165   void push_l(Register r = R0_tos);
 166 #else


< prev index next >