Re: [patch 2.6.13-rc3a] i386: inline restore_fpu

From: Chuck Ebbert
Date: Sat Jul 23 2005 - 02:14:13 EST


On Date: Fri, 22 Jul 2005 at 16:19:25 -0700 (PDT), Linus Torvalds wrote:

> /*
> * The "nop" is needed to make the instructions the same
> * length.
> */
> #define restore_fpu(tsk) \
> alternative_input( \
> "nop ; frstor %1", \
> "fxrstor %1", \
> X86_FEATURE_FXSR, \
> "m" ((tsk)->thread.i387.fsave))

Probably a very minor point, but shouldn't it be

"m" ((tsk)->thread.i387.fxsave))

because that's the largest possible operand that could end up being read?


> Now, we should do the same for "fnsave ; fwait" vs "fxsave ; fnclex" too,
> but I was lazy. If somebody wants to try that, it would need an
> "alternative_output()" define but should otherwise be trivial too.

Is that function called __save_init_fpu because it saves and then
initializes the fpu? Unlike fsave, fxsave does not init the fpu after
it saves the state; to make the behavior match it should be "fxsave ; fninit"


__
Chuck
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/