These registers must be empty before entry and upon exit from a function. The flags register contains the system flags, such as the direction flag and the carry flag. Other user flags have no specified role in the standard calling sequence and are not reserved. The control word contains the floating-point flags, such as the rounding mode and exception masking. This register is initialized at process initialization time and its value must be preserved.
Signals can interrupt processes.
Functions called during signal handling have no unusual restriction on their use of registers. Moreover, if a signal handling function returns, the process resumes its original execution path with registers restored to their original values. Thus, programs and compilers may freely use all registers without danger of signal handlers changing their values. A floating-point return value appears on the top of the fpu register stack. The caller must then remove the value from the fpu stack, even if it doesn't use the value.