[Bug c/55882] unaligned load/store : incorrect struct offset

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jan 8 15:07:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55882

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> 2013-01-08 15:07:16 UTC ---
(In reply to comment #3)
> 
> 00000000 <testfunction>:                        00000000 <testfunction>:
> ...
>   20:   03c21021  addu    v0,s8,v0          20:   03c21021  addu    v0,s8,v0
> 
>   24:   8c44000c  lw      a0,12(v0)     |   24:   8c44000a  lw      a0,10(v0)  
> 
>   28:   3c03000f  lui     v1,0xf        |   28:   3c03ffff  lui     v1,0xffff
>   2c:   3463ffff  ori     v1,v1,0xffff  |   2c:   3463000f  ori     v1,v1,0xf
>   30:   00831824  and     v1,a0,v1          30:   00831824  and     v1,a0,v1
> 
>   34:   ac43000c  sw      v1,12(v0)     |   34:   ac43000a  sw      v1,10(v0)   
> 
>   38:   03c0e82d  move    sp,s8             38:   03c0e82d  move    sp,s8
>   3c:   8fbe03ec  lw      s8,1004(sp)       3c:   8fbe03ec  lw      s8,1004(sp)
>   40:   27bd03f0  addiu   sp,sp,1008        40:   27bd03f0  addiu   sp,sp,1008
>   44:   03e00008  jr      ra                44:   03e00008  jr      ra
>   48:   00000000  nop                       48:   00000000  nop

I believe the right side is correct.  use_alt_rd_dqs is at offset 10
(enable_monitor at 0, step_out_pointer at 2, hold_out_pointer at 4, etc.).

Depending on enum behavior on mips (-fshort-enums?) mystruct is aligned
to two bytes.

Can you post -v output of the compile?  I'm trying to reproduce with
a cross to mips-elf now.



More information about the Gcc-bugs mailing list