mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2026-01-01 20:24:40 +01:00
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
This commit is contained in:
parent
a2245d6744
commit
6594ac922c
5 changed files with 275 additions and 0 deletions
|
|
@ -143,6 +143,28 @@ struct user_fpregs_struct {
|
|||
unsigned int fir;
|
||||
};
|
||||
|
||||
#elif defined(__x86_64__)
|
||||
#include <sys/types.h>
|
||||
#include_next <sys/user.h>
|
||||
|
||||
// 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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue