[Bug rtl-optimization/79032] New: Unaligned memory access in code generated for sparc 32 with LRA
cederman at gaisler dot com
gcc-bugzilla@gcc.gnu.org
Mon Jan 9 16:39:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79032
Bug ID: 79032
Summary: Unaligned memory access in code generated for sparc 32
with LRA
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: cederman at gaisler dot com
Target Milestone: ---
Target: sparc
Hi,
The following code compiled with -O2 -mcpu=v8 -mlra causes an unaligned memory
access:
typedef struct {
short a;
long long b;
short c;
_Bool d;
unsigned short e;
long *f
} g;
h(g *i) {
long a = 1;
a /= i->e;
i->f[a]--;
return 0;
}
With -mlra:
mov 1, %g1
sra %g1, 31, %g2
wr %g2, 0, %y
ld [%o0+18], %g2 <- unaligned
nop
nop
sdiv %g1, %g2, %g1
With -mno-lra:
lduh [%o0+20], %g2 <- aligned
ld [%o0+24], %g3
mov 1, %g1
mov 0, %o0
sra %g1, 31, %g4
wr %g4, 0, %y
nop
nop
nop
sdiv %g1, %g2, %g1
More information about the Gcc-bugs
mailing list