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 2341319564.
(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
33 lines
934 B
LLVM
33 lines
934 B
LLVM
; RUN: llc -mtriple aarch64-windows -filetype asm -o - < %s | FileCheck %s
|
|
; RUN: llc -mtriple aarch64-windows -filetype asm -o - -fast-isel %s | FileCheck %s
|
|
; RUN: llc -mtriple aarch64-windows -filetype asm -o - -global-isel -global-isel-abort=0 %s | FileCheck %s
|
|
|
|
define void @func() {
|
|
; CHECK-LABEL: func:
|
|
; CHECK: str x30, [sp, #-16]!
|
|
; CHECK-NEXT: .seh_save_reg_x x30, 16
|
|
; CHECK-NEXT: .seh_endprologue
|
|
; CHECK-NEXT: adrp x8, .refptr.weakfunc
|
|
; CHECK-NEXT: ldr x8, [x8, :lo12:.refptr.weakfunc]
|
|
; CHECK-NEXT: cbz x8, .LBB0_2
|
|
; CHECK-NEXT: // %bb.1:
|
|
; CHECK-NEXT: blr x8
|
|
; CHECK-NEXT: .LBB0_2:
|
|
; CHECK-NEXT: .seh_startepilogue
|
|
; CHECK-NEXT: ldr x30, [sp], #16
|
|
; CHECK-NEXT: .seh_save_reg_x x30, 16
|
|
; CHECK-NEXT: .seh_endepilogue
|
|
; CHECK-NEXT: ret
|
|
|
|
br i1 icmp ne (void ()* @weakfunc, void ()* null), label %1, label %2
|
|
|
|
1:
|
|
call void @weakfunc()
|
|
br label %2
|
|
|
|
2:
|
|
ret void
|
|
}
|
|
|
|
declare extern_weak void @weakfunc()
|