From 2325ac592fbb17b5605270f65e089e793da4e6c3 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Wed, 29 Apr 1998 17:01:23 +0000 Subject: [PATCH] * Test case for modular arithmetic hardware erratum, c.f. PR 14887. Wed Apr 29 12:49:00 1998 Frank Ch. Eigler * ls-modaddr.S: New test for modular addressing. * Makefile.in: Run it. --- sim/testsuite/d30v-elf/.Sanitize | 1 + sim/testsuite/d30v-elf/ls-modaddr.S | 37 +++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 sim/testsuite/d30v-elf/ls-modaddr.S diff --git a/sim/testsuite/d30v-elf/.Sanitize b/sim/testsuite/d30v-elf/.Sanitize index e9325bd226a..fd1fd13b802 100644 --- a/sim/testsuite/d30v-elf/.Sanitize +++ b/sim/testsuite/d30v-elf/.Sanitize @@ -53,6 +53,7 @@ ls-ldhu.S ls-ldw.S ls-moddec.S ls-modinc.S +ls-modaddr.S ls-st2h.S ls-st2w.S ls-st4hb.S diff --git a/sim/testsuite/d30v-elf/ls-modaddr.S b/sim/testsuite/d30v-elf/ls-modaddr.S new file mode 100644 index 00000000000..55634e9e2a7 --- /dev/null +++ b/sim/testsuite/d30v-elf/ls-modaddr.S @@ -0,0 +1,37 @@ + ; Modular address postincrement test + +start: + ; set modular address limits: 0x18 bytes + add r1,r0,0x20000070 ; [start, ... + nop || nop + mvtsys mod_s,r1 || nop + nop || nop + add r1,r0,0x20000088 ; ..., end) + nop || nop + mvtsys mod_e,r1 || nop + + ; program PSW for modular address mode + add r1,r0,0x81000000 + nop || nop + mvtsys psw,r1 || nop + nop || nop + + ; modular autoincrement test + add r30,r0,0x20000070 ; base address = mod_s + ld2w r40,@(r30+,r0) || nop ; after: r30 = ...078 + ld2w r40,@(r30+,r0) || nop ; after: r30 = ...080 + ld2w r40,@(r30+,r0) || nop ; after: r30 = ...070 + + add r29,r0,0x20000070 ; expected end address; wrapping around + cmpeq f1,r30,r29 + bra/xf fail + + ; Q: what about autodecrement? + +ok: + add r2,r0,0 + .long 0x0e000004, 0x00f00000 + +fail: + add r2,r0,47 + .long 0x0e000004, 0x00f00000 -- 2.30.2