This is the mail archive of the
mailing list for the GCC project.
Re: [patch] Fix powerpc 64 alignment problem for lwa instruction
- From: Dale Johannesen <dalej at apple dot com>
- To: Andrew Pinski <pinskia at physics dot uc dot edu>
- Cc: Dale Johannesen <dalej at apple dot com>, hm dot chang at apple dot com (Hui-May Chang), gcc-patches at gcc dot gnu dot org
- Date: Tue, 7 Nov 2006 13:09:43 -0800
- Subject: Re: [patch] Fix powerpc 64 alignment problem for lwa instruction
- References: <200611072056.kA7KuO7f003853@localhost.localdomain>
On Nov 7, 2006, at 12:56 PM, Andrew Pinski wrote:
We, at Apple, found a ppc64 code generation problem where lwa_operand
routine didn't check the alignment of a memory operand being 32 bits
aligned or not.
The following patch has been tested on ppc MacOS with "make all", "--
enable-languages=c,c++,objc,obj-c++", and regression tested with a
level "make check-gcc" with no regression.
* gcc/config/rs6000/predicates.md (lwa_operand): Check the
a memory operand is 32 bits aligned or not.
This is the wrong fix, the memory alignment is not the issue here
but the offset
field has to be multiple of 4. This is according to the ISA
The memory alignment feeds into the offset field, try the testcase:
(-static or -mdynamic-no-pic):
&_mybox is only 2-byte aligned, although it may randomly be a
multiple of 4 in practice.