Ulrich Weigand
7a34599db0
[PowerPC] Revert r185476 and fix up TLS variant kinds
...
In the commit message to r185476 I wrote:
>The PowerPC-specific modifiers VK_PPC_TLSGD and VK_PPC_TLSLD
>correspond exactly to the generic modifiers VK_TLSGD and VK_TLSLD.
>This causes some confusion with the asm parser, since VK_PPC_TLSGD
>is output as @tlsgd, which is then read back in as VK_TLSGD.
>
>To avoid this confusion, this patch removes the PowerPC-specific
>modifiers and uses the generic modifiers throughout. (The only
>drawback is that the generic modifiers are printed in upper case
>while the usual convention on PowerPC is to use lower-case modifiers.
>But this is just a cosmetic issue.)
This was unfortunately incorrect, there is is fact another,
serious drawback to using the default VK_TLSLD/VK_TLSGD
variant kinds: using these causes ELFObjectWriter::RelocNeedsGOT
to return true, which in turn causes the ELFObjectWriter to emit
an undefined reference to _GLOBAL_OFFSET_TABLE_.
This is a problem on powerpc64, because it uses the TOC instead
of the GOT, and the linker does not provide _GLOBAL_OFFSET_TABLE_,
so the symbol remains undefined. This means shared libraries
using TLS built with the integrated assembler are currently
broken.
While the whole RelocNeedsGOT / _GLOBAL_OFFSET_TABLE_ situation
probably ought to be properly fixed at some point, for now I'm
simply reverting the r185476 commit. Now this in turn exposes
the breakage of handling @tlsgd/@tlsld in the asm parser that
this check-in was originally intended to fix.
To avoid this regression, I'm also adding a different fix for
this problem: while common code now parses @tlsgd as VK_TLSGD,
a special hack in the asm parser translates this code to the
platform-specific VK_PPC_TLSGD that the back-end now expects.
While this is not really pretty, it's self-contained and
shouldn't hurt anything else for now. One the underlying
problem is fixed, this hack can be reverted again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185945 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-09 16:41:09 +00:00
..
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2011-06-17 06:36:20 +00:00
2011-12-12 11:59:10 +00:00
2012-07-02 12:47:22 +00:00
2012-06-08 23:15:12 +00:00
2012-06-09 03:14:50 +00:00
2012-07-02 12:47:22 +00:00
2013-03-15 13:21:21 +00:00
2013-04-30 20:04:37 +00:00
2012-06-08 23:15:12 +00:00
2012-06-08 23:15:12 +00:00
2013-05-16 14:30:09 +00:00
2012-06-08 23:15:12 +00:00
2011-12-05 17:55:17 +00:00
2011-12-05 17:55:17 +00:00
2011-12-05 17:55:17 +00:00
2011-06-17 03:14:27 +00:00
2011-11-27 06:54:59 +00:00
2013-02-04 15:19:18 +00:00
2011-06-17 03:14:27 +00:00
2011-10-28 23:11:03 +00:00
2011-05-02 15:58:16 +00:00
2011-09-14 00:29:50 +00:00
2013-03-12 15:18:14 +00:00
2011-07-20 05:58:47 +00:00
2013-03-28 03:38:16 +00:00
2012-09-06 18:15:23 +00:00
2013-03-12 15:18:14 +00:00
2010-10-11 20:43:09 +00:00
2013-03-12 15:18:14 +00:00
2013-04-30 17:52:57 +00:00
2013-04-30 17:52:57 +00:00
2011-12-09 01:16:26 +00:00
2012-11-14 23:23:27 +00:00
2012-11-13 18:40:58 +00:00
2012-10-12 16:01:08 +00:00
2012-11-18 06:21:03 +00:00
2013-05-16 17:58:02 +00:00
2013-07-01 19:42:46 +00:00
2012-06-22 22:31:00 +00:00
2013-01-30 23:43:27 +00:00
2013-01-30 21:17:42 +00:00
2013-05-13 19:34:37 +00:00
2013-03-27 06:52:27 +00:00
2013-07-08 20:00:03 +00:00
2011-06-17 03:14:27 +00:00
2011-06-17 03:14:27 +00:00
2012-07-02 12:47:22 +00:00
2013-06-13 20:23:34 +00:00
2013-07-08 20:20:51 +00:00
2012-11-05 18:18:42 +00:00
2013-03-21 23:23:34 +00:00
2013-03-27 13:20:52 +00:00
2012-12-25 17:22:53 +00:00
2011-09-26 21:30:17 +00:00
2011-09-26 21:30:17 +00:00
2012-11-24 13:18:25 +00:00
2013-04-10 22:05:25 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-08-28 02:10:33 +00:00
2012-07-02 12:47:22 +00:00
2013-03-28 20:35:18 +00:00
2012-11-30 13:28:31 +00:00
2013-07-08 06:16:58 +00:00
2012-07-02 12:47:22 +00:00
2011-10-17 04:03:59 +00:00
2012-11-05 19:39:45 +00:00
2012-07-02 12:47:22 +00:00
2013-01-17 17:45:19 +00:00
2012-07-02 12:47:22 +00:00
2012-08-28 02:10:27 +00:00
2011-08-30 17:04:16 +00:00
2013-03-28 03:38:16 +00:00
2013-07-03 17:59:07 +00:00
2013-03-18 17:40:27 +00:00
2013-05-18 09:20:39 +00:00
2013-05-16 20:28:05 +00:00
2013-06-07 22:16:19 +00:00
2013-07-01 19:34:59 +00:00
2013-05-15 21:37:41 +00:00
2013-05-15 21:37:41 +00:00
2013-05-15 21:37:41 +00:00
2012-06-08 19:19:53 +00:00
2013-04-30 17:52:57 +00:00
2013-04-30 17:52:57 +00:00
2013-05-15 21:37:41 +00:00
2013-04-01 16:31:56 +00:00
2012-07-02 12:47:22 +00:00
2013-03-21 20:28:52 +00:00
2013-03-18 22:08:16 +00:00
2012-12-25 18:51:18 +00:00
2013-04-10 22:05:25 +00:00
2013-04-30 17:52:57 +00:00
2013-06-13 20:23:34 +00:00
2012-08-03 23:29:17 +00:00
2013-01-11 10:36:13 +00:00
2013-04-01 18:42:58 +00:00
2013-06-13 20:23:34 +00:00
2013-04-11 12:32:23 +00:00
2012-08-03 23:29:17 +00:00
2013-04-06 19:30:30 +00:00
2013-03-15 05:06:04 +00:00
2013-03-21 19:03:19 +00:00
2011-12-05 17:55:17 +00:00
2011-12-30 00:34:00 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2013-04-07 22:11:09 +00:00
2012-08-28 16:12:39 +00:00
2012-08-28 16:12:39 +00:00
2012-07-02 12:47:22 +00:00
2013-04-01 17:52:07 +00:00
2013-04-01 17:52:07 +00:00
2013-04-01 17:52:07 +00:00
2013-03-12 16:27:52 +00:00
2013-04-05 23:29:01 +00:00
2012-12-20 17:47:27 +00:00
2011-12-02 04:58:12 +00:00
2012-09-04 18:38:28 +00:00
2012-10-29 18:35:49 +00:00
2012-06-22 23:10:08 +00:00
2012-07-02 12:47:22 +00:00
2013-06-13 20:23:34 +00:00
2013-03-12 15:18:14 +00:00
2013-04-30 17:52:57 +00:00
2013-03-18 20:31:44 +00:00
2013-01-14 22:04:38 +00:00
2012-07-02 19:09:46 +00:00
2013-04-30 17:52:57 +00:00
2012-07-02 18:37:59 +00:00
2013-02-21 17:12:27 +00:00
2013-02-21 17:12:27 +00:00
2013-02-21 17:12:27 +00:00
2013-06-13 20:23:34 +00:00
2013-02-21 17:12:27 +00:00
2013-02-21 17:12:27 +00:00
2013-02-21 17:12:27 +00:00
2013-02-21 17:12:27 +00:00
2013-02-21 17:12:27 +00:00
2013-02-21 00:38:25 +00:00
2013-02-21 00:38:25 +00:00
2013-02-21 00:38:25 +00:00
2012-11-27 23:36:26 +00:00
2013-05-30 03:05:14 +00:00
2013-06-13 20:23:34 +00:00
2012-11-14 23:23:27 +00:00
2013-01-09 03:36:49 +00:00
2012-11-09 19:18:49 +00:00
2011-06-17 03:14:27 +00:00
2011-05-01 15:44:13 +00:00
2010-11-02 23:01:44 +00:00
2010-11-02 23:01:44 +00:00
2013-05-15 21:37:41 +00:00
2012-07-02 12:47:22 +00:00
2012-10-10 20:54:15 +00:00
2013-05-08 12:16:14 +00:00
2013-04-01 15:58:15 +00:00
2011-06-20 15:28:39 +00:00
2012-11-05 19:39:45 +00:00
2013-06-13 20:23:34 +00:00
2012-09-18 19:51:44 +00:00
2011-06-17 15:21:10 +00:00
2012-08-06 21:21:44 +00:00
2012-09-18 16:55:29 +00:00
2012-04-01 20:08:17 +00:00
2012-11-14 23:23:27 +00:00
2012-03-24 03:53:55 +00:00
2012-08-28 02:10:15 +00:00
2012-06-22 22:31:00 +00:00
2011-10-17 16:01:41 +00:00
2011-05-02 15:58:16 +00:00
2012-04-16 03:33:22 +00:00
2012-10-29 17:49:34 +00:00
2012-08-29 20:22:24 +00:00
2012-09-24 20:47:19 +00:00
2013-01-28 18:36:58 +00:00
2013-04-12 04:06:46 +00:00
2013-04-02 18:37:08 +00:00
2013-04-03 13:05:44 +00:00
2013-07-08 14:22:45 +00:00
2013-02-01 22:59:51 +00:00
2013-01-17 19:46:51 +00:00
2013-03-19 08:09:38 +00:00
2013-05-16 16:15:18 +00:00
2013-07-01 20:52:27 +00:00
2012-08-28 02:10:33 +00:00
2012-07-02 12:47:22 +00:00
2010-11-14 22:22:14 +00:00
2013-03-12 16:27:52 +00:00
2013-06-28 20:00:07 +00:00
2012-07-02 19:09:46 +00:00
2013-04-08 16:24:03 +00:00
2013-04-30 17:52:57 +00:00
2012-12-30 19:03:32 +00:00
2011-03-04 20:03:14 +00:00
2012-07-02 12:47:22 +00:00
2013-03-27 00:02:20 +00:00
2012-07-02 12:47:22 +00:00
2013-06-28 20:18:14 +00:00
2013-07-09 06:34:51 +00:00
2013-02-08 21:35:47 +00:00
2013-04-01 18:18:44 +00:00
2010-11-14 22:22:14 +00:00
2013-03-19 19:52:04 +00:00
2013-06-13 20:23:34 +00:00
2013-06-13 20:23:34 +00:00
2013-04-27 00:43:16 +00:00
2013-04-30 17:52:57 +00:00
2013-04-30 17:52:57 +00:00
2012-06-19 02:34:32 +00:00
2013-02-26 21:28:57 +00:00
2013-02-21 00:38:25 +00:00
2013-05-30 03:05:14 +00:00
2013-07-09 16:41:09 +00:00
2013-05-30 03:05:14 +00:00
2012-12-14 17:02:38 +00:00
2013-07-09 16:41:09 +00:00
2013-05-30 03:05:14 +00:00
2013-07-09 16:41:09 +00:00
2013-03-27 02:40:14 +00:00
2012-07-02 12:47:22 +00:00
2013-03-19 15:23:39 +00:00
2013-05-26 18:08:30 +00:00
2013-03-15 15:27:13 +00:00
2010-11-14 22:22:14 +00:00
2013-07-02 03:39:34 +00:00
2013-06-28 22:29:56 +00:00
2013-02-20 20:41:42 +00:00
2012-10-29 21:18:16 +00:00
2013-03-12 15:18:14 +00:00
2012-06-10 19:32:29 +00:00
2013-03-09 18:25:40 +00:00
2013-02-20 22:43:03 +00:00
2012-10-08 17:27:24 +00:00
2013-01-12 19:06:44 +00:00
2012-11-30 19:15:10 +00:00
2013-03-29 08:57:48 +00:00
2012-12-19 15:49:14 +00:00
2012-10-30 18:29:42 +00:00
2013-07-08 17:30:25 +00:00
2013-03-27 00:02:20 +00:00
2013-06-13 20:23:34 +00:00