Merge "Allow to get raw register data on all platforms."

am: ec004eb1b3

Change-Id: I57b8c1521f7d5bf5bbcdd26c930a44d19e8fc744
This commit is contained in:
Florian Mayer 2018-08-08 14:55:59 -07:00 committed by android-build-merger
commit 09336fe231

View file

@ -33,8 +33,7 @@ namespace unwindstack {
#if defined(__arm__)
inline __always_inline void RegsGetLocal(Regs* regs) {
void* reg_data = regs->RawData();
inline __attribute__((__always_inline__)) void AsmGetRegs(void* reg_data) {
asm volatile(
".align 2\n"
"bx pc\n"
@ -55,8 +54,7 @@ inline __always_inline void RegsGetLocal(Regs* regs) {
#elif defined(__aarch64__)
inline __always_inline void RegsGetLocal(Regs* regs) {
void* reg_data = regs->RawData();
inline __attribute__((__always_inline__)) void AsmGetRegs(void* reg_data) {
asm volatile(
"1:\n"
"stp x0, x1, [%[base], #0]\n"
@ -87,11 +85,12 @@ inline __always_inline void RegsGetLocal(Regs* regs) {
extern "C" void AsmGetRegs(void* regs);
inline void RegsGetLocal(Regs* regs) {
#endif
inline __attribute__((__always_inline__)) void RegsGetLocal(Regs* regs) {
AsmGetRegs(regs->RawData());
}
#endif
} // namespace unwindstack