< prev index next >

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp

Print this page

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


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

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