aboutsummaryrefslogtreecommitdiff
path: root/sim/testsuite/frv/swap.cgs
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/frv/swap.cgs')
-rw-r--r--sim/testsuite/frv/swap.cgs42
1 files changed, 42 insertions, 0 deletions
diff --git a/sim/testsuite/frv/swap.cgs b/sim/testsuite/frv/swap.cgs
new file mode 100644
index 0000000..1e22903
--- /dev/null
+++ b/sim/testsuite/frv/swap.cgs
@@ -0,0 +1,42 @@
+# frv testcase for swap @($GRi,$GRj),$GRk
+# mach: all
+
+ .include "testutils.inc"
+
+ start
+
+ .global swap
+swap:
+ set_gr_gr sp,gr20
+ set_mem_limmed 0xdead,0xbeef,sp
+ inc_gr_immed -4,sp
+ set_gr_gr sp,gr21
+ set_mem_limmed 0xbeef,0xdead,sp
+ inc_gr_immed -4,sp
+ set_gr_gr sp,gr22
+ set_mem_limmed 0xdead,0xbeef,sp
+ inc_gr_immed 4,sp
+
+ set_gr_limmed 0xbeef,0xdead,gr8
+ set_gr_immed -4,gr7
+ swap @(sp,gr7),gr8
+ test_gr_limmed 0xdead,0xbeef,gr8
+ test_mem_limmed 0xbeef,0xdead,gr22
+ test_mem_limmed 0xbeef,0xdead,gr21
+ test_mem_limmed 0xdead,0xbeef,gr20
+
+ set_gr_immed 0,gr7
+ swap @(sp,gr7),gr8
+ test_gr_limmed 0xbeef,0xdead,gr8
+ test_mem_limmed 0xbeef,0xdead,gr22
+ test_mem_limmed 0xdead,0xbeef,gr21
+ test_mem_limmed 0xdead,0xbeef,gr20
+
+ set_gr_immed 4,gr7
+ swap @(sp,gr7),gr8
+ test_gr_limmed 0xdead,0xbeef,gr8
+ test_mem_limmed 0xbeef,0xdead,gr22
+ test_mem_limmed 0xdead,0xbeef,gr21
+ test_mem_limmed 0xbeef,0xdead,gr20
+
+ pass