mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 19:31:58 +00:00
f918d7fd73
Currently, when a fragment is relaxed, its size is modified, but its offset is not (it gets laid out as a side effect of checking whether it needs relaxation), then all subsequent fragments are invalidated because their offsets need to change. When bundling is enabled, relaxed fragments need to get laid out again, because the increase in size may push it over a bundle boundary. So instead of only invalidating subsequent fragments, also invalidate the fragment that gets relaxed, which causes it to get laid out again. This patch also fixes some trailing whitespace and fixes the bundling-related debug output of MCFragments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174401 91177308-0d34-0410-b5e6-96231b3b80d8
17 lines
389 B
ArmAsm
17 lines
389 B
ArmAsm
# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
|
|
# RUN: | llvm-objdump -disassemble -no-show-raw-insn - | FileCheck %s
|
|
|
|
# Test that an instruction near a bundle end gets properly padded
|
|
# after it is relaxed.
|
|
.text
|
|
foo:
|
|
.bundle_align_mode 5
|
|
.rept 29
|
|
push %rax
|
|
.endr
|
|
# CHECK: 1c: push
|
|
# CHECK: 1d: nop
|
|
# CHECK: 20: jne
|
|
jne 0x100
|
|
|