mov.s 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. # sh testcase for all mov.[bwl] instructions
  2. # mach: sh
  3. # as(sh): -defsym sim_cpu=0
  4. .include "testutils.inc"
  5. .align 2
  6. _lsrc: .long 0x55555555
  7. _wsrc: .long 0x55550000
  8. _bsrc: .long 0x55000000
  9. .align 2
  10. _ldst: .long 0
  11. _wdst: .long 0
  12. _bdst: .long 0
  13. start
  14. movb_disp12_reg: # Test 8-bit @(disp12,gr) -> gr
  15. set_grs_a5a5
  16. mov.l bsrc, r1
  17. add #-111, r1
  18. add #-111, r1
  19. add #-111, r1
  20. add #-111, r1
  21. mov.b @(444,r1), r2
  22. assertreg _bsrc-444, r1
  23. assertreg 0x55, r2
  24. movb_reg_disp12: # Test 8-bit gr -> @(disp12,gr)
  25. set_grs_a5a5
  26. mov.l bdst, r1
  27. add #-111, r1
  28. add #-111, r1
  29. add #-111, r1
  30. add #-111, r1
  31. mov.b r2, @(444,r1)
  32. assertreg _bdst-444, r1
  33. assertmem _bdst, 0xa5000000
  34. movw_disp12_reg: # Test 16-bit @(disp12,gr) -> gr
  35. set_grs_a5a5
  36. mov.l wsrc, r1
  37. add #-111, r1
  38. add #-111, r1
  39. add #-111, r1
  40. add #-111, r1
  41. mov.w @(444,r1), r2
  42. assertreg _wsrc-444, r1
  43. assertreg 0x5555, r2
  44. movw_reg_disp12: # Test 16-bit gr -> @(disp12,gr)
  45. set_grs_a5a5
  46. mov.l wdst, r1
  47. add #-111, r1
  48. add #-111, r1
  49. add #-111, r1
  50. add #-111, r1
  51. mov.w r2, @(444,r1)
  52. assertreg _wdst-444, r1
  53. assertmem _wdst, 0xa5a50000
  54. movl_disp12_reg: # Test 32-bit @(disp12,gr) -> gr
  55. set_grs_a5a5
  56. mov.l lsrc, r1
  57. add #-111, r1
  58. add #-111, r1
  59. add #-111, r1
  60. add #-111, r1
  61. mov.l @(444,r1), r2
  62. assertreg _lsrc-444, r1
  63. assertreg 0x55555555, r2
  64. movl_reg_disp12: # Test 32-bit gr -> @(disp12,gr)
  65. set_grs_a5a5
  66. mov.l ldst, r1
  67. add #-111, r1
  68. add #-111, r1
  69. add #-111, r1
  70. add #-111, r1
  71. mov.l r2, @(444,r1)
  72. assertreg _ldst-444, r1
  73. assertmem _ldst, 0xa5a5a5a5
  74. test_gr_a5a5 r0
  75. test_gr_a5a5 r2
  76. test_gr_a5a5 r3
  77. test_gr_a5a5 r4
  78. test_gr_a5a5 r5
  79. test_gr_a5a5 r6
  80. test_gr_a5a5 r7
  81. test_gr_a5a5 r8
  82. test_gr_a5a5 r9
  83. test_gr_a5a5 r10
  84. test_gr_a5a5 r11
  85. test_gr_a5a5 r12
  86. test_gr_a5a5 r13
  87. test_gr_a5a5 r14
  88. pass
  89. exit 0
  90. lsrc: .long _lsrc
  91. wsrc: .long _wsrc
  92. bsrc: .long _bsrc
  93. ldst: .long _ldst
  94. wdst: .long _wdst
  95. bdst: .long _bdst