From 4adebc6d2aa781ac79fc686beae139b00a4db514 Mon Sep 17 00:00:00 2001 From: Daco Harkes Date: Wed, 9 Dec 2020 20:08:00 +0000 Subject: [PATCH] [vm] remove unecessary store of x18 to Thread Related issue: https://github.com/dart-lang/sdk/issues/44435 TEST=Unfortunately we have no tests set up for shadow call stack. Change-Id: Ibea3662ba2ef563702288b7a52f816df3217aa41 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175367 Commit-Queue: Daco Harkes Reviewed-by: Martin Kustermann Reviewed-by: Ryan Macnak --- runtime/vm/compiler/stub_code_compiler_arm64.cc | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/runtime/vm/compiler/stub_code_compiler_arm64.cc b/runtime/vm/compiler/stub_code_compiler_arm64.cc index 71680254bd0..6a09f48352c 100644 --- a/runtime/vm/compiler/stub_code_compiler_arm64.cc +++ b/runtime/vm/compiler/stub_code_compiler_arm64.cc @@ -1425,17 +1425,7 @@ void StubCodeCompiler::GenerateInvokeDartCodeStub(Assembler* assembler) { __ Pop(R4); __ StoreToOffset(R4, THR, target::Thread::vm_tag_offset()); -#if defined(TARGET_OS_FUCHSIA) - __ mov(R3, THR); -#endif - - __ PopNativeCalleeSavedRegisters(); // Clobbers THR - -#if defined(TARGET_OS_FUCHSIA) - __ str(R18, Address(R3, target::Thread::saved_shadow_call_stack_offset())); -#elif defined(USING_SHADOW_CALL_STACK) -#error Unimplemented -#endif + __ PopNativeCalleeSavedRegisters(); // Restore the frame pointer and C stack pointer and return. __ LeaveFrame(); @@ -3005,8 +2995,8 @@ void StubCodeCompiler::GenerateJumpToFrameStub(Assembler* assembler) { ASSERT(kStackTraceObjectReg == R1); // TransitionGeneratedToNative might clobber LR if it takes the slow path. __ mov(CALLEE_SAVED_TEMP, R0); // Program counter. - __ mov(SP, R1); // Stack pointer. - __ mov(FP, R2); // Frame_pointer. + __ mov(SP, R1); // Stack pointer. + __ mov(FP, R2); // Frame_pointer. __ mov(THR, R3); __ SetupCSPFromThread(THR); #if defined(TARGET_OS_FUCHSIA)