* sim/cris/asm/movmp.ms: Do not write to P0, P4 or P8.
* sim/cris/asm/raw13.ms: Write to MOF instead of WZ (P4).
+2005-12-06 Hans-Peter Nilsson <hp@axis.com>
+
+ * sim/cris/asm/movmp8.ms, sim/cris/asm/pcplus.ms: New tests.
+ * sim/cris/asm/movmp.ms: Do not write to P0, P4 or P8.
+ * sim/cris/asm/raw13.ms: Write to MOF instead of WZ (P4).
+
2005-11-21 Hans-Peter Nilsson <hp@axis.com>
* sim/cris: New directory with C and assembly tests for the CRIS
.text
; Test that writing to zero-registers is a nop
+ .if 0
+ ; We used to just ignore the writes, but now an error is emitted. We
+ ; keep the test-code but disabled, in case we need to change this again.
move 0xaa,p0
move 0x4433,p4
move 0x55774433,p8
+ .endif
+
moveq -1,r3
setf zcvn
clear.b r3
dumpr3
; "Write" using ordinary memory references too.
+ .if 0 ; See ".if 0" above.
move.d filler,r6
move [r6],p0
move [r6],p4
move [r6],p8
+ .endif
+
moveq -1,r3
clear.b r3
dumpr3
dumpr3
; And postincremented.
+ .if 0 ; See ".if 0" above.
move [r6+],p0
move [r6+],p4
move [r6+],p8
+ .endif
+
moveq -1,r3
clear.b r3
dumpr3
--- /dev/null
+# mach: crisv3 crisv8 crisv10
+
+# Make sure that "move [$sp=$sp+16],$p8" works; used in Linux.
+
+ .include "testutils.inc"
+ startnostack
+ move.d x,$sp
+ moveq 0,$r3
+ move [$sp=$sp+16],$p8
+ ; Z not changed.
+ bne 0f
+ nop
+ cmp.d x+16,$sp
+ bne 0f
+ nop
+ move $p8,$r3
+ ; Z not changed.
+ bne 0f
+ ; P8 still 0.
+ test.d $r3
+ bne 0f
+ nop
+ pass
+0:
+ fail
+
+ .data
+x:
+ .dword 0xffffffff
+ .dword 0xffffffff
+ .dword 0xffffffff
+ .dword 0xffffffff
+ .dword 0xffffffff
--- /dev/null
+# mach: crisv0 crisv3 crisv8 crisv10
+
+; Test that a forward as well as backward 32-bit "branch" expansion
+; works including that the right offset is applied.
+
+ .macro nop32
+ .rept 32
+ nop
+ .endr
+ .endm
+
+ .include "testutils.inc"
+ start
+ jump start1
+ fail
+
+ nop32
+ subq 63,$r10
+9: subq 1,$r10
+ nop32
+ jump 0f
+
+ fail
+0: move [$pc=$pc+1f-6-0b],$p0
+ nop32
+ fail
+
+ .skip 32768,0
+
+ nop32
+ subq 63,$r10
+1:
+ subq 1,$r10
+ nop32
+ test.d $r10
+ bne 7f
+ nop
+ pass
+7:
+ fail
+
+start1:
+ moveq 2,$r10
+0: move [$pc=$pc+9b-6-0b],$p0
+ subq 63,$r10
+ fail
-; Checking read-after-write: write-WZ-then-read unaffected.
+; Checking read-after-write: write-MOF-then-read unaffected.
#mach: crisv32
#output: Basic clock cycles, total @: 4\n
#output: Memory source stall cycles: 0\n
.lcomm y,4
move.d x,$r0
move.d y,$r1
- move [$r0],$wz
+ move [$r0],$mof
move [$r1],$srp
break 15