m17.s 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. // Test various moves to single register
  2. # mach: bfin
  3. .include "testutils.inc"
  4. start
  5. // load r0=0x7fffffff
  6. // load r1=0x00ffffff
  7. // load r2=0xf0000000
  8. // load r3=0x0000007f
  9. loadsym P0, data0;
  10. R0 = [ P0 ++ ];
  11. R1 = [ P0 ++ ];
  12. R2 = [ P0 ++ ];
  13. R3 = [ P0 ++ ];
  14. // extract only to high register
  15. R5 = 0;
  16. R4 = 0;
  17. A1 = A0 = 0;
  18. A1.w = R0;
  19. A0.w = R0;
  20. R5 = A1;
  21. DBGA ( R4.L , 0x0000 );
  22. DBGA ( R4.H , 0x0000 );
  23. DBGA ( R5.L , 0xffff );
  24. DBGA ( R5.H , 0x7fff );
  25. // extract only to low register
  26. R5 = 0;
  27. R4 = 0;
  28. A1 = A0 = 0;
  29. A1.w = R0;
  30. A0.w = R0;
  31. R4 = A0;
  32. DBGA ( R4.L , 0xffff );
  33. DBGA ( R4.H , 0x7fff );
  34. DBGA ( R5.L , 0x0000 );
  35. DBGA ( R5.H , 0x0000 );
  36. // extract only to high reg
  37. R5 = 0;
  38. R4 = 0;
  39. A1 = A0 = 0;
  40. R5 = ( A1 += R0.H * R0.H ), A0 += R0.H * R0.H;
  41. DBGA ( R4.L , 0x0000 );
  42. DBGA ( R4.H , 0x0000 );
  43. DBGA ( R5.L , 0x0002 );
  44. DBGA ( R5.H , 0x7ffe );
  45. // extract only to low reg
  46. R5 = 0;
  47. R4 = 0;
  48. A1 = A0 = 0;
  49. A1 += R0.H * R0.H, R4 = ( A0 += R0.H * R0.H );
  50. DBGA ( R4.L , 0x0002 );
  51. DBGA ( R4.H , 0x7ffe );
  52. DBGA ( R5.L , 0x0000 );
  53. DBGA ( R5.H , 0x0000 );
  54. pass
  55. .data
  56. data0:
  57. .dw 0xffff
  58. .dw 0x7fff
  59. .dw 0xffff
  60. .dw 0x00ff
  61. .dw 0x0000
  62. .dw 0xf000
  63. .dw 0x007f
  64. .dw 0x0000