src/cpu/mips/vm/sharedRuntime_mips_64.cpp

changeset 21
afa196fe1bf6
parent 5
7e3d3484b275
child 361
63fe053f1032
     1.1 --- a/src/cpu/mips/vm/sharedRuntime_mips_64.cpp	Tue Jun 14 20:04:50 2016 +0800
     1.2 +++ b/src/cpu/mips/vm/sharedRuntime_mips_64.cpp	Tue Jun 14 20:05:43 2016 +0800
     1.3 @@ -2670,6 +2670,10 @@
     1.4  		save_native_result(masm, ret_type, stack_slots);
     1.5  		__ move (A0, thread); 
     1.6  		__ addi(SP,SP, -wordSize); 
     1.7 +    __ push(S2);
     1.8 +    __ move(AT, -(StackAlignmentInBytes));
     1.9 +    __ move(S2, SP);     // use S2 as a sender SP holder
    1.10 +    __ andr(SP, SP, AT); // align stack as required by ABI
    1.11      if (!is_critical_native) {
    1.12        __ call(CAST_FROM_FN_PTR(address, JavaThread::check_special_condition_for_native_trans), relocInfo::runtime_call_type);
    1.13        __ delayed()->nop(); 
    1.14 @@ -2677,8 +2681,8 @@
    1.15        __ call(CAST_FROM_FN_PTR(address, JavaThread::check_special_condition_for_native_trans_and_transition), relocInfo::runtime_call_type);
    1.16        __ delayed()->nop(); 
    1.17      }
    1.18 -//		__ call(CAST_FROM_FN_PTR(address, JavaThread::check_special_condition_for_native_trans), relocInfo::runtime_call_type);
    1.19 -//		__ delayed()->nop(); 
    1.20 +    __ move(SP, S2);     // use S2 as a sender SP holder
    1.21 +    __ pop(S2);
    1.22  		__ addi(SP,SP, wordSize); 
    1.23  		//add for compressedoops
    1.24  		__ reinit_heapbase();

mercurial