## Check that BOLT preserves NOP instructions of different sizes correctly. # REQUIRES: system-linux # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-linux %s -o %t.o # RUN: ld.lld %t.o -o %t.exe -q # RUN: llvm-bolt %t.exe -o %t.bolt.exe --keep-nops --relocs --print-finalized \ # RUN: 2>&1 | FileCheck --check-prefix=CHECK-BOLT %s # RUN: llvm-objdump -d %t.bolt.exe | FileCheck %s .text .globl _start .type _start,@function _start: .cfi_startproc .nops 1 .nops 2 .nops 3 .nops 4 .nops 5 .nops 6 .nops 7 .nops 8 .nops 9 .nops 10 .nops 11 .nops 12 .nops 13 .nops 14 .nops 15 # CHECK: <_start>: # CHECK-NEXT: 90 # CHECK-NEXT: 66 90 # CHECK-NEXT: 0f 1f 00 # CHECK-NEXT: 0f 1f 40 00 # CHECK-NEXT: 0f 1f 44 00 00 # CHECK-NEXT: 66 0f 1f 44 00 00 # CHECK-NEXT: 0f 1f 80 00 00 00 00 # CHECK-NEXT: 0f 1f 84 00 00 00 00 00 # CHECK-NEXT: 66 0f 1f 84 00 00 00 00 00 # CHECK-NEXT: 66 2e 0f 1f 84 00 00 00 00 00 # CHECK-NEXT: 66 66 2e 0f 1f 84 00 00 00 00 00 # CHECK-NEXT: 66 66 66 2e 0f 1f 84 00 00 00 00 00 # CHECK-NEXT: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 # CHECK-NEXT: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 # CHECK-NEXT: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 # CHECK-BOLT: Size: 1 # CHECK-BOLT-NEXT: Size: 2 # CHECK-BOLT-NEXT: Size: 3 # CHECK-BOLT-NEXT: Size: 4 # CHECK-BOLT-NEXT: Size: 5 # CHECK-BOLT-NEXT: Size: 6 # CHECK-BOLT-NEXT: Size: 7 # CHECK-BOLT-NEXT: Size: 8 # CHECK-BOLT-NEXT: Size: 9 # CHECK-BOLT-NEXT: Size: 10 # CHECK-BOLT-NEXT: Size: 11 # CHECK-BOLT-NEXT: Size: 12 # CHECK-BOLT-NEXT: Size: 13 # CHECK-BOLT-NEXT: Size: 14 # CHECK-BOLT-NEXT: Size: 15 # Needed for relocation mode. .reloc 0, R_X86_64_NONE .size _start, .-_start .cfi_endproc