c_ptr2op_pr_shadd_1_2.s 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. //Original:/proj/frio/dv/testcases/core/c_ptr2op_pr_shadd_1_2/c_ptr2op_pr_shadd_1_2.dsp
  2. // Spec Reference: ptr2op shadd preg, pregs, 1 (2)
  3. # mach: bfin
  4. .include "testutils.inc"
  5. start
  6. R0 = 0;
  7. ASTAT = R0;
  8. // check p-reg to p-reg move
  9. imm32 p1, 0xf0921203;
  10. imm32 p2, 0xbe041305;
  11. imm32 p3, 0xd0d61407;
  12. imm32 p4, 0xa00a1089;
  13. imm32 p5, 0x400a300b;
  14. imm32 sp, 0xe07c180d;
  15. imm32 fp, 0x206e109f;
  16. P1 = ( P1 + P1 ) << 2;
  17. P2 = ( P2 + P1 ) << 2;
  18. P3 = ( P3 + P1 ) << 2;
  19. P4 = ( P4 + P1 ) << 1;
  20. P5 = ( P5 + P1 ) << 2;
  21. SP = ( SP + P1 ) << 2;
  22. FP = ( FP + P1 ) << 1;
  23. CHECKREG p1, 0x84909018;
  24. CHECKREG p2, 0x0A528C74;
  25. CHECKREG p3, 0x559A907C;
  26. CHECKREG p4, 0x49354142;
  27. CHECKREG p5, 0x126B008C;
  28. CHECKREG sp, 0x9432A094;
  29. CHECKREG fp, 0x49FD416E;
  30. imm32 p1, 0x50021003;
  31. imm32 p2, 0x26041005;
  32. imm32 p3, 0x60761007;
  33. imm32 p4, 0x20081009;
  34. imm32 p5, 0xf00a900b;
  35. imm32 sp, 0xb00c1a0d;
  36. imm32 fp, 0x200e10bf;
  37. P1 = ( P1 + P2 ) << 1;
  38. P2 = ( P2 + P2 ) << 2;
  39. P3 = ( P3 + P2 ) << 1;
  40. P4 = ( P4 + P2 ) << 2;
  41. P5 = ( P5 + P2 ) << 2;
  42. SP = ( SP + P2 ) << 1;
  43. FP = ( FP + P2 ) << 2;
  44. CHECKREG p1, 0xEC0C4010;
  45. CHECKREG p2, 0x30208028;
  46. CHECKREG p3, 0x212D205E;
  47. CHECKREG p4, 0x40A240C4;
  48. CHECKREG p5, 0x80AC40CC;
  49. CHECKREG sp, 0xC059346A;
  50. CHECKREG fp, 0x40BA439C;
  51. imm32 p1, 0x30026003;
  52. imm32 p2, 0x40051005;
  53. imm32 p3, 0x20e65057;
  54. imm32 p4, 0x2d081089;
  55. imm32 p5, 0xf00ab07b;
  56. imm32 sp, 0x200c1b0d;
  57. imm32 fp, 0x200e100f;
  58. P1 = ( P1 + P3 ) << 2;
  59. P2 = ( P2 + P3 ) << 1;
  60. P3 = ( P3 + P3 ) << 2;
  61. P4 = ( P4 + P3 ) << 2;
  62. P5 = ( P5 + P3 ) << 2;
  63. SP = ( SP + P3 ) << 1;
  64. FP = ( FP + P3 ) << 2;
  65. CHECKREG p1, 0x43A2C168;
  66. CHECKREG p2, 0xC1D6C0B8;
  67. CHECKREG p3, 0x073282B8;
  68. CHECKREG p4, 0xD0EA4D04;
  69. CHECKREG p5, 0xDCF4CCCC;
  70. CHECKREG sp, 0x4E7D3B8A;
  71. CHECKREG fp, 0x9D024B1C;
  72. imm32 p1, 0xa0021003;
  73. imm32 p2, 0x2c041005;
  74. imm32 p3, 0x40b61007;
  75. imm32 p4, 0x250d1009;
  76. imm32 p5, 0x260ae00b;
  77. imm32 sp, 0x700c110d;
  78. imm32 fp, 0x900e104f;
  79. P1 = ( P1 + P4 ) << 1;
  80. P2 = ( P2 + P4 ) << 2;
  81. P3 = ( P3 + P4 ) << 2;
  82. P4 = ( P4 + P4 ) << 2;
  83. P5 = ( P5 + P4 ) << 1;
  84. SP = ( SP + P4 ) << 2;
  85. FP = ( FP + P4 ) << 2;
  86. CHECKREG p1, 0x8A1E4018;
  87. CHECKREG p2, 0x44448038;
  88. CHECKREG p3, 0x970C8040;
  89. CHECKREG p4, 0x28688048;
  90. CHECKREG p5, 0x9CE6C0A6;
  91. CHECKREG sp, 0x61D24554;
  92. CHECKREG fp, 0xE1DA425C;
  93. imm32 p1, 0xae021003;
  94. imm32 p2, 0x22041705;
  95. imm32 p3, 0x20361487;
  96. imm32 p4, 0x90743009;
  97. imm32 p5, 0xa60aa00b;
  98. imm32 sp, 0xb00c1b0d;
  99. imm32 fp, 0x200e10cf;
  100. P1 = ( P1 + P5 ) << 2;
  101. P2 = ( P2 + P5 ) << 2;
  102. P3 = ( P3 + P5 ) << 2;
  103. P4 = ( P4 + P5 ) << 2;
  104. P5 = ( P5 + P5 ) << 1;
  105. SP = ( SP + P5 ) << 2;
  106. FP = ( FP + P5 ) << 2;
  107. CHECKREG p1, 0x5032C038;
  108. CHECKREG p2, 0x203ADC40;
  109. CHECKREG p3, 0x1902D248;
  110. CHECKREG p4, 0xD9FB4050;
  111. CHECKREG p5, 0x982A802C;
  112. CHECKREG sp, 0x20DA6CE4;
  113. CHECKREG fp, 0xE0E243EC;
  114. imm32 p1, 0x50021003;
  115. imm32 p2, 0x62041005;
  116. imm32 p3, 0x70e61007;
  117. imm32 p4, 0x290f1009;
  118. imm32 p5, 0x700ab00b;
  119. imm32 sp, 0x2a0c1d0d;
  120. imm32 fp, 0xb00e1e0f;
  121. P1 = ( P1 + SP ) << 2;
  122. P2 = ( P2 + SP ) << 1;
  123. P3 = ( P3 + SP ) << 2;
  124. P4 = ( P4 + SP ) << 2;
  125. P5 = ( P5 + SP ) << 2;
  126. SP = ( SP + SP ) << 1;
  127. FP = ( FP + SP ) << 2;
  128. CHECKREG p1, 0xE838B440;
  129. CHECKREG p2, 0x18205A24;
  130. CHECKREG p3, 0x6BC8B450;
  131. CHECKREG p4, 0x4C6CB458;
  132. CHECKREG p5, 0x685B3460;
  133. CHECKREG sp, 0xA8307434;
  134. CHECKREG fp, 0x60FA490C;
  135. imm32 p1, 0x32002003;
  136. imm32 p2, 0x24004005;
  137. imm32 p3, 0xe0506007;
  138. imm32 p4, 0xd0068009;
  139. imm32 p5, 0x230ae00b;
  140. imm32 sp, 0x205c1f0d;
  141. imm32 fp, 0x200e10bf;
  142. P1 = ( P1 + FP ) << 2;
  143. P2 = ( P2 + FP ) << 1;
  144. P3 = ( P3 + FP ) << 2;
  145. P4 = ( P4 + FP ) << 2;
  146. P5 = ( P5 + FP ) << 2;
  147. SP = ( SP + FP ) << 2;
  148. FP = ( FP + FP ) << 2;
  149. CHECKREG p1, 0x4838C308;
  150. CHECKREG p2, 0x881CA188;
  151. CHECKREG p3, 0x0179C318;
  152. CHECKREG p4, 0xC0524320;
  153. CHECKREG p5, 0x0C63C328;
  154. CHECKREG sp, 0x01A8BF30;
  155. CHECKREG fp, 0x007085F8;
  156. pass