c_cactrl_iflush_pr_pp.s 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. //Original:/proj/frio/dv/testcases/core/c_cactrl_iflush_pr_pp/c_cactrl_iflush_pr_pp.dsp
  2. // Spec Reference: c_cactrl iflush_pr [p++]
  3. # mach: bfin
  4. .include "testutils.inc"
  5. start
  6. loadsym p2, SUBR1;
  7. // set all regs
  8. imm32 r0, 0x13545abd;
  9. imm32 r1, 0xadbcfec7;
  10. imm32 r2, 0xa1245679;
  11. imm32 r3, 0x00060007;
  12. imm32 r4, 0xefbc4569;
  13. imm32 r5, 0x1235000b;
  14. imm32 r6, 0x000c000d;
  15. imm32 r7, 0x678e000f;
  16. // The result accumulated in A0 and A1, and stored to a reg half
  17. R2.H = ( A1 = R1.L * R0.H ), A0 = R1.H * R0.L;
  18. R3.H = A1 , A0 = R7.H * R6.L (T);
  19. // begin of iflush
  20. IFLUSH [ P2 ++ ]; // p2 = 0x448
  21. R7 = 0;
  22. ASTAT = R7;
  23. IF !CC JUMP SUBR1;
  24. JBACK:
  25. R6 = 0;
  26. //r4 = (a1 = l*h) M, a0 = h*l (r3,r2);
  27. //r5 a1 = l*h, = (a0 = h*l) (r1,r0) IS;
  28. CHECKREG r2, 0xFFD15679;
  29. CHECKREG r3, 0xFFD00007;
  30. CHECKREG r4, 0x00074569;
  31. CHECKREG r5, 0x12358000;
  32. //CHECKREG p2, 0x00000468;
  33. pass
  34. //.code 0x448
  35. //.code CODE_ADDR_1
  36. SUBR1:
  37. R4.H = ( A1 = R3.L * R2.H ) (M), A0 = R3.H * R2.L;
  38. A1 = R1.L * R0.H, R5.L = ( A0 = R1.H * R0.L ) (ISS2);
  39. IF !CC JUMP JBACK;
  40. NOP; NOP; NOP; NOP; NOP;
  41. // Pre-load memory witb known data
  42. // More data is defined than will actually be used
  43. .data
  44. DATA_ADDR_1:
  45. .dd 0x00010203
  46. .dd 0x04050607
  47. .dd 0x08090A0B
  48. .dd 0x0C0D0E0F
  49. .dd 0x10111213
  50. .dd 0x14151617
  51. .dd 0x18191A1B
  52. .dd 0x1C1D1E1F
  53. DATA_ADDR_2:
  54. .dd 0x20212223
  55. .dd 0x24252627
  56. .dd 0x28292A2B
  57. .dd 0x2C2D2E2F
  58. .dd 0x30313233
  59. .dd 0x34353637
  60. .dd 0x38393A3B
  61. .dd 0x3C3D3E3F
  62. DATA_ADDR_3:
  63. .dd 0x40414243
  64. .dd 0x44454647
  65. .dd 0x48494A4B
  66. .dd 0x4C4D4E4F
  67. .dd 0x50515253
  68. .dd 0x54555657
  69. .dd 0x58595A5B
  70. .dd 0x5C5D5E5F
  71. DATA_ADDR_4:
  72. .dd 0x60616263
  73. .dd 0x64656667
  74. .dd 0x68696A6B
  75. .dd 0x6C6D6E6F
  76. .dd 0x70717273
  77. .dd 0x74757677
  78. .dd 0x78797A7B
  79. .dd 0x7C7D7E7F
  80. DATA_ADDR_5:
  81. .dd 0x80818283
  82. .dd 0x84858687
  83. .dd 0x88898A8B
  84. .dd 0x8C8D8E8F
  85. .dd 0x90919293
  86. .dd 0x94959697
  87. .dd 0x98999A9B
  88. .dd 0x9C9D9E9F