summaryrefslogtreecommitdiff
path: root/sim/testsuite/frv/std.pcgs
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/frv/std.pcgs')
-rw-r--r--sim/testsuite/frv/std.pcgs37
1 files changed, 37 insertions, 0 deletions
diff --git a/sim/testsuite/frv/std.pcgs b/sim/testsuite/frv/std.pcgs
new file mode 100644
index 00000000000..d518b8b9746
--- /dev/null
+++ b/sim/testsuite/frv/std.pcgs
@@ -0,0 +1,37 @@
+# frv parallel testcase for std $GRk,@($GRi,$GRj)
+# mach: all
+
+ .include "testutils.inc"
+
+ start
+
+ .global add
+add:
+ set_mem_limmed 0xbeef,0xdead,sp
+ inc_gr_immed -4,sp
+ set_mem_limmed 0xdead,0xbeef,sp
+ set_gr_immed 0,gr7
+ set_gr_limmed 0xbeef,0xdead,gr8
+ set_gr_limmed 0xdead,0xbeef,gr9
+ std gr8,@(sp,gr7) ; non parallel
+ test_mem_limmed 0xbeef,0xdead,sp
+ inc_gr_immed 4,sp
+ test_mem_limmed 0xdead,0xbeef,sp
+
+ set_mem_limmed 0xbeef,0xdead,sp
+ inc_gr_immed -4,sp
+ set_mem_limmed 0xdead,0xbeef,sp
+ set_gr_immed 4,gr7
+ set_gr_limmed 0xbeef,0xdead,gr8
+ set_gr_limmed 0xdead,0xbeef,gr9
+ std.p gr8,@(sp,gr0) ; parallel
+ setlos 0,gr8
+ ld @(sp,gr0),gr10
+ ld @(sp,gr7),gr11
+ test_mem_limmed 0xbeef,0xdead,sp ; memory is set
+ inc_gr_immed 4,sp
+ test_mem_limmed 0xdead,0xbeef,sp
+ test_gr_immed 0xbeefdead,gr10 ; regs were pre-loaded
+ test_gr_immed 0xdeadbeef,gr11 ; not this one
+
+ pass