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).