aboutsummaryrefslogtreecommitdiff
path: root/sim/testsuite/d10v/t-sadd.s
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/d10v/t-sadd.s')
-rw-r--r--sim/testsuite/d10v/t-sadd.s42
1 files changed, 42 insertions, 0 deletions
diff --git a/sim/testsuite/d10v/t-sadd.s b/sim/testsuite/d10v/t-sadd.s
new file mode 100644
index 0000000..fb463d9
--- /dev/null
+++ b/sim/testsuite/d10v/t-sadd.s
@@ -0,0 +1,42 @@
+# mach: all
+# output:
+# sim: --environment operating
+
+.include "t-macros.i"
+
+ start
+
+ PSW_BITS = PSW_FX|PSW_ST|PSW_SM
+ loadpsw2 PSW_BITS
+
+ ;; Test normal sadd
+
+ loadacc2 a0 0x00 0x7fff 0xffff
+ loadacc2 a1 0xff 0x8000 0x0000
+ sadd a1, a0
+ checkacc2 1 a0 0x00 0x7fff 0xffff
+ checkacc2 2 a1 0xff 0x8000 0x7fff
+
+ ;; Test overflow
+
+ loadacc2 a0 0x00 0x0000 0x0000
+ loadacc2 a1 0x01 0x8000 0x0000
+ sadd a1, a0
+ checkacc2 3 a0 0x00 0x0000 0x0000
+ checkacc2 4 a1 0x00 0x7fff 0xffff
+
+ loadacc2 a0 0x00 0xffff 0xffff
+ loadacc2 a1 0x00 0xffff 0xffff
+ sadd a1, a0
+ checkacc2 5 a1 0x00 0x7fff 0xffff
+ checkacc2 6 a0 0x00 0xffff 0xffff
+
+ ;; Test underflow
+
+ loadacc2 a0 0x00 0x0000 0x0000
+ loadacc2 a1 0x80 0x8000 0x0000
+ sadd a1, a0
+ checkacc2 7 a0 0x00 0x0000 0x0000
+ checkacc2 8 a1 0xff 0x8000 0x0000
+
+ exit0