--- /dev/null
+ ; 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