diff options
author | jhb <jhb@FreeBSD.org> | 2002-11-08 15:24:32 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2002-11-08 15:24:32 +0000 |
commit | 1027780c5017a5546b51286f7aaa235a51957478 (patch) | |
tree | 4922958633712e06ec6b194a43959f11c5ac238b /sys/alpha | |
parent | 8ff6cd442c4f76481597e2827f5b40aaa9da59c6 (diff) | |
download | FreeBSD-src-1027780c5017a5546b51286f7aaa235a51957478.zip FreeBSD-src-1027780c5017a5546b51286f7aaa235a51957478.tar.gz |
- Update the SIMOS fp-stealing code to KSE-II and beyond.
- Wrap a variable only used in !SIMOS case in #ifndef SIMOS.
Diffstat (limited to 'sys/alpha')
-rw-r--r-- | sys/alpha/alpha/prom.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/sys/alpha/alpha/prom.c b/sys/alpha/alpha/prom.c index 4481a19..ba914c5 100644 --- a/sys/alpha/alpha/prom.c +++ b/sys/alpha/alpha/prom.c @@ -99,7 +99,9 @@ static int alpha_console; void init_bootstrap_console() { +#ifndef SIMOS char buf[4]; +#endif init_prom_interface(hwrpb); @@ -200,12 +202,14 @@ enter_prom() /* * SimOS console uses floating point. */ - if (curproc != PCPU_GET(fpcurproc)) { + if (curthread != PCPU_GET(fpcurthread)) { alpha_pal_wrfen(1); - if (PCPU_GET(fpcurproc)) - savefpstate(&PCPU_GET(fpcurproc)->p_addr->u_pcb.pcb_fp); - PCPU_SET(fpcurproc, curproc); - restorefpstate(&PCPU_GET(fpcurproc)->p_addr->u_pcb.pcb_fp); + if (PCPU_GET(fpcurthread)) { + savefpstate(&PCPU_GET(fpcurthread)->td_pcb->pcb_fp); + PCPU_GET(fpcurthread)->td_pcb->pcb_hw.apcb_flags &= ~ALPHA_PCB_FLAGS_FEN; + } + PCPU_SET(fpcurthread, curthread); + restorefpstate(&PCPU_GET(fpcurthread)->td_pcb->pcb_fp); } #endif if (!pmap_uses_prom_console()) |