1
0
mirror of https://github.com/golang/go synced 2024-11-25 22:47:57 -07:00

runtime: fix floating point exception on Plan 9

Change 5660047 moved an FLDCW instruction
that disables invalid operand traps into
runtime·asminit, which is called from
runtime·mstart. Thus, runtime·check is being
called prior to setting the appropriate control bits,
which on any QNaN comparison will cause Plan 9
to take an invalid operand trap. This change loads
the control bits (for Plan 9) prior to runtime·check.
Ideally, this should be done before the QNaN checks
on any system, but possibly other kernels simply
don't ever trap on invalid operands.

R=golang-dev, rminnich
CC=golang-dev, john, rsc
https://golang.org/cl/5939045
This commit is contained in:
Akshat Kumar 2012-04-10 15:14:10 -04:00 committed by Russ Cox
parent c9ad57ff2c
commit 7056ec6bfd

View File

@ -25,6 +25,7 @@ argv_fix:
ADDL $4, BP
LOOP argv_fix
CALL runtime·asminit(SB)
JMP _rt0_386(SB)
DATA runtime·isplan9(SB)/4, $1