Files
RedBear-OS/recipes/tools/gnu-binutils/source/ld/testsuite/ld-m68hc11/adj-jump.s
T
vasilito ff4ff35918 feat: track all source trees in git — full fork offline-first model
Red Bear OS is a full fork. All sources must be available from git clone
with zero network access. Removed gitignore rules that excluded fetched
source trees under recipes/*/source/, local/recipes/kde/*/source/,
local/recipes/qt/*/source/, and vendor source trees.

Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded.

127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt
frameworks, mesa, wayland, DRM drivers, and every other recipe source.
2026-05-14 10:55:53 +01:00

75 lines
1.2 KiB
ArmAsm

;;; Test 68HC11 linker relaxation and fixup of bcc/bra branches
;;;
.sect .text
.globl _start
_start:
;; Next 'bra' is assembled as a 'jmp'. It is relaxed to 'bra L3'
;; during a second pass of relax.
bra L3
.skip 20
;; Next 'jmp' must be relaxed to a 'bra' during the first pass.
;; The branch offset must then be adjusted by consecutive relax.
jmp L3
L1:
addd 0,x
bne L1 ; Branch not adjusted
addd _toto
beq L1 ; Backward branch, adjust -1
addd _toto+1
jbne L1 ; Backward branch, adjust -2
bgt L1 ; All possible backward branchs, adjust -2
bge L1
beq L1
ble L1
blt L1
bhi L1
bhs L1
beq L1
bls L1
blo L1
bcs L1
bmi L1
bvs L1
bcc L1
bpl L1
bvc L1
bne L1
brn L1
bra L1
;; Relax several insn to reduce block by 15
addd _toto
addd _toto
addd _toto
addd _toto
addd _toto
addd _toto
addd _toto
addd _toto
addd _toto
addd _toto
addd _toto
addd _toto
addd _toto
addd _toto
addd _toto
L2:
jmp _start ; -> relax to bra _start
bne L2 ; Backward branch, adjust -1
beq L3 ; Forward branch, adjust -2
addd _toto
beq L3 ; Forward branch, adjust -1
addd _toto
L3:
addd _toto
rts
.sect .page0
_bar:
.long 0
_toto:
.long 0
.skip 32
stack:
.skip 10
_table: