From 6594ac922cc1937a237b6ed9ef05b7b952bcd82e Mon Sep 17 00:00:00 2001 From: "rmcilroy@chromium.org" Date: Fri, 11 Apr 2014 16:09:12 +0000 Subject: Add x64 version of getcontext. Assembly code is derived in part from code in libunwind. Code tested on desktop linux (Android testing pending emulation support). BUG=346626 R=dannyb@google.com, thestig@chromium.org Review URL: https://breakpad.appspot.com/1454002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1311 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/common/android/include/sys/user.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/common/android/include/sys/user.h') diff --git a/src/common/android/include/sys/user.h b/src/common/android/include/sys/user.h index 257cd803..7cafd2c9 100644 --- a/src/common/android/include/sys/user.h +++ b/src/common/android/include/sys/user.h @@ -143,6 +143,28 @@ struct user_fpregs_struct { unsigned int fir; }; +#elif defined(__x86_64__) +#include +#include_next + +// This struct is essentially the same as user_i387_struct in sys/user.h +// except that the struct name and individual field names are chosen here +// to match the ones used in breakpad for other x86_64 platforms. + +struct user_fpregs_struct { + __u16 cwd; + __u16 swd; + __u16 ftw; + __u16 fop; + __u64 rip; + __u64 rdp; + __u32 mxcsr; + __u32 mxcr_mask; + __u32 st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ + __u32 xmm_space[64]; /* 16*16 bytes for each XMM-reg = 256 bytes */ + __u32 padding[24]; +}; + #else # error "Unsupported Android CPU ABI" #endif -- cgit v1.2.1