Home | History | Annotate | Line # | Download | only in bfin
      1  1.1  christos # Blackfin testcase for playing with TESTSET
      2  1.1  christos # mach: bfin
      3  1.1  christos 
      4  1.1  christos 	.include "testutils.inc"
      5  1.1  christos 
      6  1.1  christos 	start
      7  1.1  christos 
      8  1.1  christos 	.macro _ts val:req
      9  1.1  christos 	/* Load value to the external data storage */
     10  1.1  christos 	imm32 R0, \val
     11  1.1  christos 	[P4] = R0;
     12  1.1  christos 	FLUSHINV[P4];
     13  1.1  christos 	SSYNC;
     14  1.1  christos 	mnop;
     15  1.1  christos 
     16  1.1  christos 	imm32 R1, 0xdeadbeef
     17  1.1  christos 	imm32 R2, 0xdeadbeef
     18  1.1  christos 
     19  1.1  christos 	TESTSET (P4);
     20  1.1  christos 	SSYNC;
     21  1.1  christos 	mnop;
     22  1.1  christos 	mnop;
     23  1.1  christos 
     24  1.1  christos 	/* TESTSET will set CC based on low byte == 0 */
     25  1.1  christos 	.if \val & 0xff
     26  1.1  christos 	if CC jump 1f;
     27  1.1  christos 	.else
     28  1.1  christos 	if ! CC jump 1f;
     29  1.1  christos 	.endif
     30  1.1  christos 
     31  1.1  christos 	/* Regardless of CC, the byte MSB is set to 1 */
     32  1.1  christos 	imm32 R1, \val | 0x80
     33  1.1  christos 
     34  1.1  christos 	/* Make sure the result is what we want */
     35  1.1  christos 	R2 = [P4];
     36  1.1  christos 	FLUSHINV[P4];
     37  1.1  christos 	SSYNC;
     38  1.1  christos 	mnop;
     39  1.1  christos 	CC = R2 == R1;
     40  1.1  christos 	if ! CC jump 1f;
     41  1.1  christos 	jump 2f;
     42  1.1  christos 1:	fail
     43  1.1  christos 2:
     44  1.1  christos 	.endm
     45  1.1  christos 	.macro ts val:req
     46  1.1  christos 	_ts \val
     47  1.1  christos 	_ts ~(\val)
     48  1.1  christos 	.endm
     49  1.1  christos 
     50  1.1  christos 	loadsym P4, _data
     51  1.1  christos 
     52  1.1  christos 	ts 0x00000000
     53  1.1  christos 	ts 0x00000011
     54  1.1  christos 	ts 0x11111111
     55  1.1  christos 	ts 0x11111101
     56  1.1  christos 	ts 0x11111110
     57  1.1  christos 	ts 0x111111bb
     58  1.1  christos 	ts 0xaaaaaa00
     59  1.1  christos 	ts 0xabcd2222
     60  1.1  christos 	ts 0x000000bb
     61  1.1  christos 	ts 0x55555555
     62  1.1  christos 	ts 0x5555550a
     63  1.1  christos 	ts 0x00100010
     64  1.1  christos 	ts 0x00100100
     65  1.1  christos 	ts 0x33333000
     66  1.1  christos 	ts 0x000000aa
     67  1.1  christos 
     68  1.1  christos 	pass
     69  1.1  christos 
     70  1.1  christos .data
     71  1.1  christos _data:
     72  1.1  christos .long 0
     73  1.1  christos .size _data, .-_data
     74