27 lines
718 B
ArmAsm
27 lines
718 B
ArmAsm
|
# RUN: llvm-mc -filetype=obj -triple x86_64 --x86-align-branch-boundary=32 --x86-align-branch=fused+jcc+call %s | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
|
||
|
|
||
|
# Exercise some corner cases related to align directive.
|
||
|
|
||
|
.text
|
||
|
# Check the align directive between the macro fused pair
|
||
|
# does not make code crazy.
|
||
|
# CHECK: 0: cmpq %rax, %rbp
|
||
|
# CHECK: 3: nop
|
||
|
# CHECK: 4: jne
|
||
|
cmp %rax, %rbp
|
||
|
.p2align 1
|
||
|
jne bar
|
||
|
|
||
|
.rept 24
|
||
|
int3
|
||
|
.endr
|
||
|
.p2align 1
|
||
|
# Check we can ensure this call not cross or end at boundary when there
|
||
|
# is a align directive before it.
|
||
|
# CHECK: 20: callq *%rax
|
||
|
call *%rax
|
||
|
|
||
|
.type bar,@function
|
||
|
bar:
|
||
|
retq
|