| Index: runtime/vm/stub_code_arm64.cc
|
| diff --git a/runtime/vm/stub_code_arm64.cc b/runtime/vm/stub_code_arm64.cc
|
| index 10e241174ca54a416b805216647e407218dfd843..72c83fad37147306755c38c648665c5e6be90aec 100644
|
| --- a/runtime/vm/stub_code_arm64.cc
|
| +++ b/runtime/vm/stub_code_arm64.cc
|
| @@ -52,7 +52,7 @@ void StubCode::GenerateCallToRuntimeStub(Assembler* assembler) {
|
|
|
| // Save exit frame information to enable stack walking as we are about
|
| // to transition to Dart VM C++ code.
|
| - __ StoreToOffset(FP, R28, Isolate::top_exit_frame_info_offset(), kNoPP);
|
| + __ StoreToOffset(FP, THR, Thread::top_exit_frame_info_offset(), kNoPP);
|
|
|
| #if defined(DEBUG)
|
| { Label ok;
|
| @@ -121,7 +121,7 @@ void StubCode::GenerateCallToRuntimeStub(Assembler* assembler) {
|
| __ StoreToOffset(R2, R28, Isolate::vm_tag_offset(), kNoPP);
|
|
|
| // Reset exit frame information in Isolate structure.
|
| - __ StoreToOffset(ZR, R28, Isolate::top_exit_frame_info_offset(), kNoPP);
|
| + __ StoreToOffset(ZR, THR, Thread::top_exit_frame_info_offset(), kNoPP);
|
|
|
| __ LeaveStubFrame();
|
| __ ret();
|
| @@ -152,7 +152,7 @@ void StubCode::GenerateCallNativeCFunctionStub(Assembler* assembler) {
|
|
|
| // Save exit frame information to enable stack walking as we are about
|
| // to transition to native code.
|
| - __ StoreToOffset(FP, R28, Isolate::top_exit_frame_info_offset(), kNoPP);
|
| + __ StoreToOffset(FP, THR, Thread::top_exit_frame_info_offset(), kNoPP);
|
|
|
| #if defined(DEBUG)
|
| { Label ok;
|
| @@ -228,7 +228,7 @@ void StubCode::GenerateCallNativeCFunctionStub(Assembler* assembler) {
|
| __ StoreToOffset(R2, R28, Isolate::vm_tag_offset(), kNoPP);
|
|
|
| // Reset exit frame information in Isolate structure.
|
| - __ StoreToOffset(ZR, R28, Isolate::top_exit_frame_info_offset(), kNoPP);
|
| + __ StoreToOffset(ZR, THR, Thread::top_exit_frame_info_offset(), kNoPP);
|
|
|
| __ LeaveStubFrame();
|
| __ ret();
|
| @@ -254,7 +254,7 @@ void StubCode::GenerateCallBootstrapCFunctionStub(Assembler* assembler) {
|
|
|
| // Save exit frame information to enable stack walking as we are about
|
| // to transition to native code.
|
| - __ StoreToOffset(FP, R28, Isolate::top_exit_frame_info_offset(), kNoPP);
|
| + __ StoreToOffset(FP, THR, Thread::top_exit_frame_info_offset(), kNoPP);
|
|
|
| #if defined(DEBUG)
|
| { Label ok;
|
| @@ -321,7 +321,7 @@ void StubCode::GenerateCallBootstrapCFunctionStub(Assembler* assembler) {
|
| __ StoreToOffset(R2, R28, Isolate::vm_tag_offset(), kNoPP);
|
|
|
| // Reset exit frame information in Isolate structure.
|
| - __ StoreToOffset(ZR, R28, Isolate::top_exit_frame_info_offset(), kNoPP);
|
| + __ StoreToOffset(ZR, THR, Thread::top_exit_frame_info_offset(), kNoPP);
|
|
|
| __ LeaveStubFrame();
|
| __ ret();
|
| @@ -851,11 +851,11 @@ void StubCode::GenerateInvokeDartCodeStub(Assembler* assembler) {
|
|
|
| // Save top resource and top exit frame info. Use R6 as a temporary register.
|
| // StackFrameIterator reads the top exit frame info saved in this frame.
|
| - __ LoadFromOffset(R6, R5, Isolate::top_resource_offset(), PP);
|
| - __ StoreToOffset(ZR, R5, Isolate::top_resource_offset(), PP);
|
| + __ LoadFromOffset(R6, THR, Thread::top_resource_offset(), PP);
|
| + __ StoreToOffset(ZR, THR, Thread::top_resource_offset(), PP);
|
| __ Push(R6);
|
| - __ LoadFromOffset(R6, R5, Isolate::top_exit_frame_info_offset(), PP);
|
| - __ StoreToOffset(ZR, R5, Isolate::top_exit_frame_info_offset(), PP);
|
| + __ LoadFromOffset(R6, THR, Thread::top_exit_frame_info_offset(), PP);
|
| + __ StoreToOffset(ZR, THR, Thread::top_exit_frame_info_offset(), PP);
|
| // kExitLinkSlotFromEntryFp must be kept in sync with the code below.
|
| ASSERT(kExitLinkSlotFromEntryFp == -21);
|
| __ Push(R6);
|
| @@ -901,9 +901,9 @@ void StubCode::GenerateInvokeDartCodeStub(Assembler* assembler) {
|
| // Restore the saved top exit frame info and top resource back into the
|
| // Isolate structure. Uses R6 as a temporary register for this.
|
| __ Pop(R6);
|
| - __ StoreToOffset(R6, R28, Isolate::top_exit_frame_info_offset(), PP);
|
| + __ StoreToOffset(R6, THR, Thread::top_exit_frame_info_offset(), PP);
|
| __ Pop(R6);
|
| - __ StoreToOffset(R6, R28, Isolate::top_resource_offset(), PP);
|
| + __ StoreToOffset(R6, THR, Thread::top_resource_offset(), PP);
|
|
|
| // Restore the current VMTag from the stack.
|
| __ Pop(R4);
|
| @@ -1994,7 +1994,7 @@ void StubCode::GenerateJumpToExceptionHandlerStub(Assembler* assembler) {
|
| __ LoadImmediate(R2, VMTag::kDartTagId, kNoPP);
|
| __ StoreToOffset(R2, R5, Isolate::vm_tag_offset(), kNoPP);
|
| // Clear top exit frame.
|
| - __ StoreToOffset(ZR, R5, Isolate::top_exit_frame_info_offset(), kNoPP);
|
| + __ StoreToOffset(ZR, THR, Thread::top_exit_frame_info_offset(), kNoPP);
|
| __ ret(); // Jump to the exception handler code.
|
| }
|
|
|
|
|