< prev index next >

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp

Print this page

 762 
 763 static void pass_arg1(MacroAssembler* masm, Register arg) {
 764   if (c_rarg1 != arg ) {
 765     masm->mov(c_rarg1, arg);
 766   }
 767 }
 768 
 769 static void pass_arg2(MacroAssembler* masm, Register arg) {
 770   if (c_rarg2 != arg ) {
 771     masm->mov(c_rarg2, arg);
 772   }
 773 }
 774 
 775 static void pass_arg3(MacroAssembler* masm, Register arg) {
 776   if (c_rarg3 != arg ) {
 777     masm->mov(c_rarg3, arg);
 778   }
 779 }
 780 
 781 static bool is_preemptable(address entry_point) {
 782   return entry_point == CAST_FROM_FN_PTR(address, InterpreterRuntime::monitorenter);


 783 }
 784 
 785 void MacroAssembler::call_VM_base(Register oop_result,
 786                                   Register java_thread,
 787                                   Register last_java_sp,
 788                                   address  entry_point,
 789                                   int      number_of_arguments,
 790                                   bool     check_exceptions) {
 791    // determine java_thread register
 792   if (!java_thread->is_valid()) {
 793     java_thread = rthread;
 794   }
 795 
 796   // determine last_java_sp register
 797   if (!last_java_sp->is_valid()) {
 798     last_java_sp = esp;
 799   }
 800 
 801   // debugging support
 802   assert(number_of_arguments >= 0   , "cannot have negative number of arguments");

 762 
 763 static void pass_arg1(MacroAssembler* masm, Register arg) {
 764   if (c_rarg1 != arg ) {
 765     masm->mov(c_rarg1, arg);
 766   }
 767 }
 768 
 769 static void pass_arg2(MacroAssembler* masm, Register arg) {
 770   if (c_rarg2 != arg ) {
 771     masm->mov(c_rarg2, arg);
 772   }
 773 }
 774 
 775 static void pass_arg3(MacroAssembler* masm, Register arg) {
 776   if (c_rarg3 != arg ) {
 777     masm->mov(c_rarg3, arg);
 778   }
 779 }
 780 
 781 static bool is_preemptable(address entry_point) {
 782   return entry_point == CAST_FROM_FN_PTR(address, InterpreterRuntime::monitorenter) ||
 783          entry_point == CAST_FROM_FN_PTR(address, InterpreterRuntime::resolve_from_cache) ||
 784          entry_point == CAST_FROM_FN_PTR(address, InterpreterRuntime::_new);
 785 }
 786 
 787 void MacroAssembler::call_VM_base(Register oop_result,
 788                                   Register java_thread,
 789                                   Register last_java_sp,
 790                                   address  entry_point,
 791                                   int      number_of_arguments,
 792                                   bool     check_exceptions) {
 793    // determine java_thread register
 794   if (!java_thread->is_valid()) {
 795     java_thread = rthread;
 796   }
 797 
 798   // determine last_java_sp register
 799   if (!last_java_sp->is_valid()) {
 800     last_java_sp = esp;
 801   }
 802 
 803   // debugging support
 804   assert(number_of_arguments >= 0   , "cannot have negative number of arguments");
< prev index next >