|
|
1.1 ! root 1: /* Definitions of target machine for GNU compiler. ! 2: Motorola 88100 Delta machine running SVR4 ! 3: Copyright (C) 1993 Free Software Foundation, Inc. ! 4: ! 5: This file is part of GNU CC. ! 6: ! 7: GNU CC is free software; you can redistribute it and/or modify ! 8: it under the terms of the GNU General Public License as published by ! 9: the Free Software Foundation; either version 2, or (at your option) ! 10: any later version. ! 11: ! 12: GNU CC is distributed in the hope that it will be useful, ! 13: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 15: GNU General Public License for more details. ! 16: ! 17: You should have received a copy of the GNU General Public License ! 18: along with GNU CC; see the file COPYING. If not, write to ! 19: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 20: ! 21: #include "m88k/sysv4.h" ! 22: ! 23: /* The .init section preamble code on the svr4 m88k Delta system looks like: ! 24: ! 25: _init: subu r31, r31, 0x30 ! 26: st r1, r31, 0x20 ! 27: ! 28: do_global_ctors_aux in crtstuff.c emits do_global_ctors which is put ! 29: into the .init section. However, this function has its own ! 30: prolog which allocates more of the stack. The epilogue of do_global_ctors ! 31: only knows about its own stack allocation, not that in the .init ! 32: section preamble. So we must undo the allocation performed by the .init ! 33: section preamble. We use the following instruction: ! 34: ! 35: addu r31, r31, 0x30 ! 36: ! 37: which is placed immediately after the two instructions shown above ! 38: and before do_global_ctors. ! 39: ! 40: Note that this is a kludge since it depends on knowing the constant ! 41: 0x30 above. However, no better fix is known at this time. */ ! 42: ! 43: #undef INIT_SECTION_PREAMBLE ! 44: #define INIT_SECTION_PREAMBLE asm ("\taddu\t #r31,#r31,0x30")
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.