[PATCH] D41386: [libunwind][PPC64] Port to ppc64le - initial version

Leandro Lupori via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 19 03:55:04 PST 2017


luporl created this revision.
luporl added a reviewer: mstorsjo.

Initial working version of libunwind for PowerPC 64. Tested on little end ppc64 host only.
Based on the existing PowerPC 32 code.

It supports:

- context save/restore (unw_getcontext, unw_init_local, unw_resume)
- read/write from/to saved registers
- backtrace (unw_step)

The main changes were:

- implement ppc64 registers
- add save/restore ppc64 registers code, except for vector ones (this is the next planned step)
- change register names from rXX to %rXX. The built-in assembler of clang, on powerpc64le on Linux, doesn't seem to recognize the former format. Checked that gcc/as also understand this format

This is the continuation of the work started here:
https://github.com/rgdoliveira/libunwind

Note: The commits were squashed to remove test and changed code and present

  a clean history.


https://reviews.llvm.org/D41386

Files:
  include/__libunwind_config.h
  include/libunwind.h
  src/AddressSpace.hpp
  src/Registers.hpp
  src/UnwindCursor.hpp
  src/UnwindRegistersRestore.S
  src/UnwindRegistersSave.S
  src/assembly.h
  src/config.h
  src/libunwind.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41386.127481.patch
Type: text/x-patch
Size: 27866 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171219/66f9e116/attachment-0001.bin>


More information about the cfe-commits mailing list