OSDN Git Service

30dc4144e802323cfa13b964c3b09caefce6314d
[pf3gnuchains/pf3gnuchains3x.git] / gdb / testsuite / gdb.arch / e500-prologue.c
1 /* This testcase is part of GDB, the GNU debugger.
2
3    Copyright 2004, 2007, 2008, 2009 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");