mc_s2.s 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /* SHIFT test program.
  2. * Test r0, r1, A0 <<= BITMUX;
  3. */
  4. # mach: bfin
  5. .include "testutils.inc"
  6. start
  7. init_r_regs 0;
  8. ASTAT = R0;
  9. // load r0=0x90000001
  10. // load r1=0x90000002
  11. // load r2=0x00000000
  12. // load r3=0x00000000
  13. // load r4=0x20000002
  14. // load r5=0x00000000
  15. loadsym P1, data0;
  16. // insert two bits, both equal to 1
  17. // A0: 00 0000 0000 -> 00 0000 0003
  18. // r0: 9000 0001 -> 2000 0002
  19. // r1: 9000 0002 -> 2000 0004
  20. R0 = [ P1 + 0 ];
  21. R1 = [ P1 + 4 ];
  22. A0.w = R2;
  23. A0.x = R3.L;
  24. BITMUX( R0 , R1, A0) (ASL);
  25. R6 = A0.w;
  26. R7.L = A0.x;
  27. DBGA ( R6.L , 0x0003 );
  28. DBGA ( R6.H , 0x0000 );
  29. DBGA ( R7.L , 0x0000 );
  30. DBGA ( R0.L , 0x0002 );
  31. DBGA ( R0.H , 0x2000 );
  32. DBGA ( R1.L , 0x0004 );
  33. DBGA ( R1.H , 0x2000 );
  34. // insert two bits, one equal to 1, other to 0
  35. // A0: 00 0000 0000 -> 00 0000 0001
  36. // r0: 9000 0001 -> 2000 0002
  37. // r4: 2000 0002 -> 4000 0004
  38. R0 = [ P1 + 0 ];
  39. R4 = [ P1 + 16 ];
  40. A0.w = R2;
  41. A0.x = R3.L;
  42. BITMUX( R0 , R4, A0) (ASL);
  43. R6 = A0.w;
  44. R7.L = A0.x;
  45. DBGA ( R6.L , 0x0001 );
  46. DBGA ( R6.H , 0x0000 );
  47. DBGA ( R7.L , 0x0000 );
  48. DBGA ( R0.L , 0x0002 );
  49. DBGA ( R0.H , 0x2000 );
  50. DBGA ( R4.L , 0x0004 );
  51. DBGA ( R4.H , 0x4000 );
  52. pass
  53. .data
  54. data0:
  55. .dw 0x0001
  56. .dw 0x9000
  57. .dw 0x0002
  58. .dw 0x9000
  59. .dw 0x0000
  60. .dw 0x0000
  61. .dw 0x0000
  62. .dw 0x0000
  63. .dw 0x0002
  64. .dw 0x2000
  65. .dw 0x0000
  66. .dw 0x0000