llvm-mc - LLVM Machine Code Playground
======================================

.. program:: llvm-mc

SYNOPSIS
--------

:program:`llvm-mc` [*options*] [*filename*]

DESCRIPTION
-----------

The :program:`llvm-mc` command take input as the assembly code for a 
specified architecture and generate object file or executable as a output 
for a specified architecture. 

:program:`llvm-mc` provide powerful set of the tool for working with the machine code such 
as encoding of their instruction and their internal representation, disassemble
string to bytes etc. 

The choice of architecture for the output assembly code is automatically
determined from the input file, unless the :option:`--arch` option is used to
override the default.

OPTIONS
-------

If the :option:`-o` option is omitted, then :program:`llvm-mc` will send its output
to standard output if the input is from standard input.  If the :option:`-o`
option specifies "``-``", then the output will also be sent to standard output.

If no :option:`-o` option is specified and an input file other than "``-``" is
specified, then :program:`llvm-mc` creates the output filename by taking the input
filename, removing any existing ``.s`` extension, and adding a ``.o`` suffix.

Other :program:`llvm-mc` options are described below.

End-user Options
~~~~~~~~~~~~~~~~

.. option:: --help

 Display available options (--help-hidden for more).

.. option:: -o <filename>

 Use ``<filename>`` as the output filename. See the summary above for more
 details.

.. option:: --arch=<string>

 Target arch to assemble for, see -version for available targets. 

.. option:: --as-lex

 Apply the assemblers "lexer" to break the input into tokens and print each of them out. 
 This is intended to help develop and test an assembler implementation.

.. option:: --assemble

 Assemble assembly file (default), and print the result to assembly. 
 This is useful to design and test instruction parsers, and can be a useful tool when combined with other llvm-mc flags. 
 For example, this option may be useful to transcode assembly from different dialects, e.g. on Intel where you can use 
 -output-asm-variant=1 to translate from AT&T to Intel assembly syntax. 
 It can also be combined with --show-encoding to understand how instructions are encoded.

.. option:: --disassemble

 Parse a series of hex bytes, and print the result out as assembly syntax.



.. option:: --mdis

 Marked up disassembly of string of hex bytes.

.. option:: --filetype=[asm,null,obj]

 Sets the output filetype. Setting this flag to `asm` will make the tool
 output text assembly. Setting this flag to `obj` will make the tool output
 an object file. Setting it to `null` causes no output to be created and can be
 used for timing purposes. The default value is `asm`.

.. option:: -g

 Generate DWARF debugging info for assembly source files.

.. option:: --large-code-model

 Create CFI directives that assume the code might be more than 2 GB.

.. option:: --main-file-name=<string>  
    
 Specify the name we should consider the input file.

 
.. option:: --masm-hexfloats
    
 Enable MASM-style hex float initializers (3F800000r).


.. option:: -mattr=a1,+a2,-a3,...
 Target specific attributes (-mattr=help for details).

.. option:: --mcpu=<cpu-name> 

 Target a specific cpu type (-mcpu=help for details).

.. option::   --triple=<string>  

 Target triple to assemble for, see -version for available targets.

.. option::  --split-dwarf-file=<filename> 

 DWO output filename.

.. option:: --show-inst-operands 

 Show instructions operands as parsed.

.. option:: --show-inst

 Show internal instruction representation.

.. option::  --show-encoding   

 Show instruction encodings.

.. option:: --save-temp-labels   

 Don't discard temporary labels.

.. option::   --relax-relocations  

 Emit R_X86_64_GOTPCRELX instead of R_X86_64_GOTPCREL.

.. option:: --print-imm-hex      

 Prefer hex format for immediate values.
 For example, on x86 targets --output-asm-variant=0 prints in AT&T syntax, and --output-asm-variant=1 prints in 
 Intel/MASM syntax.

.. option::  --preserve-comments 

 Preserve Comments in outputted assembly.

.. option:: --output-asm-variant=<uint>

 Syntax variant to use for output printing.


.. option:: --compress-debug-sections=[none|zlib|zstd]

 Choose DWARF debug sections compression.


EXIT STATUS
-----------

If :program:`llvm-mc` succeeds, it will exit with 0.  Otherwise, if an error
occurs, it will exit with a non-zero value.

