diff options
author | aph <none@none> | 2014-08-21 11:56:52 -0400 |
---|---|---|
committer | aph <none@none> | 2014-08-21 11:56:52 -0400 |
commit | 5d8e6e64e57f7faaed8e64ec4022d50f2f07ccb8 (patch) | |
tree | 03d96d12892d7157557c4970d9d97b7479ab8543 | |
parent | 74848a16286108955eb312a16d1cda776c654815 (diff) |
Unwind native AArch64 frames.
-rw-r--r-- | src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp index 3912f0276..b345bace4 100644 --- a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp +++ b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp @@ -172,10 +172,14 @@ frame os::fetch_frame_from_context(void* ucVoid) { return frame(sp, fp, epc.pc()); } -// By default, gcc always save frame pointer (%ebp/%rbp) on stack. It may get -// turned off by -fomit-frame-pointer, +// By default, gcc always saves frame pointer rfp on this stack. This +// may get turned off by -fomit-frame-pointer. frame os::get_sender_for_C_frame(frame* fr) { +#ifdef BUILTIN_SIM return frame(fr->sender_sp(), fr->link(), fr->sender_pc()); +#else + return frame(fr->link(), fr->link(), fr->sender_pc()); +#endif } intptr_t* _get_previous_fp() { |