summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Sharma <aruns@google.com>2010-04-28 16:32:30 -0700
committerArun Sharma <arun@sharma-home.net>2010-04-28 16:32:30 -0700
commit215afa30b782970479e956b7bb96dca7cd9325ea (patch)
tree290588c32f3934655ed2ed0d75e9b5bb6a0b52ec
parent045c55b2a296988c16a4c1b90f3d8b7e8b78752b (diff)
downloadlibunwind-215afa30b782970479e956b7bb96dca7cd9325ea.tar.gz
Add unwind descriptors to getcontext.S
-rw-r--r--src/x86/getcontext-freebsd.S2
-rw-r--r--src/x86/getcontext-linux.S2
-rw-r--r--src/x86_64/getcontext.S4
-rwxr-xr-xtests/run-ptrace-mapper2
4 files changed, 9 insertions, 1 deletions
diff --git a/src/x86/getcontext-freebsd.S b/src/x86/getcontext-freebsd.S
index 92ae26f4..eb435394 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)
@@ -81,6 +82,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_64/getcontext.S b/src/x86_64/getcontext.S
index a0df6f15..15fff283 100644
--- a/src/x86_64/getcontext.S
+++ b/src/x86_64/getcontext.S
@@ -37,6 +37,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
.global _Ux86_64_getcontext
.type _Ux86_64_getcontext, @function
_Ux86_64_getcontext:
+ .cfi_startproc
/* Callee saved: RBX, RBP, R12-R15 */
movq %r12, UC_MCONTEXT_GREGS_R12(%rdi)
@@ -70,7 +71,9 @@ _Ux86_64_getcontext:
/* Save rflags and segment registers, so that sigreturn(2)
does not complain. */
pushfq
+ .cfi_adjust_cfa_offset 8
popq UC_MCONTEXT_RFLAGS(%rdi)
+ .cfi_adjust_cfa_offset -8
movl $0, UC_MCONTEXT_FLAGS(%rdi)
movw %cs, UC_MCONTEXT_CS(%rdi)
movw %ss, UC_MCONTEXT_SS(%rdi)
@@ -95,6 +98,7 @@ _Ux86_64_getcontext:
xorq %rax, %rax
retq
+ .cfi_endproc
.size _Ux86_64_getcontext, . - _Ux86_64_getcontext
/* We do not need executable stack. */
diff --git a/tests/run-ptrace-mapper b/tests/run-ptrace-mapper
index f51cf9a1..dc3010d4 100755
--- a/tests/run-ptrace-mapper
+++ b/tests/run-ptrace-mapper
@@ -1,2 +1,2 @@
#!/bin/sh
-./test-ptrace -c -n -t ./mapper
+./test-ptrace -c -n -t ./mapper $*