binutils-gdb/sim/testsuite/cris/asm/user.ms
Mike Frysinger 1368b914e9 sim: testsuite: flatten tree
Now that all port tests live under testsuite/sim/*/, and none live
in testsuite/ directly, flatten the structure by moving all of the
dirs under testsuite/sim/ to testsuite/ directly.

We need to stop passing --tool to dejagnu so that it searches all
dirs and not just ones that start with "sim".  Since we have no
other dirs in this tree, and no plans to add any, should be fine.
2021-01-15 19:18:34 -05:00

76 lines
1.3 KiB
Plaintext

# mach: crisv32
# output: 40\n40\n140\nabadefb0\n6543789c\n0\n0\n0\n0\n0\n0\n0\n0\n
; Check for protected operations being NOP in user mode, for the
; parts implemented in this simulator.
.include "testutils.inc"
start
move 0,ccs
move 0,usp
move 0,pid
move 0,srs
move 0,ebp
move 0,spc
setf u
; Flag settings, besides what's tested in rfn.ms, rfe.ms and
; sfe.ms.
setf i
move ccs,r3
dumpr3 ; 0x40
clearf u
move ccs,r3
dumpr3 ; 0x40
move 0xc0000300,ccs
move ccs,r3
dumpr3 ; 0x140
; R14==USP
move.d 0xabadefb0,r14
nop
nop
nop
move usp,r3
dumpr3 ; 0xabadefb0
move 0x6543789c,usp
nop
nop
nop
move.d r14,r3
dumpr3 ; 0x6543789c
; We can't go back to kernel mode, so we can't check that R14 in
; kernel mode wasn't affected.
; Moves to protected special registers.
.macro testsr reg,val=-1
move \val,\reg
; Registers shorter than dword will not affect the rest of the
; general register when copied using a move insn.
clear.d r3
; Three cycles are needed between move to protected register and
; read from it, to avoid reading undefined contents due to
; incomplete forwarding.
nop
nop
move \reg,r3
dumpr3
moveq \val,r3
move r3,\reg
clear.d r3
nop
nop
move \reg,r3
dumpr3
.endm
testsr pid ; 0 0
testsr srs,3 ; 0 0
testsr ebp ; 0 0
testsr spc ; 0 0
quit