comparison src/share/vm/prims/methodHandles.hpp @ 4970:33df1aeaebbf

Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 27 Feb 2012 13:10:13 +0100
parents 15d394228cfa
children 1d7922586cf6
comparison
equal deleted inserted replaced
4703:2cfb7fb2dce7 4970:33df1aeaebbf
736 # include "methodHandles_arm.hpp" 736 # include "methodHandles_arm.hpp"
737 #endif 737 #endif
738 #ifdef TARGET_ARCH_ppc 738 #ifdef TARGET_ARCH_ppc
739 # include "methodHandles_ppc.hpp" 739 # include "methodHandles_ppc.hpp"
740 #endif 740 #endif
741
742 #ifdef TARGET_ARCH_NYI_6939861
743 // Here are some backward compatible declarations until the 6939861 ports are updated.
744 #define _adapter_flyby (_EK_LIMIT + 10)
745 #define _adapter_ricochet (_EK_LIMIT + 11)
746 #define _adapter_opt_spread_1 _adapter_opt_spread_1_ref
747 #define _adapter_opt_spread_more _adapter_opt_spread_ref
748 enum {
749 _INSERT_NO_MASK = -1,
750 _INSERT_REF_MASK = 0,
751 _INSERT_INT_MASK = 1,
752 _INSERT_LONG_MASK = 3
753 };
754 static void get_ek_bound_mh_info(EntryKind ek, BasicType& arg_type, int& arg_mask, int& arg_slots) {
755 arg_type = ek_bound_mh_arg_type(ek);
756 arg_mask = 0;
757 arg_slots = type2size[arg_type];;
758 }
759 static void get_ek_adapter_opt_swap_rot_info(EntryKind ek, int& swap_bytes, int& rotate) {
760 int swap_slots = ek_adapter_opt_swap_slots(ek);
761 rotate = ek_adapter_opt_swap_mode(ek);
762 swap_bytes = swap_slots * Interpreter::stackElementSize;
763 }
764 static int get_ek_adapter_opt_spread_info(EntryKind ek) {
765 return ek_adapter_opt_spread_count(ek);
766 }
767
768 static void insert_arg_slots(MacroAssembler* _masm,
769 RegisterOrConstant arg_slots,
770 int arg_mask,
771 Register argslot_reg,
772 Register temp_reg, Register temp2_reg, Register temp3_reg = noreg);
773
774 static void remove_arg_slots(MacroAssembler* _masm,
775 RegisterOrConstant arg_slots,
776 Register argslot_reg,
777 Register temp_reg, Register temp2_reg, Register temp3_reg = noreg);
778
779 static void trace_method_handle(MacroAssembler* _masm, const char* adaptername) PRODUCT_RETURN;
780 #endif //TARGET_ARCH_NYI_6939861
781 }; 741 };
782 742
783 743
784 // Access methods for the "entry" field of a java.lang.invoke.MethodHandle. 744 // Access methods for the "entry" field of a java.lang.invoke.MethodHandle.
785 // The field is primarily a jump target for compiled calls. 745 // The field is primarily a jump target for compiled calls.