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