https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60918
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |INVALID
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This code is correct because GCC assumes memcpy is used on normal memory.
If you use memcpy on non-normal memory you should not be using memcpy here.
0: 8c04123c lw a0,4668(zero)
4: 3c021234 lui v0,0x1234
8: 24425678 addiu v0,v0,22136
c: 8c031240 lw v1,4672(zero)
10: ac820000 sw v0,0(a0)
14: 88850000 lwl a1,0(a0) -> first access: LWL command
18: 00001021 move v0,zero
1c: 98850003 lwr a1,3(a0) -> second access: LWR command
20: 00000000 nop
24: a8650000 swl a1,0(v1) -> for store operation the same procedure
28: 03e00008 jr ra
2c: b8650003 swr a1,3(v1) -> second store command