# mach: crisv32 # output: 0\ncafebabe\nbaddbeef\necc0d00d\nc0ceface\npass\n ; Check that the PID register has the right size, 32 bits: check ; immediate, to/from register and memory. (This has to be done in ; supervisor mode, so don't set u.) .include "testutils.inc" .macro dumpid move $pid,$r3 dumpr3 .endm start moveq -1,$r3 move 0,$pid dumpid ; 0 move 0xcafebabe,$pid dumpid ; cafebabe move.d 0xbaddbeef,$r2 move $r2,$pid dumpid ; baddbeef move.d 0f,$r0 move [$r0+],$pid cmp.d 0f+4,$r0 beq 1f nop dofail: fail 0: .dword 0xecc0d00d 0: .dword 0xc0ceface 1: dumpid ; ecc0d00d move.d 0b,$r1 move 0xc0ceface,$pid move $pid,[$r1+] cmp.d 0b+4,$r1 bne dofail subq 4,$r1 nop move.d [$r1],$r3 dumpr3 ; c0ceface pass