Mercurial > hg > truffle
comparison src/cpu/x86/vm/assembler_x86.cpp @ 3755:5cf771a79037
7047697: MethodHandle.invokeExact call for wrong method causes VM failure if run with -Xcomp
Reviewed-by: never, twisti
author | jrose |
---|---|
date | Wed, 08 Jun 2011 17:04:06 -0700 |
parents | cba7b5c2d53f |
children | a3081a3a2b54 |
comparison
equal
deleted
inserted
replaced
3754:642c68c75db9 | 3755:5cf771a79037 |
---|---|
5889 pass_arg2(this, arg_2); | 5889 pass_arg2(this, arg_2); |
5890 pass_arg1(this, arg_1); | 5890 pass_arg1(this, arg_1); |
5891 call_VM(oop_result, last_java_sp, entry_point, 3, check_exceptions); | 5891 call_VM(oop_result, last_java_sp, entry_point, 3, check_exceptions); |
5892 } | 5892 } |
5893 | 5893 |
5894 void MacroAssembler::super_call_VM(Register oop_result, | |
5895 Register last_java_sp, | |
5896 address entry_point, | |
5897 int number_of_arguments, | |
5898 bool check_exceptions) { | |
5899 Register thread = LP64_ONLY(r15_thread) NOT_LP64(noreg); | |
5900 MacroAssembler::call_VM_base(oop_result, thread, last_java_sp, entry_point, number_of_arguments, check_exceptions); | |
5901 } | |
5902 | |
5903 void MacroAssembler::super_call_VM(Register oop_result, | |
5904 Register last_java_sp, | |
5905 address entry_point, | |
5906 Register arg_1, | |
5907 bool check_exceptions) { | |
5908 pass_arg1(this, arg_1); | |
5909 super_call_VM(oop_result, last_java_sp, entry_point, 1, check_exceptions); | |
5910 } | |
5911 | |
5912 void MacroAssembler::super_call_VM(Register oop_result, | |
5913 Register last_java_sp, | |
5914 address entry_point, | |
5915 Register arg_1, | |
5916 Register arg_2, | |
5917 bool check_exceptions) { | |
5918 | |
5919 LP64_ONLY(assert(arg_1 != c_rarg2, "smashed arg")); | |
5920 pass_arg2(this, arg_2); | |
5921 pass_arg1(this, arg_1); | |
5922 super_call_VM(oop_result, last_java_sp, entry_point, 2, check_exceptions); | |
5923 } | |
5924 | |
5925 void MacroAssembler::super_call_VM(Register oop_result, | |
5926 Register last_java_sp, | |
5927 address entry_point, | |
5928 Register arg_1, | |
5929 Register arg_2, | |
5930 Register arg_3, | |
5931 bool check_exceptions) { | |
5932 LP64_ONLY(assert(arg_1 != c_rarg3, "smashed arg")); | |
5933 LP64_ONLY(assert(arg_2 != c_rarg3, "smashed arg")); | |
5934 pass_arg3(this, arg_3); | |
5935 LP64_ONLY(assert(arg_1 != c_rarg2, "smashed arg")); | |
5936 pass_arg2(this, arg_2); | |
5937 pass_arg1(this, arg_1); | |
5938 super_call_VM(oop_result, last_java_sp, entry_point, 3, check_exceptions); | |
5939 } | |
5940 | |
5894 void MacroAssembler::call_VM_base(Register oop_result, | 5941 void MacroAssembler::call_VM_base(Register oop_result, |
5895 Register java_thread, | 5942 Register java_thread, |
5896 Register last_java_sp, | 5943 Register last_java_sp, |
5897 address entry_point, | 5944 address entry_point, |
5898 int number_of_arguments, | 5945 int number_of_arguments, |