src/cpu/sparc/vm/interp_masm_sparc.cpp

changeset 3969
1d7922586cf6
parent 3826
2fe087c3e814
child 4037
da91efe96a93
equal deleted inserted replaced
3944:aba91a731143 3969:1d7922586cf6
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) {

mercurial