The relevant bit is always masked out higher up.
The only place I can find a reference to a 'datachain' error is for the
weitek 1167 fpu. Even the 8087 has the corresponding bit of the x87
status reserved.
Quite why it has appeared here is anybodies guess.
This underscores the need to replace this error-prone cpp API by
unconditionally defined {pre,post}atomic_membar_*.
This change should only remove unnecessary membar_producers on x86.
-mno-mmx -mno-sse -mno-avx -mno-80387 -mno-fp-ret-in-387
Since no-sse implies no-sse2 that should ensure that the compiler really
doesn't emit any instructions that might trap trying to use the FPU.
On amd64 at least some of those are needed to stop the compiler
saving the registers to stack on every varargs function.
It might be that -mno-sse did that before.
alignment by default. Override this to 8byte alignment for alpha and arm
eabi.
Someone (tm) can review this change once the standards and compiler(s)
have sorted themselves out.
hardware ones, and those in the mcontext, ptrace and core files we
can really safely cast and copy between the types.
Remove a couple of temporary buffers and add CTASSERT()s that the sizes
do actually match.
to save the control word and tag word on fp faults.
Nothing I could find looked at them before I removed the code that wrote them.
It might appear that these fields got exported to userspace (via mcontext),
but that code carefully avoided those fields.
I've also deleted some very historic fields from the union inside __fpregset_t
this doesn't affect its size.
The __fpregset_t fields are now the same size as the ones in the pcb.
Which is good because they get cast to each other in a few places.
Rename the associated ci_fpsaving field to 'unused'.
I'm not sure they could ever happen, you could get unwanted calls into
the fpu trap code while saving state when using INT13 - but these are
different.
The return value from the i386 fpudna() was always 1 - possibly a historic
relic of the kernel fp emulation. Remove and don't check in trap.S.
The amd64 and i386 fpudna() code is now almost identical.
From Jason McIntyre <jmc@OpenBSD>.
While here, also explain about the extra file in the example and
put .Ex into its own section in the correct place. Bump date.
file's mtime as the birthtime of the signature - rather, just zero
this value (the key birthtime is an inherent part of calculating the
key id)
This allows public key files to be copied to other file systems, machines
or directories, and still produce the same key id.
npxintr() is only generated when a process executes an FP instruction
and the TS set interrupt takes precedence - so we know the current lwp
owns the fp registers.
It is also then impossible to get a splurious error while saving
the registers.
Ths lets the npxintr() code be simplified somewhat.
XXX: I'm not at all sure it really DTRT if the process actually wished
to fixup anything in the signal handler (or even if the signal is masked).