cir1.s 2.1 KB

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