File: endmem1.ms

package info (click to toggle)
gdb-doc 16.3-1
  • links: PTS, VCS
  • area: non-free
  • in suites: forky, sid, trixie
  • size: 244,264 kB
  • sloc: ansic: 2,134,731; asm: 375,582; exp: 206,875; cpp: 73,639; makefile: 70,232; sh: 26,038; python: 13,697; yacc: 11,341; ada: 7,358; xml: 6,098; perl: 5,077; pascal: 3,389; tcl: 2,986; f90: 2,764; lisp: 1,984; cs: 879; lex: 738; sed: 228; awk: 181; objc: 137; fortran: 57
file content (47 lines) | stat: -rw-r--r-- 942 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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