* Test case for modular arithmetic hardware erratum, c.f. PR 14887.

Wed Apr 29 12:49:00 1998  Frank Ch. Eigler  <fche@cygnus.com>

	* ls-modaddr.S: New test for modular addressing.
	* Makefile.in: Run it.
This commit is contained in:
Frank Ch. Eigler 1998-04-29 17:01:23 +00:00
parent 56c0f25a5b
commit 2325ac592f
2 changed files with 38 additions and 0 deletions

View File

@ -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

View File

@ -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