Mercurial > hg > shark > hotspot
changeset 2513:4596e22b6f4f
Implement adapter_opt_rot_1_up
author | Gary Benson <gbenson@redhat.com> |
---|---|
date | Fri, 01 Apr 2011 12:18:02 +0100 |
parents | a86f565f1a3a |
children | 35989c0cf707 |
files | src/cpu/zero/vm/cppInterpreter_zero.cpp |
diffstat | 1 files changed, 16 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri Apr 01 11:46:49 2011 +0100 +++ b/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri Apr 01 12:18:02 2011 +0100 @@ -961,6 +961,22 @@ } break; + case MethodHandles::_adapter_opt_rot_1_up: + { + int arg1 = java_lang_invoke_AdapterMethodHandle::vmargslot(method_handle); + int conv = + java_lang_invoke_AdapterMethodHandle::conversion(method_handle); + int arg2 = MethodHandles::adapter_conversion_vminfo(conv); + + assert(arg1 - 1 > arg2, "should be"); + + intptr_t tmp = *VMSLOTS_SLOT(arg1); + for (int i = arg1 - 1; i >= arg2; i--) + SET_VMSLOTS_SLOT(VMSLOTS_SLOT(i), i + 1); + SET_VMSLOTS_SLOT(&tmp, arg2); + } + break; + case MethodHandles::_adapter_opt_i2l: { int arg_slot =