1/* 2 * Blackfin testcase for testing illegal/legal 64-bit opcodes (group 2) 3 * from userspace. we track all instructions which cause some sort of 4 * exception when run from userspace, this is normally EXCAUSE : 5 * - 0x22 : illegal instruction combination 6 * and walk every instruction from 0x0000 to 0xffff 7 */ 8 9# mach: bfin 10# sim: --environment operating 11 12#include "test.h" 13 .include "testutils.inc" 14 15#define SE_ALL_BITS 16 16#include "se_allopcodes.h" 17 18.macro se_all_load_insn 19 R2 = W[P5 + 6]; 20 R0 = R2; 21.endm 22 23.macro se_all_next_insn 24 /* increment, and go again. */ 25 R0 = R2; 26 27 R0 += 1; 28 /* finish once we hit the 32bit limit */ 29 imm32 R1, 0x10000; 30 CC = R1 == R0; 31 IF CC JUMP pass_lvl; 32 33 W[P5 + 6] = R0; 34.endm 35 36.macro se_all_insn_init 37 MNOP || NOP || NOP; 38.endm 39.macro se_all_insn_table 40 /* this table must be sorted, and end with zero */ 41 /* start end SEQSTAT */ 42 .dw 0x0001, 0x9bff, 0x22 43 .dw 0x9c60, 0x9c7f, 0x22 44 .dw 0x9ce0, 0x9cff, 0x22 45 .dw 0x9d60, 0x9d7f, 0x22 46 .dw 0x9e60, 0x9e7f, 0x22 47 .dw 0x9ee0, 0x9eff, 0x22 48 .dw 0x9f60, 0x9f7f, 0x22 49 .dw 0xa000, 0xffff, 0x22 50 .dw 0x0000, 0x0000, 0x00 51.endm 52 53 se_all_test 54