Mercurial > hg > truffle
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; |