mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 03:29:47 +08:00
sim/testsuite/cris: Assembler testcase for PRIx32 usage bug
Several C test-cases exposed the bug, but let's have one for people who test using just the assembler and linker. * asm/endmem1.ms: New test.
This commit is contained in:

committed by
Hans-Peter Nilsson

parent
9d67b0a097
commit
3293b4f667
47
sim/testsuite/cris/asm/endmem1.ms
Normal file
47
sim/testsuite/cris/asm/endmem1.ms
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# 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
|
Reference in New Issue
Block a user