Mercurial > hg > graal-jvmci-8
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) { |