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