OLD | NEW |
(Empty) | |
| 1 /* |
| 2 * Blackfin testcase for testing illegal/legal 64-bit opcodes (group 1) |
| 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 + 4]; |
| 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 + 4] = 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, 0x7fff, 0x22 |
| 43 .dw 0x9040, 0x9040, 0x22 |
| 44 .dw 0x9049, 0x9049, 0x22 |
| 45 .dw 0x9052, 0x9052, 0x22 |
| 46 .dw 0x905b, 0x905b, 0x22 |
| 47 .dw 0x9064, 0x9064, 0x22 |
| 48 .dw 0x906d, 0x906d, 0x22 |
| 49 .dw 0x9076, 0x9076, 0x22 |
| 50 .dw 0x907f, 0x907f, 0x22 |
| 51 .dw 0x90c0, 0x90c0, 0x22 |
| 52 .dw 0x90c9, 0x90c9, 0x22 |
| 53 .dw 0x90d2, 0x90d2, 0x22 |
| 54 .dw 0x90db, 0x90db, 0x22 |
| 55 .dw 0x90e4, 0x90e4, 0x22 |
| 56 .dw 0x90ed, 0x90ed, 0x22 |
| 57 .dw 0x90f6, 0x90f6, 0x22 |
| 58 .dw 0x90ff, 0x90ff, 0x22 |
| 59 .dw 0x9180, 0x91ff, 0x22 |
| 60 .dw 0x9380, 0x93ff, 0x22 |
| 61 .dw 0x9580, 0x95ff, 0x22 |
| 62 .dw 0x9640, 0x967f, 0x22 |
| 63 .dw 0x96c0, 0x96ff, 0x22 |
| 64 .dw 0x9740, 0x97ff, 0x22 |
| 65 .dw 0x9980, 0x99ff, 0x22 |
| 66 .dw 0x9a40, 0x9a7f, 0x22 |
| 67 .dw 0x9ac0, 0x9aff, 0x22 |
| 68 .dw 0x9b40, 0x9bff, 0x22 |
| 69 .dw 0x9c60, 0x9c7f, 0x22 |
| 70 .dw 0x9ce0, 0x9cff, 0x22 |
| 71 .dw 0x9d60, 0x9d7f, 0x22 |
| 72 .dw 0x9ef0, 0x9eff, 0x22 |
| 73 .dw 0x9f70, 0x9f7f, 0x22 |
| 74 .dw 0xc000, 0xffff, 0x22 |
| 75 .dw 0x0000, 0x0000, 0x00 |
| 76 .endm |
| 77 |
| 78 se_all_test |
OLD | NEW |