1 /* Copyright (C) 2001-2015 Free Software Foundation, Inc.
2 Contributed by Hans-Peter Nilsson <hp@bitrange.com>
4 This file is free software; you can redistribute it and/or modify it
5 under the terms of the GNU General Public License as published by the
6 Free Software Foundation; either version 3, or (at your option) any
9 This file is distributed in the hope that it will be useful, but
10 WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 General Public License for more details.
14 Under Section 7 of GPL version 3, you are granted additional
15 permissions described in the GCC Runtime Library Exception, version
16 3.1, as published by the Free Software Foundation.
18 You should have received a copy of the GNU General Public License and
19 a copy of the GCC Runtime Library Exception along with this program;
20 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
21 <http://www.gnu.org/licenses/>. */
23 % This must be the last file on the link-line, allocating global registers
26 % Register $254 is the stack-pointer.
29 % Register $253 is frame-pointer. It's not supposed to be used in most
33 % $252 is the static chain register; nested functions receive the
34 % context of the surrounding function through a pointer passed in this
39 % These registers are used to pass state at an exceptional return (C++).
45 #ifdef __MMIX_ABI_GNU__
47 % Allocate global registers used by the GNU ABI.
65 #endif /* __MMIX_ABI_GNU__ */
67 % Provide last part of _init and _fini.
69 % The return address is stored in the topmost stored register in the
70 % register-stack. We ignore the current value in rJ. It is probably
71 % garbage because each fragment of _init and _fini may have their own idea
72 % of the current stack frame, if they're cut out from a "real" function
73 % like in gcc/crtstuff.c.
75 .section .init,"ax",@progbits
82 .section .fini,"ax",@progbits