src/cpu/x86/vm/sharedRuntime_x86_64.cpp

changeset 955
52a431267315
parent 739
dc7f315e41f7
child 959
c9004fe53695
     1.1 --- a/src/cpu/x86/vm/sharedRuntime_x86_64.cpp	Fri Jan 09 14:39:07 2009 -0500
     1.2 +++ b/src/cpu/x86/vm/sharedRuntime_x86_64.cpp	Tue Jan 13 14:41:44 2009 -0500
     1.3 @@ -2954,10 +2954,16 @@
     1.4    __ pushptr(Address(rcx, 0));     // Save return address
     1.5    __ enter();                      // Save old & set new rbp
     1.6    __ subptr(rsp, rbx);             // Prolog
     1.7 +#ifdef CC_INTERP
     1.8 +  __ movptr(Address(rbp,
     1.9 +                  -(sizeof(BytecodeInterpreter)) + in_bytes(byte_offset_of(BytecodeInterpreter, _sender_sp))),
    1.10 +            sender_sp); // Make it walkable
    1.11 +#else // CC_INTERP
    1.12    __ movptr(Address(rbp, frame::interpreter_frame_sender_sp_offset * wordSize),
    1.13              sender_sp);            // Make it walkable
    1.14    // This value is corrected by layout_activation_impl
    1.15    __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD );
    1.16 +#endif // CC_INTERP
    1.17    __ mov(sender_sp, rsp);          // Pass sender_sp to next frame
    1.18    __ addptr(rsi, wordSize);        // Bump array pointer (sizes)
    1.19    __ addptr(rcx, wordSize);        // Bump array pointer (pcs)

mercurial