dsp_a8.s 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /* ALU test program.
  2. * Test instructions
  3. * (r7,r6) = +/- (r0,r1);
  4. * (r7,r6) = +/- (r0,r1)s;
  5. */
  6. # mach: bfin
  7. .include "testutils.inc"
  8. start
  9. // test positive overflow
  10. R0.L = 0xffff;
  11. R0.H = 0x7fff;
  12. R1.L = 0x0001;
  13. R1.H = 0x0000;
  14. R7 = 0;
  15. ASTAT = R7;
  16. R6 = R0 + R1, R7 = R0 - R1 (NS);
  17. DBGA ( R6.L , 0x0000 );
  18. DBGA ( R6.H , 0x8000 );
  19. DBGA ( R7.L , 0xfffe );
  20. DBGA ( R7.H , 0x7fff );
  21. CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
  22. CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
  23. CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
  24. CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 );
  25. // test positive overflow
  26. R0.L = 0xffff;
  27. R0.H = 0x7fff;
  28. R1.L = 0x0001;
  29. R1.H = 0x0000;
  30. R7 = 0;
  31. ASTAT = R7;
  32. R7 = R0 + R1, R6 = R0 - R1 (NS);
  33. DBGA ( R6.L , 0xfffe );
  34. DBGA ( R6.H , 0x7fff );
  35. DBGA ( R7.L , 0x0000 );
  36. DBGA ( R7.H , 0x8000 );
  37. CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
  38. CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
  39. CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
  40. CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 );
  41. // test positive sat
  42. R0.L = 0xffff;
  43. R0.H = 0x7fff;
  44. R1.L = 0x0001;
  45. R1.H = 0x0000;
  46. R7 = 0;
  47. ASTAT = R7;
  48. R6 = R0 + R1, R7 = R0 - R1 (S);
  49. DBGA ( R6.L , 0xffff );
  50. DBGA ( R6.H , 0x7fff );
  51. DBGA ( R7.L , 0xfffe );
  52. DBGA ( R7.H , 0x7fff );
  53. CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
  54. CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
  55. CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
  56. CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 );
  57. // test positive sat
  58. R0.L = 0xffff;
  59. R0.H = 0x7fff;
  60. R1.L = 0x0001;
  61. R1.H = 0x0000;
  62. R7 = 0;
  63. ASTAT = R7;
  64. R7 = R0 + R1, R6 = R0 - R1 (S);
  65. DBGA ( R6.L , 0xfffe );
  66. DBGA ( R6.H , 0x7fff );
  67. DBGA ( R7.L , 0xffff );
  68. DBGA ( R7.H , 0x7fff );
  69. CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
  70. CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
  71. CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
  72. CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 );
  73. pass