comparison src/cpu/sparc/vm/assembler_sparc.cpp @ 2357:8033953d67ff

7012648: move JSR 292 to package java.lang.invoke and adjust names Summary: package and class renaming only; delete unused methods and classes Reviewed-by: twisti
author jrose
date Fri, 11 Mar 2011 22:34:57 -0800
parents 28bf941f445e
children e1162778c1c8
comparison
equal deleted inserted replaced
2356:72dee110246f 2357:8033953d67ff
3177 void MacroAssembler::check_method_handle_type(Register mtype_reg, Register mh_reg, 3177 void MacroAssembler::check_method_handle_type(Register mtype_reg, Register mh_reg,
3178 Register temp_reg, 3178 Register temp_reg,
3179 Label& wrong_method_type) { 3179 Label& wrong_method_type) {
3180 assert_different_registers(mtype_reg, mh_reg, temp_reg); 3180 assert_different_registers(mtype_reg, mh_reg, temp_reg);
3181 // compare method type against that of the receiver 3181 // compare method type against that of the receiver
3182 RegisterOrConstant mhtype_offset = delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg); 3182 RegisterOrConstant mhtype_offset = delayed_value(java_lang_invoke_MethodHandle::type_offset_in_bytes, temp_reg);
3183 load_heap_oop(mh_reg, mhtype_offset, temp_reg); 3183 load_heap_oop(mh_reg, mhtype_offset, temp_reg);
3184 cmp(temp_reg, mtype_reg); 3184 cmp(temp_reg, mtype_reg);
3185 br(Assembler::notEqual, false, Assembler::pn, wrong_method_type); 3185 br(Assembler::notEqual, false, Assembler::pn, wrong_method_type);
3186 delayed()->nop(); 3186 delayed()->nop();
3187 } 3187 }
3193 // method handle's MethodType. This macro hides the distinction. 3193 // method handle's MethodType. This macro hides the distinction.
3194 void MacroAssembler::load_method_handle_vmslots(Register vmslots_reg, Register mh_reg, 3194 void MacroAssembler::load_method_handle_vmslots(Register vmslots_reg, Register mh_reg,
3195 Register temp_reg) { 3195 Register temp_reg) {
3196 assert_different_registers(vmslots_reg, mh_reg, temp_reg); 3196 assert_different_registers(vmslots_reg, mh_reg, temp_reg);
3197 // load mh.type.form.vmslots 3197 // load mh.type.form.vmslots
3198 if (java_dyn_MethodHandle::vmslots_offset_in_bytes() != 0) { 3198 if (java_lang_invoke_MethodHandle::vmslots_offset_in_bytes() != 0) {
3199 // hoist vmslots into every mh to avoid dependent load chain 3199 // hoist vmslots into every mh to avoid dependent load chain
3200 ld( Address(mh_reg, delayed_value(java_dyn_MethodHandle::vmslots_offset_in_bytes, temp_reg)), vmslots_reg); 3200 ld( Address(mh_reg, delayed_value(java_lang_invoke_MethodHandle::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
3201 } else { 3201 } else {
3202 Register temp2_reg = vmslots_reg; 3202 Register temp2_reg = vmslots_reg;
3203 load_heap_oop(Address(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg)), temp2_reg); 3203 load_heap_oop(Address(mh_reg, delayed_value(java_lang_invoke_MethodHandle::type_offset_in_bytes, temp_reg)), temp2_reg);
3204 load_heap_oop(Address(temp2_reg, delayed_value(java_dyn_MethodType::form_offset_in_bytes, temp_reg)), temp2_reg); 3204 load_heap_oop(Address(temp2_reg, delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes, temp_reg)), temp2_reg);
3205 ld( Address(temp2_reg, delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)), vmslots_reg); 3205 ld( Address(temp2_reg, delayed_value(java_lang_invoke_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
3206 } 3206 }
3207 } 3207 }
3208 3208
3209 3209
3210 void MacroAssembler::jump_to_method_handle_entry(Register mh_reg, Register temp_reg, bool emit_delayed_nop) { 3210 void MacroAssembler::jump_to_method_handle_entry(Register mh_reg, Register temp_reg, bool emit_delayed_nop) {
3211 assert(mh_reg == G3_method_handle, "caller must put MH object in G3"); 3211 assert(mh_reg == G3_method_handle, "caller must put MH object in G3");
3212 assert_different_registers(mh_reg, temp_reg); 3212 assert_different_registers(mh_reg, temp_reg);
3213 3213
3214 // pick out the interpreted side of the handler 3214 // pick out the interpreted side of the handler
3215 // NOTE: vmentry is not an oop! 3215 // NOTE: vmentry is not an oop!
3216 ld_ptr(mh_reg, delayed_value(java_dyn_MethodHandle::vmentry_offset_in_bytes, temp_reg), temp_reg); 3216 ld_ptr(mh_reg, delayed_value(java_lang_invoke_MethodHandle::vmentry_offset_in_bytes, temp_reg), temp_reg);
3217 3217
3218 // off we go... 3218 // off we go...
3219 ld_ptr(temp_reg, MethodHandleEntry::from_interpreted_entry_offset_in_bytes(), temp_reg); 3219 ld_ptr(temp_reg, MethodHandleEntry::from_interpreted_entry_offset_in_bytes(), temp_reg);
3220 jmp(temp_reg, 0); 3220 jmp(temp_reg, 0);
3221 3221