[IA64] Avoid .spillpsp directive in handcoded assembly
authorDavid Mosberger-Tang <davidm@hpl.hp.com>
Wed, 4 May 2005 13:42:00 +0000 (06:42 -0700)
committerTony Luck <tony.luck@intel.com>
Tue, 10 May 2005 20:52:00 +0000 (13:52 -0700)
commitbfd68594082d8384781c242aa72a7950b5cf51aa
tree00b5d0612bb155a83403580a4a88a0600c91e232
parenta84f5770170232a48e753e02ee5f0f17ee17b791
[IA64] Avoid .spillpsp directive in handcoded assembly

Some time ago, GAS was fixed to bring the .spillpsp directive in line
with the Intel assembler manual (there was some disagreement as to
whether or not there is a built-in 16-byte offset).  Unfortunately,
there are two places in the kernel where this directive is used in
handwritten assembly files and those of course relied on the "buggy"
behavior.  As a result, when using a "fixed" assembler, the kernel
picks up the UNaT bits from the wrong place (off by 16) and randomly
sets NaT bits on the scratch registers.  This can be noticed easily by
looking at a coredump and finding various scratch registers with
unexpected NaT values.  The patch below fixes this by using the
.spillsp directive instead, which works correctly no matter what
assembler is in use.

Signed-off-by: David Mosberger-Tang <davidm@hpl.hp.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/entry.S