Mercurial > hg > shark > hotspot
changeset 2274:40186460e5b8
Don't hardwire this
author | Gary Benson <gbenson@redhat.com> |
---|---|
date | Tue, 15 Mar 2011 14:19:05 +0000 |
parents | 887b37920ad5 |
children | c196e44f0df3 |
files | src/cpu/zero/vm/cppInterpreter_zero.cpp |
diffstat | 1 files changed, 8 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/zero/vm/cppInterpreter_zero.cpp Mon Mar 14 10:37:07 2011 +0000 +++ b/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue Mar 15 14:19:05 2011 +0000 @@ -846,10 +846,9 @@ case MethodHandles::_adapter_dup_args: { int arg_slot = sun_dyn_AdapterMethodHandle::vmargslot(method_handle); - int num_slots = - sun_dyn_AdapterMethodHandle::conversion(method_handle) >> - sun_dyn_AdapterMethodHandle::CONV_STACK_MOVE_SHIFT; - num_slots = -num_slots; + int conv = sun_dyn_AdapterMethodHandle::conversion(method_handle); + int num_slots = -MethodHandles::adapter_conversion_stack_move(conv); + assert(num_slots > 0, "should be"); // Create the new slot(s) insert_vmslots(arg_slot, num_slots, CHECK); // XXX unwind! @@ -864,9 +863,9 @@ case MethodHandles::_adapter_drop_args: { int arg_slot = sun_dyn_AdapterMethodHandle::vmargslot(method_handle); - int num_slots = - sun_dyn_AdapterMethodHandle::conversion(method_handle) >> - sun_dyn_AdapterMethodHandle::CONV_STACK_MOVE_SHIFT; + int conv = sun_dyn_AdapterMethodHandle::conversion(method_handle); + int num_slots = MethodHandles::adapter_conversion_stack_move(conv); + assert(num_slots > 0, "should be"); remove_vmslots(arg_slot, num_slots, THREAD); // doesn't trap vmslots = stack->sp(); // unused, but let the compiler figure that out @@ -876,10 +875,8 @@ case MethodHandles::_adapter_opt_swap_1: { int arg1 = sun_dyn_AdapterMethodHandle::vmargslot(method_handle); - int arg2 = - (sun_dyn_AdapterMethodHandle::conversion(method_handle) >> - sun_dyn_AdapterMethodHandle::CONV_VMINFO_SHIFT) & - sun_dyn_AdapterMethodHandle::CONV_VMINFO_MASK; + int conv = sun_dyn_AdapterMethodHandle::conversion(method_handle); + int arg2 = MethodHandles::adapter_conversion_vminfo(conv); intptr_t tmp = *VMSLOTS_SLOT(arg1); SET_VMSLOTS_SLOT(VMSLOTS_SLOT(arg2), arg1);