• D
    [IA64] Avoid .spillpsp directive in handcoded assembly · bfd68594
    David Mosberger-Tang 提交于
    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: NDavid Mosberger-Tang <davidm@hpl.hp.com>
    Signed-off-by: NTony Luck <tony.luck@intel.com>
    bfd68594
entry.S 42.6 KB