Skip to content

Commit 71c29b4

Browse files
committed
[AArch64] Use '//' as comment string for MSVC assembly
As the actual MSVC toolset doesn't use the GAS-style assembly that Clang/LLVM produces and consumes, there's no reference for what string to use for e.g. comments when building with a MSVC triple. This frees up the use of semicolon as separator string, just like was done for GNU targets in 2341319. (Previously, both the separator and comment strings were set to the same, a semicolon.) Compiler-rt extensively uses separator chars in its assembly, and that assembly should be buildable with clang-cl for MSVC too. Differential Revision: https://reviews.llvm.org/D96259
1 parent 6d766c8 commit 71c29b4

File tree

11 files changed

+79
-77
lines changed

11 files changed

+79
-77
lines changed

llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ AArch64MCAsmInfoMicrosoftCOFF::AArch64MCAsmInfoMicrosoftCOFF() {
111111
SupportsDebugInformation = true;
112112
CodePointerSize = 8;
113113

114-
CommentString = ";";
114+
CommentString = "//";
115115
ExceptionsType = ExceptionHandling::WinEH;
116116
WinEHEncodingType = WinEH::EncodingType::Itanium;
117117
}

llvm/test/CodeGen/AArch64/cfguard-checks.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ lpad: ; preds = %entry
9696
; CHECK: blr x9
9797
; CHECK-NEXT: .Ltmp0:
9898
; CHECK-NEXT: blr x8
99-
; CHECK: ; %invoke.cont
100-
; CHECK: ; %lpad
99+
; CHECK: // %invoke.cont
100+
; CHECK: // %lpad
101101
}
102102

103103
declare void @h()

llvm/test/CodeGen/AArch64/landingpad-ifcvt.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
; RUN: llc < %s | FileCheck %s
22

33
; Make sure this doesn't crash (and the output is sane).
4-
; CHECK: ; %__except.ret
4+
; CHECK: // %__except.ret
55
; CHECK-NEXT: mov x0, xzr
66

77
target datalayout = "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128"

llvm/test/CodeGen/AArch64/reloc-specifiers.mir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ body: |
1111
bb.0:
1212
; CHECK-LABEL: bar
1313
14-
; CHECK: movz x0, #:abs_g1_s:.Lfoo$frame_escape_0 ; encoding: [0bAAA00000,A,0b101AAAAA,0xd2]
14+
; CHECK: movz x0, #:abs_g1_s:.Lfoo$frame_escape_0 // encoding: [0bAAA00000,A,0b101AAAAA,0xd2]
1515
; CHECK: fixup A - offset: 0, value: :abs_g1_s:.Lfoo$frame_escape_0, kind: fixup_aarch64_movw
1616
renamable $x0 = MOVZXi target-flags(aarch64-g1, aarch64-s) <mcsymbol .Lfoo$frame_escape_0>, 16
1717
18-
; CHECK: movk x0, #:abs_g0_nc:.Lfoo$frame_escape_0 ; encoding: [0bAAA00000,A,0b100AAAAA,0xf2]
18+
; CHECK: movk x0, #:abs_g0_nc:.Lfoo$frame_escape_0 // encoding: [0bAAA00000,A,0b100AAAAA,0xf2]
1919
; CHECK: fixup A - offset: 0, value: :abs_g0_nc:.Lfoo$frame_escape_0, kind: fixup_aarch64_movw
2020
renamable $x0 = MOVKXi $x0, target-flags(aarch64-g0, aarch64-nc) <mcsymbol .Lfoo$frame_escape_0>, 0
2121
...

llvm/test/CodeGen/AArch64/seh_funclet_x1.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
; CHECK: ?dtor$3@?0?main@4HA":
77
; CHECK: .seh_proc "?dtor$3@?0?main@4HA"
8-
; CHECK: stp x29, x30, [sp, #-16]! ; 16-byte Folded Spill
8+
; CHECK: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill
99
; CHECK-NEXT: .seh_save_fplr_x 16
1010
; CHECK-NEXT: .seh_endprologue
1111
; CHECK-NEXT: mov x29, x1

llvm/test/CodeGen/AArch64/win64-no-uwtable.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ define dso_local void @SEHfilter() nounwind "frame-pointer"="all" {
1313
; CHECK-NEXT: mov x29, sp
1414
; CHECK-NEXT: bl g
1515
; CHECK-NEXT: cbz w19, .LBB0_2
16-
; CHECK-NEXT: ; %bb.1:
16+
; CHECK-NEXT: // %bb.1:
1717
; CHECK-NEXT: ldr x19, [sp, #16]
1818
; CHECK-NEXT: ldp x30, x29, [sp], #32
1919
; CHECK-NEXT: ret
20-
; CHECK-NEXT: .LBB0_2: ; %if.end.i
20+
; CHECK-NEXT: .LBB0_2: // %if.end.i
2121
; CHECK-NEXT: bl f
2222
; CHECK-NEXT: brk #0x1
2323
%1 = load i32, i32* undef, align 4

llvm/test/CodeGen/AArch64/windows-extern-weak.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ define void @func() {
1010
; CHECK-NEXT: adrp x8, .refptr.weakfunc
1111
; CHECK-NEXT: ldr x8, [x8, :lo12:.refptr.weakfunc]
1212
; CHECK-NEXT: cbz x8, .LBB0_2
13-
; CHECK-NEXT: ; %bb.1:
13+
; CHECK-NEXT: // %bb.1:
1414
; CHECK-NEXT: blr x8
1515
; CHECK-NEXT: .LBB0_2:
1616
; CHECK-NEXT: .seh_startepilogue

llvm/test/CodeGen/AArch64/wineh-try-catch-nobase.ll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@
66

77
; Check that we compute the address relative to fp.
88
; CHECK-LABEL: "?catch$2@?0??a@@YAXXZ@4HA":
9-
; CHECK: stp x29, x30, [sp, #-16]! ; 16-byte Folded Spill
9+
; CHECK: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill
1010
; CHECK-NEXT: .seh_save_fplr_x 16
1111
; CHECK-NEXT: .seh_endprologue
12-
; CHECK-NEXT: sub x0, x29, #16 ; =16
12+
; CHECK-NEXT: sub x0, x29, #16 // =16
1313
; CHECK-NEXT: mov x1, xzr
1414
; CHECK-NEXT: bl "?bb@@YAXPEAHH@Z"
1515
; CHECK-NEXT: adrp x0, .LBB0_1
1616
; CHECK-NEXT: add x0, x0, .LBB0_1
1717
; CHECK-NEXT: .seh_startepilogue
18-
; CHECK-NEXT: ldp x29, x30, [sp], #16 ; 16-byte Folded Reload
18+
; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload
1919
; CHECK-NEXT: .seh_save_fplr_x 16
2020
; CHECK-NEXT: .seh_endepilogue
2121
; CHECK-NEXT: ret

llvm/test/CodeGen/AArch64/wineh-try-catch.ll

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
; CHECK-LABEL: .Ltmp0:
4242
; CHECK: bl "?func2@@YAHXZ
4343

44-
; CHECK: [[CATCHRETDEST:.LBB0_[0-9]+]]: ; %catchret.dest
44+
; CHECK: [[CATCHRETDEST:.LBB0_[0-9]+]]: // %catchret.dest
4545

4646
; Check the catch funclet.
4747
; CHECK-LABEL: "?catch$2@?0??func@@YAHXZ@4HA":
@@ -74,14 +74,14 @@
7474
; entry to func is encoded in cppxdata that is passed to __CxxFrameHandler3. As
7575
; computed above, this comes to -16.
7676
; CHECK-LABEL: "$cppxdata$?func@@YAHXZ":
77-
; CHECK-NEXT: .word 429065506 ; MagicNumber
78-
; CHECK-NEXT: .word 2 ; MaxState
79-
; CHECK-NEXT: .word ("$stateUnwindMap$?func@@YAHXZ")@IMGREL ; UnwindMap
80-
; CHECK-NEXT: .word 1 ; NumTryBlocks
81-
; CHECK-NEXT: .word ("$tryMap$?func@@YAHXZ")@IMGREL ; TryBlockMap
82-
; CHECK-NEXT: .word 4 ; IPMapEntries
83-
; CHECK-NEXT: .word ("$ip2state$?func@@YAHXZ")@IMGREL ; IPToStateXData
84-
; CHECK-NEXT: .word -16 ; UnwindHelp
77+
; CHECK-NEXT: .word 429065506 // MagicNumber
78+
; CHECK-NEXT: .word 2 // MaxState
79+
; CHECK-NEXT: .word ("$stateUnwindMap$?func@@YAHXZ")@IMGREL // UnwindMap
80+
; CHECK-NEXT: .word 1 // NumTryBlocks
81+
; CHECK-NEXT: .word ("$tryMap$?func@@YAHXZ")@IMGREL // TryBlockMap
82+
; CHECK-NEXT: .word 4 // IPMapEntries
83+
; CHECK-NEXT: .word ("$ip2state$?func@@YAHXZ")@IMGREL // IPToStateXData
84+
; CHECK-NEXT: .word -16 // UnwindHelp
8585

8686
; UNWIND: Function: ?func@@YAHXZ (0x0)
8787
; UNWIND: Prologue [
Lines changed: 55 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,41 @@
1-
; RUN: llvm-mc -triple aarch64-windows -filetype obj -o %t.obj %s
2-
; RUN: llvm-readobj -r %t.obj | FileCheck %s
3-
; RUN: llvm-objdump -d %t.obj | FileCheck %s --check-prefix=DISASM
1+
// RUN: llvm-mc -triple aarch64-windows -filetype obj -o %t.obj %s
2+
// RUN: llvm-readobj -r %t.obj | FileCheck %s
3+
// RUN: llvm-objdump -d %t.obj | FileCheck %s --check-prefix=DISASM
44

5-
; IMAGE_REL_ARM64_ADDR32
5+
// IMAGE_REL_ARM64_ADDR32
66
.Linfo_foo:
77
.asciz "foo"
88
.long foo
99

10-
; IMAGE_REL_ARM64_ADDR32NB
10+
// IMAGE_REL_ARM64_ADDR32NB
1111
.long func@IMGREL
1212

13-
; IMAGE_REL_ARM64_ADDR64
13+
// IMAGE_REL_ARM64_ADDR64
1414
.globl struc
1515
struc:
1616
.quad arr
1717

18-
; IMAGE_REL_ARM64_BRANCH26
18+
// IMAGE_REL_ARM64_BRANCH26
1919
b target
2020

21-
; IMAGE_REL_ARM64_PAGEBASE_REL21
21+
// IMAGE_REL_ARM64_PAGEBASE_REL21
2222
adrp x0, foo
2323

24-
; IMAGE_REL_ARM64_PAGEOFFSET_12A
24+
// IMAGE_REL_ARM64_PAGEOFFSET_12A
2525
add x0, x0, :lo12:foo
2626

27-
; IMAGE_REL_ARM64_PAGEOFFSET_12L
27+
// IMAGE_REL_ARM64_PAGEOFFSET_12L
2828
ldr x0, [x0, :lo12:foo]
2929

30-
; IMAGE_REL_ARM64_PAGEBASE_REL21, even if the symbol offset is known
30+
// IMAGE_REL_ARM64_PAGEBASE_REL21, even if the symbol offset is known
3131
adrp x0, bar
3232
bar:
3333

34-
; IMAGE_REL_ARM64_SECREL
34+
// IMAGE_REL_ARM64_SECREL
3535
.secrel32 .Linfo_bar
3636
.Linfo_bar:
3737

38-
; IMAGE_REL_ARM64_SECTION
38+
// IMAGE_REL_ARM64_SECTION
3939
.secidx func
4040

4141
.align 2
@@ -45,55 +45,55 @@ add x0, x0, :lo12:foo + 0x12345
4545
ldrb w0, [x0, :lo12:foo + 0x12345]
4646
ldr x0, [x0, :lo12:foo + 0x12348]
4747

48-
; IMAGE_REL_ARM64_SECREL_LOW12A
48+
// IMAGE_REL_ARM64_SECREL_LOW12A
4949
add x0, x0, :secrel_lo12:foo
50-
; IMAGE_REL_ARM64_SECREL_HIGH12A
50+
// IMAGE_REL_ARM64_SECREL_HIGH12A
5151
add x0, x0, :secrel_hi12:foo
52-
; IMAGE_REL_ARM64_SECREL_LOW12L
52+
// IMAGE_REL_ARM64_SECREL_LOW12L
5353
ldr x0, [x0, :secrel_lo12:foo]
5454

55-
; IMAGE_REL_ARM64_REL21
55+
// IMAGE_REL_ARM64_REL21
5656
adr x0, foo + 0x12345
5757

58-
; IMAGE_REL_ARM64_BRANCH19
58+
// IMAGE_REL_ARM64_BRANCH19
5959
bne target
6060

61-
; IMAGE_REL_ARM64_BRANCH14
61+
// IMAGE_REL_ARM64_BRANCH14
6262
tbz x0, #0, target
6363

64-
; CHECK: Format: COFF-ARM64
65-
; CHECK: Arch: aarch64
66-
; CHECK: AddressSize: 64bit
67-
; CHECK: Relocations [
68-
; CHECK: Section (1) .text {
69-
; CHECK: 0x4 IMAGE_REL_ARM64_ADDR32 foo
70-
; CHECK: 0x8 IMAGE_REL_ARM64_ADDR32NB func
71-
; CHECK: 0xC IMAGE_REL_ARM64_ADDR64 arr
72-
; CHECK: 0x14 IMAGE_REL_ARM64_BRANCH26 target
73-
; CHECK: 0x18 IMAGE_REL_ARM64_PAGEBASE_REL21 foo
74-
; CHECK: 0x1C IMAGE_REL_ARM64_PAGEOFFSET_12A foo
75-
; CHECK: 0x20 IMAGE_REL_ARM64_PAGEOFFSET_12L foo
76-
; CHECK: 0x24 IMAGE_REL_ARM64_PAGEBASE_REL21 bar
77-
; CHECK: 0x28 IMAGE_REL_ARM64_SECREL .text
78-
; CHECK: 0x2C IMAGE_REL_ARM64_SECTION func
79-
; CHECK: 0x30 IMAGE_REL_ARM64_PAGEBASE_REL21 baz
80-
; CHECK: 0x34 IMAGE_REL_ARM64_PAGEOFFSET_12A foo
81-
; CHECK: 0x38 IMAGE_REL_ARM64_PAGEOFFSET_12L foo
82-
; CHECK: 0x3C IMAGE_REL_ARM64_PAGEOFFSET_12L foo
83-
; CHECK: 0x40 IMAGE_REL_ARM64_SECREL_LOW12A foo
84-
; CHECK: 0x44 IMAGE_REL_ARM64_SECREL_HIGH12A foo
85-
; CHECK: 0x48 IMAGE_REL_ARM64_SECREL_LOW12L foo
86-
; CHECK: 0x4C IMAGE_REL_ARM64_REL21 foo
87-
; CHECK: 0x50 IMAGE_REL_ARM64_BRANCH19 target
88-
; CHECK: 0x54 IMAGE_REL_ARM64_BRANCH14 target
89-
; CHECK: }
90-
; CHECK: ]
91-
92-
; DISASM: 30: 20 1a 09 b0 adrp x0, 0x12345000
93-
; DISASM: 34: 00 14 0d 91 add x0, x0, #837
94-
; DISASM: 38: 00 14 4d 39 ldrb w0, [x0, #837]
95-
; DISASM: 3c: 00 a4 41 f9 ldr x0, [x0, #840]
96-
; DISASM: 40: 00 00 00 91 add x0, x0, #0
97-
; DISASM: 44: 00 00 40 91 add x0, x0, #0, lsl #12
98-
; DISASM: 48: 00 00 40 f9 ldr x0, [x0]
99-
; DISASM: 4c: 20 1a 09 30 adr x0, #74565
64+
// CHECK: Format: COFF-ARM64
65+
// CHECK: Arch: aarch64
66+
// CHECK: AddressSize: 64bit
67+
// CHECK: Relocations [
68+
// CHECK: Section (1) .text {
69+
// CHECK: 0x4 IMAGE_REL_ARM64_ADDR32 foo
70+
// CHECK: 0x8 IMAGE_REL_ARM64_ADDR32NB func
71+
// CHECK: 0xC IMAGE_REL_ARM64_ADDR64 arr
72+
// CHECK: 0x14 IMAGE_REL_ARM64_BRANCH26 target
73+
// CHECK: 0x18 IMAGE_REL_ARM64_PAGEBASE_REL21 foo
74+
// CHECK: 0x1C IMAGE_REL_ARM64_PAGEOFFSET_12A foo
75+
// CHECK: 0x20 IMAGE_REL_ARM64_PAGEOFFSET_12L foo
76+
// CHECK: 0x24 IMAGE_REL_ARM64_PAGEBASE_REL21 bar
77+
// CHECK: 0x28 IMAGE_REL_ARM64_SECREL .text
78+
// CHECK: 0x2C IMAGE_REL_ARM64_SECTION func
79+
// CHECK: 0x30 IMAGE_REL_ARM64_PAGEBASE_REL21 baz
80+
// CHECK: 0x34 IMAGE_REL_ARM64_PAGEOFFSET_12A foo
81+
// CHECK: 0x38 IMAGE_REL_ARM64_PAGEOFFSET_12L foo
82+
// CHECK: 0x3C IMAGE_REL_ARM64_PAGEOFFSET_12L foo
83+
// CHECK: 0x40 IMAGE_REL_ARM64_SECREL_LOW12A foo
84+
// CHECK: 0x44 IMAGE_REL_ARM64_SECREL_HIGH12A foo
85+
// CHECK: 0x48 IMAGE_REL_ARM64_SECREL_LOW12L foo
86+
// CHECK: 0x4C IMAGE_REL_ARM64_REL21 foo
87+
// CHECK: 0x50 IMAGE_REL_ARM64_BRANCH19 target
88+
// CHECK: 0x54 IMAGE_REL_ARM64_BRANCH14 target
89+
// CHECK: }
90+
// CHECK: ]
91+
92+
// DISASM: 30: 20 1a 09 b0 adrp x0, 0x12345000
93+
// DISASM: 34: 00 14 0d 91 add x0, x0, #837
94+
// DISASM: 38: 00 14 4d 39 ldrb w0, [x0, #837]
95+
// DISASM: 3c: 00 a4 41 f9 ldr x0, [x0, #840]
96+
// DISASM: 40: 00 00 00 91 add x0, x0, #0
97+
// DISASM: 44: 00 00 40 91 add x0, x0, #0, lsl #12
98+
// DISASM: 48: 00 00 40 f9 ldr x0, [x0]
99+
// DISASM: 4c: 20 1a 09 30 adr x0, #74565

llvm/test/MC/AArch64/coff-gnu.s renamed to llvm/test/MC/AArch64/coff-separator.s

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// RUN: llvm-mc -triple aarch64-windows-gnu -filetype obj -o %t.obj %s
22
// RUN: llvm-objdump -d %t.obj | FileCheck %s
3+
// RUN: llvm-mc -triple aarch64-windows-msvc -filetype obj -o %t.obj %s
4+
// RUN: llvm-objdump -d %t.obj | FileCheck %s
35

46
func:
57
// Check that the nop instruction after the semicolon also is handled

0 commit comments

Comments
 (0)