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