Home | History | Annotate | Line # | Download | only in bfin
      1 # Blackfin testcase for circular buffers
      2 # mach: bfin
      3 
      4 	.include "testutils.inc"
      5 
      6 	.macro daginit i:req, b:req, l:req, m:req
      7 	imm32 I0, \i
      8 	imm32 B0, \b
      9 	imm32 L0, \l
     10 	imm32 M0, \m
     11 	.endm
     12 	.macro dagcheck newi:req
     13 	DBGA ( I0.L, \newi & 0xFFFF );
     14 	DBGA ( I0.H, \newi >> 16 );
     15 	.endm
     16 
     17 	.macro dagadd i:req, b:req, l:req, m:req, newi:req
     18 	daginit \i, \b, \l, \m
     19 	I0 += M0;
     20 	dagcheck \newi
     21 	.endm
     22 
     23 	.macro dagsub i:req, b:req, l:req, m:req, newi:req
     24 	daginit \i, \b, \l, \m
     25 	I0 -= M0;
     26 	dagcheck \newi
     27 	.endm
     28 
     29 	.macro dag i:req, b:req, l:req, m:req, addi:req, subi:req
     30 	daginit \i, \b, \l, \m
     31 	I0 += M0;
     32 	dagcheck \addi
     33 	imm32 I0, \i
     34 	I0 -= M0;
     35 	dagcheck \subi
     36 	.endm
     37 
     38 	start
     39 
     40 	init_l_regs 0
     41 	init_i_regs 0
     42 	init_b_regs 0
     43 	init_m_regs 0
     44 
     45 _zero_len:
     46 	dag 0, 0, 0, 0, 0, 0
     47 	dag 100, 0, 0, 0, 100, 100
     48 	dag 100, 0, 0, 11, 111, 89
     49 	dag 100, 0xaa00ff00, 0, 0, 100, 100
     50 	dag 100, 0xaa00ff00, 0, 11, 111, 89
     51 
     52 _zero_base:
     53 	dag 0, 0, 100, 10, 10, 90
     54 	dag 50, 0, 100, 10, 60, 40
     55 	dag 99, 0, 100, 10, 9, 89
     56 	dag 50, 0, 100, 50, 0, 0
     57 	dag 50, 0, 100, 100, 50, 50
     58 	dag 50, 0, 100, 200, 150, -50
     59 	dag 50, 0, 100, 2100, 2050, -1950
     60 	dag 1000, 0, 100, 0, 900, 1000
     61 	dag 1000, 0, 1000, 0, 0, 1000
     62 
     63 	dag 0xffff1000, 0, 0x1000, 0, 0xffff0000, 0xffff1000
     64 	dag 0xaaaa1000, 0, 0xaaa1000, 0, 0xa0000000, 0xaaaa1000
     65 	dag 0xaaaa1000, 0, 0xaaa1000, 0x1000, 0xa0001000, 0xaaaa0000
     66 	dag 0xffff1000, 0, 0xffff0000, 0xffffff, 0x1000fff, 0xfeff1001
     67 
     68 _positive_base:
     69 	dag 0, 100, 100, 10, 10, 90
     70 	dag 90, 100, 100, 10, 100, 180
     71 	dag 90, 100, 100, 2100, 2090, -1910
     72 	dag 100, 100, 100, 100, 100, 100
     73 	dag 0xfffff000, 0xffffff00, 0x10, 0xffff, 0xefef, 0xfffef011
     74 
     75 _large_base_len:
     76 	dag 0, 0xffffff00, 0xffffff00, 0x00000100, 0x00000200, 0xfffffe00
     77 	dag 0, 0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc, 0x88888887, 0x77777779
     78 	dag 0, 0xaaaaaaaa, 0xbbbbbbbb, 0x4ccccccc, 0x91111111, 0x6eeeeeef
     79 	dag 0, 0xaaaaaaaa, 0xbbbbbbbb, 0x00000000, 0x44444445, 0xbbbbbbbb
     80 	dag 0, 0xdddddddd, 0x7bbbbbbb, 0xcccccccc, 0xcccccccc, 0xb7777779
     81 	dag 0, 0xbbbbbbbb, 0x7bbbbbbb, 0x4ccccccc, 0x4ccccccc, 0xb3333334
     82 	dag 0, 0xbbbbbbbb, 0x7bbbbbbb, 0x00000000, 0x84444445, 0x7bbbbbbb
     83 
     84 	pass
     85