diff options
author | jake <jake@FreeBSD.org> | 2002-02-23 18:55:21 +0000 |
---|---|---|
committer | jake <jake@FreeBSD.org> | 2002-02-23 18:55:21 +0000 |
commit | 3ed9f58376b0b0def37c9ab340dfc39dc4b186ab (patch) | |
tree | 4b7e05c8291d32289a72008a04f2f6f69c3112f2 /lib/libc/stdlib/strtod.c | |
parent | fc548e14d2eaded91c0c28560fd89922d4defee6 (diff) | |
download | FreeBSD-src-3ed9f58376b0b0def37c9ab340dfc39dc4b186ab.zip FreeBSD-src-3ed9f58376b0b0def37c9ab340dfc39dc4b186ab.tar.gz |
1. Setup the user stack pointer before returning to a user trap handler.
If we don't do this here there's a 1 instruction race where an interrupt
could come in and crash the user process due to having no stack.
2. Pass %fsr to the user trap handler in %l4. Since %fsr can only be loaded
from or stored to memory, we need to do some contortions and temporarily
save it to the alternate global stack.
3. Reload the pcb and pcpu registers for traps in kernel mode, for sanity.
Submitted by: tmm (1, 2)
Diffstat (limited to 'lib/libc/stdlib/strtod.c')
0 files changed, 0 insertions, 0 deletions