Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LLVM-MC(1)			     LLVM			    LLVM-MC(1)

NAME
       llvm-mc - LLVM Machine Code Playground

SYNOPSIS
       llvm-mc [options] [filename]

DESCRIPTION
       The llvm-mc command takes assembly code for a specified architecture as
       input and generates an object file or executable.

       llvm-mc	provides a set of tools	for working with machine code, such as
       encoding	instructions and displaying internal  representations,	disas-
       sembling	strings	to bytes, etc.

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

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

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

       Other llvm-mc options are described below.

   End-user Options
       --help Display available	options	(--help-hidden for more).

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

       --arch=<string>
	      Target arch to assemble for, see -version	for available targets.

       --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.

       --assemble
	      Assemble assembly	file (default),	and print the result to	assem-
	      bly.  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 -out-
	      put-asm-variant=1	to translate from AT&T to Intel	assembly  syn-
	      tax.  It can also	be combined with --show-encoding to understand
	      how instructions are encoded.

       --disassemble
	      Parse a series of	hex bytes, and print the result	out as	assem-
	      bly syntax.

       --mdis Marked up	disassembly of string of hex bytes.

       --cdis Colored disassembly of string of hex bytes.

       --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.

       -g     Generate DWARF debugging info for	assembly source	files.

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

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

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

       -mattr=a1,+a2,-a3,...

       Target specific attributes (-mattr=help for details).

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

       --triple=<string>
	      Target  triple  to assemble for, see -version for	available tar-
	      gets.

       --split-dwarf-file=<filename>
	      DWO output filename.

       --show-inst-operands
	      Show instructions	operands as parsed.

       --show-inst
	      Show internal instruction	representation.

       --show-encoding
	      Show instruction encodings.

       --save-temp-labels
	      Don't discard temporary labels.

       --relax-relocations
	      Emit R_X86_64_GOTPCRELX instead of R_X86_64_GOTPCREL.

       --print-imm-hex
	      Prefer hex format	for immediate values.

       --preserve-comments
	      Preserve Comments	in outputted assembly.

       --output-asm-variant=<uint>
	      Syntax variant to	use for	output printing. For example,  on  x86
	      targets --output-asm-variant=0 prints in AT&T syntax, and	--out-
	      put-asm-variant=1	prints in Intel/MASM syntax.

       --compress-debug-sections=[none|zlib|zstd]
	      Choose DWARF debug sections compression.

EXIT STATUS
       If  llvm-mc  succeeds, it will exit with	0.  Otherwise, if an error oc-
       curs, it	will exit with a non-zero value.

AUTHOR
       Maintained by the LLVM Team (https://llvm.org/).

COPYRIGHT
       2003-2025, LLVM Project

18				  2025-04-13			    LLVM-MC(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=llvm-mc-cheriot&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help