diff options
Diffstat (limited to 'libgcc/config')
-rw-r--r-- | libgcc/config/mips/irix-crti.S | 71 | ||||
-rw-r--r-- | libgcc/config/mips/irix-crtn.S | 38 | ||||
-rw-r--r-- | libgcc/config/mips/irix6-unwind.h | 180 | ||||
-rw-r--r-- | libgcc/config/mips/t-irix6 | 24 | ||||
-rw-r--r-- | libgcc/config/mips/t-slibgcc-irix | 7 |
5 files changed, 0 insertions, 320 deletions
diff --git a/libgcc/config/mips/irix-crti.S b/libgcc/config/mips/irix-crti.S deleted file mode 100644 index b9fc1918f74..00000000000 --- a/libgcc/config/mips/irix-crti.S +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright (C) 2004, 2008, 2011 Free Software Foundation, Inc. - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. - -GCC is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -<http://www.gnu.org/licenses/>. */ - - .abicalls - .set noreorder - .set nomacro - -/* The GNU and SGI linkers differ in their implementation of -init and -fini. - With the GNU linker, there can only be a single -init option, and the - linker simply sets DT_INIT to that value. gcc's initialization and - finalization code can go directly in .init, with the prologue and - epilogue of the main initialization routine being provided by external - object files (*crti.o and *crtn.o in this case). - - The SGI linker instead accepts several -init options. It will set DT_INIT - to a linker-created function (placed in .init) that calls each of the -init - functions in turn. If there is any user code in .init, this linker-created - function will be placed after it. Note that such user code is not treated - specially; it will only be called if the -init options arrange for it to - be called. - - In theory, the SGI model should allow the crti, crtn and intermediate code - to go in .init, just like it can with the GNU linker. However, doing this - seems to confuse the linker and triggers an internal error: - - ld32: FATAL 2 : Internal: at ../../ld/mips_code.c mips_code_fixup() - text section overflow! - - (seen with MIPSpro 7.30). We therefore put everything in a special - .gcc_init section instead. */ - - .section .gcc_init,"ax",@progbits - .globl __gcc_init -__gcc_init: - daddiu $sp,$sp,-16 - sd $31,0($sp) - sd $28,8($sp) - - .section .gcc_fini,"ax",@progbits - .globl __gcc_fini -__gcc_fini: - daddiu $sp,$sp,-16 - sd $31,0($sp) - sd $28,8($sp) - -/* This object will typically be included in the final link for both - shared libraries and executable, and we need to hide the symbols to - prevent possible symbol preemption warnings from the SGI linker. */ -.hidden __gcc_init -.hidden __gcc_fini - diff --git a/libgcc/config/mips/irix-crtn.S b/libgcc/config/mips/irix-crtn.S deleted file mode 100644 index 8194cacf5d7..00000000000 --- a/libgcc/config/mips/irix-crtn.S +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (C) 2004, 2011 Free Software Foundation, Inc. - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. - -GCC is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -<http://www.gnu.org/licenses/>. */ - - .abicalls - .set noreorder - .set nomacro - - .section .gcc_init,"ax",@progbits - ld $31,0($sp) - ld $28,8($sp) - jr $31 - daddiu $sp,$sp,16 - - .section .gcc_fini,"ax",@progbits - ld $31,0($sp) - ld $28,8($sp) - jr $31 - daddiu $sp,$sp,16 diff --git a/libgcc/config/mips/irix6-unwind.h b/libgcc/config/mips/irix6-unwind.h deleted file mode 100644 index e862560fe34..00000000000 --- a/libgcc/config/mips/irix6-unwind.h +++ /dev/null @@ -1,180 +0,0 @@ -/* DWARF2 EH unwinding support for MIPS IRIX 6. - Copyright (C) 2011 Free Software Foundation, Inc. - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3, or (at your option) -any later version. - -GCC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -<http://www.gnu.org/licenses/>. */ - -/* Do code reading to identify a signal frame, and set the frame - state data appropriately. See unwind-dw2.c for the structs. */ - -/* This code was developed-for and only tested-in limited ABI - configurations. Characterize that. */ - -#if defined (_ABIN32) || defined (_ABI64) -#define SUPPORTED_ABI 1 -#else -#define SUPPORTED_ABI 0 -#endif - -#include <signal.h> - -#define MD_FALLBACK_FRAME_STATE_FOR mips_fallback_frame_state - -/* Look at the code around RA to see if it matches a sighandler caller with a - sigcontext_t * argument (SA_SIGINFO cleared). Return that pointer argument - if it does match, or 0 otherwise. */ - -static sigcontext_t * -sigcontext_for (unsigned int *ra, void *cfa) -{ - /* IRIX 6.5, mono-threaded application. We're lucky enough to be able - to expect a short very sighandler specific sequence around. - - <_sigtramp+124>: li v0,1088 (SYS_sigreturn) - <_sigtramp+128>: syscall */ - - if ( ra[6] == 0x24020440 - && ra[7] == 0x0000000c) - return (sigcontext_t *)(cfa + 0x30); - - /* IRIX 6.5 variants, multi-threaded application, pthreads. Nothing really - sighandler specific handy, so match a fairly long constant sequence. */ - -#if _MIPS_SIM == _ABIN32 - /* - <sig_fixup_mask+40>: sd s0,0(sp) - <sig_fixup_mask+44>: sll ra,a0,0x2 - <sig_fixup_mask+48>: addiu t9,t9,-28584/-28456/-28448 - <sig_fixup_mask+52>: lw s0,3804(at) - <sig_fixup_mask+56>: addu t9,t9,ra - <sig_fixup_mask+60>: lw t9,0(t9) - <sig_fixup_mask+64>: ld at,3696(at) - <sig_fixup_mask+68>: ld s2,88(s0) - <sig_fixup_mask+72>: jalr t9 - <sig_fixup_mask+76>: sd at,88(s0) */ - if ( ra[-10] == 0xffb00000 - && ra[ -9] == 0x0004f880 - && (ra[-8] == 0x27399058 - || ra[-8] == 0x273990d8 - || ra[-8] == 0x273990e0) - && ra[ -7] == 0x8c300edc - && ra[ -6] == 0x033fc821 - && ra[ -5] == 0x8f390000 - && ra[ -4] == 0xdc210e70 - && ra[ -3] == 0xde120058 - && ra[ -2] == 0x0320f809 - && ra[ -1] == 0xfe010058) - -#elif _MIPS_SIM == _ABI64 - /* - <sig_fixup_mask+44>: sd s0,0(sp) - <sig_fixup_mask+48>: daddu t9,t9,ra - <sig_fixup_mask+52>: dsll ra,a0,0x3 - <sig_fixup_mask+56>: ld s0,3880(at) - <sig_fixup_mask+60>: daddu t9,t9,ra - <sig_fixup_mask+64>: ld t9,0(t9) - <sig_fixup_mask+68>: ld at,3696(at) - <sig_fixup_mask+72>: ld s2,152(s0) - <sig_fixup_mask+76>: jalr t9 - <sig_fixup_mask+80>: sd at,152(s0) */ - if ( ra[-10] == 0xffb00000 - && ra[ -9] == 0x033fc82d - && ra[ -8] == 0x0004f8f8 - && ra[ -7] == 0xdc300f28 - && ra[ -6] == 0x033fc82d - && ra[ -5] == 0xdf390000 - && ra[ -4] == 0xdc210e70 - && ra[ -3] == 0xde120098 - && ra[ -2] == 0x0320f809 - && ra[ -1] == 0xfe010098) -#endif - return (sigcontext_t *)(cfa + 0x60); - - return 0; -} - -#define SIGCTX_GREG_ADDR(REGNO,SIGCTX) \ - ((void *) &(SIGCTX)->sc_regs[REGNO]) - -#define SIGCTX_FPREG_ADDR(REGNO,SIGCTX) \ - ((void *) &(SIGCTX)->sc_fpregs[REGNO]) - -static _Unwind_Reason_Code -mips_fallback_frame_state (struct _Unwind_Context *context, - _Unwind_FrameState *fs) -{ - /* Return address and CFA of the frame we're attempting to unwind through, - possibly a signal handler. */ - void *ctx_ra = (void *)context->ra; - void *ctx_cfa = (void *)context->cfa; - - /* CFA of the intermediate abstract kernel frame between the interrupted - code and the signal handler, if we're indeed unwinding through a signal - handler. */ - void *k_cfa; - - /* Pointer to the sigcontext_t structure pushed by the kernel when we're - unwinding through a signal handler setup with SA_SIGINFO cleared. */ - sigcontext_t *sigctx; - int i; - - if (! SUPPORTED_ABI) - return _URC_END_OF_STACK; - - sigctx = sigcontext_for (ctx_ra, ctx_cfa); - - if (sigctx == 0) - return _URC_END_OF_STACK; - - /* The abstract kernel frame's CFA is extactly the stack pointer - value at the interruption point. */ - k_cfa = *(void **)SIGCTX_GREG_ADDR (CTX_SP, sigctx); - - /* State the rules to compute the CFA we have the value of: use the - previous CFA and offset by the difference between the two. See - uw_update_context_1 for the supporting details. */ - fs->regs.cfa_how = CFA_REG_OFFSET; - fs->regs.cfa_reg = __builtin_dwarf_sp_column (); - fs->regs.cfa_offset = k_cfa - ctx_cfa; - - /* Fill the internal frame_state structure with information stating where - each register of interest can be found from the CFA. */ - for (i = 0; i <= 31; i ++) - { - fs->regs.reg[i].how = REG_SAVED_OFFSET; - fs->regs.reg[i].loc.offset = SIGCTX_GREG_ADDR (i, sigctx) - k_cfa; - } - - for (i = 0; i <= 31; i ++) - { - fs->regs.reg[32+i].how = REG_SAVED_OFFSET; - fs->regs.reg[32+i].loc.offset = SIGCTX_FPREG_ADDR (i, sigctx) - k_cfa; - } - - /* State the rules to find the kernel's code "return address", which is the - address of the active instruction when the signal was caught. */ - fs->retaddr_column = DWARF_FRAME_RETURN_COLUMN; - fs->regs.reg[fs->retaddr_column].how = REG_SAVED_OFFSET; - fs->regs.reg[fs->retaddr_column].loc.offset = (void *)&sigctx->sc_pc - k_cfa; - fs->signal_frame = 1; - - return _URC_NO_REASON; -} diff --git a/libgcc/config/mips/t-irix6 b/libgcc/config/mips/t-irix6 deleted file mode 100644 index c9bd3cdcb0a..00000000000 --- a/libgcc/config/mips/t-irix6 +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, -# 2006, 2010, 2011 Free Software Foundation, Inc. -# -# This file is part of GCC. -# -# GCC is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GCC is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# <http://www.gnu.org/licenses/>. - -irix-crti.o: $(srcdir)/config/mips/irix-crti.S - $(crt_compile) -c $< - -irix-crtn.o: $(srcdir)/config/mips/irix-crtn.S - $(crt_compile) -c $< diff --git a/libgcc/config/mips/t-slibgcc-irix b/libgcc/config/mips/t-slibgcc-irix deleted file mode 100644 index 47b2e0eec21..00000000000 --- a/libgcc/config/mips/t-slibgcc-irix +++ /dev/null @@ -1,7 +0,0 @@ -# Build a shared libgcc library with the SGI linker. - -SHLIB_LDFLAGS = -Wl,-soname,$(SHLIB_SONAME) \ - -Wl,-exports_file,$(SHLIB_MAP) - -SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk -SHLIB_MAPFILES = libgcc-std.ver |