< prev index next >

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp

Print this page

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


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

 757 
 758 static void pass_arg1(MacroAssembler* masm, Register arg) {
 759   if (c_rarg1 != arg ) {
 760     masm->mov(c_rarg1, arg);
 761   }
 762 }
 763 
 764 static void pass_arg2(MacroAssembler* masm, Register arg) {
 765   if (c_rarg2 != arg ) {
 766     masm->mov(c_rarg2, arg);
 767   }
 768 }
 769 
 770 static void pass_arg3(MacroAssembler* masm, Register arg) {
 771   if (c_rarg3 != arg ) {
 772     masm->mov(c_rarg3, arg);
 773   }
 774 }
 775 
 776 static bool is_preemptable(address entry_point) {
 777   return entry_point == CAST_FROM_FN_PTR(address, InterpreterRuntime::monitorenter) ||
 778          entry_point == CAST_FROM_FN_PTR(address, InterpreterRuntime::resolve_from_cache) ||
 779          entry_point == CAST_FROM_FN_PTR(address, InterpreterRuntime::_new);
 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");
< prev index next >