diff options
Diffstat (limited to 'sim/testsuite/d30v-elf/do-2wordops.S')
-rw-r--r-- | sim/testsuite/d30v-elf/do-2wordops.S | 80 |
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 |