1 /* This testcase is part of GDB, the GNU debugger.
2 
3    Copyright 2004 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 2 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, write to the Free Software
17    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
18    USA.  */
19 
20 void arg_passing_test2 (void);
21 
22 int
23 main (void)
24 {
25   arg_passing_test2 ();
26   return 0;
27 }
28 
29 
30 /* Asm for procedure arg_passing_test2.
31 
32    The challenge here is getting past the 'mr 0,3' and 'stb'
33    instructions.  */
34 
35 asm ("	.section	\".text\"\n"
36      "	.align 2\n"
37      "	.globl arg_passing_test2\n"
38      "	.type	arg_passing_test2, @function\n"
39      "arg_passing_test2:\n"
40      "	stwu 1,-64(1)\n"
41      "	stw 31,60(1)\n"
42      "	mr 31,1\n"
43      "	mr 0,3\n"
44      "	evstdd 4,16(31)\n"
45      "	stw 5,24(31)\n"
46      "	stw 7,32(31)\n"
47      "	stw 8,36(31)\n"
48      "	stw 9,40(31)\n"
49      "	stb 0,8(31)\n"
50      "	lwz 11,0(1)\n"
51      "	lwz 31,-4(11)\n"
52      "	mr 1,11\n"
53      "	blr\n"
54      "	.size	arg_passing_test2, .-arg_passing_test2\n");
55