Home | History | Annotate | Line # | Download | only in bfin
      1  1.1  christos /*
      2  1.1  christos  * Blackfin testcase for testing illegal/legal 64-bit opcodes (group 1)
      3  1.1  christos  * from userspace.  we track all instructions which cause some sort of
      4  1.1  christos  * exception when run from userspace, this is normally EXCAUSE :
      5  1.1  christos  *  - 0x22 : illegal instruction combination
      6  1.1  christos  * and walk every instruction from 0x0000 to 0xffff
      7  1.1  christos  */
      8  1.1  christos 
      9  1.1  christos # mach: bfin
     10  1.1  christos # sim: --environment operating
     11  1.1  christos 
     12  1.1  christos #include "test.h"
     13  1.1  christos 	.include "testutils.inc"
     14  1.1  christos 
     15  1.1  christos #define SE_ALL_BITS 16
     16  1.1  christos #include "se_allopcodes.h"
     17  1.1  christos 
     18  1.1  christos .macro se_all_load_insn
     19  1.1  christos 	R2 = W[P5 + 4];
     20  1.1  christos 	R0 = R2;
     21  1.1  christos .endm
     22  1.1  christos 
     23  1.1  christos .macro se_all_next_insn
     24  1.1  christos 	/* increment, and go again. */
     25  1.1  christos 	R0 = R2;
     26  1.1  christos 
     27  1.1  christos 	R0 += 1;
     28  1.1  christos 	/* finish once we hit the 32bit limit */
     29  1.1  christos 	imm32 R1, 0x10000;
     30  1.1  christos 	CC = R1 == R0;
     31  1.1  christos 	IF CC JUMP pass_lvl;
     32  1.1  christos 
     33  1.1  christos 	W[P5 + 4] = R0;
     34  1.1  christos .endm
     35  1.1  christos 
     36  1.1  christos .macro se_all_insn_init
     37  1.1  christos 	MNOP || NOP || NOP;
     38  1.1  christos .endm
     39  1.1  christos .macro se_all_insn_table
     40  1.1  christos 	/* this table must be sorted, and end with zero */
     41  1.1  christos 	/* start	end		SEQSTAT */
     42  1.1  christos 	.dw 0x0001,	0x7fff,		0x22
     43  1.1  christos 	.dw 0x9040,	0x9040,		0x22
     44  1.1  christos 	.dw 0x9049,	0x9049,		0x22
     45  1.1  christos 	.dw 0x9052,	0x9052,		0x22
     46  1.1  christos 	.dw 0x905b,	0x905b,		0x22
     47  1.1  christos 	.dw 0x9064,	0x9064,		0x22
     48  1.1  christos 	.dw 0x906d,	0x906d,		0x22
     49  1.1  christos 	.dw 0x9076,	0x9076,		0x22
     50  1.1  christos 	.dw 0x907f,	0x907f,		0x22
     51  1.1  christos 	.dw 0x90c0,	0x90c0,		0x22
     52  1.1  christos 	.dw 0x90c9,	0x90c9,		0x22
     53  1.1  christos 	.dw 0x90d2,	0x90d2,		0x22
     54  1.1  christos 	.dw 0x90db,	0x90db,		0x22
     55  1.1  christos 	.dw 0x90e4,	0x90e4,		0x22
     56  1.1  christos 	.dw 0x90ed,	0x90ed,		0x22
     57  1.1  christos 	.dw 0x90f6,	0x90f6,		0x22
     58  1.1  christos 	.dw 0x90ff,	0x90ff,		0x22
     59  1.1  christos 	.dw 0x9180,	0x91ff,		0x22
     60  1.1  christos 	.dw 0x9380,	0x93ff,		0x22
     61  1.1  christos 	.dw 0x9580,	0x95ff,		0x22
     62  1.1  christos 	.dw 0x9640,	0x967f,		0x22
     63  1.1  christos 	.dw 0x96c0,	0x96ff,		0x22
     64  1.1  christos 	.dw 0x9740,	0x97ff,		0x22
     65  1.1  christos 	.dw 0x9980,	0x99ff,		0x22
     66  1.1  christos 	.dw 0x9a40,	0x9a7f,		0x22
     67  1.1  christos 	.dw 0x9ac0,	0x9aff,		0x22
     68  1.1  christos 	.dw 0x9b40,	0x9bff,		0x22
     69  1.1  christos 	.dw 0x9c60,	0x9c7f,		0x22
     70  1.1  christos 	.dw 0x9ce0,	0x9cff,		0x22
     71  1.1  christos 	.dw 0x9d60,	0x9d7f,		0x22
     72  1.1  christos 	.dw 0x9ef0,	0x9eff,		0x22
     73  1.1  christos 	.dw 0x9f70,	0x9f7f,		0x22
     74  1.1  christos 	.dw 0xc000,	0xffff,		0x22
     75  1.1  christos 	.dw 0x0000,	0x0000,		0x00
     76  1.1  christos .endm
     77  1.1  christos 
     78  1.1  christos 	se_all_test
     79