src/cpu/x86/vm/cppInterpreter_x86.cpp

changeset 3391
069ab3f976d3
parent 2901
3d2ab563047a
child 3826
2fe087c3e814
equal deleted inserted replaced
3390:65149e74c706 3391:069ab3f976d3
509 509
510 // Allocate initial monitor and pre initialize it 510 // Allocate initial monitor and pre initialize it
511 // get synchronization object 511 // get synchronization object
512 512
513 Label done; 513 Label done;
514 const int mirror_offset = klassOopDesc::klass_part_offset_in_bytes() + Klass::java_mirror_offset_in_bytes(); 514 const int mirror_offset = in_bytes(Klass::java_mirror_offset());
515 __ movl(rax, access_flags); 515 __ movl(rax, access_flags);
516 __ testl(rax, JVM_ACC_STATIC); 516 __ testl(rax, JVM_ACC_STATIC);
517 __ movptr(rax, Address(locals, 0)); // get receiver (assume this is frequent case) 517 __ movptr(rax, Address(locals, 0)); // get receiver (assume this is frequent case)
518 __ jcc(Assembler::zero, done); 518 __ jcc(Assembler::zero, done);
519 __ movptr(rax, Address(rbx, methodOopDesc::constants_offset())); 519 __ movptr(rax, Address(rbx, methodOopDesc::constants_offset()));
761 __ bind(L); 761 __ bind(L);
762 } 762 }
763 #endif // ASSERT 763 #endif // ASSERT
764 // get synchronization object 764 // get synchronization object
765 { Label done; 765 { Label done;
766 const int mirror_offset = klassOopDesc::klass_part_offset_in_bytes() + Klass::java_mirror_offset_in_bytes(); 766 const int mirror_offset = in_bytes(Klass::java_mirror_offset());
767 __ movl(rax, access_flags); 767 __ movl(rax, access_flags);
768 __ movptr(rdi, STATE(_locals)); // prepare to get receiver (assume common case) 768 __ movptr(rdi, STATE(_locals)); // prepare to get receiver (assume common case)
769 __ testl(rax, JVM_ACC_STATIC); 769 __ testl(rax, JVM_ACC_STATIC);
770 __ movptr(rax, Address(rdi, 0)); // get receiver (assume this is frequent case) 770 __ movptr(rax, Address(rdi, 0)); // get receiver (assume this is frequent case)
771 __ jcc(Assembler::zero, done); 771 __ jcc(Assembler::zero, done);
1178 __ bind(L); 1178 __ bind(L);
1179 } 1179 }
1180 1180
1181 // pass mirror handle if static call 1181 // pass mirror handle if static call
1182 { Label L; 1182 { Label L;
1183 const int mirror_offset = klassOopDesc::klass_part_offset_in_bytes() + Klass::java_mirror_offset_in_bytes(); 1183 const int mirror_offset = in_bytes(Klass::java_mirror_offset());
1184 __ movl(t, Address(method, methodOopDesc::access_flags_offset())); 1184 __ movl(t, Address(method, methodOopDesc::access_flags_offset()));
1185 __ testl(t, JVM_ACC_STATIC); 1185 __ testl(t, JVM_ACC_STATIC);
1186 __ jcc(Assembler::zero, L); 1186 __ jcc(Assembler::zero, L);
1187 // get mirror 1187 // get mirror
1188 __ movptr(t, Address(method, methodOopDesc:: constants_offset())); 1188 __ movptr(t, Address(method, methodOopDesc:: constants_offset()));

mercurial