• David Mosberger-Tang's avatar
    [IA64] Avoid .spillpsp directive in handcoded assembly · bfd68594
    David Mosberger-Tang authored
    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: default avatarDavid Mosberger-Tang <davidm@hpl.hp.com>
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    bfd68594
entry.S 42.6 KB