503 |
503 |
504 |
504 |
505 void InterpreterMacroAssembler::load_receiver(Register param_count, |
505 void InterpreterMacroAssembler::load_receiver(Register param_count, |
506 Register recv) { |
506 Register recv) { |
507 sll(param_count, Interpreter::logStackElementSize, param_count); |
507 sll(param_count, Interpreter::logStackElementSize, param_count); |
508 ld_ptr(Lesp, param_count, recv); // gets receiver Oop |
508 ld_ptr(Lesp, param_count, recv); // gets receiver oop |
509 } |
509 } |
510 |
510 |
511 void InterpreterMacroAssembler::empty_expression_stack() { |
511 void InterpreterMacroAssembler::empty_expression_stack() { |
512 // Reset Lesp. |
512 // Reset Lesp. |
513 sub( Lmonitors, wordSize, Lesp ); |
513 sub( Lmonitors, wordSize, Lesp ); |
765 int bcp_offset, |
765 int bcp_offset, |
766 size_t index_size) { |
766 size_t index_size) { |
767 get_cache_and_index_at_bcp(cache, temp, bcp_offset, index_size); |
767 get_cache_and_index_at_bcp(cache, temp, bcp_offset, index_size); |
768 ld_ptr(cache, constantPoolCacheOopDesc::base_offset() + ConstantPoolCacheEntry::indices_offset(), bytecode); |
768 ld_ptr(cache, constantPoolCacheOopDesc::base_offset() + ConstantPoolCacheEntry::indices_offset(), bytecode); |
769 const int shift_count = (1 + byte_no) * BitsPerByte; |
769 const int shift_count = (1 + byte_no) * BitsPerByte; |
770 srl( bytecode, shift_count, bytecode); |
770 assert((byte_no == TemplateTable::f1_byte && shift_count == ConstantPoolCacheEntry::bytecode_1_shift) || |
771 and3(bytecode, 0xFF, bytecode); |
771 (byte_no == TemplateTable::f2_byte && shift_count == ConstantPoolCacheEntry::bytecode_2_shift), |
|
772 "correct shift count"); |
|
773 srl(bytecode, shift_count, bytecode); |
|
774 assert(ConstantPoolCacheEntry::bytecode_1_mask == ConstantPoolCacheEntry::bytecode_2_mask, "common mask"); |
|
775 and3(bytecode, ConstantPoolCacheEntry::bytecode_1_mask, bytecode); |
772 } |
776 } |
773 |
777 |
774 |
778 |
775 void InterpreterMacroAssembler::get_cache_entry_pointer_at_bcp(Register cache, Register tmp, |
779 void InterpreterMacroAssembler::get_cache_entry_pointer_at_bcp(Register cache, Register tmp, |
776 int bcp_offset, size_t index_size) { |
780 int bcp_offset, size_t index_size) { |