public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/47715] New: [x32] TLS doesn't work
@ 2011-02-13 0:59 hjl.tools at gmail dot com
2011-02-13 1:49 ` [Bug target/47715] " hjl at gcc dot gnu.org
` (20 more replies)
0 siblings, 21 replies; 22+ messages in thread
From: hjl.tools at gmail dot com @ 2011-02-13 0:59 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
Summary: [x32] TLS doesn't work
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: hjl.tools@gmail.com
[hjl@gnu-6 ilp32-14]$ cat t.i
extern __thread int h_errno;
int *
__h_errno_location (void)
{
return &h_errno;
}
[hjl@gnu-6 ilp32-14]$ /usr/gcc-4.6.0-x32/bin/gcc -mx32 -O2 -S t.i -fPIC
t.i: In function \u2018__h_errno_location\u2019:
t.i:6:1: error: unrecognizable insn:
(call_insn/u 5 4 6 3 (parallel [
(set (reg:DI 0 ax)
(call:DI (mem:QI (symbol_ref:DI ("__tls_get_addr")) [0 S1 A8])
(const_int 0 [0])))
(unspec:DI [
(symbol_ref:SI ("h_errno") [flags 0x50] <var_decl
0x7f94def6a000 h_errno>)
] UNSPEC_TLS_GD)
]) t.i:5 -1
(expr_list:REG_EH_REGION (const_int -2147483648 [0xffffffff80000000])
(nil))
(nil))
t.i:6:1: internal compiler error: in extract_insn, at recog.c:2109
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
[hjl@gnu-6 ilp32-14]$
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
@ 2011-02-13 1:49 ` hjl at gcc dot gnu.org
2011-02-13 17:41 ` hjl.tools at gmail dot com
` (19 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl at gcc dot gnu.org @ 2011-02-13 1:49 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #1 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-02-13 01:18:35 UTC ---
Author: hjl
Date: Sun Feb 13 01:18:32 2011
New Revision: 170099
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=170099
Log:
Remove DI on operand 1 in tls_global_dynamic_64 patterns.
gcc/
2011-02-12 H.J. Lu <hongjiu.lu@intel.com>
PR target/47715
* config/i386/i386.md (*tls_global_dynamic_64): Remove DI on
operand 1.
(tls_global_dynamic_64): Likewise.
gcc/testsuite/
2011-02-12 H.J. Lu <hongjiu.lu@intel.com>
PR target/47715
* gcc.target/i386/pr47715-1.c: New.
* gcc.target/i386/pr47715-2.c: Likewise.
Added:
branches/x32/gcc/testsuite/gcc.target/i386/pr47715-1.c
branches/x32/gcc/testsuite/gcc.target/i386/pr47715-2.c
Modified:
branches/x32/gcc/ChangeLog.x32
branches/x32/gcc/config/i386/i386.md
branches/x32/gcc/testsuite/ChangeLog.x32
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
2011-02-13 1:49 ` [Bug target/47715] " hjl at gcc dot gnu.org
@ 2011-02-13 17:41 ` hjl.tools at gmail dot com
2011-02-13 23:36 ` hjl at gcc dot gnu.org
` (18 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl.tools at gmail dot com @ 2011-02-13 17:41 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> 2011-02-13 17:01:13 UTC ---
Another one:
[hjl@gnu-6 ilp32-14]$ cat s.c
struct initial_sp
{
void *sp;
long len;
};
__thread struct initial_sp __morestack_initial_sp;
void bar (void *);
void
foo ()
{
bar (&__morestack_initial_sp.len);
}
[hjl@gnu-6 ilp32-14]$ make s.s
/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/ -S -o s.s -mx32 -O2 -g
-fPIC s.c
s.c: In function \u2018foo\u2019:
s.c:12:1: error: unrecognizable insn:
(insn 8 7 9 3 (set (reg/f:SI 59)
(const:SI (plus:SI (symbol_ref:SI ("__morestack_initial_sp") [flags
0x10] <var_decl 0x7f9e580eb000 __morestack_initial_sp>)
(const_int 4 [0x4])))) s.c:11 -1
(nil))
s.c:12:1: internal compiler error: in extract_insn, at recog.c:2109
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [s.s] Error 1
[hjl@gnu-6 ilp32-14]$
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
2011-02-13 1:49 ` [Bug target/47715] " hjl at gcc dot gnu.org
2011-02-13 17:41 ` hjl.tools at gmail dot com
@ 2011-02-13 23:36 ` hjl at gcc dot gnu.org
2011-02-14 18:48 ` hjl at gcc dot gnu.org
` (17 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl at gcc dot gnu.org @ 2011-02-13 23:36 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #3 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-02-13 23:29:40 UTC ---
Author: hjl
Date: Sun Feb 13 23:29:34 2011
New Revision: 170116
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=170116
Log:
Properly support TLS symbol in ix86_expand_move.
gcc/
2011-02-13 H.J. Lu <hongjiu.lu@intel.com>
PR target/47715
* config/i386/i386.c (ix86_expand_move): Properly support TLS
symbol.
gcc/testsuite/
2011-02-13 H.J. Lu <hongjiu.lu@intel.com>
PR target/47715
* gcc.target/i386/pr47715-3.c: New.
Added:
branches/x32/gcc/testsuite/gcc.target/i386/pr47715-3.c
Modified:
branches/x32/gcc/ChangeLog.x32
branches/x32/gcc/config/i386/i386.c
branches/x32/gcc/testsuite/ChangeLog.x32
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (2 preceding siblings ...)
2011-02-13 23:36 ` hjl at gcc dot gnu.org
@ 2011-02-14 18:48 ` hjl at gcc dot gnu.org
2011-02-17 14:32 ` hjl.tools at gmail dot com
` (16 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl at gcc dot gnu.org @ 2011-02-14 18:48 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #4 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-02-14 18:33:30 UTC ---
Author: hjl
Date: Mon Feb 14 18:33:27 2011
New Revision: 170146
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=170146
Log:
Update TLS symbol PIC support.
2011-02-13 H.J. Lu <hongjiu.lu@intel.com>
PR target/47715
* config/i386/i386.c (ix86_expand_move): Update TLS symbol PIC
support.
Modified:
branches/x32/gcc/ChangeLog.x32
branches/x32/gcc/config/i386/i386.c
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (3 preceding siblings ...)
2011-02-14 18:48 ` hjl at gcc dot gnu.org
@ 2011-02-17 14:32 ` hjl.tools at gmail dot com
2011-02-18 2:50 ` hjl at gcc dot gnu.org
` (15 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl.tools at gmail dot com @ 2011-02-17 14:32 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> 2011-02-17 14:31:59 UTC ---
Another one:
[hjl@gnu-33 ilp32-23]$ cat x.i
struct gomp_team_state
{
struct gomp_team_state *prev_ts;
unsigned team_id;
unsigned level;
};
struct gomp_thread
{
void *data;
struct gomp_team_state ts;
};
extern __thread struct gomp_thread gomp_tls_data;
int
foo (int level)
{
struct gomp_team_state *ts = &gomp_tls_data.ts;
if (level < 0 || level > ts->level)
return -1;
for (level = ts->level - level; level > 0; --level)
ts = ts->prev_ts;
return ts->team_id;
}
[hjl@gnu-33 ilp32-23]$ make
/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/ -S -o x.s -mx32 -O2 -g x.i
x.i: In function \u2018foo\u2019:
x.i:22:1: error: unrecognizable insn:
(insn 11 10 12 6 (set (reg:SI 78)
(const:SI (plus:SI (symbol_ref:SI ("gomp_tls_data") [flags 0x60]
<var_decl 0x7f9c2345a000 gomp_tls_data>)
(const_int 4 [0x4])))) x.i:19 -1
(nil))
x.i:22:1: internal compiler error: in extract_insn, at recog.c:2109
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [x.s] Error 1
[hjl@gnu-33 ilp32-23]$
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (4 preceding siblings ...)
2011-02-17 14:32 ` hjl.tools at gmail dot com
@ 2011-02-18 2:50 ` hjl at gcc dot gnu.org
2011-02-25 17:25 ` hjl.tools at gmail dot com
` (14 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl at gcc dot gnu.org @ 2011-02-18 2:50 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #6 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-02-18 02:23:39 UTC ---
Author: hjl
Date: Fri Feb 18 02:23:35 2011
New Revision: 170267
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=170267
Log:
Always use legitimized plus const symbol reference.
gcc/
2011-02-17 H.J. Lu <hongjiu.lu@intel.com>
PR target/47715
* config/i386/i386.c (ix86_expand_move): Always use legitimized
plus const symbol reference.
gcc/testsuite/
2011-02-17 H.J. Lu <hongjiu.lu@intel.com>
PR target/47715
* gcc.target/i386/pr47715-4.c: New.
Added:
branches/x32/gcc/testsuite/gcc.target/i386/pr47715-4.c
Modified:
branches/x32/gcc/ChangeLog.x32
branches/x32/gcc/config/i386/i386.c
branches/x32/gcc/testsuite/ChangeLog.x32
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (5 preceding siblings ...)
2011-02-18 2:50 ` hjl at gcc dot gnu.org
@ 2011-02-25 17:25 ` hjl.tools at gmail dot com
2011-02-25 21:46 ` hjl.tools at gmail dot com
` (13 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl.tools at gmail dot com @ 2011-02-25 17:25 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #7 from H.J. Lu <hjl.tools at gmail dot com> 2011-02-25 16:56:12 UTC ---
Thread pointer really should be 32bit in x32.
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (6 preceding siblings ...)
2011-02-25 17:25 ` hjl.tools at gmail dot com
@ 2011-02-25 21:46 ` hjl.tools at gmail dot com
2011-02-25 21:49 ` hjl at gcc dot gnu.org
` (12 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl.tools at gmail dot com @ 2011-02-25 21:46 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #8 from H.J. Lu <hjl.tools at gmail dot com> 2011-02-25 21:23:10 UTC ---
*** Bug 47403 has been marked as a duplicate of this bug. ***
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (7 preceding siblings ...)
2011-02-25 21:46 ` hjl.tools at gmail dot com
@ 2011-02-25 21:49 ` hjl at gcc dot gnu.org
2011-05-15 23:21 ` hjl at gcc dot gnu.org
` (11 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl at gcc dot gnu.org @ 2011-02-25 21:49 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #9 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-02-25 21:25:24 UTC ---
Author: hjl
Date: Fri Feb 25 21:25:20 2011
New Revision: 170504
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=170504
Log:
Use ptr_mode instead of Pmode with UNSPEC_TP.
2011-02-25 H.J. Lu <hongjiu.lu@intel.com>
PR target/47715
* config/i386/i386.c (get_thread_pointer): Use ptr_mode
instead of Pmode with UNSPEC_TP.
* config/i386/i386.md (tp_seg): Removed.
(*load_tp_<mode>): Replace :P with :PTR.
(*add_tp_<mode>): Likewise.
(*load_tp_x32): New.
Modified:
branches/x32/gcc/ChangeLog.x32
branches/x32/gcc/config/i386/i386.c
branches/x32/gcc/config/i386/i386.md
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (8 preceding siblings ...)
2011-02-25 21:49 ` hjl at gcc dot gnu.org
@ 2011-05-15 23:21 ` hjl at gcc dot gnu.org
2011-06-29 16:40 ` hjl at gcc dot gnu.org
` (10 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl at gcc dot gnu.org @ 2011-05-15 23:21 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #10 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-05-15 22:58:15 UTC ---
Author: hjl
Date: Sun May 15 22:58:13 2011
New Revision: 173777
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=173777
Log:
Rename tls_global_dynamic_64 to tls_global_dynamic_64_<mode>.
2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
PR target/47715
* config/i386/i386.md (PTR64): New.
(*tls_global_dynamic_64): Rename to ...
(*tls_global_dynamic_64_<mode>): This. Put PTR64 on operand 1.
(tls_global_dynamic_64): Rename to ...
(tls_global_dynamic_64_<mode>): This. Put PTR64 on operand 1.
* config/i386/i386.c (legitimize_tls_address): Updated.
Modified:
branches/x32/gcc/ChangeLog.x32
branches/x32/gcc/config/i386/i386.c
branches/x32/gcc/config/i386/i386.md
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (9 preceding siblings ...)
2011-05-15 23:21 ` hjl at gcc dot gnu.org
@ 2011-06-29 16:40 ` hjl at gcc dot gnu.org
2011-07-05 15:48 ` hjl at gcc dot gnu.org
` (9 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl at gcc dot gnu.org @ 2011-06-29 16:40 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #11 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-06-29 16:39:50 UTC ---
Author: hjl
Date: Wed Jun 29 16:39:45 2011
New Revision: 175654
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175654
Log:
Promote argument before checking non-legitimate constant.
2011-06-29 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/47715
* calls.c (precompute_register_parameters): Promote the function
argument before checking non-legitimate constant.
Modified:
branches/x32/gcc/ChangeLog.x32
branches/x32/gcc/calls.c
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (10 preceding siblings ...)
2011-06-29 16:40 ` hjl at gcc dot gnu.org
@ 2011-07-05 15:48 ` hjl at gcc dot gnu.org
2011-07-28 2:43 ` hjl.tools at gmail dot com
` (8 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl at gcc dot gnu.org @ 2011-07-05 15:48 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #12 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-07-05 15:47:44 UTC ---
Author: hjl
Date: Tue Jul 5 15:47:40 2011
New Revision: 175864
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175864
Log:
Promote the function argument before checking non-legitimate constant.
2011-07-05 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/47715
* calls.c (precompute_register_parameters): Promote the function
argument before checking non-legitimate constant.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/calls.c
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (11 preceding siblings ...)
2011-07-05 15:48 ` hjl at gcc dot gnu.org
@ 2011-07-28 2:43 ` hjl.tools at gmail dot com
2011-07-28 2:45 ` hjl.tools at gmail dot com
` (7 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl.tools at gmail dot com @ 2011-07-28 2:43 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #13 from H.J. Lu <hjl.tools at gmail dot com> 2011-07-28 02:43:35 UTC ---
Another testcase:
[hjl@gnu-6 ilp32-28]$ cat y.i
extern __thread int *foo;
extern void x (void *);
void
bar ()
{
x ((void *) &foo);
}
[hjl@gnu-6 ilp32-28]$ make y.s
/export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -S -o y.s -mx32 -fPIC -O -dp
y.i
y.i: In function \u2018bar\u2019:
y.i:8:1: error: unrecognizable insn:
(call_insn/u 5 4 6 3 (parallel [
(set (reg:DI 0 ax)
(call:DI (mem:QI (symbol_ref:DI ("__tls_get_addr")) [0 S1 A8])
(const_int 0 [0])))
(unspec:DI [
(symbol_ref:SI ("foo") [flags 0x50] <var_decl
0x7fd32b39e140 foo>)
] UNSPEC_TLS_GD)
]) y.i:7 -1
(expr_list:REG_EH_REGION (const_int -2147483648 [0xffffffff80000000])
(nil))
(nil))
y.i:8:1: internal compiler error: in extract_insn, at recog.c:2115
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [y.s] Error 1
[hjl@gnu-6 ilp32-28]$
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (12 preceding siblings ...)
2011-07-28 2:43 ` hjl.tools at gmail dot com
@ 2011-07-28 2:45 ` hjl.tools at gmail dot com
2011-07-28 14:43 ` uros at gcc dot gnu.org
` (6 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl.tools at gmail dot com @ 2011-07-28 2:45 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #14 from H.J. Lu <hjl.tools at gmail dot com> 2011-07-28 02:45:20 UTC ---
TLS on X32 is almost identical to TLS on x86-64. The only
difference is x32 address space is 32bit. That means TLS
symbols can be in either SImode or DImode with upper 32bit
zero.
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (13 preceding siblings ...)
2011-07-28 2:45 ` hjl.tools at gmail dot com
@ 2011-07-28 14:43 ` uros at gcc dot gnu.org
2011-07-29 13:49 ` uros at gcc dot gnu.org
` (5 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: uros at gcc dot gnu.org @ 2011-07-28 14:43 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #15 from uros at gcc dot gnu.org 2011-07-28 14:42:52 UTC ---
Author: uros
Date: Thu Jul 28 14:42:45 2011
New Revision: 176872
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=176872
Log:
PR target/47715
* config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
tls_symbolic_operand check. Update code sequence for TARGET_X32.
(tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
(tls_dynamic_gnu2_64): Ditto.
(*tls_dynamic_gnu2_lea_64): Ditto.
(*tls_dynamic_gnu2_call_64): Ditto.
(*tls_dynamic_gnu2_combine_64): Ditto.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.md
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (14 preceding siblings ...)
2011-07-28 14:43 ` uros at gcc dot gnu.org
@ 2011-07-29 13:49 ` uros at gcc dot gnu.org
2011-07-29 13:52 ` ubizjak at gmail dot com
` (4 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: uros at gcc dot gnu.org @ 2011-07-29 13:49 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #16 from uros at gcc dot gnu.org 2011-07-29 13:48:45 UTC ---
Author: uros
Date: Fri Jul 29 13:48:40 2011
New Revision: 176924
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=176924
Log:
PR target/47715
* config/i386/i386.md (*load_tp_x32): New.
(*load_tp_x32_zext): Ditto.
(*add_tp_x32): Ditto.
(*add_tp_x32_zext): Ditto.
(*load_tp_<mode>): Disable for TARGET_X32 targets.
(*add_tp_<mode>): Ditto.
* config/i386/i386.c (get_thread_pointer): Load thread pointer in
ptr_mode and convert to Pmode if needed.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/config/i386/i386.md
trunk/gcc/function.c
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (15 preceding siblings ...)
2011-07-29 13:49 ` uros at gcc dot gnu.org
@ 2011-07-29 13:52 ` ubizjak at gmail dot com
2011-07-29 16:44 ` hjl at gcc dot gnu.org
` (3 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: ubizjak at gmail dot com @ 2011-07-29 13:52 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
Uros Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target| |x32
Status|UNCONFIRMED |RESOLVED
Resolution| |FIXED
Target Milestone|--- |4.7.0
--- Comment #17 from Uros Bizjak <ubizjak at gmail dot com> 2011-07-29 13:52:37 UTC ---
Fixed.
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (16 preceding siblings ...)
2011-07-29 13:52 ` ubizjak at gmail dot com
@ 2011-07-29 16:44 ` hjl at gcc dot gnu.org
2011-07-29 16:56 ` hjl at gcc dot gnu.org
` (2 subsequent siblings)
20 siblings, 0 replies; 22+ messages in thread
From: hjl at gcc dot gnu.org @ 2011-07-29 16:44 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #18 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-07-29 16:44:11 UTC ---
Author: hjl
Date: Fri Jul 29 16:44:07 2011
New Revision: 176938
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=176938
Log:
Remove PTR64.
2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
PR target/47715
* config/i386/i386.md (PTR64): Removed.
(*tls_global_dynamic_64_<mode>): Rename to ...
(*tls_global_dynamic_64): This. Remove PTR64 on operand 1.
(tls_global_dynamic_64_<mode>): Rename to ...
(tls_global_dynamic_64): This. Remove PTR64 on operand 1.
* config/i386/i386.c (legitimize_tls_address): Updated.
Modified:
branches/x32/gcc/ChangeLog.x32
branches/x32/gcc/config/i386/i386.c
branches/x32/gcc/config/i386/i386.md
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (17 preceding siblings ...)
2011-07-29 16:44 ` hjl at gcc dot gnu.org
@ 2011-07-29 16:56 ` hjl at gcc dot gnu.org
2011-08-06 14:26 ` hjl at gcc dot gnu.org
2011-08-06 14:50 ` hjl at gcc dot gnu.org
20 siblings, 0 replies; 22+ messages in thread
From: hjl at gcc dot gnu.org @ 2011-07-29 16:56 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #19 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-07-29 16:56:03 UTC ---
Author: hjl
Date: Fri Jul 29 16:55:59 2011
New Revision: 176940
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=176940
Log:
Revert "Use ptr_mode instead of Pmode with UNSPEC_TP".
2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
Revert
PR target/47715
* config/i386/i386.c (get_thread_pointer): Use ptr_mode
instead of Pmode with UNSPEC_TP.
* config/i386/i386.md (tp_seg): Removed.
(*load_tp_<mode>): Replace :P with :PTR.
(*add_tp_<mode>): Likewise.
(*load_tp_x32): New.
Modified:
branches/x32/gcc/ChangeLog.x32
branches/x32/gcc/config/i386/i386.c
branches/x32/gcc/config/i386/i386.md
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (18 preceding siblings ...)
2011-07-29 16:56 ` hjl at gcc dot gnu.org
@ 2011-08-06 14:26 ` hjl at gcc dot gnu.org
2011-08-06 14:50 ` hjl at gcc dot gnu.org
20 siblings, 0 replies; 22+ messages in thread
From: hjl at gcc dot gnu.org @ 2011-08-06 14:26 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #20 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-08-06 14:26:02 UTC ---
Author: hjl
Date: Sat Aug 6 14:25:58 2011
New Revision: 177511
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177511
Log:
Add testcases for PRs 47766/47715.
2011-08-06 H.J. Lu <hongjiu.lu@intel.com>
PR target/47766
* gcc.dg/pr47766.c: New.
PR target/47715
* gcc.dg/tls/pr47715-1.c: New.
* gcc.dg/tls/pr47715-2.c: Likewise.
* gcc.dg/tls/pr47715-3.c: Likewise.
* gcc.dg/tls/pr47715-4.c: Likewise.
Added:
trunk/gcc/testsuite/gcc.dg/pr47766.c
trunk/gcc/testsuite/gcc.dg/tls/pr47715-1.c
trunk/gcc/testsuite/gcc.dg/tls/pr47715-2.c
trunk/gcc/testsuite/gcc.dg/tls/pr47715-3.c
trunk/gcc/testsuite/gcc.dg/tls/pr47715-4.c
Modified:
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Bug target/47715] [x32] TLS doesn't work
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
` (19 preceding siblings ...)
2011-08-06 14:26 ` hjl at gcc dot gnu.org
@ 2011-08-06 14:50 ` hjl at gcc dot gnu.org
20 siblings, 0 replies; 22+ messages in thread
From: hjl at gcc dot gnu.org @ 2011-08-06 14:50 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #21 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-08-06 14:50:12 UTC ---
Author: hjl
Date: Sat Aug 6 14:50:05 2011
New Revision: 177513
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177513
Log:
Add testcases for PRs 47727/47372/47715.
2011-08-06 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/47727
* gcc.dg/pr47727.c: New.
PR target/47372
* gcc.dg/pr47372-1.c: New.
* gcc.dg/pr47372-2.c: Likewise.
PR target/47715
* gcc.dg/tls/pr47715-5.c: New.
Added:
trunk/gcc/testsuite/gcc.dg/pr47372-1.c
trunk/gcc/testsuite/gcc.dg/pr47372-2.c
trunk/gcc/testsuite/gcc.dg/pr47727.c
trunk/gcc/testsuite/gcc.dg/tls/pr47715-5.c
Modified:
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2011-08-06 14:50 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-02-13 0:59 [Bug target/47715] New: [x32] TLS doesn't work hjl.tools at gmail dot com
2011-02-13 1:49 ` [Bug target/47715] " hjl at gcc dot gnu.org
2011-02-13 17:41 ` hjl.tools at gmail dot com
2011-02-13 23:36 ` hjl at gcc dot gnu.org
2011-02-14 18:48 ` hjl at gcc dot gnu.org
2011-02-17 14:32 ` hjl.tools at gmail dot com
2011-02-18 2:50 ` hjl at gcc dot gnu.org
2011-02-25 17:25 ` hjl.tools at gmail dot com
2011-02-25 21:46 ` hjl.tools at gmail dot com
2011-02-25 21:49 ` hjl at gcc dot gnu.org
2011-05-15 23:21 ` hjl at gcc dot gnu.org
2011-06-29 16:40 ` hjl at gcc dot gnu.org
2011-07-05 15:48 ` hjl at gcc dot gnu.org
2011-07-28 2:43 ` hjl.tools at gmail dot com
2011-07-28 2:45 ` hjl.tools at gmail dot com
2011-07-28 14:43 ` uros at gcc dot gnu.org
2011-07-29 13:49 ` uros at gcc dot gnu.org
2011-07-29 13:52 ` ubizjak at gmail dot com
2011-07-29 16:44 ` hjl at gcc dot gnu.org
2011-07-29 16:56 ` hjl at gcc dot gnu.org
2011-08-06 14:26 ` hjl at gcc dot gnu.org
2011-08-06 14:50 ` hjl at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).