diff options
Diffstat (limited to 'lang/gcc/patches/patch-au')
-rw-r--r-- | lang/gcc/patches/patch-au | 83 |
1 files changed, 26 insertions, 57 deletions
diff --git a/lang/gcc/patches/patch-au b/lang/gcc/patches/patch-au index a7fd62b3c62..cd7f88bd3de 100644 --- a/lang/gcc/patches/patch-au +++ b/lang/gcc/patches/patch-au @@ -1,63 +1,32 @@ -$NetBSD: patch-au,v 1.1 2001/02/28 23:28:09 hubertf Exp $ +$NetBSD: patch-au,v 1.2 2002/01/03 20:40:43 tron Exp $ ---- ../gcc-2.95.2/gcc/crtstuff.c.orig Tue Feb 27 14:34:52 2001 -+++ ../gcc-2.95.2/gcc/crtstuff.c -@@ -181,16 +181,16 @@ - - /* Stick a call to __do_global_dtors_aux into the .fini section. */ - --static void __attribute__ ((__unused__)) --fini_dummy (void) -+asm (FINI_SECTION_ASM_OP); -+void __attribute__ ((__unused__)) -+_fini (void) - { -- asm (FINI_SECTION_ASM_OP); - __do_global_dtors_aux (); - #ifdef FORCE_FINI_SECTION_ALIGN - FORCE_FINI_SECTION_ALIGN; - #endif -- asm (TEXT_SECTION_ASM_OP); - } -+asm (TEXT_SECTION_ASM_OP); - - #ifdef EH_FRAME_SECTION_ASM_OP - /* Stick a call to __register_frame_info into the .init section. For some -@@ -205,6 +205,21 @@ - __register_frame_info (__EH_FRAME_BEGIN__, &object); +--- ../gcc-2.95.3/gcc/config/sh/sh.h.orig Mon Aug 2 07:02:55 1999 ++++ ../gcc-2.95.3/gcc/config/sh/sh.h Thu Jan 3 20:37:53 2002 +@@ -1681,7 +1681,7 @@ + it uses this information. Hence, the general register <-> floating point + register information here is not used for SFmode. */ + #define REGISTER_MOVE_COST(SRCCLASS, DSTCLASS) \ +- ((((DSTCLASS) == T_REGS) || ((DSTCLASS) == PR_REG)) ? 10 \ ++ ((((DSTCLASS) == T_REGS) || ((DSTCLASS) == PR_REGS)) ? 10 \ + : ((((DSTCLASS) == FP0_REGS || (DSTCLASS) == FP_REGS || (DSTCLASS) == DF_REGS) \ + && ((SRCCLASS) == GENERAL_REGS || (SRCCLASS) == R0_REGS)) \ + || (((DSTCLASS) == GENERAL_REGS || (DSTCLASS) == R0_REGS) \ +@@ -1796,10 +1796,10 @@ } -+static void -+__nop (void) -+{ -+ //asm("unimp 0x42"); // We must not call this function ever. If we happen to -+ // do it accidently, use the emergency exit. -+} -+ -+asm (INIT_SECTION_ASM_OP); -+void __attribute__ ((__unused__)) -+_init (void) -+{ -+ asm (TEXT_SECTION_ASM_OP); -+ __nop(); -+} -+ - static void __attribute__ ((__unused__)) - init_dummy (void) - { -@@ -378,7 +393,6 @@ - #ifdef FORCE_INIT_SECTION_ALIGN - FORCE_INIT_SECTION_ALIGN; - #endif -- asm (TEXT_SECTION_ASM_OP); + #define ASM_OUTPUT_REG_PUSH(file, v) \ +- fprintf ((file), "\tmov.l\tr%s,-@r15\n", (v)); ++ fprintf ((file), "\tmov.l\tr%d,@-r15\n", (v)); - /* This is a kludge. The i386 GNU/Linux dynamic linker needs ___brk_addr, - __environ and atexit (). We have to make sure they are in the .dynsym -@@ -395,6 +409,7 @@ - } - #endif - } -+asm (TEXT_SECTION_ASM_OP); + #define ASM_OUTPUT_REG_POP(file, v) \ +- fprintf ((file), "\tmov.l\t@r15+,r%s\n", (v)); ++ fprintf ((file), "\tmov.l\t@r15+,r%d\n", (v)); - #else /* OBJECT_FORMAT_ELF */ + /* The assembler's names for the registers. RFP need not always be used as + the Real framepointer; it can also be used as a normal general register. +@@ -2214,3 +2214,5 @@ + #define SH_DYNAMIC_SHIFT_COST \ + (TARGET_HARD_SH4 ? 1 : TARGET_SH3 ? (TARGET_SMALLCODE ? 1 : 2) : 20) ++ ++#define DWARF_LINE_MIN_INSTR_LENGTH 2 |