summaryrefslogtreecommitdiffstats
path: root/src/libthread/asm-FreeBSD-386.s
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2004-04-21 19:29:04 +0000
committerrsc <devnull@localhost>2004-04-21 19:29:04 +0000
commita3785ca2cc1c8693d89ebe44216acf781a634718 (patch)
tree2ae82a3a7c462e670e8b0d6e234e301cfd317987 /src/libthread/asm-FreeBSD-386.s
parentcdd61ab0aee825e93688ae5d2cfb86f14baad858 (diff)
downloadplan9port-a3785ca2cc1c8693d89ebe44216acf781a634718.tar.gz
plan9port-a3785ca2cc1c8693d89ebe44216acf781a634718.zip
Tweaks to make libthread tell Valgrind about its stack limits,
so that Valgrind can detect stack overflow for me.
Diffstat (limited to 'src/libthread/asm-FreeBSD-386.s')
-rw-r--r--src/libthread/asm-FreeBSD-386.s8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libthread/asm-FreeBSD-386.s b/src/libthread/asm-FreeBSD-386.s
index 35e2ab6f..c815ac58 100644
--- a/src/libthread/asm-FreeBSD-386.s
+++ b/src/libthread/asm-FreeBSD-386.s
@@ -17,6 +17,9 @@ _setlabel:
.type _gotolabel,@function
_gotolabel:
+ pushl $1
+ call _threadinswitch
+ popl %eax
movl 4(%esp), %edx
movl 0(%edx), %ecx
movl 4(%edx), %ebx
@@ -24,9 +27,12 @@ _gotolabel:
movl 12(%edx), %ebp
movl 16(%edx), %esi
movl 20(%edx), %edi
+ movl %ecx, 0(%esp)
+ pushl $0
+ call _threadinswitch
+ popl %eax
xorl %eax, %eax
incl %eax
- movl %ecx, 0(%esp)
ret