1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- # mach: crisv3 crisv8 crisv10 crisv32
- ; Check that the simulator and the program agrees on the
- ; value of endmem; the base point for further allocations.
- .include "testutils.inc"
- start
- ; First, get the end of memory by calling brk with 0 to get
- ; the current value.
- clear.d $r10
- movu.w 0x2d,$r9
- break 13
- ; Get one more 8192-byte page.
- addu.w 8192,$r10
- ; Save it in a (call- and) syscall-saved register.
- move.d $r10,$r0
- ; Call brk again to raise the value.
- movu.w 0x2d,$r9
- break 13
- ; If the simulator messed up internally, it'd have exited
- ; with an error at the brk call. But, let's sanity-check
- ; the return-value: it should be the same as the input and
- ; the allocated memory should be accessible.
- cmp.d $r10,$r0
- beq 0f
- nop
- 1:
- fail
- 0:
- ; Check that we can write and read the last address on that
- ; page.
- subq 4,$r10
- move.d 0xbad1d101,$r12
- move.d $r12,[$r10]
- move.d [$r10],$r11
- cmp.d $r11,$r12
- bne 1b
- nop
- pass
|