Mercurial > hg > graal-compiler
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. |