Files
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

290 lines
11 KiB
Plaintext

# frv testcase for mp_exception
# mach: fr500 fr550 frv
# xerror:
# This program no longer assembles because the assembler
# now detects the unaligned registers. For this reason
# this test is now marked as "xerror" and prints the
# expected message "fail"
.include "testutils.inc"
start
.global mp_exception
mpx:
.if 1
fail
.else
or_spr_immed 2,msr0 ; Set msr0.ovf
or_spr_immed 2,msr1 ; Set msr1.ovf
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mcmpsh fr10,fr11,fcc1 ; mp_exception: cr-not-aligned
test_spr_bits 0x7000,12,3,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,1,msr1 ; msr1.ovf is set
or_spr_immed 2,msr0 ; Set msr0.ovf
or_spr_immed 2,msr1 ; Set msr1.ovf
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mcmpsh.p fr10,fr11,fcc0 ; no exception
mcmpsh fr10,fr11,fcc2 ; no exception
test_spr_bits 0x7000,12,0,msr0; msr0.mtt is clear
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
mmulhs.p fr10,fr11,acc3 ; no exception
mmulhs fr10,fr11,acc1 ; mp_exception: acc-not-aligned
test_spr_bits 0x7000,12,2,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
or_spr_immed 2,msr0 ; Set msr0.ovf
or_spr_immed 2,msr1 ; Set msr1.ovf
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mmulhu fr10,fr11,acc0 ; no exception
test_spr_bits 0x7000,12,0,msr0; msr0.mtt is clear
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,1,msr0 ; msr0.ovf is still set
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,1,msr1 ; msr1.ovf still set
set_spr_immed 0,msr0
set_spr_immed 0,msr1
mmulxhs.p fr10,fr11,acc3 ; no exception
mmulxhs fr10,fr11,acc1 ; mp_exception: acc-not-aligned
test_spr_bits 0x7000,12,2,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
or_spr_immed 2,msr0 ; Set msr0.ovf
or_spr_immed 2,msr1 ; Set msr1.ovf
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mmulxhu fr10,fr11,acc0 ; no exception
test_spr_bits 0x7000,12,0,msr0; msr0.mtt is clear
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,1,msr0 ; msr0.ovf is still set
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,1,msr1 ; msr1.ovf still set
set_spr_immed 0,msr0
set_spr_immed 0,msr1
mmachs.p fr10,fr11,acc3 ; no exception
mmachs fr10,fr11,acc1 ; mp_exception: acc-not-aligned
test_spr_bits 0x7000,12,2,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
or_spr_immed 2,msr0 ; Set msr0.ovf
or_spr_immed 2,msr1 ; Set msr1.ovf
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mmachu fr10,fr11,acc0 ; no exception
test_spr_bits 0x7000,12,0,msr0; msr0.mtt is clear
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,1,msr1 ; msr1.ovf still set
set_spr_immed 0,msr0
set_spr_immed 0,msr1
mqaddhss.p fr10,fr12,fr17 ; mp_exception: register-not-aligned
mqaddhss fr10,fr12,fr14 ; no exception
test_spr_bits 0x7000,12,6,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
set_spr_immed 0,msr0
set_spr_immed 0,msr1
mqaddhss.p fr10,fr12,fr14 ; no exception
mqaddhss fr10,fr13,fr16 ; mp_exception: register-not-aligned
test_spr_bits 0x7000,12,6,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
set_spr_immed 0,msr0
set_spr_immed 0,msr1
mqaddhss.p fr19,fr12,fr14 ; mp_exception: register-not-aligned
mqaddhss fr10,fr13,fr16 ; mp_exception: register-not-aligned
test_spr_bits 0x7000,12,6,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
or_spr_immed 2,msr0 ; Set msr0.ovf
or_spr_immed 2,msr1 ; Set msr1.ovf
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mqaddhss fr10,fr12,fr14 ; no exception
test_spr_bits 0x7000,12,0,msr0; msr0.mtt is clear
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,1,msr1 ; msr1.ovf still set
set_spr_immed 0,msr0
set_spr_immed 0,msr1
mqmulhs.p fr10,fr11,acc3 ; no exception
mqmulhs fr10,fr11,acc2 ; mp_exception: acc-not-aligned
test_spr_bits 0x7000,12,2,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
or_spr_immed 2,msr0 ; Set msr0.ovf
or_spr_immed 2,msr1 ; Set msr1.ovf
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mqmulhu fr10,fr11,acc0 ; mp_exception: register_not_aligned
test_spr_bits 0x7000,12,6,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,1,msr0 ; msr0.ovf is still set
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,1,msr1 ; msr1.ovf still set
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mqmulhu fr10,fr12,acc0 ; no exception
test_spr_bits 0x7000,12,0,msr0; msr0.mtt is clear
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,1,msr0 ; msr0.ovf is still set
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,1,msr1 ; msr1.ovf still set
set_spr_immed 0,msr0
set_spr_immed 0,msr1
mqmulxhs.p fr10,fr11,acc3 ; no exception
mqmulxhs fr10,fr11,acc2 ; mp_exception: acc-not-aligned
test_spr_bits 0x7000,12,2,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
or_spr_immed 2,msr0 ; Set msr0.ovf
or_spr_immed 2,msr1 ; Set msr1.ovf
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mqmulxhu fr10,fr11,acc0 ; mp_exception: register-not-aligned
test_spr_bits 0x7000,12,6,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,1,msr0 ; msr0.ovf is still set
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,1,msr1 ; msr1.ovf still set
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mqmulxhu fr10,fr12,acc0 ; no exception
test_spr_bits 0x7000,12,0,msr0; msr0.mtt is clear
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,1,msr0 ; msr0.ovf is still set
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,1,msr1 ; msr1.ovf still set
set_spr_immed 0,msr0
set_spr_immed 0,msr1
mqmachs.p fr10,fr12,acc3 ; no exception
mqmachs fr10,fr12,acc2 ; mp_exception: acc-not-aligned
test_spr_bits 0x7000,12,2,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mqmachu.p fr19,fr12,acc0 ; mp_exception: register-not-aligned
mqmachu fr10,fr12,acc0 ; no exception
test_spr_bits 0x7000,12,6,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mqmachu.p fr10,fr12,acc0 ; no exception
mqmachu fr19,fr12,acc0 ; mp_exception: register-not-aligned
test_spr_bits 0x7000,12,6,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mqmachu.p fr19,fr12,acc0 ; mp_exception: register-not-aligned
mqmachu fr19,fr12,acc0 ; mp_exception: register-not-aligned
test_spr_bits 0x7000,12,6,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
or_spr_immed 2,msr0 ; Set msr0.ovf
or_spr_immed 2,msr1 ; Set msr1.ovf
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mqmachu fr10,fr12,acc0 ; no exception
test_spr_bits 0x7000,12,0,msr0; msr0.mtt is clear
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,1,msr1 ; msr1.ovf still set
set_spr_immed 0,msr0
set_spr_immed 0,msr1
mqcpxrs.p fr10,fr12,acc0 ; no exception
mqcpxrs fr10,fr12,acc1 ; mp_exception: acc-not-aligned
test_spr_bits 0x7000,12,2,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mqcpxru.p fr19,fr12,acc0 ; mp_exception: register-not-aligned
mqcpxru fr10,fr12,acc0 ; no exception
test_spr_bits 0x7000,12,6,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mqcpxru.p fr10,fr12,acc0 ; no exception
mqcpxru fr19,fr12,acc0 ; mp_exception: register-not-aligned
test_spr_bits 0x7000,12,6,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mqcpxru.p fr19,fr12,acc0 ; mp_exception: register-not-aligned
mqcpxru fr19,fr12,acc0 ; mp_exception: register-not-aligned
test_spr_bits 0x7000,12,6,msr0; msr0.mtt is set
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,0,msr1 ; msr1.ovf is clear
or_spr_immed 2,msr0 ; Set msr0.ovf
or_spr_immed 2,msr1 ; Set msr1.ovf
and_spr_immed 0xffff8fff,msr0 ; Clear msr0.mtt
mqcpxru fr10,fr12,acc0 ; no exception
test_spr_bits 0x7000,12,0,msr0; msr0.mtt is clear
test_spr_bits 0x003c,2,0,msr0 ; msr0.sie is clear
test_spr_bits 0x0002,1,0,msr0 ; msr0.ovf is clear
test_spr_bits 0x003c,2,0,msr1 ; msr1.sie is clear
test_spr_bits 0x0002,1,1,msr1 ; msr1.ovf still set
pass
.endif