This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH:[darwin] fix load of a misaligned double word

I have a few questions about this patch.

First, I can't find a message where it's been approved, but it was committed in

Second, I hit this problem myself, and now my code compiles with the FSF compiler with -mcpu=G5, but my FFT code is 10-20% slower than before with -mcpu=G4 -mtune=G5. So I'm wondering if this is the right thing to do.

The Apple assembler was complaining about addresses like 3(r4) for loads and stores of floating-point values. If the value of r4 here is equal to 5 modulo 8, then this seems like a properly aligned memory address according to the PowerPC programming manuals. Gambit is very careful to align doubles on 8-byte boundaries, but these are accessed through char * pointers something like

*(double *)((char *)p+3)

and this generated the misaligned messages like the one mentioned in

So is gcc at fault and needs to be fixed, as this patch implies, or is Apple's assembler? Or do I just not understand what's going on here?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]