linux-mips
[Top] [All Lists]

Re: Alignment of FP Context Storage

To: "Kevin D. Kissell" <kevink@mips.com>
Subject: Re: Alignment of FP Context Storage
From: Ralf Baechle <ralf@linux-mips.org>
Date: Mon, 18 Nov 2002 14:33:53 +0100
Cc: linux-mips@linux-mips.org
In-reply-to: <015201c28f05$cb583800$10eca8c0@grendel>; from kevink@mips.com on Mon, Nov 18, 2002 at 02:24:06PM +0100
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <015201c28f05$cb583800$10eca8c0@grendel>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.2.5.1i
On Mon, Nov 18, 2002 at 02:24:06PM +0100, Kevin D. Kissell wrote:

> I'm cleaning up some old Linux kernel sandboxes, and
> came across a patch which I had long ago made in a
> local copy of include/asm-mips/processor.h but which
> does not seem to have been propagated more widely.
> I had added "__attribute__((aligned(8))))" to the
> declarations of the mips_fpu_hard_struct and
> mips_fpu_soft_struct data structures, presumably
> because there was a need to ensure 64-bit alignment
> of the elements so that LDC1 instructions would work.
> We don't generally have a problem here, presumably
> because either the previous data declarations naturally
> align things to 64-bits, or because we've ensured things 
> at a higher level of makfile compiler directives.  Are we 
> in fact guarnateed to be safe without the source code 
> directive, or should those __attribute__ directives be 
> added as insurance?

The definition of mips_cpu_hard_struct uses doubles which is ensuring
mips_fpu_hard_struct will have 64-bit alignment.  This is actually part
of thread_struct which itself has 8kB alignment on 32-bit and 16kB
alignment on 64-bit.

  Ralf

<Prev in Thread] Current Thread [Next in Thread>