Mercurial > hg > graal-compiler
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 |