2004-01-09 Elena Zannoni <ezannoni@redhat.com>
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.asm / s390x.inc
1 ### entry point code
2 .macro gdbasm_startup
3
4 # Align the stack pointer to an 8-byte boundary.
5 lghi %r0,-16
6 ngr %r15,%r0
7
8 # Reserve space for the standard stack frame:
9 # back chain, and space for the callee to save its registers.
10 aghi %r15,-168
11
12 # Zero this frame's back chain pointer.
13 xc 0(8,%r15),0(%r15)
14 .endm
15
16
17 ### Call a function.
18 .macro gdbasm_call subr
19 brasl %r14, \subr
20 .endm
21
22
23 ### Exit with a zero status.
24 .macro gdbasm_exit0
25 lghi %r2, 0
26 svc 1
27 .endm
28
29 ### Standard subroutine prologue.
30 .macro gdbasm_enter
31
32 # Save all the callee-saves registers. What the heck.
33 stmg %r6,%r15,48(%r15)
34
35 # Allocate the stack frame, and write the back chain pointer.
36 # Keep the original SP in %r11.
37 lgr %r11,%r15
38 aghi %r15,-168
39 stg %r11,0(%r15)
40 .endm
41
42
43 ### Standard subroutine epilogue.
44 .macro gdbasm_leave
45
46 # Restore all our registers. This also pops the frame, and
47 # restores our return address.
48 lmg %r6,%r15,216(%r15)
49
50 # Jump to the return address.
51 br %r14
52
53 .endm
54
55 ### Several nops.
56 .macro gdbasm_several_nops
57 lr %r0, %r0
58 lr %r0, %r0
59 lr %r0, %r0
60 lr %r0, %r0
61 .endm
62
63 ### Declare an `int' variable.
64 .macro gdbasm_datavar name value
65 .data
66 \name:
67 .long \value
68 .endm
This page took 0.032305 seconds and 4 git commands to generate.