Mercurial > hg > graal-jvmci-8
comparison src/cpu/sparc/vm/methodHandles_sparc.cpp @ 7402:fd74228fd5ca
8004076: Move _max_locals and _size_of_parameters to ConstMethod for better sharing.
Summary: Move _max_locals and _size_of_parameters to ConstMethod for better sharing.
Reviewed-by: coleenp, minqi, jrose
author | jiangli |
---|---|
date | Tue, 11 Dec 2012 12:41:31 -0500 |
parents | f0c2369fda5a |
children | 989155e2d07a dc261f466b6d |
comparison
equal
deleted
inserted
replaced
7396:4a2ed49abd51 | 7402:fd74228fd5ca |
---|---|
169 // the following assumes that a Method* is normally compressed in the vmtarget field: | 169 // the following assumes that a Method* is normally compressed in the vmtarget field: |
170 __ ld_ptr( Address(method_temp, NONZERO(java_lang_invoke_MemberName::vmtarget_offset_in_bytes())), method_temp); | 170 __ ld_ptr( Address(method_temp, NONZERO(java_lang_invoke_MemberName::vmtarget_offset_in_bytes())), method_temp); |
171 | 171 |
172 if (VerifyMethodHandles && !for_compiler_entry) { | 172 if (VerifyMethodHandles && !for_compiler_entry) { |
173 // make sure recv is already on stack | 173 // make sure recv is already on stack |
174 __ load_sized_value(Address(method_temp, Method::size_of_parameters_offset()), | 174 __ ld_ptr(method_temp, in_bytes(Method::const_offset()), temp2); |
175 __ load_sized_value(Address(temp2, ConstMethod::size_of_parameters_offset()), | |
175 temp2, | 176 temp2, |
176 sizeof(u2), /*is_signed*/ false); | 177 sizeof(u2), /*is_signed*/ false); |
177 // assert(sizeof(u2) == sizeof(Method::_size_of_parameters), ""); | 178 // assert(sizeof(u2) == sizeof(Method::_size_of_parameters), ""); |
178 Label L; | 179 Label L; |
179 __ ld_ptr(__ argument_address(temp2, temp2, -1), temp2); | 180 __ ld_ptr(__ argument_address(temp2, temp2, -1), temp2); |
231 // First task: Find out how big the argument list is. | 232 // First task: Find out how big the argument list is. |
232 Address O4_first_arg_addr; | 233 Address O4_first_arg_addr; |
233 int ref_kind = signature_polymorphic_intrinsic_ref_kind(iid); | 234 int ref_kind = signature_polymorphic_intrinsic_ref_kind(iid); |
234 assert(ref_kind != 0 || iid == vmIntrinsics::_invokeBasic, "must be _invokeBasic or a linkTo intrinsic"); | 235 assert(ref_kind != 0 || iid == vmIntrinsics::_invokeBasic, "must be _invokeBasic or a linkTo intrinsic"); |
235 if (ref_kind == 0 || MethodHandles::ref_kind_has_receiver(ref_kind)) { | 236 if (ref_kind == 0 || MethodHandles::ref_kind_has_receiver(ref_kind)) { |
236 __ load_sized_value(Address(G5_method, Method::size_of_parameters_offset()), | 237 __ ld_ptr(G5_method, in_bytes(Method::const_offset()), O4_param_size); |
238 __ load_sized_value(Address(O4_param_size, ConstMethod::size_of_parameters_offset()), | |
237 O4_param_size, | 239 O4_param_size, |
238 sizeof(u2), /*is_signed*/ false); | 240 sizeof(u2), /*is_signed*/ false); |
239 // assert(sizeof(u2) == sizeof(Method::_size_of_parameters), ""); | 241 // assert(sizeof(u2) == sizeof(Method::_size_of_parameters), ""); |
240 O4_first_arg_addr = __ argument_address(O4_param_size, O4_param_size, -1); | 242 O4_first_arg_addr = __ argument_address(O4_param_size, O4_param_size, -1); |
241 } else { | 243 } else { |