From 3293b4f66797bb2ccd3dbbf170249556fc16ced7 Mon Sep 17 00:00:00 2001 From: Hans-Peter Nilsson Date: Mon, 14 Feb 2022 23:50:24 +0100 Subject: 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. --- sim/testsuite/cris/asm/endmem1.ms | 47 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 sim/testsuite/cris/asm/endmem1.ms (limited to 'sim') 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 -- cgit v1.1