CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
180 lines
5.8 KiB
ArmAsm
180 lines
5.8 KiB
ArmAsm
# RUN: not llvm-mc -triple x86_64-windows-msvc %s -filetype=obj -o /dev/null 2>&1 | FileCheck %s --implicit-check-not=error:
|
|
# RUN: not llvm-mc -triple x86_64-windows-msvc %s -o /dev/null 2>&1 | FileCheck %s --implicit-check-not=error:
|
|
.text
|
|
|
|
# CHECK: error: .seh_ directive must appear within an active frame
|
|
.seh_handlerdata
|
|
|
|
.seh_pushreg %rsi
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: .seh_ directive must appear within an active frame
|
|
|
|
.seh_stackalloc 32
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: .seh_ directive must appear within an active frame
|
|
|
|
.seh_startepilogue
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: .seh_ directive must appear within an active frame
|
|
|
|
.seh_endepilogue
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: .seh_ directive must appear within an active frame
|
|
|
|
.seh_unwindv2start
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: .seh_ directive must appear within an active frame
|
|
|
|
.def f;
|
|
.scl 2;
|
|
.type 32;
|
|
.endef
|
|
.globl f # -- Begin function f
|
|
.p2align 4, 0x90
|
|
f: # @f
|
|
.seh_proc f
|
|
pushq %rsi
|
|
.seh_pushreg %rsi
|
|
pushq %rdi
|
|
.seh_pushreg %rdi
|
|
pushq %rbx
|
|
.seh_pushreg %rbx
|
|
subq $32, %rsp
|
|
.seh_stackalloc 0
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: stack allocation size must be non-zero
|
|
.seh_stackalloc 7
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: stack allocation size is not a multiple of 8
|
|
.seh_stackalloc 32
|
|
.seh_splitchained
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: can't split into a new chained region (.seh_splitchained) in the middle of a prolog in f
|
|
.seh_startepilogue
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: starting epilogue (.seh_startepilogue) before prologue has ended (.seh_endprologue) in f
|
|
.seh_endprologue
|
|
nop
|
|
.seh_startepilogue
|
|
addq $32, %rsp
|
|
popq %rbx
|
|
popq %rdi
|
|
popq %rsi
|
|
.seh_endepilogue
|
|
.seh_endepilogue
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: Stray .seh_endepilogue in f
|
|
retq
|
|
.seh_handlerdata
|
|
.text
|
|
.seh_endproc
|
|
|
|
|
|
.seh_pushreg %rsi
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: .seh_ directive must appear within an active frame
|
|
|
|
g:
|
|
.seh_proc g
|
|
pushq %rbp
|
|
.seh_pushreg %rbx
|
|
pushq %rsi
|
|
.seh_pushreg %rsi
|
|
.seh_endprologue
|
|
.seh_setframe 3 255
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: you must specify a stack pointer offset
|
|
.seh_setframe 3, 255
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: offset is not a multiple of 16
|
|
.seh_setframe 3, 256
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: frame offset must be less than or equal to 240
|
|
.seh_setframe 3, 128
|
|
.seh_setframe 3, 128
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: frame register and offset can be set at most once
|
|
nop
|
|
.seh_startepilogue
|
|
popq %rsi
|
|
popq %rbp
|
|
.seh_endepilogue
|
|
retq
|
|
.seh_endproc
|
|
|
|
.globl h # -- Begin function h
|
|
.p2align 4, 0x90
|
|
h: # @h
|
|
.seh_proc h
|
|
# %bb.0: # %entry
|
|
subq $72, %rsp
|
|
.seh_stackalloc 72
|
|
movaps %xmm7, 48(%rsp) # 16-byte Spill
|
|
.seh_savexmm 7 44
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: you must specify an offset on the stack
|
|
.seh_savexmm %xmm7, 44
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: offset is not a multiple of 16
|
|
.seh_savexmm %xmm7, 48
|
|
movaps %xmm6, 32(%rsp) # 16-byte Spill
|
|
.seh_savexmm %xmm6, 32
|
|
.seh_endprologue
|
|
movapd %xmm0, %xmm6
|
|
callq getdbl
|
|
movapd %xmm0, %xmm7
|
|
addsd %xmm6, %xmm7
|
|
callq getdbl
|
|
addsd %xmm7, %xmm0
|
|
.seh_startepilogue
|
|
movaps 32(%rsp), %xmm6 # 16-byte Reload
|
|
movaps 48(%rsp), %xmm7 # 16-byte Reload
|
|
addq $72, %rsp
|
|
.seh_endepilogue
|
|
retq
|
|
.seh_handlerdata
|
|
.text
|
|
.seh_endproc
|
|
# -- End function
|
|
|
|
.globl i
|
|
.def i; .scl 2; .type 32; .endef
|
|
.p2align 4, 0x90
|
|
i:
|
|
.seh_proc i
|
|
pushq %rbp
|
|
.seh_pushreg 32
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: incorrect register number for use with this directive
|
|
pushq %rbx
|
|
.seh_pushreg %xmm0
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: register is not supported for use with this directive
|
|
leaq 16(%rsp), %rbp
|
|
.seh_setframe %xmm0, 16
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: register is not supported for use with this directive
|
|
.seh_endprologue
|
|
.seh_startepilogue
|
|
ret
|
|
.seh_endproc
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: Missing .seh_endepilogue in i
|
|
|
|
j:
|
|
.seh_proc j
|
|
.seh_unwindversion 1
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: Unsupported version specified in .seh_unwindversion in j
|
|
.seh_unwindversion 2
|
|
.seh_unwindversion 2
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: Duplicate .seh_unwindversion in j
|
|
.seh_endprologue
|
|
.seh_unwindv2start
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: Stray .seh_unwindv2start in j
|
|
|
|
.seh_startepilogue
|
|
.seh_endepilogue
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: Missing .seh_unwindv2start in j
|
|
ret
|
|
|
|
.seh_startepilogue
|
|
.seh_unwindv2start
|
|
.seh_unwindv2start
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: Duplicate .seh_unwindv2start in j
|
|
.seh_endepilogue
|
|
ret
|
|
.seh_endproc
|
|
|
|
k:
|
|
.seh_proc k
|
|
.seh_endprologue
|
|
.seh_splitchained
|
|
pushq %rsi
|
|
.seh_pushreg %rsi
|
|
.seh_splitchained
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: can't split into a new chained region (.seh_splitchained) in the middle of a prolog in k
|
|
.seh_startepilogue
|
|
# CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: starting epilogue (.seh_startepilogue) before prologue has ended (.seh_endprologue) in k
|
|
.seh_endepilogue
|
|
ret
|
|
.seh_endproc
|