[PATCH] D55763: [Sparc] Add Sparc V8 support
Daniel Cederman via Phabricator
reviews at reviews.llvm.org
Mon Dec 17 05:41:57 PST 2018
dcederman created this revision.
dcederman added reviewers: jyknight, mclow.lists, mstorsjo, compnerd.
Herald added subscribers: libcxx-commits, ldionne, JDevlieghere, fedor.sergeev.
Adds the register class implementation for Sparc.
Adds support for DW_CFA_GNU_window_save.
Adds save and restore context functionality.
On Sparc the return address is the address of the call instruction, so an offset needs to be added when returning to skip the call instruction and its delay slot. This can be done with __builtin_extract_return_addr() as I have done in _Unwind_GetIP(), but I'm not sure if that is the right location to place it. Alternatively I think one could just add 8 to the result in getRegister() if the UNW_REG_IP register is accessed, but I have not tested that yet.
Repository:
rUNW libunwind
https://reviews.llvm.org/D55763
Files:
include/__libunwind_config.h
include/libunwind.h
src/DwarfParser.hpp
src/Registers.hpp
src/UnwindCursor.hpp
src/UnwindLevel1.c
src/UnwindRegistersRestore.S
src/UnwindRegistersSave.S
src/assembly.h
src/libunwind.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D55763.178453.patch
Type: text/x-patch
Size: 12174 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20181217/86846c07/attachment.bin>
More information about the libcxx-commits
mailing list