diff options
| author | rsc <devnull@localhost> | 2004-04-21 19:29:04 +0000 |
|---|---|---|
| committer | rsc <devnull@localhost> | 2004-04-21 19:29:04 +0000 |
| commit | a3785ca2cc1c8693d89ebe44216acf781a634718 (patch) | |
| tree | 2ae82a3a7c462e670e8b0d6e234e301cfd317987 /src/libthread/asm-FreeBSD-386.s | |
| parent | cdd61ab0aee825e93688ae5d2cfb86f14baad858 (diff) | |
| download | plan9port-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.s | 8 |
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 |
