comparison src/cpu/sparc/vm/methodHandles_sparc.cpp @ 7482:989155e2d07a

Merge with hs25-b15.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Wed, 16 Jan 2013 01:34:24 +0100
parents 291ffc492eb6 fd74228fd5ca
children cefad50507d8
comparison
equal deleted inserted replaced
7381:6761a8f854a4 7482:989155e2d07a
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 {