|
Fixes for the profiler on arm64.
On arm64, in Dart code, R18(SP) is the stack pointer.
In C++ code, R31(CSP) is the stack pointer.
The profiler must choose the right one when performing
its bounds checks.
This change also fixes a bug in the InvokeDartCode stub
on arm64 so that CSP is set to the Isolate's stack
limit immediately, rather than a bit later. When it was
set a bit later, if a profiler interrupt came in in the
interim, the stack would be smashed.
R=johnmccutchan@google.com
Committed: https://code.google.com/p/dart/source/detail?r=40502
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+103 lines, -35 lines) |
Patch |
|
M |
runtime/vm/profiler.cc
|
View
|
1
|
8 chunks |
+20 lines, -9 lines |
0 comments
|
Download
|
|
M |
runtime/vm/signal_handler.h
|
View
|
1
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/signal_handler_android.cc
|
View
|
1
|
2 chunks |
+15 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/signal_handler_linux.cc
|
View
|
1
|
5 chunks |
+22 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/signal_handler_macos.cc
|
View
|
1
|
5 chunks |
+12 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/signal_handler_win.cc
|
View
|
1
2
|
1 chunk |
+7 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_arm64.cc
|
View
|
1
|
4 chunks |
+13 lines, -11 lines |
0 comments
|
Download
|
|
M |
runtime/vm/thread_interrupter.h
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/thread_interrupter_android.cc
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/thread_interrupter_linux.cc
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/thread_interrupter_macos.cc
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/thread_interrupter_win.cc
|
View
|
|
2 chunks |
+4 lines, -3 lines |
0 comments
|
Download
|
Total messages: 4 (1 generated)
|