Files
TheRock/debug-tools/rocgdb/source/ld/testsuite/ld-m68hc11/relax-group.s
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

162 lines
2.2 KiB
ArmAsm

;;; Test 68HC11 linker relaxation (group relax)
;;;
.sect .text
.globl _start
_start:
;;;
;;; The following group of instructions are adjusted.
;;;
.relax L1x
ldx #table
bset 0,x #4
L1x:
.relax L1y
ldy #table
bset 0,y #4
L1y:
.relax L2x
ldx #table+3
bset 0,x #4
bset 1,x #8
L2x:
.relax L2y
ldy #table+3
bset 0,y #4
bset 1,y #8
L2y:
.relax L3x
ldx #table+6
bset 0,x #4
bset 1,x #8
bset 2,x #12
bset 3,x #12
bset 4,x #12
bset 5,x #12
L3x:
.relax L3y
ldy #table+6
bset 0,y #4
bset 1,y #8
bset 2,y #12
bset 3,y #12
bset 4,y #12
bset 5,y #12
L3y:
;; Next branch is always relative. It must be adjusted while
;; above instructions are relaxed.
bra _start
;;;
;;; This group has the first two bset insn relaxable while the
;;; others are not. The ldx/ldy must not be removed.
;;;
.relax L4x
ldx #table+0xfe
bset 0,x #4
bset 1,x #8
bset 2,x #12
bset 3,x #12
bset 4,x #12
bset 5,x #12
L4x:
.relax L4y
ldy #table+0xfe
bset 0,y #4
bset 1,y #8
bset 2,y #12
bset 3,y #12
bset 4,y #12
bset 5,y #12
L4y:
;;;
;;; Relax group for bclr
;;;
.relax L5x
ldx #table+10
bclr 0,x #4
bclr 1,x #8
L5x:
.relax L5y
ldy #table+16
bclr 10,y #4
bclr 11,y #8
L5y:
;;;
;;; Relax group for brset (with backward branch)
;;;
.relax L6x
ldx #table+8
brset 0,x #4 L5y
L6x:
.relax L7x
ldy #table+8
brset 0,y #4 L6x
L7x:
;;;
;;; Relax group for brset (with forward branch)
;;;
.relax L8x
ldx #table+8
brset 0,x #4 brend
L8x:
.relax L8y
ldy #table+8
brset 0,y #4 brend
L8y:
;;;
;;; Relax group for brclr (with backward branch)
;;;
.relax L9x
ldx #table+8
brclr 0,x #4 L8y
L9x:
.relax L9y
ldy #table+8
brclr 0,y #4 L9x
L9y:
;;;
;;; Relax group for brclr (with forward branch)
;;;
.relax L10x
ldx #table+8
brclr 0,x #4 brend
L10x:
.relax L10y
ldy #table+8
brclr 0,y #4 brend
L10y:
nop
brend:
;;;
;;; The following are wrong use of .relax groups.
;;;
.relax w1
w1:
.relax w2
bset 0,x #4
w2:
.relax w3
ldx #table
w3:
.relax w4
ldy #table+8
w4:
.relax w5
rts
w5:
;;;
;;; Next insn is not in a .relax group
ldx #table
bset 0,x #5
bra _start
rts
.sect .page0
.globl table
table: .long 0
table4: .long 0
table8: .long 0
.skip 10
end_table:
.long 0