comparison src/cpu/sparc/vm/interp_masm_sparc.cpp @ 6266:1d7922586cf6

7023639: JSR 292 method handle invocation needs a fast path for compiled code 6984705: JSR 292 method handle creation should not go through JNI Summary: remove assembly code for JDK 7 chained method handles Reviewed-by: jrose, twisti, kvn, mhaupt Contributed-by: John Rose <john.r.rose@oracle.com>, Christian Thalinger <christian.thalinger@oracle.com>, Michael Haupt <michael.haupt@oracle.com>
author twisti
date Tue, 24 Jul 2012 10:51:00 -0700
parents 2fe087c3e814
children da91efe96a93
comparison
equal deleted inserted replaced
6241:aba91a731143 6266: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) {