summaryrefslogtreecommitdiffstats
path: root/llvm/docs/LangRef.rst
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/docs/LangRef.rst')
-rw-r--r--llvm/docs/LangRef.rst15
1 files changed, 10 insertions, 5 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst
index 9d8242f29d7..5bbbf32710d 100644
--- a/llvm/docs/LangRef.rst
+++ b/llvm/docs/LangRef.rst
@@ -1940,17 +1940,22 @@ as follows:
``a:<abi>:<pref>``
This specifies the alignment for an object of aggregate type.
``m:<mangling>``
- If present, specifies that llvm names are mangled in the output. The
+ If present, specifies that llvm names are mangled in the output. Symbols
+ prefixed with the mangling escape character ``\01`` are passed through
+ directly to the assembler without the escape character. The mangling style
options are
* ``e``: ELF mangling: Private symbols get a ``.L`` prefix.
* ``m``: Mips mangling: Private symbols get a ``$`` prefix.
* ``o``: Mach-O mangling: Private symbols get ``L`` prefix. Other
symbols get a ``_`` prefix.
- * ``w``: Windows COFF prefix: Similar to Mach-O, but stdcall and fastcall
- functions also get a suffix based on the frame size.
- * ``x``: Windows x86 COFF prefix: Similar to Windows COFF, but use a ``_``
- prefix for ``__cdecl`` functions.
+ * ``x``: Windows x86 COFF mangling: Private symbols get the usual prefix.
+ Regular C symbols get a ``_`` prefix. Functions with ``__stdcall``,
+ ``__fastcall``, and ``__vectorcall`` have custom mangling that appends
+ ``@N`` where N is the number of bytes used to pass parameters. C++ symbols
+ starting with ``?`` are not mangled in any way.
+ * ``w``: Windows COFF mangling: Similar to ``x``, except that normal C
+ symbols do not receive a ``_`` prefix.
``n<size1>:<size2>:<size3>...``
This specifies a set of native integer widths for the target CPU in
bits. For example, it might contain ``n32`` for 32-bit PowerPC,
OpenPOWER on IntegriCloud