ldq.cgs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. # frv testcase for ldq @($GRi,$GRj),$GRk
  2. # mach: frv
  3. .include "testutils.inc"
  4. start
  5. .global ldq
  6. ldq:
  7. set_mem_limmed 0xdead,0xbeef,sp
  8. inc_gr_immed -4,sp
  9. set_mem_limmed 0xbeef,0xdead,sp
  10. inc_gr_immed -4,sp
  11. set_mem_limmed 0x1234,0x5678,sp
  12. inc_gr_immed -4,sp
  13. set_mem_limmed 0x9abc,0xdef0,sp
  14. set_gr_limmed 0xdead,0xbeef,gr8
  15. set_gr_limmed 0xbeef,0xdead,gr9
  16. set_gr_limmed 0x1234,0x5678,gr10
  17. set_gr_limmed 0x9abc,0xdef0,gr11
  18. set_gr_immed 0,gr7
  19. ldq @(sp,gr7),gr8
  20. test_gr_limmed 0x9abc,0xdef0,gr8
  21. test_gr_limmed 0x1234,0x5678,gr9
  22. test_gr_limmed 0xbeef,0xdead,gr10
  23. test_gr_limmed 0xdead,0xbeef,gr11
  24. set_gr_limmed 0xdead,0xbeef,gr8
  25. set_gr_limmed 0xbeef,0xdead,gr9
  26. set_gr_limmed 0x1234,0x5678,gr10
  27. set_gr_limmed 0x9abc,0xdef0,gr11
  28. inc_gr_immed -16,sp
  29. set_gr_immed 16,gr7
  30. ldq @(sp,gr7),gr8
  31. test_gr_limmed 0x9abc,0xdef0,gr8
  32. test_gr_limmed 0x1234,0x5678,gr9
  33. test_gr_limmed 0xbeef,0xdead,gr10
  34. test_gr_limmed 0xdead,0xbeef,gr11
  35. set_gr_limmed 0xdead,0xbeef,gr8
  36. set_gr_limmed 0xbeef,0xdead,gr9
  37. set_gr_limmed 0x1234,0x5678,gr10
  38. set_gr_limmed 0x9abc,0xdef0,gr11
  39. inc_gr_immed 32,sp
  40. set_gr_immed -16,gr7
  41. ldq @(sp,gr7),gr8
  42. test_gr_limmed 0x9abc,0xdef0,gr8
  43. test_gr_limmed 0x1234,0x5678,gr9
  44. test_gr_limmed 0xbeef,0xdead,gr10
  45. test_gr_limmed 0xdead,0xbeef,gr11
  46. ; loading into gr0 has no effect
  47. ; gr1 is sp
  48. set_gr_gr gr1,gr8
  49. set_gr_limmed 0x1234,0x5678,gr2
  50. set_gr_limmed 0x9abc,0xdef0,gr3
  51. ldq @(sp,gr7),gr0
  52. test_gr_immed 0,gr0
  53. test_gr_gr gr1,gr8
  54. set_gr_immed 0x12345678,gr2
  55. set_gr_immed 0x9abcdef0,gr3
  56. pass