513 } |
513 } |
514 #endif // ASSERT |
514 #endif // ASSERT |
515 |
515 |
516 // get synchronization object |
516 // get synchronization object |
517 { |
517 { |
518 const int mirror_offset = klassOopDesc::klass_part_offset_in_bytes() + |
518 const int mirror_offset = in_bytes(Klass::java_mirror_offset()); |
519 Klass::java_mirror_offset_in_bytes(); |
|
520 Label done; |
519 Label done; |
521 __ movl(rax, access_flags); |
520 __ movl(rax, access_flags); |
522 __ testl(rax, JVM_ACC_STATIC); |
521 __ testl(rax, JVM_ACC_STATIC); |
523 // get receiver (assume this is frequent case) |
522 // get receiver (assume this is frequent case) |
524 __ movptr(rax, Address(r14, Interpreter::local_offset_in_bytes(0))); |
523 __ movptr(rax, Address(r14, Interpreter::local_offset_in_bytes(0))); |
1014 rax); |
1013 rax); |
1015 |
1014 |
1016 // pass mirror handle if static call |
1015 // pass mirror handle if static call |
1017 { |
1016 { |
1018 Label L; |
1017 Label L; |
1019 const int mirror_offset = klassOopDesc::klass_part_offset_in_bytes() + |
1018 const int mirror_offset = in_bytes(Klass::java_mirror_offset()); |
1020 Klass::java_mirror_offset_in_bytes(); |
|
1021 __ movl(t, Address(method, methodOopDesc::access_flags_offset())); |
1019 __ movl(t, Address(method, methodOopDesc::access_flags_offset())); |
1022 __ testl(t, JVM_ACC_STATIC); |
1020 __ testl(t, JVM_ACC_STATIC); |
1023 __ jcc(Assembler::zero, L); |
1021 __ jcc(Assembler::zero, L); |
1024 // get mirror |
1022 // get mirror |
1025 __ movptr(t, Address(method, methodOopDesc::constants_offset())); |
1023 __ movptr(t, Address(method, methodOopDesc::constants_offset())); |