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
162 lines
2.2 KiB
ArmAsm
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
|
|
|