14 This document describes extensions to tools and formats LLVM seeks compatibility
17 General Assembly Syntax
18 ===========================
20 C99-style Hexadecimal Floating-point Constants
21 ----------------------------------------------
23 LLVM's assemblers allow floating-point constants to be written in C99's
24 hexadecimal format instead of decimal if desired.
31 Machine-specific Assembly Syntax
32 ================================
40 The following additional relocation type is supported:
42 **@IMGREL** (AT&T syntax only) generates an image-relative relocation that
43 corresponds to the COFF relocation types ``IMAGE_REL_I386_DIR32NB`` (32-bit) or
44 ``IMAGE_REL_AMD64_ADDR32NB`` (64-bit).
50 mov foo@IMGREL(%ebx, %ecx, 4), %eax
54 .long (fun@imgrel + 0x3F)
55 .long $unwind$fun@imgrel
58 ``.linkonce`` Directive
59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
63 ``.linkonce [ comdat type [ section identifier ] ]``
65 Supported COMDAT types:
68 Discards duplicate sections with the same COMDAT symbol. This is the default
69 if no type is specified.
72 If the symbol is defined multiple times, the linker issues an error.
75 Duplicates are discarded, but the linker issues an error if any have
79 Duplicates are discarded, but the linker issues an error if any duplicates
80 do not have exactly the same content.
83 Links the section if a certain other COMDAT section is linked. This other
84 section is indicated by its section identifier following the comdat type.
85 The following restrictions apply to the associated section:
87 1. It must be the name of a section already defined.
88 2. It must differ from the current section.
89 3. It must be a COMDAT section.
90 4. It cannot be another associative COMDAT section.
93 Links the largest section from among the duplicates.
96 Links the newest section from among the duplicates.
106 .linkonce associative .text$foo