500 __ btst(JVM_ACC_STATIC, O0); |
500 __ btst(JVM_ACC_STATIC, O0); |
501 __ br( Assembler::zero, true, Assembler::pt, done); |
501 __ br( Assembler::zero, true, Assembler::pt, done); |
502 __ delayed()->ld_ptr(Llocals, Interpreter::local_offset_in_bytes(0), O0); // get receiver for not-static case |
502 __ delayed()->ld_ptr(Llocals, Interpreter::local_offset_in_bytes(0), O0); // get receiver for not-static case |
503 |
503 |
504 // lock the mirror, not the Klass* |
504 // lock the mirror, not the Klass* |
505 __ load_mirror(O0, Lmethod); |
505 __ load_mirror(O0, Lmethod, Lscratch); |
506 |
506 |
507 #ifdef ASSERT |
507 #ifdef ASSERT |
508 __ tst(O0); |
508 __ tst(O0); |
509 __ breakpoint_trap(Assembler::zero, Assembler::ptr_cc); |
509 __ breakpoint_trap(Assembler::zero, Assembler::ptr_cc); |
510 #endif // ASSERT |
510 #endif // ASSERT |
808 __ add(Lbcp, in_bytes(ConstMethod::codes_offset()), Lbcp); |
808 __ add(Lbcp, in_bytes(ConstMethod::codes_offset()), Lbcp); |
809 } |
809 } |
810 __ mov( G5_method, Lmethod); // set Lmethod |
810 __ mov( G5_method, Lmethod); // set Lmethod |
811 // Get mirror and store it in the frame as GC root for this Method* |
811 // Get mirror and store it in the frame as GC root for this Method* |
812 Register mirror = LcpoolCache; |
812 Register mirror = LcpoolCache; |
813 __ load_mirror(mirror, Lmethod); |
813 __ load_mirror(mirror, Lmethod, Lscratch); |
814 __ st_ptr(mirror, FP, (frame::interpreter_frame_mirror_offset * wordSize) + STACK_BIAS); |
814 __ st_ptr(mirror, FP, (frame::interpreter_frame_mirror_offset * wordSize) + STACK_BIAS); |
815 __ get_constant_pool_cache(LcpoolCache); // set LcpoolCache |
815 __ get_constant_pool_cache(LcpoolCache); // set LcpoolCache |
816 __ sub(FP, rounded_vm_local_words * BytesPerWord, Lmonitors ); // set Lmonitors |
816 __ sub(FP, rounded_vm_local_words * BytesPerWord, Lmonitors ); // set Lmonitors |
817 __ add(Lmonitors, STACK_BIAS, Lmonitors); // Account for 64 bit stack bias |
817 __ add(Lmonitors, STACK_BIAS, Lmonitors); // Account for 64 bit stack bias |
818 __ sub(Lmonitors, BytesPerWord, Lesp); // set Lesp |
818 __ sub(Lmonitors, BytesPerWord, Lesp); // set Lesp |
1278 __ btst(JVM_ACC_STATIC, O0); |
1278 __ btst(JVM_ACC_STATIC, O0); |
1279 __ br( Assembler::zero, false, Assembler::pt, not_static); |
1279 __ br( Assembler::zero, false, Assembler::pt, not_static); |
1280 // get native function entry point(O0 is a good temp until the very end) |
1280 // get native function entry point(O0 is a good temp until the very end) |
1281 __ delayed()->ld_ptr(Lmethod, in_bytes(Method::native_function_offset()), O0); |
1281 __ delayed()->ld_ptr(Lmethod, in_bytes(Method::native_function_offset()), O0); |
1282 // for static methods insert the mirror argument |
1282 // for static methods insert the mirror argument |
1283 __ load_mirror(O1, Lmethod); |
1283 __ load_mirror(O1, Lmethod, G3_scratch); |
1284 #ifdef ASSERT |
1284 #ifdef ASSERT |
1285 if (!PrintSignatureHandlers) // do not dirty the output with this |
1285 if (!PrintSignatureHandlers) // do not dirty the output with this |
1286 { Label L; |
1286 { Label L; |
1287 __ br_notnull_short(O1, Assembler::pt, L); |
1287 __ br_notnull_short(O1, Assembler::pt, L); |
1288 __ stop("mirror is missing"); |
1288 __ stop("mirror is missing"); |