random_0033.S 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. # Verify registers saturate and ASTAT bits are updated correctly
  2. # with the RND12 subtract insn
  3. # mach: bfin
  4. #include "test.h"
  5. .include "testutils.inc"
  6. start
  7. dmm32 ASTAT, (0x24a00410 | _VS | _AV1S | _AV0 | _AC0 | _AC0_COPY | _AN);
  8. imm32 R5, 0x0fb35119;
  9. imm32 R6, 0xffffffff;
  10. imm32 R7, 0x80000000;
  11. R6.H = R5 - R7 (RND12);
  12. checkreg R6, 0x7fffffff;
  13. checkreg ASTAT, (0x24a00410 | _VS | _V | _AV1S | _AV0 | _AC0 | _V_COPY | _AC0_COPY);
  14. dmm32 ASTAT, (0x08c08000 | _VS | _AV0S | _AC0 | _AQ | _CC | _AC0_COPY);
  15. imm32 R3, 0x80003f8f;
  16. imm32 R5, 0x6267c92c;
  17. imm32 R6, 0x80000000;
  18. R5.L = R3 - R6 (RND12);
  19. checkreg R5, 0x62670004;
  20. checkreg ASTAT, (0x08c08000 | _VS | _AV0S | _AC0 | _AQ | _CC | _AC0_COPY);
  21. dmm32 ASTAT, (0x04200c10 | _VS | _V | _AV1S | _AV0S | _AC1 | _AC0 | _AQ | _V_COPY);
  22. imm32 R1, 0x7fff0000;
  23. imm32 R5, 0x80000000;
  24. R1.L = R5 - R5 (RND12);
  25. checkreg ASTAT, (0x04200c10 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _AQ | _AZ);
  26. checkreg R1, 0x7fff0000;
  27. checkreg R5, 0x80000000;
  28. dmm32 ASTAT, (0x40600e90 | _VS | _AV1S | _AV0S | _AQ | _CC);
  29. imm32 R1, 0x80000000;
  30. imm32 R5, 0x00008000;
  31. imm32 R6, 0x00000000;
  32. R5.L = R6 - R1 (RND12);
  33. checkreg R5, 0x00007fff;
  34. checkreg ASTAT, (0x40600e90 | _VS | _V | _AV1S | _AV0S | _AQ | _CC | _V_COPY);
  35. dmm32 ASTAT, (0x68300880 | _VS | _AV1S | _AV0S | _AC1 | _AC0 | _AQ | _AC0_COPY | _AZ);
  36. imm32 R1, 0xf8ed0000;
  37. imm32 R6, 0x80000000;
  38. R1.H = R1 - R6 (RND12);
  39. checkreg R1, 0x7fff0000;
  40. checkreg ASTAT, (0x68300880 | _VS | _V | _AV1S | _AV0S | _AC1 | _AC0 | _AQ | _V_COPY | _AC0_COPY);
  41. dmm32 ASTAT, (0x70d0c410 | _VS | _AV0S | _AQ);
  42. imm32 R0, 0x80000000;
  43. imm32 R1, 0x71455f95;
  44. imm32 R4, 0xd4871012;
  45. R4.H = R1 - R0 (RND12);
  46. checkreg R4, 0x7fff1012;
  47. checkreg ASTAT, (0x70d0c410 | _VS | _V | _AV0S | _AQ | _V_COPY);
  48. dmm32 ASTAT, (0x34500e00 | _VS | _AV0S | _AC1 | _CC | _AZ);
  49. imm32 R2, 0x00000000;
  50. imm32 R5, 0x00000000;
  51. imm32 R6, 0x80000000;
  52. R2.L = R5 - R6 (RND12);
  53. checkreg R2, 0x00007fff;
  54. checkreg ASTAT, (0x34500e00 | _VS | _V | _AV0S | _AC1 | _CC | _V_COPY);
  55. pass