Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

/*  DAG test program.
 *  Test circular buffers
 */
# mach: bfin

.include "testutils.inc"
	start

	loadsym I0, foo;
	loadsym B0, foo;
	loadsym R2, foo;
	L0 = 0x10 (X);
	M1 = 8 (X);
	R0 = [ I0 ++ M1 ];
	R7 = I0;
	R1 = R7 - R2
	DBGA ( R1.L , 0x0008 );
	R0 = [ I0 ++ M1 ];
	R7 = I0;

	R1 = R7 - R2;
	DBGA ( R1.L , 0x0000 );
	R0 = [ I0 ++ M1 ];
	R7 = I0;
	R1 = R7 - R2
	DBGA ( R1.L , 0x0008 );

	loadsym I0, foo;
	loadsym B0, foo;
	loadsym R2, foo;
	L0 = 0x10 (X);
	M1 = -4 (X);
	R0 = [ I0 ++ M1 ];
	R7 = I0;
	R1 = R7 - R2
	DBGA ( R1.L , 0x000c );
	R0 = [ I0 ++ M1 ];
	R7 = I0;
	R1 = R7 - R2
	DBGA ( R1.L , 0x0008 );
	R0 = [ I0 ++ M1 ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x0004 );
	R0 = [ I0 ++ M1 ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x0000 );
	R0 = [ I0 ++ M1 ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x000c );

	loadsym I0, foo;
	loadsym B0, foo;
	loadsym R2, foo;
	L0 = 0x8 (X);
	R0 = [ I0 ++ ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x0004 );
	R0 = [ I0 ++ ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x0000 );
	R0 = [ I0 ++ ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x0004 );

	loadsym I0, foo;
	loadsym B0, foo;
	loadsym R2, foo;
	L0 = 0x8 (X);
	R0.L = W [ I0 ++ ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x0002 );
	R0.L = W [ I0 ++ ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x0004 );
	R0.L = W [ I0 ++ ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x0006 );
	R0.L = W [ I0 ++ ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x0000 );
	R0.L = W [ I0 ++ ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x0002 );

	loadsym I0, foo;
	loadsym B0, foo;
	loadsym R2, foo;
	L0 = 0x8 (X);
	R0 = [ I0 -- ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x0004 );
	R0 = [ I0 -- ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x0000 );
	R0 = [ I0 -- ];
	R7 = I0;
	R1 = R7 - R2;
	DBGA ( R1.L , 0x0004 );

	pass

	.data
foo:
	.space (0x10);