VSI ASM V10.1-3

Release Notes


1. What's New in This Release

Important

This release of X86ASM added the feature to prefix each compiler message with: %facility-severity-ident followed by the actual message text. Due to an oversight, X86ASM (SYS$SYSTEM:LLVM-MC.EXE) incorrectly reports itself as CXX instead of LLVMMC. The message is still correct and the generated code is still the same as before. It is just a cosmetic mistake. We will correct this in the next release.

This kit includes the LLVM tool named "llvm-mc". This provides a native x86-64 assembler that is highly compatible with the gnu "gas" assembler.

The tool must be activated via an OpenVMS foreign command. Define the foreign command as follows:

$ llvmmc :== $sys$system:llvm-mc

The compiler version number is:

$ llvmmc --version
LLVM (http://llvm.org/):
  VSI version V10.1-3
  LLVM version 10.0.1
  Optimized build.
  Build date: 09-12-2025
  Target: x86_64-OpenVMS

A sample command to run the llvm-mc tool is as follows:

$ llvmmc -filetype=obj -o=objectfilename.obj sourcefilename.s

Here are some useful options for the command:

OptionDescription
--helpDisplays available options (help-hidden for more).
-o filenameSaves the output to the filename file. See the summary above for more details.
--filetype=[asm,null,obj]Sets the output file type. 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.
--assembleAssembles an assembly file (default) and prints the result to assembly. Combined with the other llvm-mc flags, this can be useful in designing and testing instruction parsers as well as transcoding assembly from different dialects (for example, on Intel where you can use -output-asm-variant=1 to translate from AT&T to Intel assembly syntax). This can also be combined with show-encoding to understand how instructions are encoded.
--disassembleParses a series of hex bytes and prints the result out as assembly syntax.

2. Documentation

Documentation for the assembler can be found at https://llvm.org/docs/CommandGuide/llvm-mc.html