[all-commits] [llvm/llvm-project] bc8e26: [ms] [llvm-ml] Add initial MASM STRUCT/UNION support

Eric Astor via All-commits all-commits at lists.llvm.org
Tue Jul 7 14:02:54 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: bc8e262afe833fce2bff46c73d9e77ed23fd720f
      https://github.com/llvm/llvm-project/commit/bc8e262afe833fce2bff46c73d9e77ed23fd720f
  Author: Eric Astor <epastor at google.com>
  Date:   2020-07-07 (Tue, 07 Jul 2020)

  Changed paths:
    M llvm/include/llvm/MC/MCParser/MCAsmParser.h
    M llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
    M llvm/lib/MC/MCParser/MasmParser.cpp
    M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
    A llvm/test/tools/llvm-ml/struct.test
    A llvm/test/tools/llvm-ml/struct_errors.test

  Log Message:
  -----------
  [ms] [llvm-ml] Add initial MASM STRUCT/UNION support

Summary:
Add support for user-defined types to MasmParser, including initialization and field access.

Known issues:
- Omitted entry initializers (e.g., <,0>) do not work consistently for nested structs/arrays.
- Size checking/inference for values with known types is not yet implemented.
- Some ml64.exe syntaxes for accessing STRUCT fields are not recognized.
  - `[<register>.<struct name>].<field>`
  - `[<register>[<struct name>.<field>]]`
  - `(<struct name> PTR [<register>]).<field>`
  - `[<variable>.<struct name>].<field>`
  - `(<struct name> PTR <variable>).<field>`

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D75306




More information about the All-commits mailing list