Mercurial > hg > truffle
comparison src/cpu/sparc/vm/cppInterpreter_sparc.cpp @ 4970:33df1aeaebbf
Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Mon, 27 Feb 2012 13:10:13 +0100 |
parents | 069ab3f976d3 |
children | 8a48c2906f91 |
comparison
equal
deleted
inserted
replaced
4703:2cfb7fb2dce7 | 4970:33df1aeaebbf |
---|---|
764 __ br( Assembler::zero, false, Assembler::pt, not_static); | 764 __ br( Assembler::zero, false, Assembler::pt, not_static); |
765 __ delayed()-> | 765 __ delayed()-> |
766 // get native function entry point(O0 is a good temp until the very end) | 766 // get native function entry point(O0 is a good temp until the very end) |
767 ld_ptr(Address(G5_method, 0, in_bytes(methodOopDesc::native_function_offset())), O0); | 767 ld_ptr(Address(G5_method, 0, in_bytes(methodOopDesc::native_function_offset())), O0); |
768 // for static methods insert the mirror argument | 768 // for static methods insert the mirror argument |
769 const int mirror_offset = klassOopDesc::klass_part_offset_in_bytes() + Klass::java_mirror_offset_in_bytes(); | 769 const int mirror_offset = in_bytes(Klass::java_mirror_offset()); |
770 | 770 |
771 __ ld_ptr(Address(G5_method, 0, in_bytes(methodOopDesc:: constants_offset())), O1); | 771 __ ld_ptr(Address(G5_method, 0, in_bytes(methodOopDesc:: constants_offset())), O1); |
772 __ ld_ptr(Address(O1, 0, constantPoolOopDesc::pool_holder_offset_in_bytes()), O1); | 772 __ ld_ptr(Address(O1, 0, constantPoolOopDesc::pool_holder_offset_in_bytes()), O1); |
773 __ ld_ptr(O1, mirror_offset, O1); | 773 __ ld_ptr(O1, mirror_offset, O1); |
774 // where the mirror handle body is allocated: | 774 // where the mirror handle body is allocated: |
1171 Label done; | 1171 Label done; |
1172 Label got_obj; | 1172 Label got_obj; |
1173 __ btst(JVM_ACC_SYNCHRONIZED, O1); | 1173 __ btst(JVM_ACC_SYNCHRONIZED, O1); |
1174 __ br( Assembler::zero, false, Assembler::pt, done); | 1174 __ br( Assembler::zero, false, Assembler::pt, done); |
1175 | 1175 |
1176 const int mirror_offset = klassOopDesc::klass_part_offset_in_bytes() + Klass::java_mirror_offset_in_bytes(); | 1176 const int mirror_offset = in_bytes(Klass::java_mirror_offset()); |
1177 __ delayed()->btst(JVM_ACC_STATIC, O1); | 1177 __ delayed()->btst(JVM_ACC_STATIC, O1); |
1178 __ ld_ptr(XXX_STATE(_locals), O1); | 1178 __ ld_ptr(XXX_STATE(_locals), O1); |
1179 __ br( Assembler::zero, true, Assembler::pt, got_obj); | 1179 __ br( Assembler::zero, true, Assembler::pt, got_obj); |
1180 __ delayed()->ld_ptr(O1, 0, O1); // get receiver for not-static case | 1180 __ delayed()->ld_ptr(O1, 0, O1); // get receiver for not-static case |
1181 __ ld_ptr(constants, O1); | 1181 __ ld_ptr(constants, O1); |