# 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 # Exercise cases where we're enabling interrupts with one instruction delay # and thus can't add a nop in between without changing behavior. .text # CHECK: 1e: sti # CHECK: 1f: jmp .p2align 5 .rept 30 int3 .endr sti jmp baz # CHECK: 5c: movq %rax, %ss # CHECK: 5f: jmp .p2align 5 .rept 28 int3 .endr movq %rax, %ss jmp baz # CHECK: 9d: movl %esi, %ss # CHECK: 9f: jmp .p2align 5 .rept 29 int3 .endr movl %esi, %ss jmp baz # movw and movl are interchangeable since we're only using the low 16 bits. # Both are generated as "MOV Sreg,r/m16**" (8E /r), but disassembled as movl # CHECK: dd: movl %esi, %ss # CHECK: df: jmp .p2align 5 .rept 29 int3 .endr movw %si, %ss jmp baz # CHECK: 11b: movw (%esi), %ss # CHECK: 11e: jmp .p2align 5 .rept 27 int3 .endr movw (%esi), %ss jmp baz # CHECK: 15b: movw (%rsi), %ss # CHECK: 15d: jmp .p2align 5 .rept 27 int3 .endr movw (%rsi), %ss jmp baz int3 .section ".text.other" bar: retq