http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52698
Bug #: 52698 Summary: -maddress-mode=long doesn't work Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com CC: ubiz...@gmail.com Target: x86-64 [hjl@gnu-mic-2 gcc]$ cat /tmp/x.c extern void abort (void); static __thread unsigned char foo [32] __attribute__ ((tls_model ("initial-exec"), aligned (sizeof (void *)))); void test2 (void) { unsigned int s; for (s = 0; s < sizeof (foo); ++s) { if (foo [s] != s) abort (); foo [s] = sizeof (foo) - s; } } [hjl@gnu-mic-2 gcc]$ ./xgcc -B./ -mx32 -O2 -S /tmp/x.c -maddress-mode=long /tmp/x.c: In function \u2018test2\u2019: /tmp/x.c:14:1: error: insn does not satisfy its constraints: (insn 52 78 53 5 (set (mem/j:QI (plus:DI (plus:DI (reg:DI 37 r8) (reg:DI 38 r9)) (reg:DI 2 cx [orig:98 D.1709 ] [98])) [0 foo S1 A8]) (reg:QI 1 dx [100])) /tmp/x.c:12 66 {*movqi_internal} (nil)) /tmp/x.c:14:1: internal compiler error: in reload_cse_simplify_operands, at postreload.c:403 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. [hjl@gnu-mic-2 gcc]$ ./xgcc -B./ -mx32 -O2 -S /tmp/x.c -maddress-mode=short [hjl@gnu-mic-2 gcc]$