Skip to content

Commit f713370

Browse files
ericastorSquallATF
authored andcommitted
[ms] [llvm-ml] Add llvm-ml64 alias (llvm#131854)
Rather than requiring users to pass `-m64` to the `llvm-ml` driver to get 64-bit behavior, we add the `llvm-ml64` alias, matching the behavior of `ML.EXE` and `ML64.EXE`. The original flavor/bitness flags still work, but the alias should make some workflows easier. NOTE: The logic for this already existed in the code; we're just finally adding the build/install instructions to match.
1 parent 1e94dc6 commit f713370

19 files changed

+51
-24
lines changed

llvm/test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ set(LLVM_TEST_DEPENDS
109109
llvm-mc
110110
llvm-mca
111111
llvm-ml
112+
llvm-ml64
112113
llvm-modextract
113114
llvm-mt
114115
llvm-nm
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
; RUN: llvm-ml64 -filetype=s %s /Fo - | FileCheck %s --implicit-check-not=error:
2+
; RUN: llvm-ml -m64 -filetype=s %s /Fo - | FileCheck %s --implicit-check-not=error:
3+
4+
.code
5+
6+
xor rax, rax
7+
; CHECK: xor rax, rax
8+
9+
end
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
; RUN: not llvm-ml -filetype=s %s /Fo - 2>&1 | FileCheck %s
2+
; RUN: not llvm-ml -m32 -filetype=s %s /Fo - 2>&1 | FileCheck %s
3+
; RUN: not llvm-ml64 -m32 -filetype=s %s /Fo - 2>&1 | FileCheck %s
4+
5+
.code
6+
7+
; CHECK: :[[# @LINE + 1]]:5: error: register %rax is only available in 64-bit mode
8+
xor rax, rax
9+
10+
end

llvm/test/tools/llvm-ml/dot_operator.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; RUN: llvm-ml -m64 -filetype=s %s /Fo - | FileCheck %s
1+
; RUN: llvm-ml64 -filetype=s %s /Fo - | FileCheck %s
22

33
.data
44

llvm/test/tools/llvm-ml/extern.asm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
; RUN: llvm-ml -m32 -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK,CHECK-32
2-
; RUN: llvm-ml -m64 -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK,CHECK-64
1+
; RUN: llvm-ml -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK,CHECK-32
2+
; RUN: llvm-ml64 -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK,CHECK-64
33

44
extern foo : dword, bar : word, baz : proc
55
; CHECK: .extern foo

llvm/test/tools/llvm-ml/feat00.asm

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
; RUN: llvm-ml -m32 %s /Fo - | llvm-readobj --syms - | FileCheck %s --check-prefix=CHECK-OBJ --check-prefix=CHECK-OBJ-NOSAFESEH
2-
; RUN: llvm-ml -m64 %s /Fo - | llvm-readobj --syms - | FileCheck %s --check-prefix=CHECK-OBJ --check-prefix=CHECK-OBJ-NOSAFESEH
1+
; RUN: llvm-ml %s /Fo - | llvm-readobj --syms - | FileCheck %s --check-prefix=CHECK-OBJ --check-prefix=CHECK-OBJ-NOSAFESEH
2+
; RUN: llvm-ml64 %s /Fo - | llvm-readobj --syms - | FileCheck %s --check-prefix=CHECK-OBJ --check-prefix=CHECK-OBJ-NOSAFESEH
33

4-
; RUN: llvm-ml -m32 -safeseh %s /Fo - | llvm-readobj --syms - | FileCheck %s --check-prefix=CHECK-OBJ --check-prefix=CHECK-OBJ-SAFESEH
5-
; RUN: llvm-ml -m64 -safeseh %s /Fo %t.obj 2>&1 | FileCheck %s --check-prefix=CHECK-SAFESEH64
4+
; RUN: llvm-ml -safeseh %s /Fo - | llvm-readobj --syms - | FileCheck %s --check-prefix=CHECK-OBJ --check-prefix=CHECK-OBJ-SAFESEH
5+
; RUN: llvm-ml64 -safeseh %s /Fo %t.obj 2>&1 | FileCheck %s --check-prefix=CHECK-SAFESEH64
66
; RUN: llvm-readobj --syms %t.obj | FileCheck %s --check-prefix=CHECK-OBJ --check-prefix=CHECK-OBJ-NOSAFESEH
77

88
; CHECK-SAFESEH64: warning: /safeseh applies only to 32-bit X86 platforms; ignoring.

llvm/test/tools/llvm-ml/feat00_override.asm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
; RUN: llvm-ml -m32 %s /Fo - | llvm-readobj --syms - | FileCheck %s
2-
; RUN: llvm-ml -m64 %s /Fo - | llvm-readobj --syms - | FileCheck %s
3-
; RUN: llvm-ml -m32 -safeseh %s /Fo - | llvm-readobj --syms - | FileCheck %s
1+
; RUN: llvm-ml %s /Fo - | llvm-readobj --syms - | FileCheck %s
2+
; RUN: llvm-ml64 %s /Fo - | llvm-readobj --syms - | FileCheck %s
3+
; RUN: llvm-ml -safeseh %s /Fo - | llvm-readobj --syms - | FileCheck %s
44

55
.code
66

llvm/test/tools/llvm-ml/indirect_branch.asm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
; RUN: llvm-ml -m64 -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK-64,CHECK
2-
; RUN: llvm-ml -m32 -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK-32,CHECK
1+
; RUN: llvm-ml64 -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK-64,CHECK
2+
; RUN: llvm-ml -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK-32,CHECK
33

44
ifdef rax
55
extern fn_ref_extern : qword

llvm/test/tools/llvm-ml/macro.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; RUN: llvm-ml -m64 -filetype=s %s /Fo - | FileCheck %s
1+
; RUN: llvm-ml64 -filetype=s %s /Fo - | FileCheck %s
22

33
.data
44

llvm/test/tools/llvm-ml/ml32-context.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; RUN: llvm-ml -m32 -filetype=s %s /Fo - | FileCheck %s
1+
; RUN: llvm-ml -filetype=s %s /Fo - | FileCheck %s
22

33
.386p
44
.model flat

llvm/test/tools/llvm-ml/nested_proc.asm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
; RUN: llvm-ml -m32 -filetype=s %s /Fo - | FileCheck %s
2-
; RUN: llvm-ml -m64 -filetype=s %s /Fo - | FileCheck %s
1+
; RUN: llvm-ml -filetype=s %s /Fo - | FileCheck %s
2+
; RUN: llvm-ml64 -filetype=s %s /Fo - | FileCheck %s
33

44
.code
55

llvm/test/tools/llvm-ml/proc.asm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
; RUN: llvm-ml -m32 -filetype=s %s /Fo - | FileCheck %s
2-
; RUN: llvm-ml -m64 -filetype=s %s /Fo - | FileCheck %s
1+
; RUN: llvm-ml -filetype=s %s /Fo - | FileCheck %s
2+
; RUN: llvm-ml64 -filetype=s %s /Fo - | FileCheck %s
33

44
.code
55

llvm/test/tools/llvm-ml/proc_frame.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; RUN: llvm-ml -m64 -filetype=s %s /Fo - | FileCheck %s
1+
; RUN: llvm-ml64 -filetype=s %s /Fo - | FileCheck %s
22

33
.code
44

llvm/test/tools/llvm-ml/repeat_directives.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; RUN: llvm-ml -m64 -filetype=s %s /Fo - | FileCheck %s
1+
; RUN: llvm-ml64 -filetype=s %s /Fo - | FileCheck %s
22

33
.data
44

llvm/test/tools/llvm-ml/rip_relative_addressing.asm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
; RUN: llvm-ml -m32 -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK,CHECK-32
2-
; RUN: llvm-ml -m64 -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK,CHECK-64
1+
; RUN: llvm-ml -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK,CHECK-32
2+
; RUN: llvm-ml64 -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK,CHECK-64
33

44
.data
55
foo DWORD 28

llvm/test/tools/llvm-ml/strings_errors.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; RUN: not llvm-ml -m64 -filetype=s %s /Fo /dev/null 2>&1 | FileCheck %s --implicit-check-not=error:
1+
; RUN: not llvm-ml64 -filetype=s %s /Fo /dev/null 2>&1 | FileCheck %s --implicit-check-not=error:
22

33
.code
44

llvm/test/tools/llvm-ml/struct.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; RUN: llvm-ml -m64 -filetype=s %s /Fo - | FileCheck %s
1+
; RUN: llvm-ml64 -filetype=s %s /Fo - | FileCheck %s
22

33
.data
44
BAZ STRUCT

llvm/tools/llvm-ml/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,5 @@ add_llvm_tool(llvm-ml
2222
MLTableGen
2323
GENERATE_DRIVER
2424
)
25+
26+
add_llvm_tool_symlink(llvm-ml64 llvm-ml)

utils/bazel/llvm-project-overlay/llvm/BUILD.bazel

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4289,6 +4289,11 @@ llvm_driver_cc_binary(
42894289
deps = [":llvm-ml-lib"],
42904290
)
42914291

4292+
binary_alias(
4293+
name = "llvm-ml64",
4294+
binary = ":llvm-ml",
4295+
)
4296+
42924297
cc_binary(
42934298
name = "llvm-modextract",
42944299
srcs = glob([

0 commit comments

Comments
 (0)