You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.6 KiB
94 lines
2.6 KiB
# RUN: llvm-mc -filetype=obj -triple x86_64 --x86-align-branch-boundary=32 --x86-align-branch=jcc %s | llvm-objdump -d --no-show-raw-insn - | FileCheck %s --check-prefixes=JCC
|
|
# RUN: llvm-mc -filetype=obj -triple x86_64 --x86-align-branch-boundary=32 --x86-align-branch=jmp %s | llvm-objdump -d --no-show-raw-insn - | FileCheck %s --check-prefixes=JMP
|
|
# RUN: llvm-mc -filetype=obj -triple x86_64 --x86-align-branch-boundary=32 --x86-align-branch=indirect %s | llvm-objdump -d --no-show-raw-insn - | FileCheck %s --check-prefixes=IND
|
|
# RUN: llvm-mc -filetype=obj -triple x86_64 --x86-align-branch-boundary=32 --x86-align-branch=call %s | llvm-objdump -d --no-show-raw-insn - | FileCheck %s --check-prefixes=CAL
|
|
# RUN: llvm-mc -filetype=obj -triple x86_64 --x86-align-branch-boundary=32 --x86-align-branch=ret %s | llvm-objdump -d --no-show-raw-insn - | FileCheck %s --check-prefixes=RET
|
|
|
|
# Exercise cases where only one kind of instruction is asked to be aligned.
|
|
# Fused instruction cases are excluded.
|
|
|
|
.text
|
|
.globl foo
|
|
.p2align 5
|
|
foo:
|
|
.p2align 5
|
|
.rept 30
|
|
int3
|
|
.endr
|
|
# JCC: 20: jne
|
|
# JMP: 1e: jne
|
|
# IND: 1e: jne
|
|
# CAL: 1e: jne
|
|
# RET: 1e: jne
|
|
jne foo
|
|
int3
|
|
|
|
.p2align 5
|
|
.rept 30
|
|
int3
|
|
.endr
|
|
# JCC: 5e: jmp
|
|
# JMP: 60: jmp
|
|
# IND: 5e: jmp
|
|
# CAL: 5e: jmp
|
|
# RET: 5e: jmp
|
|
jmp foo
|
|
int3
|
|
|
|
.p2align 5
|
|
.rept 30
|
|
int3
|
|
.endr
|
|
# JCC: 9e: jmpq *%rax
|
|
# JMP: 9e: jmpq *%rax
|
|
# IND: a0: jmpq *%rax
|
|
# CAL: 9e: jmpq *%rax
|
|
# RET: 9e: jmpq *%rax
|
|
jmp *%rax
|
|
int3
|
|
|
|
|
|
.p2align 5
|
|
.rept 30
|
|
int3
|
|
.endr
|
|
# JCC: de: callq *%rax
|
|
# JMP: de: callq *%rax
|
|
# IND: de: callq *%rax
|
|
# CAL: e0: callq *%rax
|
|
# RET: de: callq *%rax
|
|
call *%rax
|
|
int3
|
|
|
|
|
|
.p2align 5
|
|
.rept 30
|
|
int3
|
|
.endr
|
|
# JCC: 11e: retq
|
|
# JMP: 11e: retq
|
|
# IND: 11e: retq
|
|
# CAL: 11e: retq
|
|
# RET: 120: retq
|
|
ret $0
|
|
int3
|
|
|
|
|
|
.p2align 5
|
|
.rept 29
|
|
int3
|
|
.endr
|
|
# JCC: 15d: cmpq %rax, %rbp
|
|
# JCC: 160: je
|
|
# JMP: 15d: cmpq %rax, %rbp
|
|
# JMP: 160: je
|
|
# IND: 15d: cmpq %rax, %rbp
|
|
# IND: 160: je
|
|
# CAL: 15d: cmpq %rax, %rbp
|
|
# CAL: 160: je
|
|
# RET: 15d: cmpq %rax, %rbp
|
|
# RET: 160: je
|
|
cmp %rax, %rbp
|
|
je foo
|
|
int3
|