From: Hans-Peter Nilsson Date: Mon, 14 Feb 2022 22:50:24 +0000 (+0100) Subject: sim/testsuite/cris: Assembler testcase for PRIx32 usage bug X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3293b4f66797bb2ccd3dbbf170249556fc16ced7;p=binutils-gdb.git 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. --- diff --git a/sim/testsuite/cris/asm/endmem1.ms b/sim/testsuite/cris/asm/endmem1.ms new file mode 100644 index 00000000000..ff9e334c38a --- /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