diff --git a/pages/common/llvm-mc.md b/pages/common/llvm-mc.md new file mode 100644 index 00000000000000..633557afb4fb9e --- /dev/null +++ b/pages/common/llvm-mc.md @@ -0,0 +1,25 @@ +# llvm-mc + +> LLVM Machine Code Playground. It provides a set of tools for working with LLVM machine code. +> Part of LLVM. +> More information: . + +- Assemble assembly code file into object file with machine code: + +`llvm-mc --filetype=obj -o {{path/to/output.o}} {{path/to/input.s}}` + +- Disassemble object file with machine code into assembly code file: + +`llvm-mc --disassemble -o {{path/to/output.s}} {{path/to/input.o}}` + +- Compile LLVM bit code file into assembly code: + +`llvm-mc -o {{path/to/output.s}} {{path/to/input.bc}}` + +- Assemble assembly code from standard input stream and show encoding to standard output stream: + +`echo "{{addl %eax, %ebx}}" | llvm-mc -show-encoding -show-inst` + +- Disassemble machine code from standard input stream for specified triple: + +`echo "{{0xCD 0x21}}" | llvm-mc --disassemble -triple={{target_name}}`