Files
TheRock/debug-tools/rocgdb/source/sim/testsuite/bfin/se_all16bitopcodes.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

350 lines
8.9 KiB
ArmAsm

/*
* Blackfin testcase for testing illegal/legal 16-bit opcodes from userspace
* we track all instructions which cause some sort of exception when run from
* userspace, this is normally EXCAUSE :
* - 0x21 : illegal instruction
* - 0x22 : illegal instruction combination
* - 0x2e : use of supervisor resource from userspace
* and walk every instruction from 0x0000 to 0xbfff
*/
# mach: bfin
# sim: --environment operating
#include "test.h"
#define SE_ALL_BITS 16
#define SE_ALL_NEW_INSN_STUB
#include "se_allopcodes.h"
.include "testutils.inc"
.macro se_all_load_insn
R2 = W[P5];
R0 = R2;
.endm
.macro se_all_next_insn
/* increment, and go again. */
R0 = R2;
R0 += 1;
/* finish once we hit the 32bit limit */
R1 = 0xC000 (Z);
CC = R1 == R0;
IF CC JUMP pass_lvl;
W[P5] = R0;
.endm
.macro se_all_new_insn_stub
jump _legal_instruction;
.endm
.macro se_all_insn_init
.dw 0x0000;
.endm
.macro se_all_insn_table
/* this table must be sorted, and end with zero */
/* start end SEQSTAT */
.dw 0x0001, 0x000f, 0x21
.dw 0x0011, 0x0013, 0x2e
.ifndef BFIN_JTAG
.dw 0x0014, 0x0014, 0x2e /* anomaly - RTX works when emulator attached */
.endif
.dw 0x0015, 0x001F, 0x21
.dw 0x0021, 0x0022, 0x21
.dw 0x0026, 0x0026, 0x21
.ifndef BFIN_JTAG
.dw 0x0027, 0x0027, 0x21 /* anomaly 492 - unknown */
.endif
.dw 0x0028, 0x002F, 0x21
.dw 0x0030, 0x0037, 0x2e
.dw 0x0038, 0x003F, 0x21
.dw 0x0040, 0x0047, 0x2e
.dw 0x0048, 0x004F, 0x21
.dw 0x0058, 0x005F, 0x21
.dw 0x0068, 0x006F, 0x21
.dw 0x0078, 0x007F, 0x21
.dw 0x0088, 0x008F, 0x21
.dw 0x0090, 0x009F, 0x2E
.dw 0x00a0, 0x00a0, 0x00
.dw 0x00a1, 0x00a1, 0x01
.dw 0x00a2, 0x00a2, 0x02
.dw 0x00a3, 0x00a3, 0x03
.dw 0x00a4, 0x00a4, 0x04
.dw 0x00a5, 0x00a5, 0x05
.dw 0x00a6, 0x00a6, 0x06
.dw 0x00a7, 0x00a7, 0x07
.dw 0x00a8, 0x00a8, 0x08
.dw 0x00a9, 0x00a9, 0x09
.dw 0x00aa, 0x00aa, 0x0a
.dw 0x00ab, 0x00ab, 0x0b
.dw 0x00ac, 0x00ac, 0x0c
.dw 0x00ad, 0x00ad, 0x0d
.dw 0x00ae, 0x00ae, 0x0e
.dw 0x00af, 0x00af, 0x0f
.dw 0x00b6, 0x010f, 0x21
.dw 0x0124, 0x0124, 0x21
.ifndef BFIN_JTAG
.dw 0x0125, 0x0125, 0x21 /* anomaly 492 res = [SP++] */
.endif
.dw 0x0128, 0x012F, 0x21
.dw 0x0138, 0x0138, 0x22
.dw 0x0139, 0x013F, 0x2E
.dw 0x0164, 0x0164, 0x21
.ifndef BFIN_JTAG
.dw 0x0165, 0x0165, 0x21 /* anomaly 492 [--SP] = res */
.endif
.dw 0x0168, 0x016F, 0x21
.dw 0x0178, 0x017F, 0x2E
.dw 0x0180, 0x01FF, 0x21
.dw 0x0210, 0x0217, 0x21
.ifndef BFIN_JTAG
.dw 0x0219, 0x021F, 0x21 /* anomaly 492 CC = !CC opcode is 0000 0010 0001 1xxx */
.endif
.dw 0x0220, 0x023F, 0x21
.dw 0x0280, 0x02FF, 0x21
.dw 0x0305, 0x0305, 0x21
.dw 0x0325, 0x0325, 0x21
.dw 0x0345, 0x0345, 0x21
.dw 0x0365, 0x0365, 0x21
.dw 0x0385, 0x0385, 0x21
.dw 0x03a5, 0x03a5, 0x21
.dw 0x03c5, 0x03c5, 0x21
.dw 0x03e5, 0x03e5, 0x21
.dw 0x0400, 0x047F, 0x21
.dw 0x0486, 0x04Bf, 0x21
.dw 0x04c6, 0x04FF, 0x21
.dw 0x0501, 0x0507, 0x21
.dw 0x0509, 0x050F, 0x21
.dw 0x0511, 0x0517, 0x21
.dw 0x0519, 0x051F, 0x21
.dw 0x0521, 0x0527, 0x21
.dw 0x0529, 0x052F, 0x21
.dw 0x0531, 0x0537, 0x21
.dw 0x0539, 0x053F, 0x21
.dw 0x0541, 0x0547, 0x21
.dw 0x0549, 0x054F, 0x21
.dw 0x0551, 0x0557, 0x21
.dw 0x0559, 0x055F, 0x21
.dw 0x0561, 0x0567, 0x21
.dw 0x0569, 0x056F, 0x21
.dw 0x0571, 0x0577, 0x21
.dw 0x0579, 0x057F, 0x21
.dw 0x0586, 0x0587, 0x21
.dw 0x058e, 0x058F, 0x21
.dw 0x0596, 0x0597, 0x21
.dw 0x059e, 0x059f, 0x21
.dw 0x05a6, 0x05a7, 0x21
.dw 0x05ae, 0x05af, 0x21
.dw 0x05b6, 0x05b7, 0x21
.dw 0x05be, 0x05bf, 0x21
.dw 0x05c6, 0x05c7, 0x21
.dw 0x05ce, 0x05cf, 0x21
.dw 0x05d6, 0x05d7, 0x21
.dw 0x05de, 0x05df, 0x21
.dw 0x05e6, 0x05e7, 0x21
.dw 0x05ee, 0x05ef, 0x21
.dw 0x05f6, 0x05f7, 0x21
.dw 0x05fe, 0x05ff, 0x21
.dw 0x0a81, 0x0aff, 0x21
.dw 0x0b01, 0x0b7f, 0x21
.dw 0x0b81, 0x0bff, 0x21
.dw 0x0e80, 0x0fff, 0x21
.dw 0x3104, 0x3105, 0x21
.dw 0x310c, 0x310d, 0x21
.dw 0x3114, 0x3115, 0x21
.dw 0x311c, 0x311d, 0x21
.dw 0x3124, 0x3125, 0x21
.dw 0x312c, 0x312d, 0x21
.dw 0x3134, 0x3135, 0x21
.dw 0x313c, 0x313d, 0x21
.dw 0x3140, 0x317F, 0x21
.dw 0x31c0, 0x31ff, 0x2E
.dw 0x3304, 0x3305, 0x21
.dw 0x330c, 0x330d, 0x21
.dw 0x3314, 0x3315, 0x21
.dw 0x331c, 0x331d, 0x21
.dw 0x3324, 0x3325, 0x21
.dw 0x332c, 0x332d, 0x21
.dw 0x3334, 0x3335, 0x21
.dw 0x333c, 0x333d, 0x21
.dw 0x3340, 0x337f, 0x21
.dw 0x33c0, 0x33ff, 0x2e
.dw 0x3504, 0x3507, 0x21
.dw 0x350c, 0x350F, 0x21
.dw 0x3514, 0x3517, 0x21
.dw 0x351c, 0x351F, 0x21
.dw 0x3524, 0x3527, 0x21
.dw 0x352c, 0x352f, 0x21
.dw 0x3534, 0x3537, 0x21
.dw 0x353c, 0x353f, 0x21
.dw 0x3540, 0x35c6, 0x21
.dw 0x35c7, 0x35c7, 0x2e
.dw 0x35c8, 0x35ce, 0x21
.dw 0x35cf, 0x35cf, 0x2e
.dw 0x35d0, 0x35d6, 0x21
.dw 0x35d7, 0x35d7, 0x2e
.dw 0x35d8, 0x35de, 0x21
.dw 0x35df, 0x35df, 0x2e
.dw 0x35e0, 0x35e6, 0x21
.dw 0x35e7, 0x35e7, 0x2e
.dw 0x35e8, 0x35ee, 0x21
.dw 0x35ef, 0x35ef, 0x2e
.dw 0x35f0, 0x35f6, 0x21
.dw 0x35f7, 0x35f7, 0x2e
.dw 0x35f8, 0x35fe, 0x21
.dw 0x35ff, 0x35ff, 0x2e
.dw 0x3704, 0x3707, 0x21
.dw 0x370c, 0x370f, 0x21
.dw 0x3714, 0x3717, 0x21
.dw 0x371c, 0x371f, 0x21
.dw 0x3724, 0x3727, 0x21
.dw 0x372c, 0x372f, 0x21
.dw 0x3734, 0x3737, 0x21
.dw 0x373c, 0x37c6, 0x21
.dw 0x37c7, 0x37c7, 0x2e
.dw 0x37c8, 0x37ce, 0x21
.dw 0x37cf, 0x37cf, 0x2e
.dw 0x37d0, 0x37d6, 0x21
.dw 0x37d7, 0x37d7, 0x2e
.dw 0x37d8, 0x37de, 0x21
.dw 0x37df, 0x37df, 0x2e
.dw 0x37e0, 0x37e6, 0x21
.dw 0x37e7, 0x37e7, 0x2e
.dw 0x37e8, 0x37ee, 0x21
.dw 0x37ef, 0x37ef, 0x2e
.dw 0x37f0, 0x37f6, 0x21
.dw 0x37f7, 0x37f7, 0x2e
.dw 0x37f8, 0x37fe, 0x21
.dw 0x37ff, 0x37ff, 0x2e
.dw 0x3820, 0x382f, 0x21
.dw 0x3860, 0x386f, 0x21
.dw 0x38a0, 0x38af, 0x21
.dw 0x38b0, 0x38bf, 0x21
.dw 0x38e0, 0x38ef, 0x21
.dw 0x38f0, 0x38ff, 0x21
.dw 0x3904, 0x3907, 0x21
.dw 0x390c, 0x390f, 0x21
.dw 0x3914, 0x3917, 0x21
.dw 0x391c, 0x392f, 0x21
.dw 0x3934, 0x3937, 0x21
.dw 0x393c, 0x39bf, 0x21
.dw 0x397f, 0x397f, 0x2e
.dw 0x3980, 0x39bf, 0x21
.dw 0x39c0, 0x39c0, 0x2e
.dw 0x39c1, 0x39c7, 0x21
.dw 0x39c8, 0x39c8, 0x2e
.dw 0x39c9, 0x39cf, 0x21
.dw 0x39d0, 0x39d0, 0x2e
.dw 0x39d1, 0x39d7, 0x21
.dw 0x39d8, 0x39d8, 0x2e
.dw 0x39d9, 0x39ef, 0x21
.dw 0x39f0, 0x39f0, 0x2e
.dw 0x39f1, 0x39f6, 0x21
.dw 0x39f7, 0x39f8, 0x2e
.dw 0x39f9, 0x39fe, 0x21
.dw 0x39ff, 0x39ff, 0x2e
.dw 0x3a00, 0x3bff, 0x21
.dw 0x3c80, 0x3cff, 0x21
.dw 0x3d04, 0x3d07, 0x21
.dw 0x3d0c, 0x3d0f, 0x21
.dw 0x3d14, 0x3d17, 0x21
.dw 0x3d1c, 0x3d1f, 0x21
.dw 0x3d24, 0x3d27, 0x21
.dw 0x3d2c, 0x3d2f, 0x21
.dw 0x3d34, 0x3d37, 0x21
.dw 0x3d3c, 0x3dbf, 0X21
.dw 0x3dc0, 0x3dc0, 0x2e
.dw 0x3dc1, 0x3dc6, 0x21
.dw 0x3dc7, 0x3dc8, 0x2e
.dw 0x3dc9, 0x3dce, 0x21
.dw 0x3dcf, 0x3dd0, 0x2e
.dw 0x3dd1, 0x3dd6, 0x21
.dw 0x3dd7, 0x3dd8, 0x2e
.dw 0x3dd9, 0x3dde, 0x21
.dw 0x3ddf, 0x3de0, 0x2e
.dw 0x3de1, 0x3de6, 0x21
.dw 0x3de7, 0x3de8, 0x2e
.dw 0x3de9, 0x3dee, 0x21
.dw 0x3def, 0x3df0, 0x2e
.dw 0x3df1, 0x3df6, 0x21
.dw 0x3df7, 0x3df8, 0x2e
.dw 0x3df9, 0x3dfe, 0x21
.dw 0x3dff, 0x3e7f, 0x2e
.dw 0x3e80, 0x3eb7, 0x21
.dw 0x3eb8, 0x3ebf, 0x2e
.dw 0x3ec0, 0x3ef7, 0x21
.dw 0x3ef8, 0x3f03, 0x2e
.dw 0x3f04, 0x3f07, 0x21
.dw 0x3f08, 0x3f0b, 0x2e
.dw 0x3f0c, 0x3f0f, 0x21
.dw 0x3f10, 0x3f13, 0x2e
.dw 0x3f14, 0x3f17, 0x21
.dw 0x3f18, 0x3f1b, 0x2e
.dw 0x3f1c, 0x3f1f, 0x21
.dw 0x3f20, 0x3f23, 0x2e
.dw 0x3f24, 0x3f27, 0x21
.dw 0x3f28, 0x3f2b, 0x2e
.dw 0x3f2c, 0x3f2f, 0x21
.dw 0x3f30, 0x3f33, 0x2e
.dw 0x3f34, 0x3f37, 0x21
.dw 0x3f38, 0x3f3b, 0x2e
.dw 0x3f3c, 0x3f3d, 0x21
.dw 0x3f3e, 0x3f3f, 0x2e
.dw 0x3f40, 0x3fb7, 0x21
.dw 0x3fb8, 0x3fc0, 0x2e
.dw 0x3fc1, 0x3fc6, 0x21
.dw 0x3fc7, 0x3fc8, 0x2e
.dw 0x3fc9, 0x3fce, 0x21
.dw 0x3fcf, 0x3fd0, 0x2e
.dw 0x3fd1, 0x3fd6, 0x21
.dw 0x3fd7, 0x3fd8, 0x2e
.dw 0x3fd9, 0x3fde, 0x21
.dw 0x3fdf, 0x3fe0, 0x2e
.dw 0x3fe1, 0x3fe6, 0x21
.dw 0x3fe7, 0x3fe8, 0x2e
.dw 0x3fe9, 0x3fee, 0x21
.dw 0x3fef, 0x3ff0, 0x2e
.dw 0x3ff1, 0x3ff6, 0x21
.dw 0x3ff7, 0x3fff, 0x2e
.dw 0x4180, 0x41FF, 0x21
.dw 0x4480, 0x44bF, 0x21
.dw 0x4600, 0x47FF, 0x21
.dw 0x7000, 0x7FFF, 0x21
.dw 0x9040, 0x9040, 0x22
.dw 0x9049, 0x9049, 0x22
.dw 0x9052, 0x9052, 0x22
.dw 0x905b, 0x905b, 0x22
.dw 0x9064, 0x9064, 0x22
.dw 0x906d, 0x906d, 0x22
.dw 0x9076, 0x9076, 0x22
.dw 0x907f, 0x907f, 0x22
.dw 0x90c0, 0x90c0, 0x22
.dw 0x90c9, 0x90c9, 0x22
.dw 0x90d2, 0x90d2, 0x22
.dw 0x90db, 0x90db, 0x22
.dw 0x90e4, 0x90e4, 0x22
.dw 0x90ed, 0x90ed, 0x22
.dw 0x90f6, 0x90f6, 0x22
.dw 0x90ff, 0x90ff, 0x22
.dw 0x9180, 0x91ff, 0x21
.dw 0x9380, 0x93ff, 0x21
.dw 0x9580, 0x95ff, 0x21
.dw 0x9640, 0x967f, 0x21
.dw 0x96c0, 0x96ff, 0x21
.dw 0x9740, 0x97ff, 0x21
.dw 0x9980, 0x99ff, 0x21
.dw 0x9a40, 0x9a7f, 0x21
.dw 0x9ac0, 0x9aff, 0x21
.dw 0x9b40, 0x9bff, 0x21
.dw 0x9c60, 0x9c7f, 0x21
.dw 0x9ce0, 0x9cff, 0x21
.dw 0x9d60, 0x9d7f, 0x21
.dw 0x9ef0, 0x9eff, 0x21
.dw 0x9f70, 0x9f7f, 0x21
.dw 0x0000, 0x0000, 0x00
.endm
se_all_test