swap.cgs 940 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # frv testcase for swap @($GRi,$GRj),$GRk
  2. # mach: all
  3. .include "testutils.inc"
  4. start
  5. .global swap
  6. swap:
  7. set_gr_gr sp,gr20
  8. set_mem_limmed 0xdead,0xbeef,sp
  9. inc_gr_immed -4,sp
  10. set_gr_gr sp,gr21
  11. set_mem_limmed 0xbeef,0xdead,sp
  12. inc_gr_immed -4,sp
  13. set_gr_gr sp,gr22
  14. set_mem_limmed 0xdead,0xbeef,sp
  15. inc_gr_immed 4,sp
  16. set_gr_limmed 0xbeef,0xdead,gr8
  17. set_gr_immed -4,gr7
  18. swap @(sp,gr7),gr8
  19. test_gr_limmed 0xdead,0xbeef,gr8
  20. test_mem_limmed 0xbeef,0xdead,gr22
  21. test_mem_limmed 0xbeef,0xdead,gr21
  22. test_mem_limmed 0xdead,0xbeef,gr20
  23. set_gr_immed 0,gr7
  24. swap @(sp,gr7),gr8
  25. test_gr_limmed 0xbeef,0xdead,gr8
  26. test_mem_limmed 0xbeef,0xdead,gr22
  27. test_mem_limmed 0xdead,0xbeef,gr21
  28. test_mem_limmed 0xdead,0xbeef,gr20
  29. set_gr_immed 4,gr7
  30. swap @(sp,gr7),gr8
  31. test_gr_limmed 0xdead,0xbeef,gr8
  32. test_mem_limmed 0xbeef,0xdead,gr22
  33. test_mem_limmed 0xdead,0xbeef,gr21
  34. test_mem_limmed 0xbeef,0xdead,gr20
  35. pass