This is the mail archive of the gcc-patches@gcc.gnu.org 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: PR 45819 - possible fix?


On Sat, Jul 23, 2011 at 6:29 PM, DJ Delorie <dj@redhat.com> wrote:
>
>> Yeah, the testcase is invalid - that we lost the volatile was a bug, but
>> you really have to fix the kernel.
>
> Sadly, that's not a helpful suggestion. ?How else should the kernel
> force a word-sized read? ?I thought volatile was the way to tell gcc
> "do exactly what I tell you to do" ?

Huh?  No.  Volatile means "preserve this load/store".  If you want
to force it to assume the memory is aligned then you have to do
that during RTL expansion or in the target.

> And the kernel does produce the right code at that particular spot
> now, but for some reason the usb module still doesn't work. ?We'll
> have to debug it some more. ?The same code works just fine with gcc
> 4.4.

Fact is that GCC knows that memory is not properly aligned.  Iff arm
is truly a strict-align target then an aligned load/store from such memory
will fault.  And I seriously doubt you get the int member magically aligned
by "luck" (thus, misaligning the first char member by exactly 3 bytes).

So either arm should not lie and claim it's strict-align or you need to
fix the kernel anyway.

Richard.


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