# Blackfin testcase for circular buffers # mach: bfin .include "testutils.inc" .macro daginit i:req, b:req, l:req, m:req imm32 I0, \i imm32 B0, \b imm32 L0, \l imm32 M0, \m .endm .macro dagcheck newi:req DBGA ( I0.L, \newi & 0xFFFF ); DBGA ( I0.H, \newi >> 16 ); .endm .macro dagadd i:req, b:req, l:req, m:req, newi:req daginit \i, \b, \l, \m I0 += M0; dagcheck \newi .endm .macro dagsub i:req, b:req, l:req, m:req, newi:req daginit \i, \b, \l, \m I0 -= M0; dagcheck \newi .endm .macro dag i:req, b:req, l:req, m:req, addi:req, subi:req daginit \i, \b, \l, \m I0 += M0; dagcheck \addi imm32 I0, \i I0 -= M0; dagcheck \subi .endm start init_l_regs 0 init_i_regs 0 init_b_regs 0 init_m_regs 0 _zero_len: dag 0, 0, 0, 0, 0, 0 dag 100, 0, 0, 0, 100, 100 dag 100, 0, 0, 11, 111, 89 dag 100, 0xaa00ff00, 0, 0, 100, 100 dag 100, 0xaa00ff00, 0, 11, 111, 89 _zero_base: dag 0, 0, 100, 10, 10, 90 dag 50, 0, 100, 10, 60, 40 dag 99, 0, 100, 10, 9, 89 dag 50, 0, 100, 50, 0, 0 dag 50, 0, 100, 100, 50, 50 dag 50, 0, 100, 200, 150, -50 dag 50, 0, 100, 2100, 2050, -1950 dag 1000, 0, 100, 0, 900, 1000 dag 1000, 0, 1000, 0, 0, 1000 dag 0xffff1000, 0, 0x1000, 0, 0xffff0000, 0xffff1000 dag 0xaaaa1000, 0, 0xaaa1000, 0, 0xa0000000, 0xaaaa1000 dag 0xaaaa1000, 0, 0xaaa1000, 0x1000, 0xa0001000, 0xaaaa0000 dag 0xffff1000, 0, 0xffff0000, 0xffffff, 0x1000fff, 0xfeff1001 _positive_base: dag 0, 100, 100, 10, 10, 90 dag 90, 100, 100, 10, 100, 180 dag 90, 100, 100, 2100, 2090, -1910 dag 100, 100, 100, 100, 100, 100 dag 0xfffff000, 0xffffff00, 0x10, 0xffff, 0xefef, 0xfffef011 _large_base_len: dag 0, 0xffffff00, 0xffffff00, 0x00000100, 0x00000200, 0xfffffe00 dag 0, 0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc, 0x88888887, 0x77777779 dag 0, 0xaaaaaaaa, 0xbbbbbbbb, 0x4ccccccc, 0x91111111, 0x6eeeeeef dag 0, 0xaaaaaaaa, 0xbbbbbbbb, 0x00000000, 0x44444445, 0xbbbbbbbb dag 0, 0xdddddddd, 0x7bbbbbbb, 0xcccccccc, 0xcccccccc, 0xb7777779 dag 0, 0xbbbbbbbb, 0x7bbbbbbb, 0x4ccccccc, 0x4ccccccc, 0xb3333334 dag 0, 0xbbbbbbbb, 0x7bbbbbbb, 0x00000000, 0x84444445, 0x7bbbbbbb pass