comparison src/cpu/sparc/vm/templateTable_sparc.cpp @ 3297:6431be02f3ac

Merge
author trims
date Fri, 29 Apr 2011 16:55:43 -0700
parents 286c498ae0d4
children 81d815b05abb
comparison
equal deleted inserted replaced
3265:d7cc76ea8d06 3297:6431be02f3ac
3291 3291
3292 load_invoke_cp_cache_entry(byte_no, G5_callsite, noreg, Rret, 3292 load_invoke_cp_cache_entry(byte_no, G5_callsite, noreg, Rret,
3293 /*virtual*/ false, /*vfinal*/ false, /*indy*/ true); 3293 /*virtual*/ false, /*vfinal*/ false, /*indy*/ true);
3294 __ mov(SP, O5_savedSP); // record SP that we wanted the callee to restore 3294 __ mov(SP, O5_savedSP); // record SP that we wanted the callee to restore
3295 3295
3296 __ verify_oop(G5_callsite);
3297
3298 // profile this call 3296 // profile this call
3299 __ profile_call(O4); 3297 __ profile_call(O4);
3300 3298
3301 // get return address 3299 // get return address
3302 AddressLiteral table(Interpreter::return_5_addrs_by_index_table()); 3300 AddressLiteral table(Interpreter::return_5_addrs_by_index_table());
3305 // Make sure we don't need to mask Rret for tosBits after the above shift 3303 // Make sure we don't need to mask Rret for tosBits after the above shift
3306 ConstantPoolCacheEntry::verify_tosBits(); 3304 ConstantPoolCacheEntry::verify_tosBits();
3307 __ sll(Rret, LogBytesPerWord, Rret); 3305 __ sll(Rret, LogBytesPerWord, Rret);
3308 __ ld_ptr(Rtemp, Rret, Rret); // get return address 3306 __ ld_ptr(Rtemp, Rret, Rret); // get return address
3309 3307
3308 __ verify_oop(G5_callsite);
3310 __ load_heap_oop(G5_callsite, __ delayed_value(java_lang_invoke_CallSite::target_offset_in_bytes, Rscratch), G3_method_handle); 3309 __ load_heap_oop(G5_callsite, __ delayed_value(java_lang_invoke_CallSite::target_offset_in_bytes, Rscratch), G3_method_handle);
3311 __ null_check(G3_method_handle); 3310 __ null_check(G3_method_handle);
3311 __ verify_oop(G3_method_handle);
3312 3312
3313 // Adjust Rret first so Llast_SP can be same as Rret 3313 // Adjust Rret first so Llast_SP can be same as Rret
3314 __ add(Rret, -frame::pc_return_offset, O7); 3314 __ add(Rret, -frame::pc_return_offset, O7);
3315 __ add(Lesp, BytesPerWord, Gargs); // setup parameter pointer 3315 __ add(Lesp, BytesPerWord, Gargs); // setup parameter pointer
3316 __ jump_to_method_handle_entry(G3_method_handle, Rtemp, /* emit_delayed_nop */ false); 3316 __ jump_to_method_handle_entry(G3_method_handle, Rtemp, /* emit_delayed_nop */ false);