comparison src/share/vm/prims/methodHandleWalk.cpp @ 3385:33ae33516634

7045515: ARM assembly code for JSR 292 ricochet frames Summary: ARM ricochet port and minor fixes in shared debug code Reviewed-by: jrose, vladidan
author bdelsart
date Tue, 17 May 2011 16:50:27 +0200
parents fabcf26ee72f
children a80577f854f9
comparison
equal deleted inserted replaced
3384:f52ed367b66d 3385:33ae33516634
421 ArgToken arg = _outgoing.at(slot)._arg; 421 ArgToken arg = _outgoing.at(slot)._arg;
422 if (i >= argc) { lose("bad fold/collect arg", CHECK_(empty)); } 422 if (i >= argc) { lose("bad fold/collect arg", CHECK_(empty)); }
423 arglist[1+i] = arg; 423 arglist[1+i] = arg;
424 if (!retain_original_args) 424 if (!retain_original_args)
425 change_argument(arg_type, slot, T_VOID, ArgToken(tt_void)); 425 change_argument(arg_type, slot, T_VOID, ArgToken(tt_void));
426 i++;
426 } 427 }
427 arglist[1+argc] = ArgToken(); // sentinel 428 arglist[1+argc] = ArgToken(); // sentinel
428 oop invoker = java_lang_invoke_MethodTypeForm::vmlayout( 429 oop invoker = java_lang_invoke_MethodTypeForm::vmlayout(
429 java_lang_invoke_MethodType::form(recursive_mtype()) ); 430 java_lang_invoke_MethodType::form(recursive_mtype()) );
430 if (invoker == NULL || !invoker->is_method()) { 431 if (invoker == NULL || !invoker->is_method()) {
485 ArgToken arglist[3]; 486 ArgToken arglist[3];
486 arglist[0] = array_arg; // value to check 487 arglist[0] = array_arg; // value to check
487 arglist[1] = length_arg; // length to check 488 arglist[1] = length_arg; // length to check
488 arglist[2] = ArgToken(); // sentinel 489 arglist[2] = ArgToken(); // sentinel
489 make_invoke(NULL, vmIntrinsics::_checkSpreadArgument, 490 make_invoke(NULL, vmIntrinsics::_checkSpreadArgument,
490 Bytecodes::_invokestatic, false, 3, &arglist[0], CHECK_(empty)); 491 Bytecodes::_invokestatic, false, 2, &arglist[0], CHECK_(empty));
491 492
492 // Spread out the array elements. 493 // Spread out the array elements.
493 Bytecodes::Code aload_op = Bytecodes::_nop; 494 Bytecodes::Code aload_op = Bytecodes::_nop;
494 switch (element_type) { 495 switch (element_type) {
495 case T_INT: aload_op = Bytecodes::_iaload; break; 496 case T_INT: aload_op = Bytecodes::_iaload; break;