summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2013-11-27 06:44:18 +0000
committerBill Wendling <isanbard@gmail.com>2013-11-27 06:44:18 +0000
commit0ae07098f7d2ad5a1868d448d0b1b4eef2a3b091 (patch)
treee8e00fbae3c35abdbcfe8f7aacd1df44a0fe00b7 /docs
parentb1df5b013a38ab7381630af8b3142c56f604d85b (diff)
downloadllvm-0ae07098f7d2ad5a1868d448d0b1b4eef2a3b091.tar.gz
llvm-0ae07098f7d2ad5a1868d448d0b1b4eef2a3b091.tar.bz2
llvm-0ae07098f7d2ad5a1868d448d0b1b4eef2a3b091.tar.xz
Merging r195148:
------------------------------------------------------------------------ r195148 | rafael | 2013-11-19 11:52:52 -0800 (Tue, 19 Nov 2013) | 15 lines Support multiple COFF sections with the same name but different COMDAT. This is the first step to fix pr17918. It extends the .section directive a bit, inspired by what the ELF one looks like. The problem with using linkonce is that given .section foo .linkonce.... .section foo .linkonce we would already have switched sections when getting to .linkonce. The cleanest solution seems to be to add the comdat information in the .section itself. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195822 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r--docs/Extensions.rst38
1 files changed, 38 insertions, 0 deletions
diff --git a/docs/Extensions.rst b/docs/Extensions.rst
index 925d7279bf..e308dbcdfc 100644
--- a/docs/Extensions.rst
+++ b/docs/Extensions.rst
@@ -105,3 +105,41 @@ Supported COMDAT types:
.section .xdata$foo
.linkonce associative .text$foo
...
+
+``.section`` Directive
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+MC supports passing the information in ``.linkonce`` at the end of
+``.section``. For example, these two codes are equivalent
+
+.. code-block:: gas
+
+ .section secName, "dr", discard, "Symbol1"
+ .globl Symbol1
+ Symbol1:
+ .long 1
+
+.. code-block:: gas
+
+ .section secName, "dr"
+ .linkonce discard
+ .globl Symbol1
+ Symbol1:
+ .long 1
+
+Note that in the combined form the COMDAT symbol is explict. This
+extension exits to support multiple sections with the same name in
+different comdats:
+
+
+.. code-block:: gas
+
+ .section secName, "dr", discard, "Symbol1"
+ .globl Symbol1
+ Symbol1:
+ .long 1
+
+ .section secName, "dr", discard, "Symbol2"
+ .globl Symbol2
+ Symbol2:
+ .long 1