This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH:[darwin] fix load of a misaligned double word
- From: Brad Lucier <lucier at math dot purdue dot edu>
- To: pinskia at physics dot uc dot edu (Andrew Pinski)
- Cc: lucier at mailhost dot math dot purdue dot edu (Brad Lucier), gcc-patches at gcc dot gnu dot org, dje at watson dot ibm dot com (David Edelsohn), pinskia at physics dot uc dot edu (Andrew Pinski), fjahanian at apple dot com (fj)
- Date: Sun, 28 Dec 2003 21:26:53 -0500 (EST)
- Subject: Re: PATCH:[darwin] fix load of a misaligned double word
> Basically it is these two lines which are causing them:
>
> *(double*)(((int)(((int*)((___r1)-(1)))+1))+(((((int)(8))<<2))<<(3
> -2)))=(2*(1+2)<<2);
> n = (1<<2) + 17 * sizeof (double) + (5<<2);
>
> *(double*)(((int)(((int*)((___r1)-(1)))+1))+(((((int)(9))<<2))<<(3
> -2)))=(2*n);
>
> Basically it is GCC likes to use GPR for floating point.
So, is the problem that GCC approves the non-multiple-of-four offset for the
store of a DFMODE pseudo, and then decides to stick the DFMODE pseudo into
a GPR?
Brad