]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/testsuite/gdb.arch/e500-prologue.c
877a8806af5d70eede444018ef9caf5b17fce24c
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.arch / e500-prologue.c
1 /* This testcase is part of GDB, the GNU debugger.
2
3 Copyright 2004, 2007 Free Software Foundation, Inc.
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
17
18 void arg_passing_test2 (void);
19
20 int
21 main (void)
22 {
23 arg_passing_test2 ();
24 return 0;
25 }
26
27
28 /* Asm for procedure arg_passing_test2.
29
30 The challenge here is getting past the 'mr 0,3' and 'stb'
31 instructions. */
32
33 asm (" .section \".text\"\n"
34 " .align 2\n"
35 " .globl arg_passing_test2\n"
36 " .type arg_passing_test2, @function\n"
37 "arg_passing_test2:\n"
38 " stwu 1,-64(1)\n"
39 " stw 31,60(1)\n"
40 " mr 31,1\n"
41 " mr 0,3\n"
42 " evstdd 4,16(31)\n"
43 " stw 5,24(31)\n"
44 " stw 7,32(31)\n"
45 " stw 8,36(31)\n"
46 " stw 9,40(31)\n"
47 " stb 0,8(31)\n"
48 " lwz 11,0(1)\n"
49 " lwz 31,-4(11)\n"
50 " mr 1,11\n"
51 " blr\n"
52 " .size arg_passing_test2, .-arg_passing_test2\n");