This commit was generated by cvs2svn to track changes on a CVS vendor
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / mips_pro.c
1 /* Tests regarding examination of prologues. */
2
3 int
4 inner (z)
5 int z;
6 {
7 return 2 * z;
8 }
9
10 /* The native compiler seems to lack asm(). */
11
12 #if defined (__GNUC__) && defined (__mips__)
13 /* This is the verbatim output corresponding to the function middle.
14 Label names have been changed to avoid conflicts. It is here as
15 asm() so we don't have to worry that (a) the compiler might change
16 how it does things, and (b) we'd have to insure it gets compiled
17 with gcc -O2. */
18
19 asm ("\n\
20 .text \n\
21 .align 2 \n\
22 .globl middle \n\
23 .loc 1 22 \n\
24 \n\
25 .loc 1 21 \n\
26 .ent middle \n\
27 middle: \n\
28 .frame $sp,24,$31 # vars= 0, regs= 1/0, args = 16, extra= 0 \n\
29 .mask 0x80000000,-8 \n\
30 .fmask 0x00000000,0 \n\
31 subu $sp,$sp,24 \n\
32 \n\
33 .loc 1 23 \n\
34 .set noreorder \n\
35 .set nomacro \n\
36 beq $4,$0,middle_lab0 \n\
37 sw $31,16($sp) \n\
38 .set macro \n\
39 .set reorder \n\
40 \n\
41 \n\
42 .loc 1 26 \n\
43 .set noreorder \n\
44 .set nomacro \n\
45 jal inner \n\
46 li $4,0x00000006 # 6 \n\
47 .set macro \n\
48 .set reorder \n\
49 \n\
50 j middle_lab1 \n\
51 middle_lab0: \n\
52 \n\
53 .loc 1 24 \n\
54 .set noreorder \n\
55 .set nomacro \n\
56 jal inner \n\
57 li $4,0x00000005 # 5 \n\
58 .set macro \n\
59 .set reorder \n\
60 \n\
61 middle_lab1: \n\
62 .set noreorder \n\
63 lw $31,16($sp) \n\
64 nop \n\
65 j $31 \n\
66 addu $sp,$sp,24 \n\
67 .set reorder \n\
68 .end middle \n\
69 ");
70 #if 0
71 /* Not necessary, and loses if gcc is not using stabs. */
72 asm (".stabs \"middle:F1\",36,0,13,middle");
73 asm (".stabs \"x:p1\",160,0,13,0");
74 #endif
75 #else
76 int
77 middle (x)
78 int x;
79 {
80 if (x == 0)
81 return inner (5);
82 else
83 return inner (6);
84 }
85 #endif
86
87 int
88 top (y)
89 int y;
90 {
91 return middle (y + 1);
92 }
93
94 int
95 main (argc, argv)
96 {
97 return top (-1) + top (1);
98 }
This page took 0.032445 seconds and 5 git commands to generate.