diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2022-02-14 23:50:24 +0100 |
---|---|---|
committer | Hans-Peter Nilsson <hp@bitrange.com> | 2022-02-14 23:50:24 +0100 |
commit | 3293b4f66797bb2ccd3dbbf170249556fc16ced7 (patch) | |
tree | 5b99a13a00665f716090401e6f87eccda8fd7c83 | |
parent | 9d67b0a0978e9651db74aa667be793420e7e4817 (diff) | |
download | gdb-3293b4f66797bb2ccd3dbbf170249556fc16ced7.zip gdb-3293b4f66797bb2ccd3dbbf170249556fc16ced7.tar.gz gdb-3293b4f66797bb2ccd3dbbf170249556fc16ced7.tar.bz2 |
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.
-rw-r--r-- | sim/testsuite/cris/asm/endmem1.ms | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/sim/testsuite/cris/asm/endmem1.ms b/sim/testsuite/cris/asm/endmem1.ms new file mode 100644 index 0000000..ff9e334 --- /dev/null +++ b/sim/testsuite/cris/asm/endmem1.ms @@ -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 |