summaryrefslogtreecommitdiff
path: root/sim/testsuite/d30v-elf/do-2wordops.S
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/d30v-elf/do-2wordops.S')
-rw-r--r--sim/testsuite/d30v-elf/do-2wordops.S80
1 files changed, 80 insertions, 0 deletions
diff --git a/sim/testsuite/d30v-elf/do-2wordops.S b/sim/testsuite/d30v-elf/do-2wordops.S
new file mode 100644
index 00000000000..2fa92e62872
--- /dev/null
+++ b/sim/testsuite/d30v-elf/do-2wordops.S
@@ -0,0 +1,80 @@
+ # Test macro
+
+ .macro assert reg,value
+ cmpeq f0,\reg,\value
+ bra/fx fail
+ .endm
+
+ .macro nassert reg,value
+ cmpne f0,\reg,\value
+ bra/fx fail
+ .endm
+
+
+ # PR 18452 - a.s
+
+ add r1, r0, 0
+ add r2,r0,0x11223344
+ add r3,r0,0x8899aabb
+ nop ||mulx2h r0,r2,r3
+
+ assert r0, 0x0
+ assert r1, 0x0
+
+ # test other double-word loads
+
+ add r2,r0,data
+ ld2w r0,@(r2,0)
+ assert r0, 0x0
+ assert r1, 0x0
+
+ add r2,r0,data
+ ld2h r0,@(r2,0)
+ assert r0, 0x0
+ assert r1, 0x0
+
+ add r2,r0,data
+ ld4bh r0,@(r2,0)
+ assert r0, 0x0
+ assert r1, 0x0
+
+ add r2,r0,data
+ ld4bhu r0,@(r2,0)
+ assert r0, 0x0
+ assert r1, 0x0
+
+
+ # PR 18679 - a.s
+
+ ld2h r2, @(r0, b)
+ ld2h r4, @(r0, d)
+ assert r2, 0x00001111
+ assert r3, 0xffff8899
+ assert r4, 0x00001111
+ assert r5, 0x00002222
+
+
+ # all okay
+
+ bra ok
+
+ok:
+ add r2, r0, 0
+ .long 0x0e000004
+ nop
+
+fail:
+ add r2, r0, 47
+ .long 0x0e000004
+ nop
+
+ # some non-zero data
+data:
+ .long 0x12345678
+ .long 0x9abcdef0
+ .long 0xdeadbeef
+
+b:
+ .word 0x11118899, 0x0
+d:
+ .word 0x11112222, 0x0