Changes for GCC version 2.6.2 from version 2.6.1: Before applying these diffs, go to the directory gcc-2.6.1. Remove all files that are not part of the distribution with the command make distclean Then use the command patch -p1 feeding it the following diffs as input. Then rename the directory to gcc-2.6.2, re-run the configure script, and rebuild the compiler. Changes in files you can reconstruct with Bison, etags, makeinfo, and TeX have been omitted. Some of these files are updated just by building the compiler. You can update rest of these files by executing this command make TAGS info dvi -f Makefile.in in the gcc-2.6.2 directory, provided the necessary tools (etags, makeinfo, TeX and texi2dvi) are installed. diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/ChangeLog gcc-2.6.2/ChangeLog *** gcc-2.6.1/ChangeLog Tue Nov 1 21:32:40 1994 --- gcc-2.6.2/ChangeLog Sat Nov 12 06:36:04 1994 *************** *** 1,2 **** --- 1,177 ---- + Sat Nov 12 06:35:42 1994 Richard Kenner + + * Version 2.6.2 released. + + Sat Nov 12 06:35:21 1994 Torbjorn Granlund (tege@cygnus.com) + + * expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Promote signed + division by 0x80000000 to unsigned. + + Fri Nov 11 17:07:35 1994 Michael Meissner (meissner@osf.org) + + * c-common.c (decl_attributes): Add double-underscore version of + printf and scanf for format type. + + Fri Nov 11 16:38:04 1994 Jim Wilson (wilson@chestnut.cygnus.com) + + * mips-tdump.c: Include . Delete ctime prototype. + + Fri Nov 11 14:16:00 1994 Holger Teutsch + + * clipper.md (movsi+1): Allow r->m move during reloading. + + Fri Nov 11 12:40:51 1994 Richard Kenner + + * c-decl.c (duplicate_decls): Properly merge decls with + differing DECL_CONTEXT. + + * function.c (preserve_rtl_expr_result): find_temp_slot_from_address + now used. + Don't bring the temp slot to an inner level than it was. + (assign_stack_temp): Always initialize p->rtl_expr. + + * m68k/mot3300g.h (SPACE_AFTER_L_OPTION): Deleted. + + Thu Nov 10 18:50:52 1994 Kresten Krab Thorup (krab@next.com) + + * objc/list.h: Add ifndef/define for repeated inclusion. + + Thu Nov 10 18:02:58 1994 Michael Meissner + + * c-common.c (decl_attributes): Check for attributes with leading + and trailing double underscores. + + Thu Nov 10 17:55:07 1994 Chris Metcalf (metcalf@catfish.lcs.mit.edu) + + * fixincludes: Make argument type const for popen and tempnam in + stdio.h and for strdup in string.h, for OSF/1 V3.0. + + * va-alpha.h (va_arg): Add cast to void * to suppress warning. + + Thu Nov 10 17:48:21 1994 Walter Misar (hrz.th-darmstadt.de) + + * m68k/hp320.h (FUNCTION_{PRO,EPI}LOGUE): Don't define. + (IMMEDIATE_PREFIX, REGISTER_PREFIX): Define. + + Thu Nov 10 15:04:57 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * m68k/crds.h (FUNCTION_{PRO,EPI}LOGUE): Add code to adjust stack + when no frame pointer. + * m68k.c (output_function_epilogue): Use a1 as scratch, not a0. + * m68k/tower-as.h (FUNCTION_{PRO,EPI}LOGUE): No longer defined. + (FUNCTION_EXTRA_EPILOGUE): Define. + * m68k/tower.h (REGISTER_PREFIX, IMMEDIATE_PREFIX): Define. + + * i386/x-sco, i386/x-sco4 (CLIB): Add -lPW. + (ALLOCA): Delete. + + * c-common.c ({print,scan}_char_table): Allow `L' modifier + for integer output formats. + (check_format_info): Treat `ll' like `q'. + + * rs6000.md (movsi): In TOC symbol case, use "la" for PowerPC. + (movdi): Handle TOC symbol just like movsi. + + * objc-act.c (init_objc): Add missing casts to args of bcopy. + (lang_init): Ensure line number is 0, not -1. + + Tue Nov 8 07:51:53 1994 Paul Eggert + + * cccp.c (dump_single_macro, dump_defn_1): If -traditional, + dump macros in traditional style. This also avoids a bogus error + message if the macro uses traditional stringizing. + + Mon Nov 7 21:28:13 1994 Michael I Bushnell + + * protoize.c [!POSIX]: Only define O_RDONLY and O_WRONLY if not + already defined. + + Mon Nov 7 19:33:31 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu) + + * combine.c (try_combine): Update split_code after converting MULT + to ASHIFT. + + Mon Nov 7 12:26:24 1994 Torbjorn Granlund + + * rs6000.md (DImode load-with-update matcher): Fix typo in MEM mode. + (compare patterns): Fix several typos, SImode => CCmode. + * sh.md (subdi3): Delete % from constraints. + * 1750a.md (subqi3): Likewise. + * clipper.md (subdi3): Likewise. + * i370.md (subqi3): Likewise. + (anonymous subqi3 matcher): Likewise. + * i860.md (subdi3): Likewise. + * dsp16xx.md (mulqi3): Fix typo in MULT mode. + * elxsi.md (one_cmplsi2): Fix typo in NOT mode. + + Mon Nov 7 12:47:37 1994 Ian Lance Taylor + + * m68kv4.h (ASM_IDENTIFY_GCC): Use proper definition for SGS assembler. + + Mon Nov 7 11:02:25 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * gcc.c (process_command): Ignore LIBRARY_PATH and LPATH if + cross-compiler. + + Sun Nov 6 07:23:37 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cross-test.c (foo): Return value for BU in range for shifts. + + Sat Nov 5 14:25:36 1994 Jim Wilson (wilson@chestnut.cygnus.com) + + * m68k.h (PREFERRED_RELOAD_CLASS): FP constants rejected by 'G' + are OK for class FP_REGS. + + Sat Nov 5 14:08:31 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * calls.c (store_one_arg): Preserve any temp slots whose address + may have been taken. + + * real.c (GET_REAL, PUT_REAL): Cast args to bcopy to char *. + * reload1.c (reload): Likewise. + * i386.c ({save,restore}_386_machine_status): Likewise. + * reg-stack.c (subst_asm_stack_regs): Likewise. + (BLOCK_NUM): Rework to avoid cast of abort to int *. + (find_blocks): Don't use BLOCK_NUM on lhs. + (reg_to_stack, record_arg_reg_life): Cast arg to bzero to char *. + + Sat Nov 5 08:29:45 1994 Paul Eggert + + * cccp.c (rescan): Do not preserve newlines after macro name + if rescanning a macro expansion. Instead, preserve them if + not outputting marks. + + Fri Nov 4 17:25:29 1994 John David Anglin (dave@hiauly1.hia.nrc.ca) + + * vax.c: Include tree.h and VMS-specific functions #ifdef VMS_TARGET. + * vms.h (VMS_TARGET): Define. + + Fri Nov 4 17:19:30 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * bi-arity.c (main): Cast enum to char in output. + * bc-emit.c (bc_emit_bytecode): Add missing cast. + + Thu Nov 3 18:55:42 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * Makefile.in (c-parse.o, c-lex.o): c-parse.h is in $(srcdir). + + Thu Nov 3 18:11:56 1994 John F Carr (jfc@mit.edu) + + * rs6000.md (movsi): New alternative for SYMBOL_REF source operand. + * rs6000.c (print_operand): New code '*' to print TOC register number. + (input_operand): Allow address of TOC entry. + * rs6000.h (EXTRA_CONSTRAINT): 'R' matches a SYMBOL_REF for TOC entry. + (PRINT_OPERAND_PUNCT_VALID_P): Recognize '*'. + (PREDICATE_CODES): input_operand can now match SYMBOL_REF. + + Thu Nov 3 18:03:24 1994 Jason Merrill (jason@phydeaux.cygnus.com) + + * cccp.c: TOOL_INCLUDE_DIR is not C++-aware. + + Thu Nov 3 17:23:30 1994 Jim Wilson (wilson@chestnut.cygnus.com) + + * mips.c (mips_output_external): Exclude alloca from list of + used external functions. + Tue Nov 1 19:19:41 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/INSTALL gcc-2.6.2/INSTALL *** gcc-2.6.1/INSTALL Sun Oct 30 08:08:48 1994 --- gcc-2.6.2/INSTALL Fri Nov 11 19:03:49 1994 *************** *** 32,36 **** this by running the file `configure'. ! The "build" machine is the system which you are usinfg, the "host" machine is the system where you want to run the resulting compiler (normally the build machine), and the "target" machine is the --- 32,36 ---- this by running the file `configure'. ! The "build" machine is the system which you are using, the "host" machine is the system where you want to run the resulting compiler (normally the build machine), and the "target" machine is the *************** *** 992,999 **** `mips-sgi-*' ! Silicon Graphics MIPS machines running IRIX. In order to compile ! GCC on an SGI the "c.hdr.lib" option must be installed from the ! CD-ROM supplied from Silicon Graphics. This is found on the 2nd ! CD in release 4.0.1. `make compare' may fail on version 5 of IRIX unless you add --- 992,998 ---- `mips-sgi-*' ! In order to compile GCC on an SGI running IRIX 4, the "c.hdr.lib" ! option must be installed from the CD-ROM supplied from Silicon ! Graphics. This is found on the 2nd CD in release 4.0.1. `make compare' may fail on version 5 of IRIX unless you add *************** *** 1076,1083 **** `rs6000-*-aix' If you are running AIX version 3.2.5 and have XLC version 1.3.0.0, ! you must obtain XLC 1.3.0.2 by requesting PTF 421749 from IBM. If ! you are using an older version of AIX you may have an old version ! of the IBM assembler, which cannot correctly handle debugging ! directives. See the file `README.RS6000' for more details. The PowerPC and POWER2 architectures are now supported, but have --- 1075,1085 ---- `rs6000-*-aix' If you are running AIX version 3.2.5 and have XLC version 1.3.0.0, ! you must obtain XLC 1.3.0.1 by requesting PTF 421749 from IBM. ! Likewise, XLC-1.3.0.19 cannot correctly compile GNU CC; you must ! obtain XLC-1.3.0.24 by requesting PTF 432238 from IBM. If you are ! using an older version of AIX you may have an old version of the ! IBM assembler, which cannot correctly handle debugging directives. ! See the file `README.RS6000' for more details on both of these ! problems. The PowerPC and POWER2 architectures are now supported, but have diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/Makefile.in gcc-2.6.2/Makefile.in *** gcc-2.6.1/Makefile.in Fri Oct 28 19:00:38 1994 --- gcc-2.6.2/Makefile.in Thu Nov 3 18:54:52 1994 *************** *** 947,952 **** # C language specific files. ! c-parse.o : $(srcdir)/c-parse.c $(CONFIG_H) $(TREE_H) c-lex.h c-parse.h \ ! c-tree.h input.h flags.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c $(srcdir)/c-parse.c $(srcdir)/c-parse.c $(srcdir)/c-parse.h: $(srcdir)/c-parse.y --- 947,952 ---- # C language specific files. ! c-parse.o : $(srcdir)/c-parse.c $(CONFIG_H) $(TREE_H) c-lex.h \ ! $(srcdir)/c-parse.h c-tree.h input.h flags.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c $(srcdir)/c-parse.c $(srcdir)/c-parse.c $(srcdir)/c-parse.h: $(srcdir)/c-parse.y *************** *** 966,970 **** c-typeck.o : c-typeck.c $(CONFIG_H) $(TREE_H) c-tree.h flags.h c-lang.o : c-lang.c $(CONFIG_H) $(TREE_H) ! c-lex.o : c-lex.c $(CONFIG_H) $(TREE_H) c-lex.h c-tree.h c-parse.h \ input.h flags.h $(srcdir)/c-gperf.h c-aux-info.o : c-aux-info.c $(CONFIG_H) $(TREE_H) c-tree.h flags.h --- 966,970 ---- c-typeck.o : c-typeck.c $(CONFIG_H) $(TREE_H) c-tree.h flags.h c-lang.o : c-lang.c $(CONFIG_H) $(TREE_H) ! c-lex.o : c-lex.c $(CONFIG_H) $(TREE_H) c-lex.h c-tree.h $(srcdir)/c-parse.h \ input.h flags.h $(srcdir)/c-gperf.h c-aux-info.o : c-aux-info.c $(CONFIG_H) $(TREE_H) c-tree.h flags.h diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/NEWS gcc-2.6.2/NEWS *** gcc-2.6.1/NEWS Mon Oct 31 18:02:51 1994 --- gcc-2.6.2/NEWS Sat Nov 12 06:37:00 1994 *************** *** 1,2 **** --- 1,8 ---- + Noteworthy changes in GCC version 2.6.2: + + A few bugs have been fixed. + + Names of attributes can now be preceeded and followed by double underscores. + Noteworthy changes in GCC version 2.6.1: diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/README gcc-2.6.2/README *** gcc-2.6.1/README Tue Nov 1 21:33:12 1994 --- gcc-2.6.2/README Sat Nov 12 06:37:18 1994 *************** *** 1,3 **** ! This directory contains the version 2.6.1 release of the GNU C compiler. It includes all of the support for compiling C++ and Objective C, including a run-time library for Objective C. --- 1,3 ---- ! This directory contains the version 2.6.2 release of the GNU C compiler. It includes all of the support for compiling C++ and Objective C, including a run-time library for Objective C. diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/README.RS6000 gcc-2.6.2/README.RS6000 *** gcc-2.6.1/README.RS6000 Tue Jun 14 17:38:42 1994 --- gcc-2.6.2/README.RS6000 Fri Nov 11 18:24:47 1994 *************** *** 52,56 **** ! AIX 3.2.5 XLC-1.3.0.0 problems XLC version 1.3.0.0 distributed with AIX 3.2.5 will miscompile jump.c when --- 52,56 ---- ! AIX 3.2.5 XLC-1.3 problems XLC version 1.3.0.0 distributed with AIX 3.2.5 will miscompile jump.c when *************** *** 57,63 **** building the stage1 compiler during the bootstrap process. This will cause GCC to crash and the bootstrap to fail later while compiling libgcc2.c. XLC ! version 1.3.0.1 or later fixes this problem. You can obtain XLC-1.3.0.2 by ! requesting PTF 421749 from IBM, or just ask for the latest release of ! XLC-1.3. --- 57,64 ---- building the stage1 compiler during the bootstrap process. This will cause GCC to crash and the bootstrap to fail later while compiling libgcc2.c. XLC ! version 1.3.0.1 or later fixes this problem. XLC-1.3.0.19 also cannot ! bootstrap GCC so please avoid that release as well. You can obtain ! XLC-1.3.0.24 by requesting PTF 432238 from IBM, or just ask for the latest ! release of XLC-1.3. diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/bc-emit.c gcc-2.6.2/bc-emit.c *** gcc-2.6.1/bc-emit.c Fri Jul 29 19:03:09 1994 --- gcc-2.6.2/bc-emit.c Fri Nov 4 16:10:21 1994 *************** *** 868,872 **** static int prev_lineno = -1; ! byte = bytecode; #ifdef BCDEBUG_PRINT_CODE --- 868,872 ---- static int prev_lineno = -1; ! byte = (char) bytecode; #ifdef BCDEBUG_PRINT_CODE diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/bi-arity.c gcc-2.6.2/bi-arity.c *** gcc-2.6.1/bi-arity.c Sat Nov 13 03:56:41 1993 --- gcc-2.6.2/bi-arity.c Fri Nov 4 16:10:16 1994 *************** *** 50,54 **** length (v->outputs), length (v->literals)); for (n = v->literals; n; n = n->next) ! printf ("%scode, ", n->text); if (v->literals == 0) printf ("0"); --- 50,54 ---- length (v->outputs), length (v->literals)); for (n = v->literals; n; n = n->next) ! printf ("(char) %scode, ", n->text); if (v->literals == 0) printf ("0"); diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/c-common.c gcc-2.6.2/c-common.c *** gcc-2.6.1/c-common.c Mon Sep 19 08:54:10 1994 --- gcc-2.6.2/c-common.c Fri Nov 11 16:42:48 1994 *************** *** 216,220 **** if (!(name = TREE_VALUE (a))) continue; ! else if (name == get_identifier ("packed")) { if (TREE_CODE (decl) == FIELD_DECL) --- 216,221 ---- if (!(name = TREE_VALUE (a))) continue; ! else if (name == get_identifier ("packed") ! || name == get_identifier ("__packed__")) { if (TREE_CODE (decl) == FIELD_DECL) *************** *** 227,231 **** } else if (TREE_VALUE (a) == get_identifier ("noreturn") ! || TREE_VALUE (a) == get_identifier ("volatile")) { if (TREE_CODE (decl) == FUNCTION_DECL) --- 228,234 ---- } else if (TREE_VALUE (a) == get_identifier ("noreturn") ! || TREE_VALUE (a) == get_identifier ("__noreturn__") ! || TREE_VALUE (a) == get_identifier ("volatile") ! || TREE_VALUE (a) == get_identifier ("__volatile__")) { if (TREE_CODE (decl) == FUNCTION_DECL) *************** *** 241,245 **** IDENTIFIER_POINTER (TREE_VALUE (a))); } ! else if (TREE_VALUE (a) == get_identifier ("const")) { if (TREE_CODE (decl) == FUNCTION_DECL) --- 244,249 ---- IDENTIFIER_POINTER (TREE_VALUE (a))); } ! else if (TREE_VALUE (a) == get_identifier ("const") ! || TREE_VALUE (a) == get_identifier ("__const__")) { if (TREE_CODE (decl) == FUNCTION_DECL) *************** *** 254,258 **** warning_with_decl (decl, "`const' attribute ignored"); } ! else if (TREE_VALUE (a) == get_identifier ("transparent_union")) { if (TREE_CODE (decl) == PARM_DECL --- 258,263 ---- warning_with_decl (decl, "`const' attribute ignored"); } ! else if (TREE_VALUE (a) == get_identifier ("transparent_union") ! || TREE_VALUE (a) == get_identifier ("__transparent_union__")) { if (TREE_CODE (decl) == PARM_DECL *************** *** 287,291 **** } else if ( args = TREE_CHAIN(name), ! !strcmp (IDENTIFIER_POINTER (name = TREE_PURPOSE (name)), "mode") && list_length (args) == 1 && TREE_CODE (TREE_VALUE (args)) == IDENTIFIER_NODE) --- 292,297 ---- } else if ( args = TREE_CHAIN(name), ! (!strcmp (IDENTIFIER_POINTER (name = TREE_PURPOSE (name)), "mode") ! || !strcmp (IDENTIFIER_POINTER (name), "__mode__")) && list_length (args) == 1 && TREE_CODE (TREE_VALUE (args)) == IDENTIFIER_NODE) *************** *** 314,318 **** error_with_decl (decl, "unknown machine mode `%s'", specified_name); } ! else if (!strcmp (IDENTIFIER_POINTER (name), "section") && list_length (args) == 1 && TREE_CODE (TREE_VALUE (args)) == STRING_CST) --- 320,325 ---- error_with_decl (decl, "unknown machine mode `%s'", specified_name); } ! else if ((!strcmp (IDENTIFIER_POINTER (name), "section") ! || !strcmp (IDENTIFIER_POINTER (name), "__section__")) && list_length (args) == 1 && TREE_CODE (TREE_VALUE (args)) == STRING_CST) *************** *** 341,345 **** #endif } ! else if (!strcmp (IDENTIFIER_POINTER (name), "aligned") && list_length (args) == 1 && TREE_CODE (TREE_VALUE (args)) == INTEGER_CST) --- 348,353 ---- #endif } ! else if ((!strcmp (IDENTIFIER_POINTER (name), "aligned") ! || !strcmp (IDENTIFIER_POINTER (name), "__aligned__")) && list_length (args) == 1 && TREE_CODE (TREE_VALUE (args)) == INTEGER_CST) *************** *** 373,377 **** DECL_ALIGN (decl) = align; } ! else if (!strcmp (IDENTIFIER_POINTER (name), "format") && list_length (args) == 3 && TREE_CODE (TREE_VALUE (args)) == IDENTIFIER_NODE --- 381,386 ---- DECL_ALIGN (decl) = align; } ! else if ((!strcmp (IDENTIFIER_POINTER (name), "format") ! || !strcmp (IDENTIFIER_POINTER (name), "__format__")) && list_length (args) == 3 && TREE_CODE (TREE_VALUE (args)) == IDENTIFIER_NODE *************** *** 395,401 **** } ! if (!strcmp (IDENTIFIER_POINTER (format_type), "printf")) is_scan = 0; ! else if (!strcmp (IDENTIFIER_POINTER (format_type), "scanf")) is_scan = 1; else --- 404,412 ---- } ! if (!strcmp (IDENTIFIER_POINTER (format_type), "printf") ! || !strcmp (IDENTIFIER_POINTER (format_type), "__printf__")) is_scan = 0; ! else if (!strcmp (IDENTIFIER_POINTER (format_type), "scanf") ! || !strcmp (IDENTIFIER_POINTER (format_type), "__scanf__")) is_scan = 1; else *************** *** 509,513 **** If NULL, then this modifier is not allowed. */ tree *llen; ! /* Type of argument if length modifier `q' is used. If NULL, then this modifier is not allowed. */ tree *qlen; --- 520,524 ---- If NULL, then this modifier is not allowed. */ tree *llen; ! /* Type of argument if length modifier `q' or `ll' is used. If NULL, then this modifier is not allowed. */ tree *qlen; *************** *** 520,525 **** static format_char_info print_char_table[] = { ! { "di", 0, T_I, T_I, T_L, T_LL, NULL, "-wp0 +" }, ! { "oxX", 0, T_UI, T_UI, T_UL, T_ULL, NULL, "-wp0#" }, { "u", 0, T_UI, T_UI, T_UL, T_ULL, NULL, "-wp0" }, /* Two GNU extensions. */ --- 531,536 ---- static format_char_info print_char_table[] = { ! { "di", 0, T_I, T_I, T_L, T_LL, T_LL, "-wp0 +" }, ! { "oxX", 0, T_UI, T_UI, T_UL, T_ULL, T_ULL, "-wp0#" }, { "u", 0, T_UI, T_UI, T_UL, T_ULL, NULL, "-wp0" }, /* Two GNU extensions. */ *************** *** 537,542 **** static format_char_info scan_char_table[] = { ! { "di", 1, T_I, T_S, T_L, T_LL, NULL, "*" }, ! { "ouxX", 1, T_UI, T_US, T_UL, T_ULL, NULL, "*" }, { "efgEG", 1, T_F, NULL, T_D, NULL, T_LD, "*" }, { "sc", 1, T_C, NULL, T_W, NULL, NULL, "*a" }, --- 548,553 ---- static format_char_info scan_char_table[] = { ! { "di", 1, T_I, T_S, T_L, T_LL, T_LL, "*" }, ! { "ouxX", 1, T_UI, T_US, T_UL, T_ULL, T_ULL, "*" }, { "efgEG", 1, T_F, NULL, T_D, NULL, T_LD, "*" }, { "sc", 1, T_C, NULL, T_W, NULL, NULL, "*a" }, *************** *** 896,899 **** --- 907,912 ---- else length_char = 0; + if (length_char == 'l' && *format_chars == 'l') + length_char = 'q', format_chars++; aflag = 0; if (*format_chars == 'a') diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/c-decl.c gcc-2.6.2/c-decl.c *** gcc-2.6.1/c-decl.c Tue Oct 18 15:40:10 1994 --- gcc-2.6.2/c-decl.c Fri Nov 11 17:52:25 1994 *************** *** 1699,1707 **** } ! /* Keep source location of definition rather than declaration. */ ! if (DECL_INITIAL (newdecl) == 0 && DECL_INITIAL (olddecl) != 0) { DECL_SOURCE_LINE (newdecl) = DECL_SOURCE_LINE (olddecl); DECL_SOURCE_FILE (newdecl) = DECL_SOURCE_FILE (olddecl); } --- 1699,1712 ---- } ! /* Keep source location of definition rather than declaration. ! Likewise, keep decl at outer scope. */ ! if ((DECL_INITIAL (newdecl) == 0 && DECL_INITIAL (olddecl) != 0) ! || (DECL_CONTEXT (newdecl) != 0 && DECL_CONTEXT (olddecl) == 0)) { DECL_SOURCE_LINE (newdecl) = DECL_SOURCE_LINE (olddecl); DECL_SOURCE_FILE (newdecl) = DECL_SOURCE_FILE (olddecl); + + if (DECL_CONTEXT (olddecl) == 0) + DECL_CONTEXT (newdecl) = 0; } diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/calls.c gcc-2.6.2/calls.c *** gcc-2.6.1/calls.c Mon Oct 17 19:03:19 1994 --- gcc-2.6.2/calls.c Sat Nov 5 14:21:20 1994 *************** *** 3066,3070 **** emit_queue (); ! /* Free any temporary slots made in processing this argument. */ free_temp_slots (); pop_temp_slots (); --- 3066,3073 ---- emit_queue (); ! /* Free any temporary slots made in processing this argument. Show ! that we might have taken the address of something and pushed that ! as an operand. */ ! preserve_temp_slots (NULL_RTX); free_temp_slots (); pop_temp_slots (); diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/cccp.c gcc-2.6.2/cccp.c *** gcc-2.6.1/cccp.c Tue Oct 25 18:37:44 1994 --- gcc-2.6.2/cccp.c Tue Nov 8 07:13:32 1994 *************** *** 605,609 **** { CROSS_INCLUDE_DIR, 0, 0 }, /* This is another place that the target system's headers might be. */ ! { TOOL_INCLUDE_DIR, 0, 1 }, #else /* not CROSS_COMPILE */ /* This should be /usr/local/include and should come before --- 605,609 ---- { CROSS_INCLUDE_DIR, 0, 0 }, /* This is another place that the target system's headers might be. */ ! { TOOL_INCLUDE_DIR, 0, 0 }, #else /* not CROSS_COMPILE */ /* This should be /usr/local/include and should come before *************** *** 612,616 **** /* This is here ahead of GCC_INCLUDE_DIR because assert.h goes here. Likewise, behind LOCAL_INCLUDE_DIR, where glibc puts its assert.h. */ ! { TOOL_INCLUDE_DIR, 0, 1 }, /* This is the dir for fixincludes. Put it just before the files that we fix. */ --- 612,616 ---- /* This is here ahead of GCC_INCLUDE_DIR because assert.h goes here. Likewise, behind LOCAL_INCLUDE_DIR, where glibc puts its assert.h. */ ! { TOOL_INCLUDE_DIR, 0, 0 }, /* This is the dir for fixincludes. Put it just before the files that we fix. */ *************** *** 3276,3283 **** Discard the macro name from the output, along with any following whitespace just copied, ! but preserve newlines at the top level since this is more likely to do the right thing with line numbers. */ obp = op->buf + obufp_before_macroname; ! if (ip->macro != 0) op->lineno = op_lineno_before_macroname; else { --- 3276,3283 ---- Discard the macro name from the output, along with any following whitespace just copied, ! but preserve newlines if not outputting marks since this is more likely to do the right thing with line numbers. */ obp = op->buf + obufp_before_macroname; ! if (output_marks) op->lineno = op_lineno_before_macroname; else { *************** *** 9032,9045 **** for (ap = defn->pattern; ap != NULL; ap = ap->next) { dump_defn_1 (defn->expansion, offset, ap->nchars, of); - if (ap->nchars != 0) - concat = 0; offset += ap->nchars; ! if (ap->stringify) ! fprintf (of, " #"); ! if (ap->raw_before && !concat) ! fprintf (of, " ## "); ! concat = 0; dump_arg_n (defn, ap->argno, of); ! if (ap->raw_after) { fprintf (of, " ## "); concat = 1; --- 9032,9047 ---- for (ap = defn->pattern; ap != NULL; ap = ap->next) { dump_defn_1 (defn->expansion, offset, ap->nchars, of); offset += ap->nchars; ! if (!traditional) { ! if (ap->nchars != 0) ! concat = 0; ! if (ap->stringify) ! fprintf (of, " #"); ! if (ap->raw_before && !concat) ! fprintf (of, " ## "); ! concat = 0; ! } dump_arg_n (defn, ap->argno, of); ! if (!traditional && ap->raw_after) { fprintf (of, " ## "); concat = 1; *************** *** 9070,9074 **** BASE is the beginning of the definition. Output characters START thru LENGTH. ! Discard newlines outside of strings, thus converting funny-space markers to ordinary spaces. */ --- 9072,9076 ---- BASE is the beginning of the definition. Output characters START thru LENGTH. ! Unless traditional, discard newlines outside of strings, thus converting funny-space markers to ordinary spaces. */ *************** *** 9083,9096 **** U_CHAR *limit = base + start + length; ! while (p < limit) { ! if (*p == '\"' || *p =='\'') { ! U_CHAR *p1 = skip_quoted_string (p, limit, 0, NULL_PTR, ! NULL_PTR, NULL_PTR); ! fwrite (p, p1 - p, 1, of); ! p = p1; ! } else { ! if (*p != '\n') ! putc (*p, of); ! p++; } } --- 9085,9102 ---- U_CHAR *limit = base + start + length; ! if (traditional) ! fwrite (p, sizeof (*p), length, of); ! else { ! while (p < limit) { ! if (*p == '\"' || *p =='\'') { ! U_CHAR *p1 = skip_quoted_string (p, limit, 0, NULL_PTR, ! NULL_PTR, NULL_PTR); ! fwrite (p, sizeof (*p), p1 - p, of); ! p = p1; ! } else { ! if (*p != '\n') ! putc (*p, of); ! p++; ! } } } diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/combine.c gcc-2.6.2/combine.c *** gcc-2.6.1/combine.c Tue Oct 18 19:08:56 1994 --- gcc-2.6.2/combine.c Mon Nov 7 19:30:35 1994 *************** *** 1836,1841 **** && GET_CODE (XEXP (*split, 1)) == CONST_INT && (i = exact_log2 (INTVAL (XEXP (*split, 1)))) >= 0) ! SUBST (*split, gen_rtx_combine (ASHIFT, split_mode, ! XEXP (*split, 0), GEN_INT (i))); #ifdef INSN_SCHEDULING --- 1836,1846 ---- && GET_CODE (XEXP (*split, 1)) == CONST_INT && (i = exact_log2 (INTVAL (XEXP (*split, 1)))) >= 0) ! { ! SUBST (*split, gen_rtx_combine (ASHIFT, split_mode, ! XEXP (*split, 0), GEN_INT (i))); ! /* Update split_code because we may not have a multiply ! anymore. */ ! split_code = GET_CODE (*split); ! } #ifdef INSN_SCHEDULING diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/1750a/1750a.md gcc-2.6.2/config/1750a/1750a.md *** gcc-2.6.1/config/1750a/1750a.md Tue Sep 20 19:31:39 1994 --- gcc-2.6.2/config/1750a/1750a.md Mon Nov 7 17:46:45 1994 *************** *** 522,526 **** (define_insn "subqi3" [(set (match_operand:QI 0 "general_operand" "=r,r,r,r,m") ! (minus:QI (match_operand:QI 1 "general_operand" "%0,0,0,0,0") (match_operand:QI 2 "general_operand" "I,i,r,m,I")))] "" --- 522,526 ---- (define_insn "subqi3" [(set (match_operand:QI 0 "general_operand" "=r,r,r,r,m") ! (minus:QI (match_operand:QI 1 "general_operand" "0,0,0,0,0") (match_operand:QI 2 "general_operand" "I,i,r,m,I")))] "" diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/clipper/clipper.md gcc-2.6.2/config/clipper/clipper.md *** gcc-2.6.1/config/clipper/clipper.md Sun Apr 10 07:04:54 1994 --- gcc-2.6.2/config/clipper/clipper.md Fri Nov 11 14:14:27 1994 *************** *** 386,397 **** }") ! ;; provide 2 patterns with different predicates as 'general_operand' in both ! ;; positions results in a 'mem -> mem' move from combine that must be reloaded ;; ! (define_insn "" ! [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") ! (match_operand:SI 1 "general_operand" "r,m,n,i"))] ! "" "* { --- 386,402 ---- }") ! ;; Reject both args with `general_operand' if not reloading because a ! ;; mem -> mem move that was split by 'movsi' can be recombined to ! ;; mem -> mem by the combiner. ;; ! ;; As a pseudo register can end up in a stack slot during reloading we must ! ;; allow a r->m move for the next pattern. ! ;; The first predicate must be `general_operand' because a predicate must ! ;; be true for each constraint. ! ;; (define_insn "" ! [(set (match_operand:SI 0 "general_operand" "=r,r,r,r,m") ! (match_operand:SI 1 "general_operand" "r,m,n,i,r"))] ! "reload_in_progress || register_operand (operands[0], SImode)" "* { *************** *** 419,425 **** if (which_alternative == 3) /* unknown const */ return \"loada %a1,%0\"; }" ! [(set_attr "type" "arith,load,arith,load") ! (set_attr "cc" "set2,change0,set1,change0")]) --- 424,432 ---- if (which_alternative == 3) /* unknown const */ return \"loada %a1,%0\"; + + return \"storw %1,%0\"; }" ! [(set_attr "type" "arith,load,arith,load,store") ! (set_attr "cc" "set2,change0,set1,change0,unchanged")]) *************** *** 754,758 **** (define_insn "subdi3" [(set (match_operand:DI 0 "int_reg_operand" "=r") ! (minus:DI (match_operand:DI 1 "int_reg_operand" "%0") (match_operand:DI 2 "int_reg_operand" "r")))] "" --- 761,765 ---- (define_insn "subdi3" [(set (match_operand:DI 0 "int_reg_operand" "=r") ! (minus:DI (match_operand:DI 1 "int_reg_operand" "0") (match_operand:DI 2 "int_reg_operand" "r")))] "" diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/dsp16xx/dsp16xx.md gcc-2.6.2/config/dsp16xx/dsp16xx.md *** gcc-2.6.1/config/dsp16xx/dsp16xx.md Fri Sep 9 13:27:51 1994 --- gcc-2.6.2/config/dsp16xx/dsp16xx.md Mon Nov 7 17:46:56 1994 *************** *** 564,568 **** (define_insn "mulqi3" [(set (match_operand:QI 0 "register_operand" "=w") ! (mult:HI (match_operand:QI 1 "register_operand" "%x") (match_operand:QI 2 "register_operand" "y"))) (clobber (match_scratch:QI 3 "=v"))] --- 564,568 ---- (define_insn "mulqi3" [(set (match_operand:QI 0 "register_operand" "=w") ! (mult:QI (match_operand:QI 1 "register_operand" "%x") (match_operand:QI 2 "register_operand" "y"))) (clobber (match_scratch:QI 3 "=v"))] diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/elxsi/elxsi.md gcc-2.6.2/config/elxsi/elxsi.md *** gcc-2.6.1/config/elxsi/elxsi.md Sun Apr 10 07:07:02 1994 --- gcc-2.6.2/config/elxsi/elxsi.md Mon Nov 7 17:47:04 1994 *************** *** 855,859 **** (define_insn "one_cmplsi2" [(set (match_operand:SI 0 "register_operand" "=r") ! (not:DI (match_operand:SI 1 "register_operand" "r")))] "" "not\\t%0,%1") --- 855,859 ---- (define_insn "one_cmplsi2" [(set (match_operand:SI 0 "register_operand" "=r") ! (not:SI (match_operand:SI 1 "register_operand" "r")))] "" "not\\t%0,%1") diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/i370/i370.md gcc-2.6.2/config/i370/i370.md *** gcc-2.6.1/config/i370/i370.md Sun Apr 10 07:09:31 1994 --- gcc-2.6.2/config/i370/i370.md Mon Nov 7 17:47:12 1994 *************** *** 2001,2005 **** (define_expand "subqi3" [(set (match_operand:QI 0 "general_operand" "=d") ! (minus:QI (match_operand:QI 1 "general_operand" "%0") (match_operand:QI 2 "general_operand" "di")))] "" --- 2001,2005 ---- (define_expand "subqi3" [(set (match_operand:QI 0 "general_operand" "=d") ! (minus:QI (match_operand:QI 1 "general_operand" "0") (match_operand:QI 2 "general_operand" "di")))] "" *************** *** 2022,2026 **** (define_insn "" [(set (match_operand:QI 0 "register_operand" "=d") ! (minus:QI (match_operand:QI 1 "register_operand" "%0") (match_operand:QI 2 "register_operand" "d")))] "" --- 2022,2026 ---- (define_insn "" [(set (match_operand:QI 0 "register_operand" "=d") ! (minus:QI (match_operand:QI 1 "register_operand" "0") (match_operand:QI 2 "register_operand" "d")))] "" diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/i386/i386.c gcc-2.6.2/config/i386/i386.c *** gcc-2.6.1/config/i386/i386.c Fri Oct 7 15:45:14 1994 --- gcc-2.6.2/config/i386/i386.c Sat Nov 5 13:57:47 1994 *************** *** 2807,2811 **** { p->machine = (struct machine_function *) xmalloc (sizeof i386_stack_locals); ! bcopy (i386_stack_locals, p->machine->i386_stack_locals, sizeof i386_stack_locals); } --- 2807,2811 ---- { p->machine = (struct machine_function *) xmalloc (sizeof i386_stack_locals); ! bcopy ((char *) i386_stack_locals, (char *) p->machine->i386_stack_locals, sizeof i386_stack_locals); } *************** *** 2815,2819 **** struct function *p; { ! bcopy (p->machine->i386_stack_locals, i386_stack_locals, sizeof i386_stack_locals); free (p->machine); --- 2815,2819 ---- struct function *p; { ! bcopy ((char *) p->machine->i386_stack_locals, (char *) i386_stack_locals, sizeof i386_stack_locals); free (p->machine); diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/i386/x-sco gcc-2.6.2/config/i386/x-sco *** gcc-2.6.1/config/i386/x-sco Sat Oct 1 20:41:12 1994 --- gcc-2.6.2/config/i386/x-sco Thu Nov 10 18:43:43 1994 *************** *** 5,8 **** RCCFLAGS = -Dunix -Di386 -DM_UNIX -DM_I386 -DNULL=0 CCLIBFLAGS = ! CLIB = -lmalloc ! ALLOCA = -lPW --- 5,7 ---- RCCFLAGS = -Dunix -Di386 -DM_UNIX -DM_I386 -DNULL=0 CCLIBFLAGS = ! CLIB = -lmalloc -lPW diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/i386/x-sco4 gcc-2.6.2/config/i386/x-sco4 *** gcc-2.6.1/config/i386/x-sco4 Sat Oct 1 20:41:15 1994 --- gcc-2.6.2/config/i386/x-sco4 Thu Nov 10 18:44:24 1994 *************** *** 5,10 **** RCCFLAGS = -Dunix -Di386 -DM_UNIX -DM_I386 -DNULL=0 CCLIBFLAGS = ! CLIB = -lmalloc ! ALLOCA = -lPW # See all the declarations. --- 5,9 ---- RCCFLAGS = -Dunix -Di386 -DM_UNIX -DM_I386 -DNULL=0 CCLIBFLAGS = ! CLIB = -lmalloc -lPW # See all the declarations. diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/i860/i860.md gcc-2.6.2/config/i860/i860.md *** gcc-2.6.1/config/i860/i860.md Mon Jun 28 13:45:18 1993 --- gcc-2.6.2/config/i860/i860.md Mon Nov 7 17:47:18 1994 *************** *** 1685,1689 **** (define_insn "subdi3" [(set (match_operand:DI 0 "register_operand" "=f") ! (minus:DI (match_operand:DI 1 "register_operand" "%f") (match_operand:DI 2 "register_operand" "f")))] "" --- 1685,1689 ---- (define_insn "subdi3" [(set (match_operand:DI 0 "register_operand" "=f") ! (minus:DI (match_operand:DI 1 "register_operand" "f") (match_operand:DI 2 "register_operand" "f")))] "" diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/m68k/crds.h gcc-2.6.2/config/m68k/crds.h *** gcc-2.6.1/config/m68k/crds.h Sat Jul 30 15:01:49 1994 --- gcc-2.6.2/config/m68k/crds.h Thu Nov 10 19:10:10 1994 *************** *** 494,497 **** --- 494,509 ---- else \ fprintf (FILE, "\tlink a6,$0\n\tsubl $%d,sp\n", fsize); } \ + else if (fsize) \ + { \ + /* Adding negative number is faster on the 68040. */ \ + if (fsize + 4 < 0x8000) \ + { \ + fprintf (FILE, "\tadd.w #%d,sp\n", - (fsize + 4)); \ + } \ + else \ + { \ + fprintf (FILE, "\tadd.l #%d,sp\n", - (fsize + 4)); \ + } \ + } \ for (regno = 24; regno < 56; regno++) \ if (regs_ever_live[regno] && ! call_used_regs[regno]) \ *************** *** 603,606 **** --- 615,629 ---- if (frame_pointer_needed) \ fprintf (FILE, "\tunlk a6\n"); \ + else if (fsize) \ + { \ + if (fsize + 4 < 0x8000) \ + { \ + fprintf (FILE, "\tadd.w #%d,sp\n", fsize + 4); \ + } \ + else \ + { \ + fprintf (FILE, "\tadd.l #%d,sp\n", fsize + 4); \ + } \ + } \ if (current_function_pops_args) \ fprintf (FILE, "\trtd $%d\n", current_function_pops_args); \ diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/m68k/hp320.h gcc-2.6.2/config/m68k/hp320.h *** gcc-2.6.1/config/m68k/hp320.h Thu Aug 11 13:28:59 1994 --- gcc-2.6.2/config/m68k/hp320.h Thu Nov 10 17:47:34 1994 *************** *** 157,162 **** #undef TARGET_VERSION #undef REGISTER_NAMES - #undef FUNCTION_PROLOGUE - #undef FUNCTION_EPILOGUE #undef ASM_OUTPUT_REG_PUSH #undef ASM_OUTPUT_REG_POP --- 157,160 ---- *************** *** 185,188 **** --- 183,188 ---- #undef ASM_OUTPUT_INTERNAL_LABEL #undef GLOBAL_ASM_OP + #undef IMMEDIATE_PREFIX + #undef REGISTER_PREFIX #define TARGET_VERSION fprintf (stderr, " (68k, SGS/hpux syntax)"); *************** *** 193,289 **** "%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7"} ! #define FUNCTION_PROLOGUE(FILE, SIZE) \ ! { register int regno; \ ! register int mask = 0; \ ! extern char call_used_regs[]; \ ! int fsize = (SIZE); \ ! if (frame_pointer_needed) \ ! { if (fsize < 0x8000) \ ! fprintf (FILE, "\tlink.w %%a6,&%d\n", -fsize); \ ! else if (TARGET_68020) \ ! fprintf (FILE, "\tlink.l %%a6,&%d\n", -fsize); \ ! else \ ! fprintf (FILE, "\tlink.w %%a6,&0\n\tsub.l &%d,%%sp\n", fsize); } \ ! for (regno = 16; regno < FIRST_PSEUDO_REGISTER; regno++) \ ! if (regs_ever_live[regno] && ! call_used_regs[regno]) \ ! mask |= 1 << (regno - 16); \ ! if (mask != 0) \ ! fprintf (FILE, "\tfmovem &0x%x,-(%%sp)\n", mask & 0xff); \ ! mask = 0; \ ! for (regno = 0; regno < 16; regno++) \ ! if (regs_ever_live[regno] && ! call_used_regs[regno]) \ ! mask |= 1 << (15 - regno); \ ! if (frame_pointer_needed) \ ! mask &= ~ (1 << (15-FRAME_POINTER_REGNUM)); \ ! if (exact_log2 (mask) >= 0) \ ! fprintf (FILE, "\tmov.l %s,-(%%sp)\n", reg_names[15 - exact_log2 (mask)]); \ ! else if (mask) fprintf (FILE, "\tmovm.l &0x%x,-(%%sp)\n", mask); }\ ! if (flag_pic && current_function_uses_pic_offset_table) \ ! { \ ! fprintf (FILE, "\tmov.l &DLT, %s\n",\ ! reg_names[PIC_OFFSET_TABLE_REGNUM]); \ ! fprintf (FILE, "\tlea.l -0x6(%%pc,%s.l),%s\n", \ ! reg_names[PIC_OFFSET_TABLE_REGNUM], \ ! reg_names[PIC_OFFSET_TABLE_REGNUM]); \ ! } #define FUNCTION_PROFILER(FILE, LABEL_NO) \ fprintf (FILE, "\tmov.l &LP%d,%%a0\n\tjsr mcount\n", (LABEL_NO)); - - #define FUNCTION_EPILOGUE(FILE, SIZE) \ - { register int regno; \ - register int mask, fmask; \ - register int nregs; \ - int offset, foffset; \ - extern char call_used_regs[]; \ - int fsize = (SIZE); \ - int big = 0; \ - nregs = 0; fmask = 0; \ - for (regno = 16; regno < FIRST_PSEUDO_REGISTER; regno++) \ - if (regs_ever_live[regno] && ! call_used_regs[regno]) \ - { nregs++; fmask |= 1 << (23 - regno); } \ - foffset = nregs * 12; \ - nregs = 0; mask = 0; \ - if (frame_pointer_needed) regs_ever_live[FRAME_POINTER_REGNUM] = 0; \ - for (regno = 0; regno < 16; regno++) \ - if (regs_ever_live[regno] && ! call_used_regs[regno]) \ - { nregs++; mask |= 1 << regno; } \ - offset = foffset + nregs * 4; \ - if (offset + fsize >= 0x8000 && frame_pointer_needed) \ - { fprintf (FILE, "\tmov.l &%d,%%a0\n", -fsize); \ - fsize = 0, big = 1; } \ - if (exact_log2 (mask) >= 0) { \ - if (big) \ - fprintf (FILE, "\tmov.l -%d(%%a6,%%a0.l),%s\n", \ - offset + fsize, reg_names[exact_log2 (mask)]); \ - else if (! frame_pointer_needed) \ - fprintf (FILE, "\tmov.l (%%sp)+,%s\n", \ - reg_names[exact_log2 (mask)]); \ - else \ - fprintf (FILE, "\tmov.l -%d(%%a6),%s\n", \ - offset + fsize, reg_names[exact_log2 (mask)]); } \ - else if (mask) { \ - if (big) \ - fprintf (FILE, "\tmovm.l -%d(%%a6,%%a0.l),&0x%x\n", \ - offset + fsize, mask); \ - else if (! frame_pointer_needed) \ - fprintf (FILE, "\tmovm.l (%%sp)+,&0x%x\n", mask); \ - else \ - fprintf (FILE, "\tmovm.l -%d(%%a6),&0x%x\n", \ - offset + fsize, mask); } \ - if (fmask) { \ - if (big) \ - fprintf (FILE, "\tfmovem -%d(%%a6,%%a0.l),&0x%x\n", \ - foffset + fsize, fmask); \ - else if (! frame_pointer_needed) \ - fprintf (FILE, "\tfmovem (%%sp)+,&0x%x\n", fmask); \ - else \ - fprintf (FILE, "\tfmovem -%d(%%a6),&0x%x\n", \ - foffset + fsize, fmask); } \ - if (frame_pointer_needed) \ - fprintf (FILE, "\tunlk %%a6\n"); \ - if (current_function_pops_args) \ - fprintf (FILE, "\trtd &%d\n", current_function_pops_args); \ - else fprintf (FILE, "\trts\n"); } /* This is how to output an insn to push a register on the stack. --- 193,201 ---- "%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7"} ! #define IMMEDIATE_PREFIX "&" ! #define REGISTER_PREFIX "%" #define FUNCTION_PROFILER(FILE, LABEL_NO) \ fprintf (FILE, "\tmov.l &LP%d,%%a0\n\tjsr mcount\n", (LABEL_NO)); /* This is how to output an insn to push a register on the stack. diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/m68k/m68k.c gcc-2.6.2/config/m68k/m68k.c *** gcc-2.6.1/config/m68k/m68k.c Sat Apr 16 19:16:27 1994 --- gcc-2.6.2/config/m68k/m68k.c Thu Nov 10 19:10:17 1994 *************** *** 331,337 **** { #ifdef MOTOROLA ! asm_fprintf (stream, "\t%Omove.l %0I%d,%Ra0\n", -fsize); #else ! asm_fprintf (stream, "\tmovel %0I%d,%Ra0\n", -fsize); #endif fsize = 0, big = 1; --- 331,337 ---- { #ifdef MOTOROLA ! asm_fprintf (stream, "\t%Omove.l %0I%d,%Ra1\n", -fsize); #else ! asm_fprintf (stream, "\tmovel %0I%d,%Ra1\n", -fsize); #endif fsize = 0, big = 1; *************** *** 353,357 **** { #ifdef MOTOROLA ! asm_fprintf (stream, "\t%Omove.l -%d(%s,%Ra0.l),%s\n", offset + fsize, reg_names[FRAME_POINTER_REGNUM], --- 353,357 ---- { #ifdef MOTOROLA ! asm_fprintf (stream, "\t%Omove.l -%d(%s,%Ra1.l),%s\n", offset + fsize, reg_names[FRAME_POINTER_REGNUM], *************** *** 358,362 **** reg_names[i]); #else ! asm_fprintf (stream, "\tmovel %s@(-%d,%Ra0:l),%s\n", reg_names[FRAME_POINTER_REGNUM], offset + fsize, reg_names[i]); --- 358,362 ---- reg_names[i]); #else ! asm_fprintf (stream, "\tmovel %s@(-%d,%Ra1:l),%s\n", reg_names[FRAME_POINTER_REGNUM], offset + fsize, reg_names[i]); *************** *** 394,398 **** { #ifdef MOTOROLA ! asm_fprintf (stream, "\tmovm.l -%d(%s,%Ra0.l),%0I0x%x\n", offset + fsize, reg_names[FRAME_POINTER_REGNUM], --- 394,398 ---- { #ifdef MOTOROLA ! asm_fprintf (stream, "\tmovm.l -%d(%s,%Ra1.l),%0I0x%x\n", offset + fsize, reg_names[FRAME_POINTER_REGNUM], *************** *** 399,403 **** mask); #else ! asm_fprintf (stream, "\tmoveml %s@(-%d,%Ra0:l),%0I0x%x\n", reg_names[FRAME_POINTER_REGNUM], offset + fsize, mask); --- 399,403 ---- mask); #else ! asm_fprintf (stream, "\tmoveml %s@(-%d,%Ra1:l),%0I0x%x\n", reg_names[FRAME_POINTER_REGNUM], offset + fsize, mask); *************** *** 431,435 **** { #ifdef MOTOROLA ! asm_fprintf (stream, "\tfmovm -%d(%s,%Ra0.l),%0I0x%x\n", foffset + fsize, reg_names[FRAME_POINTER_REGNUM], --- 431,435 ---- { #ifdef MOTOROLA ! asm_fprintf (stream, "\tfmovm -%d(%s,%Ra1.l),%0I0x%x\n", foffset + fsize, reg_names[FRAME_POINTER_REGNUM], *************** *** 436,440 **** fmask); #else ! asm_fprintf (stream, "\tfmovem %s@(-%d,%Ra0:l),%0I0x%x\n", reg_names[FRAME_POINTER_REGNUM], foffset + fsize, fmask); --- 436,440 ---- fmask); #else ! asm_fprintf (stream, "\tfmovem %s@(-%d,%Ra1:l),%0I0x%x\n", reg_names[FRAME_POINTER_REGNUM], foffset + fsize, fmask); *************** *** 470,474 **** { #ifdef MOTOROLA ! asm_fprintf (stream, "\tfpmovd -%d(%s,%Ra0.l), %s\n", fpoffset + fsize, reg_names[FRAME_POINTER_REGNUM], --- 470,474 ---- { #ifdef MOTOROLA ! asm_fprintf (stream, "\tfpmovd -%d(%s,%Ra1.l), %s\n", fpoffset + fsize, reg_names[FRAME_POINTER_REGNUM], *************** *** 475,479 **** reg_names[regno]); #else ! asm_fprintf (stream, "\tfpmoved %s@(-%d,%Ra0:l), %s\n", reg_names[FRAME_POINTER_REGNUM], fpoffset + fsize, reg_names[regno]); --- 475,479 ---- reg_names[regno]); #else ! asm_fprintf (stream, "\tfpmoved %s@(-%d,%Ra1:l), %s\n", reg_names[FRAME_POINTER_REGNUM], fpoffset + fsize, reg_names[regno]); diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/m68k/m68k.h gcc-2.6.2/config/m68k/m68k.h *** gcc-2.6.1/config/m68k/m68k.h Sun Apr 10 07:10:37 1994 --- gcc-2.6.2/config/m68k/m68k.h Sat Nov 5 14:25:00 1994 *************** *** 678,683 **** value is a constant in the range where moveq could be used and we ensure that QImodes are reloaded into data regs. ! Also, if a floating constant needs reloading, put it in memory ! if possible. */ #define PREFERRED_RELOAD_CLASS(X,CLASS) \ --- 678,684 ---- value is a constant in the range where moveq could be used and we ensure that QImodes are reloaded into data regs. ! Also, if a floating constant needs reloading, put it in memory. ! Don't do this for !G constants, since all patterns in the md file ! expect them to be loaded into a register via fpmovecr. See above. */ #define PREFERRED_RELOAD_CLASS(X,CLASS) \ *************** *** 690,694 **** : (GET_CODE (X) == CONST_DOUBLE \ && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \ ! ? NO_REGS \ : (CLASS)) --- 691,697 ---- : (GET_CODE (X) == CONST_DOUBLE \ && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \ ! ? (! CONST_DOUBLE_OK_FOR_LETTER_P (X, 'G') \ ! && CLASS == FP_REGS \ ! ? FP_REGS : NO_REGS) \ : (CLASS)) diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/m68k/m68kv4.h gcc-2.6.2/config/m68k/m68kv4.h *** gcc-2.6.1/config/m68k/m68kv4.h Wed Mar 23 16:30:25 1994 --- gcc-2.6.2/config/m68k/m68kv4.h Mon Nov 7 12:41:57 1994 *************** *** 1,4 **** /* Target definitions for GNU compiler for mc680x0 running System V.4 ! Copyright (C) 1991, 1993 Free Software Foundation, Inc. Written by Ron Guilmette (rfg@netcom.com) and Fred Fish (fnf@cygnus.com). --- 1,4 ---- /* Target definitions for GNU compiler for mc680x0 running System V.4 ! Copyright (C) 1991, 1993, 1994 Free Software Foundation, Inc. Written by Ron Guilmette (rfg@netcom.com) and Fred Fish (fnf@cygnus.com). *************** *** 25,28 **** --- 25,34 ---- #include "m68k/sgs.h" /* The m68k/SVR4 assembler is SGS based */ + + /* The SGS assembler requires a special definition of + ASM_IDENTIFY_GCC. We combine the m68k/sgs.h and the svr4.h + definitions below. */ + #undef ASM_IDENTIFY_GCC + #include "svr4.h" /* Pick up the generic SVR4 macros */ *************** *** 32,35 **** --- 38,54 ---- #define TARGET_DEFAULT (5 /*68020*/ + 2 /*68881*/) #endif + + /* When using an SGS assembler, modify the name of the artificial label which + identifies this file as having been compiled with gcc, and the macro that + emits such a label in the assembly output, to use '%' rather than '.' */ + + #undef ASM_IDENTIFY_GCC + #define ASM_IDENTIFY_GCC(FILE) \ + do \ + { \ + if (write_symbols != DBX_DEBUG) \ + fputs ("gcc2_compiled%:\n", FILE); \ + } \ + while (0) /* Override the definition of NO_DOLLAR_IN_LABEL in svr4.h, for special diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/m68k/mot3300g.h gcc-2.6.2/config/m68k/mot3300g.h *** gcc-2.6.1/config/m68k/mot3300g.h Thu Jul 7 18:03:55 1994 --- gcc-2.6.2/config/m68k/mot3300g.h Fri Nov 11 12:39:02 1994 *************** *** 52,58 **** "%{m68000:-mc68000}%{mc68000:-mc68000}%{!mc68000:%{!m68000:-mc68020}}" - /* Tell GCC to put a space after -L when generating such options. */ - #define SPACE_AFTER_L_OPTION - /* Generate calls to memcpy, memcmp and memset. */ #define TARGET_MEM_FUNCTIONS --- 52,55 ---- diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/m68k/tower-as.h gcc-2.6.2/config/m68k/tower-as.h *** gcc-2.6.1/config/m68k/tower-as.h Mon Dec 13 19:04:31 1993 --- gcc-2.6.2/config/m68k/tower-as.h Thu Nov 10 19:12:34 1994 *************** *** 1,5 **** /* Definitions of target machine for GNU compiler. For NCR Tower 32/4x0 and 32/6x0 running System V Release 3. ! Copyright (C) 1990, 1993 Free Software Foundation, Inc. Written by Robert Andersson (ra@intsys.no), International Systems, Oslo, Norway. --- 1,5 ---- /* Definitions of target machine for GNU compiler. For NCR Tower 32/4x0 and 32/6x0 running System V Release 3. ! Copyright (C) 1990, 1993, 1994 Free Software Foundation, Inc. Written by Robert Andersson (ra@intsys.no), International Systems, Oslo, Norway. *************** *** 176,273 **** fprintf (FILE, "\tmov.l &LP%%%d,%%a0\n\tjsr mcount%%\n", (LABEL_NO)) ! /* The prologue is identical to the one in m68k.h except that the ! assembler syntax is different. */ ! ! #undef FUNCTION_PROLOGUE ! #define FUNCTION_PROLOGUE(FILE, SIZE) \ ! { register int regno; \ ! register int mask = 0; \ ! extern char call_used_regs[]; \ ! int fsize = ((SIZE) + 3) & -4; \ ! if (frame_pointer_needed) \ ! { if (TARGET_68020 || fsize < 0x8000) \ ! fprintf (FILE, "\tlink %%a6,&%d\n", -fsize); \ ! else \ ! fprintf (FILE, "\tlink %%a6,&0\n\tsub.l &%d,%%sp\n", fsize); } \ ! for (regno = 16; regno < 24; regno++) \ ! if (regs_ever_live[regno] && ! call_used_regs[regno]) \ ! mask |= 1 << (regno - 16); \ ! if ((mask & 0xff) != 0) \ ! fprintf (FILE, "\tfmovm &0x%x,-(%%sp)\n", mask & 0xff); \ ! mask = 0; \ ! for (regno = 0; regno < 16; regno++) \ ! if (regs_ever_live[regno] && ! call_used_regs[regno]) \ ! mask |= 1 << (15 - regno); \ ! if (frame_pointer_needed) \ ! mask &= ~ (1 << (15-FRAME_POINTER_REGNUM)); \ ! if (exact_log2 (mask) >= 0) \ ! fprintf (FILE, "\tmov.l %s,-(%%sp)\n", reg_names[15 - exact_log2 (mask)]); \ ! else if (mask) fprintf (FILE, "\tmovm.l &0x%x,-(%%sp)\n", mask); } ! ! /* The epilogue is identical to the one in m68k.h except that: ! a) The assembler syntax is different. ! b) Pointers are returned both in %d0 and %a0. ! c) FUNCTION_EXTRA_EPILOGUE is not needed. */ ! ! #undef FUNCTION_EPILOGUE ! #define FUNCTION_EPILOGUE(FILE, SIZE) \ ! { register int regno; \ ! register int mask, fmask; \ ! register int nregs; \ ! int offset, foffset; \ ! extern char call_used_regs[]; \ ! int fsize = ((SIZE) + 3) & -4; \ ! int big = 0; \ ! nregs = 0; fmask = 0; \ ! for (regno = 16; regno < 24; regno++) \ ! if (regs_ever_live[regno] && ! call_used_regs[regno]) \ ! { nregs++; fmask |= 1 << (23 - regno); } \ ! foffset = nregs * 12; \ ! nregs = 0; mask = 0; \ ! if (frame_pointer_needed) regs_ever_live[FRAME_POINTER_REGNUM] = 0; \ ! for (regno = 0; regno < 16; regno++) \ ! if (regs_ever_live[regno] && ! call_used_regs[regno]) \ ! { nregs++; mask |= 1 << regno; } \ ! offset = foffset + nregs * 4; \ ! if (offset + fsize >= 0x8000 \ ! && frame_pointer_needed \ ! && (mask || fmask)) \ ! { fprintf (FILE, "\tmov.l &%d,%%a0\n", -fsize); \ ! fsize = 0, big = 1; } \ ! if (exact_log2 (mask) >= 0) { \ ! if (big) \ ! fprintf (FILE, "\tmov.l -%d(%%a6,%%a0.l),%s\n", \ ! offset + fsize, reg_names[exact_log2 (mask)]); \ ! else if (! frame_pointer_needed) \ ! fprintf (FILE, "\tmov.l (%%sp)+,%s\n", \ ! reg_names[exact_log2 (mask)]); \ ! else \ ! fprintf (FILE, "\tmov.l -%d(%%a6),%s\n", \ ! offset + fsize, reg_names[exact_log2 (mask)]); } \ ! else if (mask) { \ ! if (big) \ ! fprintf (FILE, "\tmovm.l -%d(%%a6,%%a0.l),&0x%x\n", \ ! offset + fsize, mask); \ ! else if (! frame_pointer_needed) \ ! fprintf (FILE, "\tmovm.l (%%sp)+,&0x%x\n", mask); \ ! else \ ! fprintf (FILE, "\tmovm.l -%d(%%a6),&0x%x\n", \ ! offset + fsize, mask); } \ ! if (fmask) { \ ! if (big) \ ! fprintf (FILE, "\tfmovm -%d(%%a6,%%a0.l),&0x%x\n", \ ! foffset + fsize, fmask); \ ! else if (! frame_pointer_needed) \ ! fprintf (FILE, "\tfmovm (%%sp)+,&0x%x\n", fmask); \ ! else \ ! fprintf (FILE, "\tfmovm -%d(%%a6),&0x%x\n", \ ! foffset + fsize, fmask); } \ ! if (current_function_returns_pointer) \ ! fprintf (FILE, "\tmov.l %%d0,%%a0\n"); \ ! if (frame_pointer_needed) \ ! fprintf (FILE, "\tunlk %%a6\n"); \ ! if (current_function_pops_args) \ ! fprintf (FILE, "\trtd &%d\n", current_function_pops_args); \ ! else fprintf (FILE, "\trts\n"); } /* This is how to output an insn to push a register on the stack. --- 176,185 ---- fprintf (FILE, "\tmov.l &LP%%%d,%%a0\n\tjsr mcount%%\n", (LABEL_NO)) ! #undef FUNCTION_EXTRA_EPILOGUE ! #define FUNCTION_EXTRA_EPILOGUE(FILE, SIZE) \ ! { extern int current_function_returns_pointer; \ ! if ((current_function_returns_pointer) && \ ! ! find_equiv_reg (0, get_last_insn (), 0, 0, 0, 8, Pmode)) \ ! asm_fprintf (FILE, "\tmovl %Rd0,%Ra0\n"); } /* This is how to output an insn to push a register on the stack. diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/m68k/tower.h gcc-2.6.2/config/m68k/tower.h *** gcc-2.6.1/config/m68k/tower.h Sat Oct 2 04:20:53 1993 --- gcc-2.6.2/config/m68k/tower.h Thu Nov 10 19:11:58 1994 *************** *** 1,4 **** /* Definitions of target machine for GNU compiler. ! Copyright (C) 1990 Free Software Foundation, Inc. Written by Robert Andersson, International Systems, Oslo, Norway. --- 1,4 ---- /* Definitions of target machine for GNU compiler. ! Copyright (C) 1990, 1994 Free Software Foundation, Inc. Written by Robert Andersson, International Systems, Oslo, Norway. *************** *** 96,99 **** --- 96,105 ---- "%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%a6", "%sp", \ "%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7"}; + + #undef REGISTER_PREFIX + #define REGISTER_PREFIX "%" + + #undef IMMEDIATE_PREFIX + #define IMMEDIATE_PREFIX /* We do not want leading underscores. */ diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/mips/mips.c gcc-2.6.2/config/mips/mips.c *** gcc-2.6.1/config/mips/mips.c Mon Oct 17 19:21:06 1994 --- gcc-2.6.2/config/mips/mips.c Thu Nov 3 17:21:55 1994 *************** *** 4,8 **** 64 bit r4000 support by Ian Lance Taylor, ian@cygnus.com, and Brendan Eich, brendan@microunity.com. ! Copyright (C) 1989, 1990, 1991, 1993 Free Software Foundation, Inc. This file is part of GNU CC. --- 4,8 ---- 64 bit r4000 support by Ian Lance Taylor, ian@cygnus.com, and Brendan Eich, brendan@microunity.com. ! Copyright (C) 1989, 1990, 1991, 1993, 1994 Free Software Foundation, Inc. This file is part of GNU CC. *************** *** 3781,3785 **** #ifdef ASM_OUTPUT_UNDEF_FUNCTION ! if (TREE_CODE (decl) == FUNCTION_DECL) { p = (struct extern_list *)permalloc ((long) sizeof (struct extern_list)); --- 3781,3788 ---- #ifdef ASM_OUTPUT_UNDEF_FUNCTION ! if (TREE_CODE (decl) == FUNCTION_DECL ! /* ??? Don't include alloca, since gcc will always expand it ! inline. If we don't do this, libg++ fails to build. */ ! && strcmp (name, "alloca")) { p = (struct extern_list *)permalloc ((long) sizeof (struct extern_list)); diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/rs6000/rs6000.c gcc-2.6.2/config/rs6000/rs6000.c *** gcc-2.6.1/config/rs6000/rs6000.c Tue Jun 28 05:19:45 1994 --- gcc-2.6.2/config/rs6000/rs6000.c Thu Nov 3 18:07:40 1994 *************** *** 839,842 **** --- 839,847 ---- return; + case '*': + /* Write the register number of the TOC register. */ + fputs (TARGET_MINIMAL_TOC ? "30" : "2", file); + return; + case 'A': /* If X is a constant integer whose low-order 5 bits are zero, diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/rs6000/rs6000.h gcc-2.6.2/config/rs6000/rs6000.h *** gcc-2.6.1/config/rs6000/rs6000.h Tue Oct 11 18:38:57 1994 --- gcc-2.6.2/config/rs6000/rs6000.h Thu Nov 3 18:07:48 1994 *************** *** 683,686 **** --- 683,687 ---- #define EXTRA_CONSTRAINT(OP, C) \ ((C) == 'Q' ? GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == REG \ + : (C) == 'R' ? GET_CODE (OP) == SYMBOL_REF && CONSTANT_POOL_ADDRESS_P (OP)\ : 0) *************** *** 2156,2160 **** /* Define which CODE values are valid. */ ! #define PRINT_OPERAND_PUNCT_VALID_P(CODE) ((CODE) == '.') /* Print a memory address as an operand to reference that memory location. */ --- 2157,2161 ---- /* Define which CODE values are valid. */ ! #define PRINT_OPERAND_PUNCT_VALID_P(CODE) ((CODE) == '.' || (CODE) == '*') /* Print a memory address as an operand to reference that memory location. */ *************** *** 2187,2191 **** {"call_operand", {SYMBOL_REF, REG}}, \ {"current_file_function_operand", {SYMBOL_REF}}, \ ! {"input_operand", {SUBREG, MEM, REG, CONST_INT}}, \ {"load_multiple_operation", {PARALLEL}}, \ {"store_multiple_operation", {PARALLEL}}, \ --- 2188,2192 ---- {"call_operand", {SYMBOL_REF, REG}}, \ {"current_file_function_operand", {SYMBOL_REF}}, \ ! {"input_operand", {SUBREG, MEM, REG, CONST_INT, SYMBOL_REF}}, \ {"load_multiple_operation", {PARALLEL}}, \ {"store_multiple_operation", {PARALLEL}}, \ diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/rs6000/rs6000.md gcc-2.6.2/config/rs6000/rs6000.md *** gcc-2.6.1/config/rs6000/rs6000.md Mon Sep 19 20:23:41 1994 --- gcc-2.6.2/config/rs6000/rs6000.md Thu Nov 10 15:41:24 1994 *************** *** 3557,3562 **** (define_insn "" ! [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,m,r,r,r,*q,*c*l,*h") ! (match_operand:SI 1 "input_operand" "r,m,r,I,J,*h,r,r,0"))] "gpc_reg_operand (operands[0], SImode) || gpc_reg_operand (operands[1], SImode)" --- 3557,3562 ---- (define_insn "" ! [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,m,r,r,r,r,*q,*c*l,*h") ! (match_operand:SI 1 "input_operand" "r,m,r,I,J,R,*h,r,r,0"))] "gpc_reg_operand (operands[0], SImode) || gpc_reg_operand (operands[1], SImode)" *************** *** 3567,3570 **** --- 3567,3571 ---- {lil|li} %0,%1 {liu|lis} %0,%u1 + {cal|la} %0,%1(%*) mf%1 %0 mt%0 %1 *************** *** 3571,3575 **** mt%0 %1 cror 0,0,0" ! [(set_attr "type" "*,load,*,*,*,*,*,mtjmpr,*")]) ;; Split a load of a large constant into the appropriate two-insn --- 3572,3576 ---- mt%0 %1 cror 0,0,0" ! [(set_attr "type" "*,load,*,*,*,*,*,*,mtjmpr,*")]) ;; Split a load of a large constant into the appropriate two-insn *************** *** 3999,4004 **** (define_insn "" ! [(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,m,r,r,f,f,m,r,*h") ! (match_operand:DI 1 "input_operand" "r,m,r,I,J,f,m,f,*h,r"))] "TARGET_POWERPC64 && (gpc_reg_operand (operands[0], DImode) || gpc_reg_operand (operands[1], DImode))" --- 4000,4005 ---- (define_insn "" ! [(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,m,r,r,r,f,f,m,r,*h") ! (match_operand:DI 1 "input_operand" "r,m,r,I,J,R,f,m,f,*h,r"))] "TARGET_POWERPC64 && (gpc_reg_operand (operands[0], DImode) || gpc_reg_operand (operands[1], DImode))" *************** *** 4009,4012 **** --- 4010,4014 ---- li %0,%1 lis %0,%u1 + {cal|la} %0,%1(%*) fmr %0,%1 lfd%U1%X1 %0,%1 *************** *** 4014,4018 **** mf%1 %0 mt%0 %1" ! [(set_attr "type" "*,load,*,*,*,fp,fpload,*,*,mtjmpr")]) ;; TImode is similar, except that we usually want to compute the address into --- 4016,4020 ---- mf%1 %0 mt%0 %1" ! [(set_attr "type" "*,load,*,*,*,*,fp,fpload,*,*,mtjmpr")]) ;; TImode is similar, except that we usually want to compute the address into *************** *** 4261,4265 **** (define_insn "" [(set (match_operand:DI 3 "gpc_reg_operand" "=r,r") ! (mem:SI (plus:DI (match_operand:DI 1 "gpc_reg_operand" "0,0") (match_operand:DI 2 "reg_or_short_operand" "r,I")))) (set (match_operand:DI 0 "gpc_reg_operand" "=b,b") --- 4263,4267 ---- (define_insn "" [(set (match_operand:DI 3 "gpc_reg_operand" "=r,r") ! (mem:DI (plus:DI (match_operand:DI 1 "gpc_reg_operand" "0,0") (match_operand:DI 2 "reg_or_short_operand" "r,I")))) (set (match_operand:DI 0 "gpc_reg_operand" "=b,b") *************** *** 5600,5604 **** (define_insn "" ! [(set (match_operand:SI 3 "cc_reg_operand" "=x") (compare:CC (lt:SI (match_operand:SI 1 "gpc_reg_operand" "r") --- 5602,5606 ---- (define_insn "" ! [(set (match_operand:CC 3 "cc_reg_operand" "=x") (compare:CC (lt:SI (match_operand:SI 1 "gpc_reg_operand" "r") *************** *** 5623,5627 **** (define_insn "" ! [(set (match_operand:SI 0 "cc_reg_operand" "=x") (compare:CC (plus:SI (lt:SI (match_operand:SI 1 "gpc_reg_operand" "r") --- 5625,5629 ---- (define_insn "" ! [(set (match_operand:CC 0 "cc_reg_operand" "=x") (compare:CC (plus:SI (lt:SI (match_operand:SI 1 "gpc_reg_operand" "r") *************** *** 5636,5640 **** (define_insn "" ! [(set (match_operand:SI 5 "cc_reg_operand" "=x") (compare:CC (plus:SI (lt:SI (match_operand:SI 1 "gpc_reg_operand" "r") --- 5638,5642 ---- (define_insn "" ! [(set (match_operand:CC 5 "cc_reg_operand" "=x") (compare:CC (plus:SI (lt:SI (match_operand:SI 1 "gpc_reg_operand" "r") diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/sh/sh.md gcc-2.6.2/config/sh/sh.md *** gcc-2.6.1/config/sh/sh.md Fri Sep 9 19:33:37 1994 --- gcc-2.6.2/config/sh/sh.md Mon Nov 7 17:47:49 1994 *************** *** 299,303 **** (define_insn "subdi3" [(set (match_operand:DI 0 "register_operand" "=r") ! (minus:DI (match_operand:DI 1 "register_operand" "%0") (match_operand:DI 2 "register_operand" "r"))) (clobber (reg:SI 18))] --- 299,303 ---- (define_insn "subdi3" [(set (match_operand:DI 0 "register_operand" "=r") ! (minus:DI (match_operand:DI 1 "register_operand" "0") (match_operand:DI 2 "register_operand" "r"))) (clobber (reg:SI 18))] diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/vax/vax.c gcc-2.6.2/config/vax/vax.c *** gcc-2.6.1/config/vax/vax.c Tue Nov 1 18:33:15 1994 --- gcc-2.6.2/config/vax/vax.c Fri Nov 4 17:24:13 1994 *************** *** 29,33 **** #include "output.h" #include "insn-attr.h" ! #ifdef VMS #include "tree.h" #endif --- 29,33 ---- #include "output.h" #include "insn-attr.h" ! #ifdef VMS_TARGET #include "tree.h" #endif *************** *** 649,652 **** --- 649,655 ---- } + #ifdef VMS_TARGET + /* Additional support code for VMS target. */ + /* Linked list of all externals that are to be emitted when optimizing for the global pointer if they haven't been declared by the end of *************** *** 742,745 **** --- 745,749 ---- } } + #endif /* VMS_TARGET */ #ifdef VMS diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/config/vax/vms.h gcc-2.6.2/config/vax/vms.h *** gcc-2.6.1/config/vax/vms.h Mon Oct 31 08:06:34 1994 --- gcc-2.6.2/config/vax/vms.h Fri Nov 4 17:24:17 1994 *************** *** 18,21 **** --- 18,23 ---- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + #define VMS_TARGET + /* This enables certain macros in vax.h, which will make an indirect reference to an external symbol an invalid address. This needs to be diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/configure gcc-2.6.2/configure *** gcc-2.6.1/configure Thu Oct 27 13:15:04 1994 --- gcc-2.6.2/configure Fri Nov 11 14:19:32 1994 *************** *** 2028,2032 **** ..) ;; # The odd quoting in the next line is an attempt to work around ! # an apparent bug in bash 1.12 on linux. ${srcdir}'/*/config-lang.in') ;; *) subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" ;; --- 2028,2034 ---- ..) ;; # The odd quoting in the next line is an attempt to work around ! # an apparent bug in bash 1.12 on linux. This is known to not ! # work for bash 1.12.4. Try using ${srcdir}/[*]/config-lang.in ! # here if this doesn't work for you. ${srcdir}'/*/config-lang.in') ;; *) subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" ;; diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/cp/ChangeLog gcc-2.6.2/cp/ChangeLog *** gcc-2.6.1/cp/ChangeLog Sat Oct 29 07:19:43 1994 --- gcc-2.6.2/cp/ChangeLog Thu Nov 3 18:49:43 1994 *************** *** 1,2 **** --- 1,7 ---- + Thu Nov 3 18:48:19 1994 Paul Eggert + + * Makefile.in (spew.o, lex.o, pt.o): + Depend on $(srcdir)/parse.h, not parse.h. + Sat Oct 29 07:18:52 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/cp/Makefile.in gcc-2.6.2/cp/Makefile.in *** gcc-2.6.1/cp/Makefile.in Fri Aug 5 16:18:47 1994 --- gcc-2.6.2/cp/Makefile.in Thu Nov 3 18:46:03 1994 *************** *** 207,213 **** spew.o : spew.c $(CONFIG_H) $(CXX_TREE_H) \ ! parse.h $(srcdir)/../flags.h lex.h lex.o : lex.c $(CONFIG_H) $(CXX_TREE_H) \ ! parse.h input.c $(srcdir)/../flags.h hash.h lex.h decl.o : decl.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h \ lex.h decl.h $(srcdir)/../stack.h --- 207,213 ---- spew.o : spew.c $(CONFIG_H) $(CXX_TREE_H) \ ! $(srcdir)/parse.h $(srcdir)/../flags.h lex.h lex.o : lex.c $(CONFIG_H) $(CXX_TREE_H) \ ! $(srcdir)/parse.h input.c $(srcdir)/../flags.h hash.h lex.h decl.o : decl.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h \ lex.h decl.h $(srcdir)/../stack.h *************** *** 230,234 **** edsel.o : edsel.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../stack.h $(srcdir)/../flags.h xref.o : xref.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../input.h ! pt.o : pt.c $(CONFIG_H) $(CXX_TREE_H) decl.h parse.h error.o : error.c $(CONFIG_H) $(CXX_TREE_H) errfn.o : errfn.c $(CONFIG_H) $(CXX_TREE_H) --- 230,234 ---- edsel.o : edsel.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../stack.h $(srcdir)/../flags.h xref.o : xref.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../input.h ! pt.o : pt.c $(CONFIG_H) $(CXX_TREE_H) decl.h $(srcdir)/parse.h error.o : error.c $(CONFIG_H) $(CXX_TREE_H) errfn.o : errfn.c $(CONFIG_H) $(CXX_TREE_H) diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/cross-test.c gcc-2.6.2/cross-test.c *** gcc-2.6.1/cross-test.c Tue May 19 22:17:14 1992 --- gcc-2.6.2/cross-test.c Sun Nov 6 07:20:32 1994 *************** *** 73,77 **** foo () { ! static int table[] = {20, 69, 4, 202}; static int idx; --- 73,77 ---- foo () { ! static int table[] = {20, 69, 4, 12}; static int idx; diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/expmed.c gcc-2.6.2/expmed.c *** gcc-2.6.1/expmed.c Thu Sep 22 18:55:22 1994 --- gcc-2.6.2/expmed.c Sat Nov 12 06:34:34 1994 *************** *** 2741,2745 **** if (op1_is_constant && HOST_BITS_PER_WIDE_INT >= size) { ! if (unsignedp) { unsigned HOST_WIDE_INT mh, ml; --- 2741,2747 ---- if (op1_is_constant && HOST_BITS_PER_WIDE_INT >= size) { ! if (unsignedp ! || (INTVAL (op1) ! == (HOST_WIDE_INT) 1 << (GET_MODE_BITSIZE (compute_mode) - 1))) { unsigned HOST_WIDE_INT mh, ml; *************** *** 2902,2905 **** --- 2904,2909 ---- } + /* We have computed OP0 / abs(OP1). If OP1 is negative, negate + the quotient. */ if (d < 0) { diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/extend.texi gcc-2.6.2/extend.texi *** gcc-2.6.1/extend.texi Mon Sep 19 13:36:14 1994 --- gcc-2.6.2/extend.texi Fri Nov 11 13:44:19 1994 *************** *** 1285,1288 **** --- 1285,1293 ---- (@pxref{Variable Attributes}). + You may also specify attributes with @samp{__} preceeding and following + each keyword. This allows you to use them in header files without + being concerned about a possible macro of the same name. For example, + you may use @code{__noreturn__} instead of @code{noreturn}. + @table @code @cindex @code{noreturn} function attribute *************** *** 1587,1590 **** --- 1592,1600 ---- defined for functions, and thus not documented here; see @ref{Function Attributes}. + + You may also specify attributes with @samp{__} preceeding and following + each keyword. This allows you to use them in header files without + being concerned about a possible macro of the same name. For example, + you may use @code{__aligned__} instead of @code{aligned}. @table @code diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/fixincludes gcc-2.6.2/fixincludes *** gcc-2.6.1/fixincludes Fri Oct 14 11:55:17 1994 --- gcc-2.6.2/fixincludes Thu Nov 10 18:36:52 1994 *************** *** 1189,1193 **** fi ! # parameters not const on DECstation Ultrix V4.0. file=stdio.h if [ -r $file ] && [ ! -r ${LIB}/$file ]; then --- 1189,1193 ---- fi ! # parameters not const on DECstation Ultrix V4.0 and OSF/1. file=stdio.h if [ -r $file ] && [ ! -r ${LIB}/$file ]; then *************** *** 1206,1209 **** --- 1206,1211 ---- -e 's@scanf( char \*__format,@scanf( const char *__format,@' \ -e 's@sscanf( char \*__s, char \*__format,@sscanf( const char *__s, const char *__format,@' \ + -e 's@popen(char \*, char \*);@popen(const char *, const char *);@' \ + -e 's@tempnam(char\*,char\*);@tempnam(const char*,const char*);@' \ ${LIB}/$file > ${LIB}/${file}.sed rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file *************** *** 1727,1730 **** --- 1729,1733 ---- # Correct the return type for strlen in string.h on Lynx. # Correct the argument type for ffs in string.h on Alpha OSF/1 V2.0. + # Add missing const for strdup on OSF/1 V3.0. file=string.h if [ -r $file ] && [ ! -r ${LIB}/$file ]; then *************** *** 1738,1741 **** --- 1741,1745 ---- sed -e 's/extern[ ]*int[ ]*strlen();/extern unsigned int strlen();/' \ -e 's/extern[ ]*int[ ]*ffs[ ]*(long);/extern int ffs(int);/' \ + -e 's/strdup(char \*s1);/strdup(const char *s1);/' \ ${LIB}/$file > ${LIB}/${file}.sed rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/function.c gcc-2.6.2/function.c *** gcc-2.6.1/function.c Mon Oct 31 07:22:11 1994 --- gcc-2.6.2/function.c Fri Nov 11 18:54:39 1994 *************** *** 840,843 **** --- 840,844 ---- rounded_size)); p->address = 0; + p->rtl_expr = 0; p->next = temp_slots; temp_slots = p; *************** *** 1099,1110 **** return; ! /* If we can find a match, move it to our level. */ ! for (p = temp_slots; p; p = p->next) ! if (p->in_use && rtx_equal_p (x, p->slot)) ! { ! p->level = temp_slot_level; ! p->rtl_expr = 0; ! return; ! } return; --- 1100,1111 ---- return; ! /* If we can find a match, move it to our level unless it is already at ! an upper level. */ ! p = find_temp_slot_from_address (XEXP (x, 0)); ! if (p != 0) ! { ! p->level = MIN (p->level, temp_slot_level); ! p->rtl_expr = 0; ! } return; diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/gcc.c gcc-2.6.2/gcc.c *** gcc-2.6.1/gcc.c Thu Oct 27 18:49:58 1994 --- gcc-2.6.2/gcc.c Mon Nov 7 11:01:43 1994 *************** *** 2410,2414 **** temp = getenv ("LIBRARY_PATH"); ! if (temp) { char *startp, *endp; --- 2410,2414 ---- temp = getenv ("LIBRARY_PATH"); ! if (temp && ! cross_compile) { char *startp, *endp; *************** *** 2442,2446 **** /* Use LPATH like LIBRARY_PATH (for the CMU build program). */ temp = getenv ("LPATH"); ! if (temp) { char *startp, *endp; --- 2442,2446 ---- /* Use LPATH like LIBRARY_PATH (for the CMU build program). */ temp = getenv ("LPATH"); ! if (temp && ! cross_compile) { char *startp, *endp; diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/gcc.texi gcc-2.6.2/gcc.texi *** gcc-2.6.1/gcc.texi Sun Oct 30 04:47:55 1994 --- gcc-2.6.2/gcc.texi Thu Nov 3 19:28:10 1994 *************** *** 20,29 **** @c side of the page for smallbook printing (which makes it easier for @c the photocopying people to handle...). -mew, 15june93 - @c @smallbook @c i also commented out the finalout command, so if there *are* any @c overfulls, you'll (hopefully) see the rectangle in the right hand @c margin. -mew 15june93 ! @c @finalout @c NOTE: checks/things to do: --- 20,33 ---- @c side of the page for smallbook printing (which makes it easier for @c the photocopying people to handle...). -mew, 15june93 + @c (For FSF printing, turn on smallbook, comment out finalout below; + @c that is all that is needed.) + + @c smallbook + @c i also commented out the finalout command, so if there *are* any @c overfulls, you'll (hopefully) see the rectangle in the right hand @c margin. -mew 15june93 ! @c finalout @c NOTE: checks/things to do: *************** *** 155,159 **** @sp 2 For GCC Version 2.6.@* ! @c Printed October, 1993.@* @c ISBN 1-882114-35-3 --- 159,163 ---- @sp 2 For GCC Version 2.6.@* ! @c Printed November, 1994.@* @c ISBN 1-882114-35-3 *************** *** 1053,1057 **** Front ends for other languages, such as Ada 9X, Fortran, Modula-3, and Pascal, are under development. These front-ends, like that for C++, are ! built in subdirectories of GNU CC and link to it. The result is in integrated compiler that can compile programs written in C, C++, Objective C, or any of the languages for which you have installed front --- 1057,1061 ---- Front ends for other languages, such as Ada 9X, Fortran, Modula-3, and Pascal, are under development. These front-ends, like that for C++, are ! built in subdirectories of GNU CC and link to it. The result is an integrated compiler that can compile programs written in C, C++, Objective C, or any of the languages for which you have installed front *************** *** 1713,1728 **** @item - On a Sun, linking using GNU CC fails to find a shared library and - reports that the library doesn't exist at all. - - This happens if you are using the GNU linker, because it does only - static linking and looks only for unshared libraries. If you have a - shared library with no unshared counterpart, the GNU linker won't find - anything. - - We hope to make a linker which supports Sun shared libraries, but please - don't ask when it will be finished---we don't know. - - @item Sun forgot to include a static version of @file{libdl.a} with some versions of SunOS (mainly 4.1). This results in undefined symbols when --- 1717,1720 ---- *************** *** 1945,1948 **** --- 1937,1943 ---- @section Problems Compiling Certain Programs + @c prevent bad page break with this line + Certain programs have problems compiling. + @itemize @bullet @item *************** *** 3362,3365 **** --- 3357,3363 ---- @node VMS @chapter Using GNU CC on VMS + + @c prevent bad page break with this line + Here is how to use GNU CC on VMS. @menu diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/ginclude/va-alpha.h gcc-2.6.2/ginclude/va-alpha.h *** gcc-2.6.1/ginclude/va-alpha.h Wed Apr 6 07:44:59 1994 --- gcc-2.6.2/ginclude/va-alpha.h Thu Nov 10 17:54:44 1994 *************** *** 91,95 **** #define va_arg(__va, __type) \ (*(((__va).__offset += __va_tsize (__type)), \ ! (__type *)((__va).__base + (__va).__offset \ - (((__builtin_classify_type (* (__type *) 0) \ == __real_type_class) && (__va).__offset <= (6 * 8)) \ --- 91,95 ---- #define va_arg(__va, __type) \ (*(((__va).__offset += __va_tsize (__type)), \ ! (__type *)(void *)((__va).__base + (__va).__offset \ - (((__builtin_classify_type (* (__type *) 0) \ == __real_type_class) && (__va).__offset <= (6 * 8)) \ diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/install.texi gcc-2.6.2/install.texi *** gcc-2.6.1/install.texi Wed Oct 26 14:42:06 1994 --- gcc-2.6.2/install.texi Fri Nov 11 18:27:16 1994 *************** *** 51,55 **** by running the file @file{configure}. ! The @dfn{build} machine is the system which you are usinfg, the @dfn{host} machine is the system where you want to run the resulting compiler (normally the build machine), and the @dfn{target} machine is --- 51,55 ---- by running the file @file{configure}. ! The @dfn{build} machine is the system which you are using, the @dfn{host} machine is the system where you want to run the resulting compiler (normally the build machine), and the @dfn{target} machine is *************** *** 1150,1157 **** @item mips-sgi-* ! Silicon Graphics MIPS machines running IRIX. In order to compile ! GCC on an SGI the "c.hdr.lib" option must be installed from the ! CD-ROM supplied from Silicon Graphics. This is found on the 2nd ! CD in release 4.0.1. @code{make compare} may fail on version 5 of IRIX unless you add --- 1150,1156 ---- @item mips-sgi-* ! In order to compile GCC on an SGI running IRIX 4, the "c.hdr.lib" ! option must be installed from the CD-ROM supplied from Silicon Graphics. ! This is found on the 2nd CD in release 4.0.1. @code{make compare} may fail on version 5 of IRIX unless you add *************** *** 1231,1238 **** @item rs6000-*-aix If you are running AIX version 3.2.5 and have XLC version 1.3.0.0, you ! must obtain XLC 1.3.0.2 by requesting PTF 421749 from IBM. If you are ! using an older version of AIX you may have an old version of the IBM ! assembler, which cannot correctly handle debugging directives. See ! the file @file{README.RS6000} for more details. The PowerPC and POWER2 architectures are now supported, but have not --- 1230,1239 ---- @item rs6000-*-aix If you are running AIX version 3.2.5 and have XLC version 1.3.0.0, you ! must obtain XLC 1.3.0.1 by requesting PTF 421749 from IBM. Likewise, ! XLC-1.3.0.19 cannot correctly compile GNU CC; you must obtain ! XLC-1.3.0.24 by requesting PTF 432238 from IBM. If you are using an ! older version of AIX you may have an old version of the IBM assembler, ! which cannot correctly handle debugging directives. See the file ! @file{README.RS6000} for more details on both of these problems. The PowerPC and POWER2 architectures are now supported, but have not diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/invoke.texi gcc-2.6.2/invoke.texi *** gcc-2.6.1/invoke.texi Tue Oct 18 19:20:35 1994 --- gcc-2.6.2/invoke.texi Thu Nov 3 17:52:15 1994 *************** *** 796,799 **** --- 796,803 ---- @table @code + @item -fno-access-control + Turn off all access checking. This switch is mainly useful for working + around bugs in the access control code. + @item -fall-virtual Treat all possible member functions as virtual, implicitly. *************** *** 2057,2060 **** --- 2061,2067 ---- @node Assembler Options @section Passing Options to the Assembler + + @c prevent bad page break with this line + You can pass options to the assembler. @table @code diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/md.texi gcc-2.6.2/md.texi *** gcc-2.6.1/md.texi Sun Aug 7 08:58:43 1994 --- gcc-2.6.2/md.texi Thu Nov 3 17:52:06 1994 *************** *** 630,633 **** --- 630,634 ---- @cindex constraints, @code{asm} @cindex @code{asm} constraints + Here are specific details on what constraint letters you can use with @code{asm} operands. *************** *** 1087,1090 **** --- 1088,1094 ---- @cindex modifiers in constraints @cindex constraint modifier characters + + @c prevent bad page break with this line + Here are constraint modifier characters. @table @samp diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/mips-tdump.c gcc-2.6.2/mips-tdump.c *** gcc-2.6.1/mips-tdump.c Tue May 31 19:55:56 1994 --- gcc-2.6.2/mips-tdump.c Fri Nov 11 16:37:25 1994 *************** *** 1,6 **** /* Read and manage MIPS symbol tables from object modules. ! Source originally from hartzell@boulder.colorado.edu ! Rewritten by: meissner@osf.org ! Copyright (C) 1991 Free Software Foundation, Inc. This file is part of GNU CC. --- 1,6 ---- /* Read and manage MIPS symbol tables from object modules. ! Copyright (C) 1991, 1994 Free Software Foundation, Inc. ! Contributed by hartzell@boulder.colorado.edu, ! Rewritten by meissner@osf.org. This file is part of GNU CC. *************** *** 23,26 **** --- 23,27 ---- #include #include + #include #include #include *************** *** 274,278 **** extern void free __proto((PTR_T)); #endif - extern char *ctime __proto((time_t *)); extern char *optarg; --- 275,278 ---- diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/objc/list.h gcc-2.6.2/objc/list.h *** gcc-2.6.1/objc/list.h Mon Jul 11 14:02:11 1994 --- gcc-2.6.2/objc/list.h Thu Nov 10 18:50:35 1994 *************** *** 1,4 **** /* Generic single linked list to keep various information ! Copyright (C) 1993 Free Software Foundation, Inc. Author: Kresten Krab Thorup --- 1,4 ---- /* Generic single linked list to keep various information ! Copyright (C) 1993, 1994 Free Software Foundation, Inc. Author: Kresten Krab Thorup *************** *** 6,21 **** This file is part of GNU CC. ! GNU CC 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 2, or (at your option) any later version. ! ! GNU CC 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 ! GNU CC; see the file COPYING. If not, write to the Free Software ! Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* As a special exception, if you link this library with files compiled with --- 6,22 ---- This file is part of GNU CC. ! GNU CC 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 2, or (at your option) ! any later version. ! ! GNU CC 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 GNU CC; see the file COPYING. If not, write to ! the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* As a special exception, if you link this library with files compiled with *************** *** 25,28 **** --- 26,31 ---- covered by the GNU General Public License. */ + #ifndef __GNU_OBJC_LIST_H + #define __GNU_OBJC_LIST_H void * __objc_xrealloc (void *optr, size_t size); void * __objc_xmalloc (size_t size); *************** *** 144,145 **** --- 147,149 ---- } } + #endif __GNU_OBJC_LIST_H diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/objc-act.c gcc-2.6.2/objc-act.c *** gcc-2.6.1/objc-act.c Tue Sep 27 18:30:44 1994 --- gcc-2.6.2/objc-act.c Thu Nov 10 15:06:22 1994 *************** *** 491,494 **** --- 491,500 ---- ungetc (check_newline (), finput); + /* The line number can be -1 if we had -g3 and the input file + had a directive specifying line 0. But we want predefined + functions to have a line number of 0, not -1. */ + if (lineno == -1) + lineno = 0; + /* If gen_declaration desired, open the output file. */ if (flag_gen_declaration) *************** *** 7460,7473 **** = (char **) xrealloc (tree_code_name, sizeof (char *) * LAST_OBJC_TREE_CODE); ! bcopy (objc_tree_code_type, ! tree_code_type + (int) LAST_CODE, (((int) LAST_OBJC_TREE_CODE - (int) LAST_CODE) * sizeof (char *))); ! bcopy (objc_tree_code_length, ! tree_code_length + (int) LAST_CODE, (((int) LAST_OBJC_TREE_CODE - (int) LAST_CODE) * sizeof (int))); ! bcopy (objc_tree_code_name, ! tree_code_name + (int) LAST_CODE, (((int) LAST_OBJC_TREE_CODE - (int) LAST_CODE) * sizeof (char *))); --- 7466,7479 ---- = (char **) xrealloc (tree_code_name, sizeof (char *) * LAST_OBJC_TREE_CODE); ! bcopy ((char *) objc_tree_code_type, ! (char *) (tree_code_type + (int) LAST_CODE), (((int) LAST_OBJC_TREE_CODE - (int) LAST_CODE) * sizeof (char *))); ! bcopy ((char *) objc_tree_code_length, ! (char *) (tree_code_length + (int) LAST_CODE), (((int) LAST_OBJC_TREE_CODE - (int) LAST_CODE) * sizeof (int))); ! bcopy ((char *) objc_tree_code_name, ! (char *) (tree_code_name + (int) LAST_CODE), (((int) LAST_OBJC_TREE_CODE - (int) LAST_CODE) * sizeof (char *))); diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/obstack.h gcc-2.6.2/obstack.h *** gcc-2.6.1/obstack.h Tue Nov 1 21:35:59 1994 --- gcc-2.6.2/obstack.h Sat Nov 12 06:40:03 1994 *************** *** 269,274 **** #define obstack_blank_fast(h,n) ((h)->next_free += (n)) ! #if defined (__GNUC__) && defined (__STDC__) ! #if __GNUC__ < 2 #define __extension__ #endif --- 269,277 ---- #define obstack_blank_fast(h,n) ((h)->next_free += (n)) ! #if defined (__GNUC__) && defined (__STDC__) && __STDC__ ! /* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and ! does not implement __extension__. But that compiler doesn't define ! __GNUC_MINOR__. */ ! #if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__) #define __extension__ #endif diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/protoize.c gcc-2.6.2/protoize.c *** gcc-2.6.1/protoize.c Tue Oct 4 23:17:40 1994 --- gcc-2.6.2/protoize.c Mon Nov 7 21:27:44 1994 *************** *** 131,136 **** --- 131,141 ---- #define F_OK 0 /* Test for existence of File */ + #ifndef O_RDONLY #define O_RDONLY 0 + #endif + + #ifndef O_WRONLY #define O_WRONLY 1 + #endif #ifndef WIFSIGNALED diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/real.c gcc-2.6.2/real.c *** gcc-2.6.1/real.c Tue Jun 28 05:13:52 1994 --- gcc-2.6.2/real.c Sat Nov 5 13:57:08 1994 *************** *** 247,252 **** #define MAXDECEXP 4932 #define MINDECEXP -4956 ! #define GET_REAL(r,e) bcopy (r, e, 2*NE) ! #define PUT_REAL(e,r) bcopy (e, r, 2*NE) #else /* no XFmode */ #if LONG_DOUBLE_TYPE_SIZE == 128 --- 247,252 ---- #define MAXDECEXP 4932 #define MINDECEXP -4956 ! #define GET_REAL(r,e) bcopy ((char *) r, (char *) e, 2*NE) ! #define PUT_REAL(e,r) bcopy ((char *) e, (char *) r, 2*NE) #else /* no XFmode */ #if LONG_DOUBLE_TYPE_SIZE == 128 *************** *** 254,259 **** #define MAXDECEXP 4932 #define MINDECEXP -4977 ! #define GET_REAL(r,e) bcopy (r, e, 2*NE) ! #define PUT_REAL(e,r) bcopy (e, r, 2*NE) #else #define NE 6 --- 254,259 ---- #define MAXDECEXP 4932 #define MINDECEXP -4977 ! #define GET_REAL(r,e) bcopy ((char *) r, (char *) e, 2*NE) ! #define PUT_REAL(e,r) bcopy ((char *) e, (char *) r, 2*NE) #else #define NE 6 diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/reg-stack.c gcc-2.6.2/reg-stack.c *** gcc-2.6.1/reg-stack.c Sun Oct 2 15:17:11 1994 --- gcc-2.6.2/reg-stack.c Sat Nov 5 13:57:40 1994 *************** *** 226,232 **** #define BLOCK_NUM(INSN) \ ! (((INSN_UID (INSN) > max_uid) \ ! ? (int *)(abort() , 0) \ ! : block_number)[INSN_UID (INSN)]) extern rtx forced_labels; --- 226,231 ---- #define BLOCK_NUM(INSN) \ ! ((INSN_UID (INSN) > max_uid) \ ! ? (abort() , -1) : block_number[INSN_UID (INSN)]) extern rtx forced_labels; *************** *** 369,374 **** block_stack_in = (stack) alloca (blocks * sizeof (struct stack_def)); block_out_reg_set = (HARD_REG_SET *) alloca (blocks * sizeof (HARD_REG_SET)); ! bzero (block_stack_in, blocks * sizeof (struct stack_def)); ! bzero (block_out_reg_set, blocks * sizeof (HARD_REG_SET)); block_number = (int *) alloca ((max_uid + 1) * sizeof (int)); --- 368,373 ---- block_stack_in = (stack) alloca (blocks * sizeof (struct stack_def)); block_out_reg_set = (HARD_REG_SET *) alloca (blocks * sizeof (HARD_REG_SET)); ! bzero ((char *) block_stack_in, blocks * sizeof (struct stack_def)); ! bzero ((char *) block_out_reg_set, blocks * sizeof (HARD_REG_SET)); block_number = (int *) alloca ((max_uid + 1) * sizeof (int)); *************** *** 820,824 **** the reg-stack: output operands may not "skip" a reg. */ ! bzero (reg_used_as_output, sizeof (reg_used_as_output)); for (i = 0; i < n_outputs; i++) if (STACK_REG_P (operands[i])) --- 819,823 ---- the reg-stack: output operands may not "skip" a reg. */ ! bzero ((char *) reg_used_as_output, sizeof (reg_used_as_output)); for (i = 0; i < n_outputs; i++) if (STACK_REG_P (operands[i])) *************** *** 853,857 **** popped. */ ! bzero (implicitly_dies, sizeof (implicitly_dies)); for (i = first_input; i < first_input + n_inputs; i++) if (STACK_REG_P (operands[i])) --- 852,856 ---- popped. */ ! bzero ((char *) implicitly_dies, sizeof (implicitly_dies)); for (i = first_input; i < first_input + n_inputs; i++) if (STACK_REG_P (operands[i])) *************** *** 1217,1221 **** } ! BLOCK_NUM (insn) = block; if (code != NOTE) --- 1216,1220 ---- } ! block_number[INSN_UID (insn)] = block; if (code != NOTE) *************** *** 2343,2347 **** } ! bcopy (regstack, &temp_stack, sizeof (temp_stack)); /* Put the input regs into the desired place in TEMP_STACK. */ --- 2342,2346 ---- } ! bcopy ((char *) regstack, (char *) &temp_stack, sizeof (temp_stack)); /* Put the input regs into the desired place in TEMP_STACK. */ diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/reload1.c gcc-2.6.2/reload1.c *** gcc-2.6.1/reload1.c Thu Oct 27 18:57:09 1994 --- gcc-2.6.2/reload1.c Sat Nov 5 13:57:29 1994 *************** *** 1330,1337 **** is required. */ ! bcopy (insn_needs.other.regs[0], basic_needs, ! sizeof basic_needs); ! bcopy (insn_needs.other.groups, basic_groups, ! sizeof basic_groups); for (i = 0; i < N_REG_CLASSES; i++) --- 1330,1337 ---- is required. */ ! bcopy ((char *) insn_needs.other.regs[0], ! (char *) basic_needs, sizeof basic_needs); ! bcopy ((char *) insn_needs.other.groups, ! (char *) basic_groups, sizeof basic_groups); for (i = 0; i < N_REG_CLASSES; i++) diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/texinfo.tex gcc-2.6.2/texinfo.tex *** gcc-2.6.1/texinfo.tex Tue Nov 1 21:36:19 1994 --- gcc-2.6.2/texinfo.tex Sat Nov 12 06:40:23 1994 *************** *** 2039,2042 **** --- 2039,2043 ---- \let\indexbackslash=0 %overridden during \printindex. + \let\SETmarginindex=\relax %initialize! % workhorse for all \fooindexes % #1 is name of index, #2 is stuff to put there diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/tm.texi gcc-2.6.2/tm.texi *** gcc-2.6.1/tm.texi Sun Oct 30 04:53:20 1994 --- gcc-2.6.2/tm.texi Thu Nov 3 17:56:46 1994 *************** *** 46,49 **** --- 46,52 ---- @cindex controlling the compilation driver + @c prevent bad page break with this line + You can control the compilation driver. + @table @code @findex SWITCH_TAKES_ARG *************** *** 355,358 **** --- 358,364 ---- @cindex target specifications + @c prevent bad page break with this line + Here are run-time target specifications. + @table @code @findex CPP_PREDEFINES *************** *** 1072,1075 **** --- 1078,1084 ---- @subsection Basic Characteristics of Registers + @c prevent bad page break with this line + Registers have various characteristics. + @table @code @findex FIRST_PSEUDO_REGISTER *************** *** 1180,1183 **** --- 1189,1195 ---- @cindex register allocation order + @c prevent bad page break with this line + Registers are allocated in order. + @table @code @findex REG_ALLOC_ORDER *************** *** 1884,1887 **** --- 1896,1902 ---- @cindex calling conventions + @c prevent bad page break with this line + This describes the stack layout and calling conventions. + @menu * Frame Layout:: *************** *** 1902,1905 **** --- 1917,1923 ---- @cindex frame layout + @c prevent bad page break with this line + Here is the basic stack layout. + @table @code @findex STACK_GROWS_DOWNWARD *************** *** 1997,2000 **** --- 2015,2021 ---- @subsection Registers That Address the Stack Frame + @c prevent bad page break with this line + This discusses registers that address the stack frame. + @table @code @findex STACK_POINTER_REGNUM *************** *** 2085,2088 **** --- 2106,2112 ---- @subsection Eliminating Frame Pointer and Arg Pointer + @c prevent bad page break with this line + This is about eliminating the frame pointer and arg pointer. + @table @code @findex FRAME_POINTER_REQUIRED *************** *** 3309,3312 **** --- 3333,3339 ---- @cindex @file{libgcc.a} + @c prevent bad page break with this line + Here is an explanation of implicit calls to library routines. + @table @code @findex MULSI3_LIBCALL *************** *** 3519,3522 **** --- 3546,3552 ---- @cindex addressing modes + @c prevent bad page break with this line + This is about addressing modes. + @table @code @findex HAVE_POST_INCREMENT *************** *** 3697,3700 **** --- 3727,3733 ---- @cindex condition code status + @c prevent bad page break with this line + This describes the condition code status. + @findex cc_status The file @file{conditions.h} defines a variable @code{cc_status} to *************** *** 4253,4256 **** --- 4286,4292 ---- @cindex output of assembler code + @c prevent bad page break with this line + This describes the overall framework of an assembler file. + @table @code @findex ASM_FILE_START *************** *** 4360,4363 **** --- 4396,4402 ---- @subsection Output of Data + @c prevent bad page break with this line + This describes data output. + @table @code @findex ASM_OUTPUT_LONG_DOUBLE *************** *** 4586,4589 **** --- 4625,4631 ---- @subsection Output and Generation of Labels + @c prevent bad page break with this line + This is about outputting labels. + @table @code @findex ASM_OUTPUT_LABEL *************** *** 5004,5007 **** --- 5046,5052 ---- @subsection Output of Assembler Instructions + @c prevent bad page break with this line + This describes assembler instruction output. + @table @code @findex REGISTER_NAMES *************** *** 5192,5195 **** --- 5237,5243 ---- @subsection Output of Dispatch Tables + @c prevent bad page break with this line + This concerns dispatch tables. + @table @code @cindex dispatch table *************** *** 5256,5259 **** --- 5304,5310 ---- @subsection Assembler Commands for Alignment + @c prevent bad page break with this line + This describes commands for alignment. + @table @code @findex ASM_OUTPUT_ALIGN_CODE *************** *** 5301,5305 **** @node Debugging Info @section Controlling Debugging Information Format ! @c this should have some text in here.... --mew 10feb93 @menu --- 5352,5358 ---- @node Debugging Info @section Controlling Debugging Information Format ! ! @c prevent bad page break with this line ! This describes how to specify debugging information. @menu *************** *** 5314,5317 **** --- 5367,5373 ---- @subsection Macros Affecting All Debugging Formats + @c prevent bad page break with this line + These macros affect all debugging formats. + @table @code @findex DBX_REGISTER_NUMBER *************** *** 5366,5369 **** --- 5422,5428 ---- @subsection Specific Options for DBX Output + @c prevent bad page break with this line + These are specific options for DBX output. + @table @code @findex DBX_DEBUGGING_INFO *************** *** 5494,5497 **** --- 5553,5559 ---- @subsection Open-Ended Hooks for DBX Format + @c prevent bad page break with this line + These are hooks for DBX format. + @table @code @findex DBX_OUTPUT_LBRAC *************** *** 5584,5587 **** --- 5646,5652 ---- @subsection File Names in DBX Format + @c prevent bad page break with this line + This describes file names in DBX format. + @table @code @findex DBX_WORKING_DIRECTORY *************** *** 5636,5639 **** --- 5701,5707 ---- @subsection Macros for SDB and DWARF Output + @c prevent bad page break with this line + Here are macros for SDB and DWARF output. + @table @code @findex SDB_DEBUGGING_INFO *************** *** 5858,5861 **** --- 5926,5932 ---- @section Miscellaneous Parameters @cindex parameters, miscellaneous + + @c prevent bad page break with this line + Here are several miscellaneous parameters. @table @code diff -rc2P -x c-parse.y -x c-parse.c -x c-parse.h -x c-gperf.h -x cexp.c -x bi-parser.c -x objc-parse.y -x objc-parse.c -x TAGS -x gcc.?? -x gcc.??s -x gcc.aux -x gcc.info* -x cpp.?? -x cpp.??s -x cpp.aux -x cpp.info* -x cp/parse.c -x cp/parse.h gcc-2.6.1/version.c gcc-2.6.2/version.c *** gcc-2.6.1/version.c Sun Oct 30 08:05:06 1994 --- gcc-2.6.2/version.c Wed Nov 2 18:25:19 1994 *************** *** 1 **** ! char *version_string = "2.6.1"; --- 1 ---- ! char *version_string = "2.6.2";