diff options
author | Konstantin Belousov <kostik@pooma.home> | 2010-05-02 16:29:02 +0300 |
---|---|---|
committer | Konstantin Belousov <kostik@pooma.home> | 2010-05-02 16:29:02 +0300 |
commit | b73c618a3135e2e98a279c957240d6d00a192166 (patch) | |
tree | 92eeecbc084ac95d0ba62a41b1affed7c1185a20 /src/x86 | |
parent | 58f290e1ce5950beac3767acbde08fcb0e1ca03f (diff) | |
parent | 0176c4f723f1ea90eb20018091ca58eedf28a4a8 (diff) | |
download | libunwind-b73c618a3135e2e98a279c957240d6d00a192166.tar.gz |
Merge branch 'master' into freebsd
Diffstat (limited to 'src/x86')
-rw-r--r-- | src/x86/Ginit_local.c | 2 | ||||
-rw-r--r-- | src/x86/Ginit_remote.c | 2 | ||||
-rw-r--r-- | src/x86/getcontext-freebsd.S | 2 | ||||
-rw-r--r-- | src/x86/getcontext-linux.S | 2 | ||||
-rw-r--r-- | src/x86/init.h | 3 |
5 files changed, 8 insertions, 3 deletions
diff --git a/src/x86/Ginit_local.c b/src/x86/Ginit_local.c index 55ab7490..5e8b6972 100644 --- a/src/x86/Ginit_local.c +++ b/src/x86/Ginit_local.c @@ -50,7 +50,7 @@ unw_init_local (unw_cursor_t *cursor, ucontext_t *uc) c->dwarf.as_arg = c; c->uc = uc; c->validate = 0; - return common_init (c); + return common_init (c, 1); } #endif /* !UNW_REMOTE_ONLY */ diff --git a/src/x86/Ginit_remote.c b/src/x86/Ginit_remote.c index 6949a73e..aa924052 100644 --- a/src/x86/Ginit_remote.c +++ b/src/x86/Ginit_remote.c @@ -51,6 +51,6 @@ unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg) c->dwarf.as_arg = as_arg; c->uc = 0; } - return common_init (c); + return common_init (c, 0); #endif /* !UNW_LOCAL_ONLY */ } diff --git a/src/x86/getcontext-freebsd.S b/src/x86/getcontext-freebsd.S index 17adade8..dfeb4328 100644 --- a/src/x86/getcontext-freebsd.S +++ b/src/x86/getcontext-freebsd.S @@ -27,6 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ .global _Ux86_getcontext .type _Ux86_getcontext, @function _Ux86_getcontext: + .cfi_startproc pushl %eax mov 8(%esp),%eax /* ucontext_t* */ popl FREEBSD_UC_MCONTEXT_EAX_OFF(%eax) @@ -97,6 +98,7 @@ _Ux86_getcontext: xorl %eax, %eax ret + .cfi_endproc .size _Ux86_getcontext, . - _Ux86_getcontext /* We do not need executable stack. */ diff --git a/src/x86/getcontext-linux.S b/src/x86/getcontext-linux.S index a0714cd1..c469dadb 100644 --- a/src/x86/getcontext-linux.S +++ b/src/x86/getcontext-linux.S @@ -36,6 +36,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ .global _Ux86_getcontext .type _Ux86_getcontext, @function _Ux86_getcontext: + .cfi_startproc mov 4(%esp),%eax /* ucontext_t* */ /* EAX is not preserved. */ @@ -66,6 +67,7 @@ _Ux86_getcontext: xor %eax, %eax ret + .cfi_endproc .size _Ux86_getcontext, . - _Ux86_getcontext /* We do not need executable stack. */ diff --git a/src/x86/init.h b/src/x86/init.h index 675b77e5..b59ad842 100644 --- a/src/x86/init.h +++ b/src/x86/init.h @@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "unwind_i.h" static inline int -common_init (struct cursor *c) +common_init (struct cursor *c, unsigned use_prev_instr) { int ret, i; @@ -59,6 +59,7 @@ common_init (struct cursor *c) c->dwarf.args_size = 0; c->dwarf.ret_addr_column = 0; + c->dwarf.use_prev_instr = use_prev_instr; c->dwarf.pi_valid = 0; c->dwarf.pi_is_dynamic = 0; c->dwarf.hint = 0; |