Changes for GCC version 2.7.2 from version 2.7.1. 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 directory of GCC sources, provided the necessary tools (etags, makeinfo, TeX and texi2dvi) are installed. Before applying these diffs, go to the directory gcc-2.7.1 and use the command patch -p1 feeding it the following diffs as input. Then rename the directory to gcc-2.7.2. 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.7.1/ChangeLog gcc-2.7.2/ChangeLog *** gcc-2.7.1/NEWS Tue Nov 7 10:14:12 1995 --- gcc-2.7.2/NEWS Sun Nov 26 15:16:24 1995 *************** *** 1,2 **** --- 1,7 ---- + Noteworthy changes in GCC version 2.7.2: + + A few bugs have been fixed (most notably the generation of an + invalid assembler opcode on some RS/6000 systems). + Noteworthy changes in GCC version 2.7.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.7.1/ChangeLog gcc-2.7.2/ChangeLog *** gcc-2.7.1/ChangeLog Sun Nov 12 18:10:01 1995 --- gcc-2.7.2/ChangeLog Sun Nov 26 14:51:28 1995 *************** *** 1,2 **** --- 1,98 ---- + Sun Nov 26 14:47:42 1995 Richard Kenner + + * Version 2.7.2 released. + + * function.c (fixup_var_refs_1): Make pseudo for DEST + in PROMOTED_MODE unless in a SUBREG. + + * cse.c (insert): Don't put a REG into qty_const. + + * msdos/top.sed: Change version to 2.7.2. + * winnt/config-nt.sed: Likewise. + + Sun Nov 26 14:41:49 1995 Douglas Rupp (drupp@cs.washington.edu) + + * Makefile.in (stamp-objlist): Change .o to $objext. + + * alpha/win-nt.h (CPP_PREDEFINES): Set __unaligned and __stdcall + to null. + (ASM_SPEC): Add a translation for -g to -Zi. + * winnt/ld.c (main): Don't pass -g to link. + * winnt/oldnames.c: Reformat and add some new functions for gnat1. + * winnt/win-nt.h (LINK_SPEC): Pass -g to ld.exe. + Increase default stack size. + * configure ({alpha-dec,i386-ibm}-winnt3.5): Add oldnames.o + to extra_objs. + * libgcc2.c (trampoline): Add getpagesize and mprotect for WINNT. + + Sun Nov 26 14:25:26 1995 Uwe Seimet (seimet@chemie.uni-kl.de) + + * atari.h (FUNCTION_VALUE): Deleted; incorrect. + + Sun Nov 26 14:23:03 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * fixincludes (curses.h): Allow space or tab after bool keyword, + instead of tab or tab. + + Sun Nov 26 14:14:11 1995 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) + + * 1750a.md (pattern for HImode PSHM): Corrected. + (trunchiqi2, zero_extendqihi2, extendhftqf2): Corrected. + (pattern for movhi of CONST_INT to REG): Corrected. + (divmodqi pattern for DISN): Corrected. + (all shift patterns): Corrected. + + * 1750a.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Corrected. + (ASM_OUTPUT_[datatype]): Corrected datalbl[].size computation + for output of arrays. + + Sun Nov 26 14:08:57 1995 Dave Love + + * mips/iris5.h (NO_IMPLICIT_EXTERN_C): Define this again so + that unistd.h doesn't get badly `fixed' for C++. libg++ will now + build with this definition. + + Sun Nov 26 14:02:43 1995 Robert E. Brown (brown@grettir.bibliotech.com) + + * configure: Better workaround for Nextstep bug. + + Sun Nov 26 13:55:07 1995 Torbjorn Granlund + + * rs6000.md (load_multiple matcher): Fix typo in opcode. + + Sun Nov 26 13:51:08 1995 Lee Iverson + + * final.c (final_start_function): Move call to sdbout_begin_function + back to final_scan_insn on MIPS systems so parameter descriptions are + recognized. + + Sun Nov 26 13:43:06 1995 DJ Delorie (dj@delorie.co)m + + * msdos/top.sed: Don't insert "go32". + + Sun Nov 26 12:08:23 1995 Jim Wilson + + * combine.c (nonzero_bits, case REG): Put POINTERS_EXTEND_UNSIGNED + code before stack pointer code. Return nonzero at end of stack + pointer code. + + * sparc.h (PRINT_OPERAND_ADDRESS): Handle CONST inside PLUS. + + * Makefile.in (cppalloc.o): Add a rule to build it. + + * alpha.c (alpha_emit_set_const): Don't output SImode sequences + that rely on invisible overflow. Sign extend new when SImode. + Don't recur if new == c. Don't allow shift outside mode. Make + logical right shift be unsigned. + + Sun Nov 26 11:37:50 1995 Arne H. Juul (arnej@idt.unit.no) + + * Makefile.in (compare*): Add "|| true" to avoid spurious + failure messages from some versions of make. + + Sun Nov 26 11:20:09 1995 Dmitry K. Butskoy (buc@stu.spb.su) + + * expr.c (truthvalue_conversion): Add declaration. + Sun Nov 12 18:09:35 1995 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.7.1/Makefile.in gcc-2.7.2/Makefile.in *** gcc-2.7.1/Makefile.in Sat Nov 11 08:24:08 1995 --- gcc-2.7.2/Makefile.in Sun Nov 26 14:44:25 1995 *************** *** 674,678 **** # subdirectories needn't mention their names explicitly. stamp-objlist: Makefile $(OBJS) $(BC_OBJS) ! echo " $(OBJS) $(BC_OBJS)" | sed -e 's, \([a-z]\), ../\1,g' >stamp-objlist # We call this executable `xgcc' rather than `gcc' --- 674,678 ---- # subdirectories needn't mention their names explicitly. stamp-objlist: Makefile $(OBJS) $(BC_OBJS) ! echo " $(OBJS) $(BC_OBJS)" | sed -e 's, \([a-z]\), ../\1,g' -e 's/\.o/$(objext)/g' >stamp-objlist # We call this executable `xgcc' rather than `gcc' *************** *** 1648,1651 **** --- 1648,1653 ---- cpphash.o: cpphash.c cpplib.h cpphash.h + cppalloc.o: cppalloc.c $(CONFIG_H) + # Note for the stamp targets, we run the program `true' instead of # having an empty command (nothing following the semicolon). *************** *** 2386,2390 **** tail +16c ./$$file > tmp-foo1; \ tail +16c stage2/$$file > tmp-foo2 2>/dev/null \ ! && (cmp tmp-foo1 tmp-foo2 || echo $$file differs); \ done for dir in tmp-foo $(SUBDIRS); do \ --- 2388,2392 ---- tail +16c ./$$file > tmp-foo1; \ tail +16c stage2/$$file > tmp-foo2 2>/dev/null \ ! && (cmp tmp-foo1 tmp-foo2 || echo $$file differs) || true; \ done for dir in tmp-foo $(SUBDIRS); do \ *************** *** 2393,2397 **** tail +16c ./$$file > tmp-foo1; \ tail +16c stage2/$$file > tmp-foo2 2>/dev/null \ ! && (cmp tmp-foo1 tmp-foo2 || echo $$file differs); \ done; \ fi; \ --- 2395,2399 ---- tail +16c ./$$file > tmp-foo1; \ tail +16c stage2/$$file > tmp-foo2 2>/dev/null \ ! && (cmp tmp-foo1 tmp-foo2 || echo $$file differs) || true; \ done; \ fi; \ *************** *** 2404,2408 **** tail +16c ./$$file > tmp-foo1; \ tail +16c stage3/$$file > tmp-foo2 2>/dev/null \ ! && (cmp tmp-foo1 tmp-foo2 || echo $$file differs); \ done for dir in tmp-foo $(SUBDIRS); do \ --- 2406,2410 ---- tail +16c ./$$file > tmp-foo1; \ tail +16c stage3/$$file > tmp-foo2 2>/dev/null \ ! && (cmp tmp-foo1 tmp-foo2 || echo $$file differs) || true; \ done for dir in tmp-foo $(SUBDIRS); do \ *************** *** 2411,2415 **** tail +16c ./$$file > tmp-foo1; \ tail +16c stage3/$$file > tmp-foo2 2>/dev/null \ ! && (cmp tmp-foo1 tmp-foo2 || echo $$file differs); \ done; \ fi; \ --- 2413,2417 ---- tail +16c ./$$file > tmp-foo1; \ tail +16c stage3/$$file > tmp-foo2 2>/dev/null \ ! && (cmp tmp-foo1 tmp-foo2 || echo $$file differs) || true; \ done; \ fi; \ 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.7.1/README gcc-2.7.2/README *** gcc-2.7.1/README Thu Nov 9 11:27:23 1995 --- gcc-2.7.2/README Sun Nov 26 14:55:48 1995 *************** *** 1,3 **** ! This directory contains the version 2.7.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.7.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.7.1/SERVICE gcc-2.7.2/SERVICE *** gcc-2.7.1/SERVICE Thu Nov 9 11:28:51 1995 --- gcc-2.7.2/SERVICE Sun Nov 26 14:56:08 1995 *************** *** 68,84 **** Updated: 17Oct95  ! Gerd Aschemann ! Herderstr. 15 D-64285 Darmstadt ! Tel.: +49 6151 62568 ! - System Administrator (UNIX) of Operating Systems Research Group, ! CS Department, TU Darmstadt, Germany - Consultant for other UNIX users at TU Darmstadt - - 14 years experience with CS, Systemadministration - - 7 years with UNIX/Networking/FreeWare/GNU/X11 - - 5 years organizer of practical OS courses - - Platforms: SunOS, HP-UX, Ultrix, OSF1, Linux, AIX, Solaris - - Experience with parallel environments (Transputers: Meiko, Parix) Rates are at 100,-- DM (~60 US$) per hour minimum, depending on the job. --- 68,85 ---- Updated: 17Oct95  ! Gerd Aschemann ! Osannstr. 49 D-64285 Darmstadt ! Tel.: +49 6151 16 2259 ! http://www.informatik.th-darmstadt.de/~ascheman/ ! - System Administrator (UNIX) at CS Department, TU Darmstadt, Germany ! - 15 years expirience with CS, Systemadministration on different platforms ! - 8 years with UNIX/Networking/FreeWare/GNU/X11 ! - 6 years organizer of Operating Systems and Distributed Systems courses ! - Lectures on System and Network Administration ! - Platforms: Solaris, SunOS, Ultrix, OSF1, HP-UX, Linux, FreeBSD, AIX ! - Experience with parallel environments (Connection Machine, Meiko, Parsytec) - Consultant for other UNIX users at TU Darmstadt Rates are at 100,-- DM (~60 US$) per hour minimum, depending on the job. *************** *** 85,89 **** I am willing to travel for sufficiently large jobs. ! Entered: 10Jun94  Giuseppe Attardi --- 86,90 ---- I am willing to travel for sufficiently large jobs. ! Updated: 17Oct95  Giuseppe Attardi *************** *** 229,248 **** Updated: 2Feb95  - Jose A. Fernandez - - WORK: Inference Corporation HOME: - 550 N. Continental Blvd. 1025 Hillside Dr. - El Segundo, CA 90245 Chino Hills, CA 91709 - (310) 322-0200 x205 (714) 528-2523 - - RATES: - Variable, depending on work to be done. - - SERVICES: - GNU software: installation, troubleshooting, and instruction. - X11 software: installation and troubleshooting. - - Entered: 14Apr94 -  Free Software Association of Germany Michaela Merz --- 230,233 ---- *************** *** 351,354 **** --- 336,364 ---- Updated: 27Dec94 +  + Interactive Information Limited + + Interactive Information Limited is an Edinburgh-based company that + specialises in WWW services and support for using the Internet for + marketing. + + Our staff have many years experience in using, and developing lisp packages + within, Emacs, and in using other GNU/Unix tools, particularly under public + domain UNIXes. + + We can provide services throughout the UK, at any level from general + consultancy through fetching, installing and customising software to + bespoke programming. Fees would be in the range #300 - #600 per day, + depending primarily on the size of the job. + + You can contact us + by email: + by phone: 0370 30 40 52 (UK) + (+44) 370 30 40 52 (International) + by post: 3, Lauriston Gardens, + Edinburgh EH3 9HH + Scotland + + Entered: 13Nov95  Scott D. Kalter = 12 && REGNO (X) <= 15) /* Nonzero if X is a hard reg that can be used as a base reg. */ ! #define REG_OK_FOR_BASE_P(X) (REGNO (X) > 0 && REGNO (X) <= 15) #else *************** *** 859,863 **** #define CONST_COSTS(RTX,CODE,OUTER_CODE) \ case CONST_INT: \ ! if (INTVAL(RTX) >= -16 && INTVAL(RTX) <= 16) return 1; \ case CONST: \ case LABEL_REF: \ --- 862,866 ---- #define CONST_COSTS(RTX,CODE,OUTER_CODE) \ case CONST_INT: \ ! return (INTVAL(RTX) >= -16 && INTVAL(RTX) <= 16) ? 1 : 3; \ case CONST: \ case LABEL_REF: \ *************** *** 867,871 **** return 7; ! #define ADDRESS_COST(ADDRESS) (memop_valid(ADDRESS) ? 3 : 1000) /* Tell final.c how to eliminate redundant test instructions. */ --- 870,878 ---- return 7; ! #define ADDRESS_COST(ADDRESS) (memop_valid(ADDRESS) ? 3 : 1000) ! ! #define REGISTER_MOVE_COST(FROM,TO) 2 ! ! #define MEMORY_MOVE_COST(M) 5 /* Tell final.c how to eliminate redundant test instructions. */ *************** *** 1047,1051 **** --- 1054,1060 ---- check_section(Konst); \ fprintf(FILE,"K%s\n",NAME); \ + fflush(FILE); \ datalbl[++datalbl_ndx].name = (char *)strdup (NAME); \ + datalbl[datalbl_ndx].size = 0; \ label_pending = 1; \ } \ *************** *** 1075,1078 **** --- 1084,1088 ---- datalbl[++datalbl_ndx].name = (char *) malloc (9); \ sprintf(datalbl[datalbl_ndx].name,"LC%d",NUM); \ + datalbl[datalbl_ndx].size = 0; \ check_section(Konst); \ fprintf(FILE,"K%s%d\n",PREFIX,NUM); \ *************** *** 1083,1086 **** --- 1093,1097 ---- fprintf(FILE, "%s%d\n", PREFIX, NUM); \ } \ + fflush(FILE); \ } while (0) *************** *** 1117,1126 **** #define ASM_OUTPUT_SHORT_FLOAT(FILE,VALUE) \ do { \ ! if (label_pending) \ label_pending = 0; \ ! else \ ! datalbl[++datalbl_ndx].name = float_label('D',VALUE); \ ! sprintf (datalbl[datalbl_ndx].value, "%lf", (double) VALUE); \ ! datalbl[datalbl_ndx].size = 2; \ fprintf (FILE, "\tdataf\t%lf\n",VALUE); \ } while(0) --- 1128,1136 ---- #define ASM_OUTPUT_SHORT_FLOAT(FILE,VALUE) \ do { \ ! if (label_pending) { \ label_pending = 0; \ ! sprintf (datalbl[datalbl_ndx].value, "%lf", (double) VALUE); \ ! } \ ! datalbl[datalbl_ndx].size += 2; \ fprintf (FILE, "\tdataf\t%lf\n",VALUE); \ } while(0) *************** *** 1131,1140 **** #define ASM_OUTPUT_THREE_QUARTER_FLOAT(FILE,VALUE) \ do { \ ! if (label_pending) \ label_pending = 0; \ ! else \ ! datalbl[++datalbl_ndx].name = float_label('E',VALUE); \ ! sprintf (datalbl[datalbl_ndx].value, "%lf", VALUE); \ ! datalbl[datalbl_ndx].size = 3; \ fprintf(FILE,"\tdataef\t%lf\n",VALUE); \ } while (0) --- 1141,1149 ---- #define ASM_OUTPUT_THREE_QUARTER_FLOAT(FILE,VALUE) \ do { \ ! if (label_pending) { \ label_pending = 0; \ ! sprintf (datalbl[datalbl_ndx].value, "%lf", VALUE); \ ! } \ ! datalbl[datalbl_ndx].size += 3; \ fprintf(FILE,"\tdataef\t%lf\n",VALUE); \ } while (0) *************** *** 1144,1153 **** #define ASM_OUTPUT_ASCII(FILE, PTR, LEN) do { \ int i; \ ! if (! label_pending) \ ! fprintf(FILE,";in ASM_OUTPUT_ASCII without label_pending\n");\ ! else { \ label_pending = 0; \ ! datalbl[datalbl_ndx].size = LEN; \ ! } \ for (i = 0; i < LEN; i++) { \ if ((i % 15) == 0) { \ --- 1153,1159 ---- #define ASM_OUTPUT_ASCII(FILE, PTR, LEN) do { \ int i; \ ! if (label_pending) \ label_pending = 0; \ ! datalbl[datalbl_ndx].size += LEN; \ for (i = 0; i < LEN; i++) { \ if ((i % 15) == 0) { \ *************** *** 1176,1185 **** #define ASM_OUTPUT_CHAR(FILE,VALUE) do { \ ! if (! label_pending) \ ! fprintf(FILE,";in ASM_OUTPUT_CHAR without label_pending\n"); \ ! else { \ label_pending = 0; \ ! datalbl[datalbl_ndx].size = 1; \ ! } \ fprintf(FILE, "\tdata\t"); \ output_addr_const(FILE, VALUE); \ --- 1182,1188 ---- #define ASM_OUTPUT_CHAR(FILE,VALUE) do { \ ! if (label_pending) \ label_pending = 0; \ ! datalbl[datalbl_ndx].size++; \ fprintf(FILE, "\tdata\t"); \ output_addr_const(FILE, VALUE); \ *************** *** 1194,1203 **** #define ASM_OUTPUT_SHORT(FILE,VALUE) do { \ ! if (! label_pending) \ ! fprintf(FILE,";in ASM_OUTPUT_SHORT without label_pending\n");\ ! else { \ label_pending = 0; \ ! datalbl[datalbl_ndx].size = 2; \ ! } \ fprintf(FILE, "\tdatal\t%d\n",INTVAL(VALUE)); \ } while (0) --- 1197,1203 ---- #define ASM_OUTPUT_SHORT(FILE,VALUE) do { \ ! if (label_pending) \ label_pending = 0; \ ! datalbl[datalbl_ndx].size += 2; \ fprintf(FILE, "\tdatal\t%d\n",INTVAL(VALUE)); \ } while (0) *************** *** 1205,1209 **** /* This is how to output an assembler line for a numeric constant byte. */ ! #define ASM_OUTPUT_BYTE(FILE,VALUE) fprintf(FILE, "\tdata\t#%x\n", VALUE) /* This is how to output an insn to push a register on the stack. --- 1205,1214 ---- /* This is how to output an assembler line for a numeric constant byte. */ ! #define ASM_OUTPUT_BYTE(FILE,VALUE) do { \ ! if (label_pending) \ ! label_pending = 0; \ ! datalbl[datalbl_ndx].size++; \ ! fprintf(FILE, "\tdata\t#%x\n", VALUE); \ ! } while (0) /* This is how to output an insn to push a register on the stack. *************** *** 1269,1277 **** #define ASM_OUTPUT_CONSTRUCTOR(FILE, NAME) do { \ fprintf(FILE, "\tinit\n\t"); assemble_name(FILE, NAME); \ ! fprintf(FILE," ;constructor\n"); } while (0) #define ASM_OUTPUT_DESTRUCTOR(FILE, NAME) do { \ fprintf(FILE, "\tinit\n\t"); assemble_name(FILE, NAME); \ ! fprintf(FILE," ;destructor"); } while (0) /* Define the parentheses used to group arithmetic operations --- 1274,1282 ---- #define ASM_OUTPUT_CONSTRUCTOR(FILE, NAME) do { \ fprintf(FILE, "\tinit\n\t"); assemble_name(FILE, NAME); \ ! fprintf(FILE," ;constructor\n"); } while (0) #define ASM_OUTPUT_DESTRUCTOR(FILE, NAME) do { \ fprintf(FILE, "\tinit\n\t"); assemble_name(FILE, NAME); \ ! fprintf(FILE," ;destructor\n"); } while (0) /* Define the parentheses used to group arithmetic operations 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.7.1/config/1750a/1750a.md gcc-2.7.2/config/1750a/1750a.md *** gcc-2.7.1/config/1750a/1750a.md Thu Nov 9 11:19:56 1995 --- gcc-2.7.2/config/1750a/1750a.md Sun Nov 26 14:13:16 1995 *************** *** 56,60 **** (match_operand:QI 1 "general_operand" "r"))] "" ! "pshm r%1,r%1") (define_insn "" --- 56,60 ---- (match_operand:QI 1 "general_operand" "r"))] "" ! "pshm r%1,r%1 ; stackptr = R%0") (define_insn "" *************** *** 64,70 **** "* { ! rtx new_operands[2]; new_operands[0] = operands[1]; new_operands[1] = gen_rtx(CONST_INT,VOIDmode,REGNO(operands[1])+1); } ") --- 64,73 ---- "* { ! rtx new_operands[3]; ! new_operands[2] = operands[0]; new_operands[0] = operands[1]; new_operands[1] = gen_rtx(CONST_INT,VOIDmode,REGNO(operands[1])+1); + output_asm_insn(\"pshm r%0,r%1 ; stackptr = r%2\",new_operands); + return \";\"; } ") *************** *** 75,83 **** "* { ! rtx new_operands[2]; new_operands[0] = operands[1]; new_operands[1] = gen_rtx(CONST_INT,VOIDmode,REGNO(operands[1])+1); ! output_asm_insn(\"pshm r%0,r%1\",new_operands); ! return \"\;\"; } ") --- 78,87 ---- "* { ! rtx new_operands[3]; ! new_operands[2] = operands[0]; new_operands[0] = operands[1]; new_operands[1] = gen_rtx(CONST_INT,VOIDmode,REGNO(operands[1])+1); ! output_asm_insn(\"pshm r%0,r%1 ; stackptr = r%2\",new_operands); ! return \";\"; } ") *************** *** 88,96 **** "* { ! rtx new_operands[2]; new_operands[0] = operands[1]; new_operands[1] = gen_rtx(CONST_INT,VOIDmode,REGNO(operands[1])+2); ! output_asm_insn(\"pshm r%0,r%1\",new_operands); ! return \"\;\"; } ") --- 92,101 ---- "* { ! rtx new_operands[3]; ! new_operands[2] = operands[0]; new_operands[0] = operands[1]; new_operands[1] = gen_rtx(CONST_INT,VOIDmode,REGNO(operands[1])+2); ! output_asm_insn(\"pshm r%0,r%1 ; stackptr = r%2\",new_operands); ! return \";\"; } ") *************** *** 112,116 **** new_operands[1] = gen_rtx(CONST_INT,VOIDmode,REGNO(operands[0])+1); output_asm_insn(\"popm r%0,r%1\",new_operands); ! return \"\;\"; } ") --- 117,121 ---- new_operands[1] = gen_rtx(CONST_INT,VOIDmode,REGNO(operands[0])+1); output_asm_insn(\"popm r%0,r%1\",new_operands); ! return \";\"; } ") *************** *** 125,129 **** new_operands[1] = gen_rtx(CONST_INT,VOIDmode,REGNO(operands[0])+1); output_asm_insn(\"popm r%0,r%1\",new_operands); ! return \"\;\"; } ") --- 130,134 ---- new_operands[1] = gen_rtx(CONST_INT,VOIDmode,REGNO(operands[0])+1); output_asm_insn(\"popm r%0,r%1\",new_operands); ! return \";\"; } ") *************** *** 138,142 **** new_operands[1] = gen_rtx(CONST_INT,VOIDmode,REGNO(operands[0])+2); output_asm_insn(\"popm r%0,r%1\",new_operands); ! return \"\;\"; } ") --- 143,147 ---- new_operands[1] = gen_rtx(CONST_INT,VOIDmode,REGNO(operands[0])+2); output_asm_insn(\"popm r%0,r%1\",new_operands); ! return \";\"; } ") *************** *** 263,268 **** "* { ! REGNO(operands[1]) += 1; ! return \"lr r%0,r%1 ;trunchiqi2\"; } ") --- 268,276 ---- "* { ! rtx new_operands[2]; ! new_operands[0] = operands[0]; ! new_operands[1] = gen_rtx (REG, HImode, REGNO(operands[1]) + 1); ! output_asm_insn(\"lr r%0,r%1 ;trunchiqi2\",new_operands); ! return \";\"; } ") *************** *** 275,289 **** "* { output_asm_insn(\"xorr r%0,r%0 ;zero_extendqihi2\",operands); ! REGNO(operands[0]) += 1; switch (which_alternative) { case 0: ! return \"lr r%0,r%1\"; case 1: ! return \"l r%0,%1\"; case 2: ! return \"lim r%0,%1\"; } } ") --- 283,303 ---- "* { + rtx new_opnds[2]; output_asm_insn(\"xorr r%0,r%0 ;zero_extendqihi2\",operands); ! new_opnds[0] = gen_rtx (REG, HImode, REGNO(operands[0]) + 1); ! new_opnds[1] = operands[1]; switch (which_alternative) { case 0: ! output_asm_insn(\"lr r%0,r%1\",new_opnds); ! break; case 1: ! output_asm_insn(\"l r%0,%1\",new_opnds); ! break; case 2: ! output_asm_insn(\"lim r%0,%1\",new_opnds); ! break; } + return \";\"; } ") *************** *** 305,320 **** (define_insn "extendhftqf2" [(set (match_operand:TQF 0 "register_operand" "=r,r") ! (float_extend:TQF ! (match_operand:HF 1 "general_operand" "r,m")))] "" "* { ! REGNO(operands[0]) += 2; ! output_asm_insn(\"xorr r%0,r%0 ;extendhftqf2\",operands); ! REGNO(operands[0]) -= 2; if (which_alternative == 0) ! return \"dlr r%0,r%1\"; else ! return \"dl r%0,%1\"; } ") --- 319,334 ---- (define_insn "extendhftqf2" [(set (match_operand:TQF 0 "register_operand" "=r,r") ! (float_extend:TQF (match_operand:HF 1 "general_operand" "r,m")))] "" "* { ! rtx new_opnds[2]; ! new_opnds[0] = gen_rtx (REG, QImode, REGNO(operands[0]) + 2); ! new_opnds[1] = operands[1]; ! output_asm_insn(\"xorr r%0,r%0 ;extendhftqf2\",new_opnds); if (which_alternative == 0) ! return \"dlr r%0,r%1 ; put condition codes back on track\"; else ! return \"dl r%0,%1 ; put condition codes back on track\"; } ") *************** *** 387,398 **** ;; 32-bit moves ! ;; Set HIreg to constant (define_insn "" [(set (match_operand:HI 0 "register_operand" "=r") ! (match_operand 1 "immediate_operand" "i"))] "" "* - if (GET_CODE(operands[1]) == CONST_INT) { int val = INTVAL(operands[1]); if (val >= 0) --- 401,412 ---- ;; 32-bit moves ! ; Set HIreg to constant (define_insn "" [(set (match_operand:HI 0 "register_operand" "=r") ! (match_operand:HI 1 "immediate_operand" "i"))] "" "* { + rtx new_opnds[2]; int val = INTVAL(operands[1]); if (val >= 0) *************** *** 400,411 **** if (val <= 65535) { ! output_asm_insn(\"xorr r%0,r%0 ;movhi cst->reg\",operands); ! operands[0] = gen_rtx(REG,QImode,REGNO(operands[0]) + 1); if (val == 0) ! return \"xorr r%0,r%0\"; else if (val <= 16) ! return \"lisp r%0,%1\"; else ! return \"lim r%0,%1\"; } } --- 414,428 ---- if (val <= 65535) { ! new_opnds[0] = gen_rtx(REG,QImode,REGNO(operands[0])); ! new_opnds[1] = operands[1]; ! output_asm_insn(\"xorr r%0,r%0 ;movhi cst->reg\",new_opnds); ! REGNO(new_opnds[0]) += 1; if (val == 0) ! output_asm_insn(\"xorr r%0,r%0\",new_opnds); else if (val <= 16) ! output_asm_insn(\"lisp r%0,%1\",new_opnds); else ! output_asm_insn(\"lim r%0,%1\",new_opnds); ! return \";\"; } } *************** *** 412,422 **** else if (val >= -16) return \"lisn r%0,%J1\;dsra r%0,16 ;movhi cst\"; ! INTVAL(operands[1]) >>= 16; ! output_asm_insn(\"lim r%0,%1 ;movhi cst->reg\",operands); ! REGNO(operands[0]) += 1; ! INTVAL(operands[1]) = val & 0xFFFF; ! return \"lim r%0,%1\"; } - return \"lim r%0,%1\;dsra r%0,16 ;movhi cst\"; ") --- 429,440 ---- else if (val >= -16) return \"lisn r%0,%J1\;dsra r%0,16 ;movhi cst\"; ! new_opnds[0] = gen_rtx(REG, QImode, REGNO(operands[0])); ! new_opnds[1] = gen_rtx(CONST_INT,VOIDmode,(INTVAL(operands[1])) >> 16); ! output_asm_insn(\"lim r%0,%1 ;movhi cst->reg\",new_opnds); ! INTVAL(new_opnds[1]) = val & 0xFFFF; ! REGNO(new_opnds[0]) += 1; ! output_asm_insn(\"lim r%0,%1\",new_opnds); ! return \";\"; } ") *************** *** 672,677 **** break; case 1: ! INTVAL(operands[2]) = - INTVAL(operands[2]); /* to be corrected */ ! istr = \"disn\"; break; case 2: --- 690,702 ---- break; case 1: ! { ! rtx new_opnds[4]; ! new_opnds[0] = operands[0]; ! new_opnds[1] = operands[1]; ! new_opnds[2] = gen_rtx (CONST_INT, VOIDmode, -INTVAL(operands[2])); ! new_opnds[3] = operands[3]; ! istr = \"disn\"; ! return (char *)mod_regno_adjust(istr,new_opnds); ! } break; case 2: *************** *** 881,885 **** [(set (match_operand:QI 0 "register_operand" "=r,r") (ashift:QI (match_operand:QI 1 "register_operand" "0,0") ! (match_operand:QI 2 "general_operand" "I,r")))] "" "@ --- 906,910 ---- [(set (match_operand:QI 0 "register_operand" "=r,r") (ashift:QI (match_operand:QI 1 "register_operand" "0,0") ! (match_operand:QI 2 "nonmemory_operand" "I,r")))] "" "@ *************** *** 890,899 **** [(set (match_operand:HI 0 "register_operand" "=r,r") (ashift:HI (match_operand:HI 1 "register_operand" "0,0") ! (match_operand:QI 2 "general_operand" "L,r")))] "" ; the 'L' constraint is a slight imprecise... ! "@ ! dsll r%0,%2 ! dslr r%0,r%2 ") ;; Right shift by a variable shiftcount works by negating the shift count, ;; then emitting a right shift with the shift count negated. This means --- 915,937 ---- [(set (match_operand:HI 0 "register_operand" "=r,r") (ashift:HI (match_operand:HI 1 "register_operand" "0,0") ! (match_operand:QI 2 "nonmemory_operand" "L,r")))] "" ; the 'L' constraint is a slight imprecise... ! "* ! if (which_alternative == 1) ! return \"dslr r%0,r%2\"; ! else if (INTVAL(operands[2]) <= 16) ! return \"dsll r%0,%2\"; ! else ! { ! rtx new_opnds[2]; ! new_opnds[0] = gen_rtx (REG, QImode, REGNO(operands[0])); ! new_opnds[1] = gen_rtx (REG, QImode, REGNO(operands[0]) + 1); ! output_asm_insn(\"lr r%0,r%1 ; ashlhi3 shiftcount > 16\",new_opnds); ! new_opnds[1] = gen_rtx (CONST_INT, VOIDmode, INTVAL(operands[2]) - 16); ! output_asm_insn(\"sll r%0,%1\",new_opnds); ! return \";\"; ! } ") + ;; Right shift by a variable shiftcount works by negating the shift count, ;; then emitting a right shift with the shift count negated. This means *************** *** 902,908 **** ;; which isn't valid. (define_expand "lshrqi3" ! [(set (match_operand:QI 0 "general_operand" "=g") (lshiftrt:QI (match_operand:QI 1 "general_operand" "0") ! (match_operand:QI 2 "general_operand" "g")))] "" " --- 940,946 ---- ;; which isn't valid. (define_expand "lshrqi3" ! [(set (match_operand:QI 0 "general_operand" "=r") (lshiftrt:QI (match_operand:QI 1 "general_operand" "0") ! (match_operand:QI 2 "nonmemory_operand" "g")))] "" " *************** *** 917,921 **** (match_operand:QI 2 "immediate_operand" "I")))] "" ! "srl r%0,%1") (define_insn "" --- 955,959 ---- (match_operand:QI 2 "immediate_operand" "I")))] "" ! "srl r%0,%2") (define_insn "" *************** *** 927,940 **** ;; Same thing for HImode. (define_expand "lshrhi3" ! [(set (match_operand:HI 0 "general_operand" "=g") ! (lshiftrt:HI (match_operand:HI 1 "general_operand" "0") ! (match_operand:QI 2 "general_operand" "g")))] "" " ! { ! if (GET_CODE (operands[2]) != CONST_INT) ! operands[2] = gen_rtx (NEG, QImode, negate_rtx (QImode, operands[2])); ! }") (define_insn "" --- 965,979 ---- ;; Same thing for HImode. + (define_expand "lshrhi3" ! [(set (match_operand:HI 0 "register_operand" "=r") ! (lshiftrt:HI (match_operand:HI 1 "register_operand" "0") ! (match_operand:QI 2 "nonmemory_operand" "g")))] "" " ! { ! if (GET_CODE (operands[2]) != CONST_INT) ! operands[2] = gen_rtx (NEG, QImode, negate_rtx (QImode, operands[2])); ! }") (define_insn "" *************** *** 943,947 **** (match_operand:QI 2 "immediate_operand" "L")))] "" ! "dsrl r%0,%1") (define_insn "" --- 982,997 ---- (match_operand:QI 2 "immediate_operand" "L")))] "" ! "* ! { ! rtx new_opnds[2]; ! int amount = INTVAL(operands[2]); ! if (amount <= 16) ! return \"dsrl r%0,%2\"; ! output_asm_insn(\"dsrl r%0,16 ; lshrhi3 shiftcount > 16\",operands); ! new_opnds[0] = gen_rtx (REG, QImode, REGNO(operands[0]) + 1); ! new_opnds[1] = gen_rtx (CONST_INT, VOIDmode, amount - 16); ! output_asm_insn(\"srl r%0,%1\",new_opnds); ! return \";\"; ! } ") (define_insn "" *************** *** 954,966 **** ;; Same applies for arithmetic shift right. (define_expand "ashrqi3" ! [(set (match_operand:QI 0 "general_operand" "=g") (ashiftrt:QI (match_operand:QI 1 "general_operand" "0") ! (match_operand:QI 2 "general_operand" "g")))] "" " ! { ! if (GET_CODE (operands[2]) != CONST_INT) ! operands[2] = gen_rtx (NEG, QImode, negate_rtx (QImode, operands[2])); ! }") (define_insn "" --- 1004,1016 ---- ;; Same applies for arithmetic shift right. (define_expand "ashrqi3" ! [(set (match_operand:QI 0 "general_operand" "=r") (ashiftrt:QI (match_operand:QI 1 "general_operand" "0") ! (match_operand:QI 2 "nonmemory_operand" "g")))] "" " ! { ! if (GET_CODE (operands[2]) != CONST_INT) ! operands[2] = gen_rtx (NEG, QImode, negate_rtx (QImode, operands[2])); ! }") (define_insn "" *************** *** 969,973 **** (match_operand:QI 2 "immediate_operand" "I")))] "" ! "sra r%0,%1") (define_insn "" --- 1019,1023 ---- (match_operand:QI 2 "immediate_operand" "I")))] "" ! "sra r%0,%2") (define_insn "" *************** *** 980,992 **** ;; HImode arithmetic shift right. (define_expand "ashrhi3" ! [(set (match_operand:HI 0 "general_operand" "=g") (ashiftrt:HI (match_operand:HI 1 "general_operand" "0") ! (match_operand:QI 2 "general_operand" "g")))] "" " ! { ! if (GET_CODE (operands[2]) != CONST_INT) ! operands[2] = gen_rtx (NEG, QImode, negate_rtx (QImode, operands[2])); ! }") (define_insn "" --- 1030,1042 ---- ;; HImode arithmetic shift right. (define_expand "ashrhi3" ! [(set (match_operand:HI 0 "general_operand" "=r") (ashiftrt:HI (match_operand:HI 1 "general_operand" "0") ! (match_operand:QI 2 "nonmemory_operand" "g")))] "" " ! { ! if (GET_CODE (operands[2]) != CONST_INT) ! operands[2] = gen_rtx (NEG, QImode, negate_rtx (QImode, operands[2])); ! }") (define_insn "" *************** *** 995,999 **** (match_operand:QI 2 "immediate_operand" "L")))] "" ! "dsra r%0,%1") (define_insn "" --- 1045,1060 ---- (match_operand:QI 2 "immediate_operand" "L")))] "" ! "* ! { ! rtx new_opnds[2]; ! int amount = INTVAL(operands[2]); ! if (amount <= 16) ! return \"dsra r%0,%2\"; ! output_asm_insn(\"dsra r%0,16 ; ashrhi3 shiftcount > 16\",operands); ! new_opnds[0] = gen_rtx (REG, QImode, REGNO(operands[0]) + 1); ! new_opnds[1] = gen_rtx (CONST_INT, VOIDmode, amount - 16); ! output_asm_insn(\"sra r%0,%1\",new_opnds); ! return \";\"; ! } ") (define_insn "" *************** *** 1010,1014 **** [(set (match_operand:QI 0 "register_operand" "=r,r") (rotate:QI (match_operand:QI 1 "register_operand" "0,0") ! (match_operand:QI 2 "general_operand" "I,r")))] "" "@ --- 1071,1075 ---- [(set (match_operand:QI 0 "register_operand" "=r,r") (rotate:QI (match_operand:QI 1 "register_operand" "0,0") ! (match_operand:QI 2 "nonmemory_operand" "I,r")))] "" "@ *************** *** 1019,1023 **** [(set (match_operand:HI 0 "register_operand" "=r,r") (rotate:HI (match_operand:HI 1 "register_operand" "0,0") ! (match_operand:QI 2 "general_operand" "I,r")))] "" "@ --- 1080,1084 ---- [(set (match_operand:HI 0 "register_operand" "=r,r") (rotate:HI (match_operand:HI 1 "register_operand" "0,0") ! (match_operand:QI 2 "nonmemory_operand" "I,r")))] "" "@ *************** *** 1035,1039 **** [(set (match_operand:HI 0 "register_operand" "=r") (rotatert:HI (match_operand:HI 1 "register_operand" "0") ! (match_operand:QI 2 "general_operand" "r")))] "" "neg r%2,r%2\;dscr r%0,r%2 ") --- 1096,1100 ---- [(set (match_operand:HI 0 "register_operand" "=r") (rotatert:HI (match_operand:HI 1 "register_operand" "0") ! (match_operand:QI 2 "nonmemory_operand" "r")))] "" "neg r%2,r%2\;dscr r%0,r%2 ") 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.7.1/config/alpha/alpha.c gcc-2.7.2/config/alpha/alpha.c *** gcc-2.7.1/config/alpha/alpha.c Fri Oct 27 06:49:45 1995 --- gcc-2.7.2/config/alpha/alpha.c Sun Nov 26 12:05:44 1995 *************** *** 714,718 **** if (c == low || (low == 0 && extra == 0)) return copy_to_suggested_reg (GEN_INT (c), target, mode); ! else if (n >= 2 + (extra != 0)) { temp = copy_to_suggested_reg (GEN_INT (low), subtarget, mode); --- 714,723 ---- if (c == low || (low == 0 && extra == 0)) return copy_to_suggested_reg (GEN_INT (c), target, mode); ! else if (n >= 2 + (extra != 0) ! /* We can't do this when SImode if HIGH required adjustment. ! This is because the code relies on an implicit overflow ! which is invisible to the RTL. We can thus get incorrect ! code if the two ldah instructions are combined. */ ! && ! (mode == SImode && extra != 0)) { temp = copy_to_suggested_reg (GEN_INT (low), subtarget, mode); *************** *** 745,749 **** new |= (HOST_WIDE_INT) 0xff << i; ! if ((temp = alpha_emit_set_const (subtarget, mode, new, n - 1)) != 0) return expand_binop (mode, and_optab, temp, GEN_INT (c | ~ new), target, 0, OPTAB_WIDEN); --- 750,761 ---- new |= (HOST_WIDE_INT) 0xff << i; ! /* We are only called for SImode and DImode. If this is SImode, ensure that ! we are sign extended to a full word. */ ! ! if (mode == SImode) ! new = (new & 0xffffffff) - 2 * (new & 0x80000000); ! ! if (new != c ! && (temp = alpha_emit_set_const (subtarget, mode, new, n - 1)) != 0) return expand_binop (mode, and_optab, temp, GEN_INT (c | ~ new), target, 0, OPTAB_WIDEN); *************** *** 782,788 **** /* Now try high-order zero bits. Here we try the shifted-in bits as ! all zero and all ones. */ ! if ((bits = HOST_BITS_PER_WIDE_INT - floor_log2 (c) - 1) > 0) for (; bits > 0; bits--) if ((temp = alpha_emit_set_const (subtarget, mode, --- 794,802 ---- /* Now try high-order zero bits. Here we try the shifted-in bits as ! all zero and all ones. Be careful to avoid shifting outside the ! mode and to avoid shifting outside the host wide int size. */ ! if ((bits = (MIN (HOST_BITS_PER_WIDE_INT, GET_MODE_SIZE (mode) * 8) ! - floor_log2 (c) - 1)) > 0) for (; bits > 0; bits--) if ((temp = alpha_emit_set_const (subtarget, mode, *************** *** 794,803 **** != 0)) return expand_binop (mode, lshr_optab, temp, GEN_INT (bits), ! target, 0, OPTAB_WIDEN); /* Now try high-order 1 bits. We get that with a sign-extension. ! But one bit isn't enough here. */ ! if ((bits = HOST_BITS_PER_WIDE_INT - floor_log2 (~ c) - 2) > 0) for (; bits > 0; bits--) if ((temp = alpha_emit_set_const (subtarget, mode, --- 808,819 ---- != 0)) return expand_binop (mode, lshr_optab, temp, GEN_INT (bits), ! target, 1, OPTAB_WIDEN); /* Now try high-order 1 bits. We get that with a sign-extension. ! But one bit isn't enough here. Be careful to avoid shifting outside ! the mode and to avoid shifting outside the host wide int size. */ ! if ((bits = (MIN (HOST_BITS_PER_WIDE_INT, GET_MODE_SIZE (mode) * 8) ! - floor_log2 (~ c) - 2)) > 0) for (; bits > 0; bits--) if ((temp = alpha_emit_set_const (subtarget, mode, 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.7.1/config/alpha/win-nt.h gcc-2.7.2/config/alpha/win-nt.h *** gcc-2.7.1/config/alpha/win-nt.h Tue Sep 19 19:18:29 1995 --- gcc-2.7.2/config/alpha/win-nt.h Sun Nov 26 14:38:55 1995 *************** *** 29,40 **** #undef CPP_PREDEFINES ! #define CPP_PREDEFINES "-DWIN32 -D_WIN32\ ! -DWINNT -D__STDC__=0 -DALMOST_STDC -D_M_ALPHA\ ! -D_ALPHA_ -D__alpha -D__alpha__ -D_LONGLONG -Asystem(winnt) -Acpu(alpha)\ ! -Amachine(alpha)" #undef ASM_SPEC #undef ASM_FINAL_SPEC ! #define ASM_SPEC "-nopp -nologo" /* Pointer is 32 bits but the hardware has 64-bit addresses, sign extended. */ --- 29,40 ---- #undef CPP_PREDEFINES ! #define CPP_PREDEFINES "-DWIN32 -D_WIN32 -DWINNT -D__STDC__=0 -DALMOST_STDC\ ! -D_M_ALPHA -D_ALPHA_ -D__alpha -D__alpha__\ ! -D_LONGLONG -D__unaligned= -D__stdcall= \ ! -Asystem(winnt) -Acpu(alpha) -Amachine(alpha)" #undef ASM_SPEC #undef ASM_FINAL_SPEC ! #define ASM_SPEC "-nopp -nologo %{g:-Zi}" /* Pointer is 32 bits but the hardware has 64-bit addresses, sign extended. */ 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.7.1/config/m68k/atari.h gcc-2.7.2/config/m68k/atari.h *** gcc-2.7.1/config/m68k/atari.h Thu Jun 15 15:02:12 1995 --- gcc-2.7.2/config/m68k/atari.h Sun Nov 26 14:25:14 1995 *************** *** 1,5 **** /* Definitions of target machine for GNU compiler. Atari TT ASV version. ! Copyright (C) 1994 Free Software Foundation, Inc. This file is part of GNU CC. --- 1,5 ---- /* Definitions of target machine for GNU compiler. Atari TT ASV version. ! Copyright (C) 1994, 1995 Free Software Foundation, Inc. This file is part of GNU CC. *************** *** 105,119 **** else \ asm_fprintf (FILE, "%0L%s%d:\n", PREFIX, NUM) - - /* Define how to generate (in the callee) the output value of a function - and how to find (in the caller) the value returned by a function. VALTYPE - is the data type of the value (as a tree). If the precise function being - called is known, FUNC is its FUNCTION_DECL; otherwise, FUNC is 0. - For the Atari generate the result in d0 or fp0 as appropriate. */ - - #undef FUNCTION_VALUE - #define FUNCTION_VALUE(VALTYPE, FUNC) \ - (TREE_CODE (VALTYPE) == REAL_TYPE && TARGET_68881 \ - ? gen_rtx (REG, TYPE_MODE (VALTYPE), 16) \ - : gen_rtx (REG, TYPE_MODE (VALTYPE), 0)) - --- 105,106 ---- 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.7.1/config/mips/iris5.h gcc-2.7.2/config/mips/iris5.h *** gcc-2.7.1/config/mips/iris5.h Fri Jul 28 08:52:08 1995 --- gcc-2.7.2/config/mips/iris5.h Sun Nov 26 14:08:07 1995 *************** *** 109,117 **** /* The system header files are C++ aware. */ /* ??? Unfortunately, most but not all of the headers are C++ aware. ! Specifically, curses.h is not, and libg++ won't build because of it ! if this is defined. On the other hand, SGI has C++ packages with ! header files in /usr/include, and they won't work unless this is ! defined. We need some way to fix just those files that need fixing. */ ! /* #define NO_IMPLICIT_EXTERN_C 1 */ /* We don't support debugging info for now. */ --- 109,118 ---- /* The system header files are C++ aware. */ /* ??? Unfortunately, most but not all of the headers are C++ aware. ! Specifically, curses.h is not, and as a consequence, defining this ! used to prevent libg++ building. This is no longer the case so ! define it again to prevent other problems, e.g. with getopt in ! unistd.h. We still need some way to fix just those files that need ! fixing. */ ! #define NO_IMPLICIT_EXTERN_C 1 /* We don't support debugging info for now. */ 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.7.1/config/msdos/top.sed gcc-2.7.2/config/msdos/top.sed *** gcc-2.7.1/config/msdos/top.sed Mon Jun 19 13:03:22 1995 --- gcc-2.7.2/config/msdos/top.sed Sun Nov 26 13:42:37 1995 *************** *** 20,29 **** /^tmake_file=/ d /^version=/ c\ ! version=2.7.1 /^mainversion=/ c\ ! mainversion=2.7.1 s/CC = cc/CC = gcc/ s/:\$/: \$/g ! s/^ \ *\.\// go32 / s/<\ *\$(srcdir)\//< $(srcdir)\\/g s/^ \$(srcdir)\/move-if-change/ update/ --- 20,29 ---- /^tmake_file=/ d /^version=/ c\ ! version=2.7.2 /^mainversion=/ c\ ! mainversion=2.7.2 s/CC = cc/CC = gcc/ s/:\$/: \$/g ! s/^ \ *\.\// / s/<\ *\$(srcdir)\//< $(srcdir)\\/g s/^ \$(srcdir)\/move-if-change/ update/ *************** *** 37,42 **** /\\/d /[ ]fi[ ]/d /update/ i\ ! go32 genattrtab md > t-attrtab.c } /^enquire[ ]*:/ s/\$(GCC_PARTS)//g --- 37,43 ---- /\\/d /[ ]fi[ ]/d + /[ ]fi$/d /update/ i\ ! genattrtab md > t-attrtab.c } /^enquire[ ]*:/ s/\$(GCC_PARTS)//g 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.7.1/config/rs6000/rs6000.md gcc-2.7.2/config/rs6000/rs6000.md *** gcc-2.7.1/config/rs6000/rs6000.md Thu Oct 26 08:05:55 1995 --- gcc-2.7.2/config/rs6000/rs6000.md Sun Nov 26 13:53:45 1995 *************** *** 4724,4728 **** xop[1] = operands[2]; xop[2] = GEN_INT (4 * (words-1)); ! output_asm_insn (\"{lsi|lswi} %0,%1,%2\;lwz %1,%2(%1)\", xop); return \"\"; } --- 4724,4728 ---- xop[1] = operands[2]; xop[2] = GEN_INT (4 * (words-1)); ! output_asm_insn (\"{lsi|lswi} %0,%1,%2\;{l|lwz} %1,%2(%1)\", xop); 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.7.1/config/sparc/sparc.h gcc-2.7.2/config/sparc/sparc.h *** gcc-2.7.1/config/sparc/sparc.h Sun Nov 5 11:10:26 1995 --- gcc-2.7.2/config/sparc/sparc.h Sun Nov 26 14:29:39 1995 *************** *** 2558,2562 **** else if (GET_CODE (index) == REG) \ fprintf (FILE, "+%s", reg_names[REGNO (index)]); \ ! else if (GET_CODE (index) == SYMBOL_REF) \ fputc ('+', FILE), output_addr_const (FILE, index); \ else abort (); \ --- 2558,2563 ---- else if (GET_CODE (index) == REG) \ fprintf (FILE, "+%s", reg_names[REGNO (index)]); \ ! else if (GET_CODE (index) == SYMBOL_REF \ ! || GET_CODE (index) == CONST) \ fputc ('+', FILE), output_addr_const (FILE, index); \ else abort (); \ 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.7.1/config/winnt/config-nt.sed gcc-2.7.2/config/winnt/config-nt.sed *** gcc-2.7.1/config/winnt/config-nt.sed Tue Sep 12 17:15:17 1995 --- gcc-2.7.2/config/winnt/config-nt.sed Sun Nov 26 11:21:27 1995 *************** *** 14,18 **** /^lang_options_files=/ d /^version=/ c\ ! version=2.7.0 s/CC = cc/CC = cl/ s/^SHELL =.*/SHELL =/ --- 14,18 ---- /^lang_options_files=/ d /^version=/ c\ ! version=2.7.2 s/CC = cc/CC = cl/ s/^SHELL =.*/SHELL =/ 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.7.1/config/winnt/ld.c gcc-2.7.2/config/winnt/ld.c *** gcc-2.7.1/config/winnt/ld.c Tue Sep 12 17:15:42 1995 --- gcc-2.7.2/config/winnt/ld.c Sun Nov 26 14:38:58 1995 *************** *** 289,292 **** --- 289,293 ---- } else if (!strcmp (argv [i], "-v") + || !strcmp (argv [i], "-g") || !strcmp (argv [i], "-noinhibit-exec")) { 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.7.1/config/winnt/oldnames.c gcc-2.7.2/config/winnt/oldnames.c *** gcc-2.7.1/config/winnt/oldnames.c Tue Sep 19 19:18:14 1995 --- gcc-2.7.2/config/winnt/oldnames.c Sun Nov 26 14:39:01 1995 *************** *** 1,13 **** ! int open (const char *filename, int oflag, int pmode) { ! return _open (filename, oflag, pmode); ! } ! int read (int handle, void *buffer, unsigned int count) { ! return _read (handle, buffer, count); } ! int close (int handle) { return _close (handle); --- 1,16 ---- ! int ! access (const char *path, int mode) { ! return _access (path, mode); ! } ! int ! chmod (const char *filename, int pmode) { ! return _chmod (filename, pmode); } ! int ! close (int handle) { return _close (handle); *************** *** 14,24 **** } ! int access (const char *path, int mode) { ! return _access (path, mode); } ! char *mktemp (char *template) { ! return (char *) _mktemp (template); } --- 17,47 ---- } ! char * ! mktemp (char *template) { ! return (char *) _mktemp (template); } ! int ! open (const char *filename, int oflag, int pmode) { ! return _open (filename, oflag, pmode); ! } ! ! int ! read (int handle, void *buffer, unsigned int count) ! { ! return _read (handle, buffer, count); ! } ! ! int ! unlink (const char *path) ! { ! return _unlink (path); ! } ! ! int ! write (int handle, void *buffer, unsigned int count) ! { ! return _write (handle, buffer, count); } 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.7.1/config/winnt/win-nt.h gcc-2.7.2/config/winnt/win-nt.h *** gcc-2.7.1/config/winnt/win-nt.h Tue Sep 19 19:18:32 1995 --- gcc-2.7.2/config/winnt/win-nt.h Sun Nov 26 14:39:04 1995 *************** *** 27,31 **** #undef LINK_SPEC ! #define LINK_SPEC "-stack 1000000,1000000 -noinhibit-exec" #undef CPP_SPEC --- 27,31 ---- #undef LINK_SPEC ! #define LINK_SPEC "-stack 5000000,5000000 -noinhibit-exec %{g}" #undef CPP_SPEC 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.7.1/configure gcc-2.7.2/configure *** gcc-2.7.1/configure Thu Oct 26 18:03:09 1995 --- gcc-2.7.2/configure Sun Nov 26 14:39:15 1995 *************** *** 591,594 **** --- 591,595 ---- tmake_file=t-libc-ok xmake_file=winnt/x-winnt + extra_objs=oldnames.o extra_gcc_objs="spawnv.o oldnames.o" fixincludes=fixinc.winnt *************** *** 1141,1145 **** xmake_file=winnt/x-winnt tmake_file=i386/t-winnt ! extra_objs=winnt.o extra_gcc_objs="spawnv.o oldnames.o" fixincludes=fixinc.winnt --- 1142,1146 ---- xmake_file=winnt/x-winnt tmake_file=i386/t-winnt ! extra_objs="winnt.o oldnames.o" extra_gcc_objs="spawnv.o oldnames.o" fixincludes=fixinc.winnt *************** *** 2966,2971 **** rm -f aux-output.c aux-output.o md # Create an empty Makefile.sed first, to work around a Nextstep 3.3 bug. ! cat /dev/null > Makefile.sed ! echo 's| ||' >> Makefile.sed echo "s|^target=.*$|target=${target}|" >> Makefile.sed echo "s|^xmake_file=.*$|xmake_file=${dep_host_xmake_file}|" >> Makefile.sed --- 2967,2973 ---- rm -f aux-output.c aux-output.o md # Create an empty Makefile.sed first, to work around a Nextstep 3.3 bug. ! echo 's| ||' > Makefile.sed ! rm Makefile.sed ! echo 's| ||' > Makefile.sed echo "s|^target=.*$|target=${target}|" >> Makefile.sed echo "s|^xmake_file=.*$|xmake_file=${dep_host_xmake_file}|" >> Makefile.sed 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.7.1/cp/ChangeLog gcc-2.7.2/cp/ChangeLog *** gcc-2.7.1/cp/ChangeLog Fri Nov 3 18:00:30 1995 --- gcc-2.7.2/cp/ChangeLog Mon Nov 20 20:15:21 1995 *************** *** 1,3 **** ! Fri Nov 3 17:58:52 1995 Mike Stump * Version 2.7.1 released. --- 1,16 ---- ! Mon Nov 20 14:06:28 1995 Mike Stump ! ! * Version 2.7.2 released. ! ! Mon Nov 20 14:05:00 1995 Mike Stump ! ! * g++.c (pfatal_with_name): Add missing third argument to concat. ! ! Thu Oct 26 13:59:54 1995 Mike Stump ! ! * init.c (expand_aggr_init): Handle cv qualifiers on the object's ! type. ! ! Sun Nov 12 18:09:35 1995 Mike Stump * Version 2.7.1 released. 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.7.1/cp/g++.c gcc-2.7.2/cp/g++.c *** gcc-2.7.1/cp/g++.c Wed Oct 11 22:29:24 1995 --- gcc-2.7.2/cp/g++.c Mon Nov 20 17:08:53 1995 *************** *** 243,247 **** char *name; { ! fatal (concat ("%s: ", my_strerror (errno)), name); } --- 243,247 ---- char *name; { ! fatal (concat ("%s: ", my_strerror (errno), ""), name); } 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.7.1/cp/init.c gcc-2.7.2/cp/init.c *** gcc-2.7.1/cp/init.c Wed Oct 11 22:29:58 1995 --- gcc-2.7.2/cp/init.c Sun Nov 26 13:48:00 1995 *************** *** 1177,1182 **** --- 1177,1185 ---- init = CONSTRUCTOR_ELTS (init); #endif + + TREE_TYPE (exp) = TYPE_MAIN_VARIANT (type); expand_aggr_init_1 (TYPE_BINFO (type), exp, exp, init, alias_this, LOOKUP_NORMAL|flags); + TREE_TYPE (exp) = type; TREE_READONLY (exp) = was_const; TREE_THIS_VOLATILE (exp) = was_volatile; 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.7.1/cse.c gcc-2.7.2/cse.c *** gcc-2.7.1/cse.c Sun Nov 5 11:01:11 1995 --- gcc-2.7.2/cse.c Sun Nov 26 14:47:05 1995 *************** *** 1372,1376 **** insn making that quantity equivalent to the constant. */ ! if (elt->is_const && classp && GET_CODE (classp->exp) == REG) { qty_const[reg_qty[REGNO (classp->exp)]] --- 1372,1377 ---- insn making that quantity equivalent to the constant. */ ! if (elt->is_const && classp && GET_CODE (classp->exp) == REG ! && GET_CODE (x) != REG) { qty_const[reg_qty[REGNO (classp->exp)]] *************** *** 1379,1383 **** } ! else if (GET_CODE (x) == REG && classp && ! qty_const[reg_qty[REGNO (x)]]) { register struct table_elt *p; --- 1380,1385 ---- } ! else if (GET_CODE (x) == REG && classp && ! qty_const[reg_qty[REGNO (x)]] ! && ! elt->is_const) { register struct table_elt *p; *************** *** 1385,1389 **** for (p = classp; p != 0; p = p->next_same_value) { ! if (p->is_const) { qty_const[reg_qty[REGNO (x)]] --- 1387,1391 ---- for (p = classp; p != 0; p = p->next_same_value) { ! if (p->is_const && GET_CODE (p->exp) != REG) { qty_const[reg_qty[REGNO (x)]] 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.7.1/expr.c gcc-2.7.2/expr.c *** gcc-2.7.1/expr.c Thu Nov 9 11:00:35 1995 --- gcc-2.7.2/expr.c Sun Nov 26 11:18:07 1995 *************** *** 192,195 **** --- 192,196 ---- static tree defer_cleanups_to PROTO((tree)); extern void (*interim_eh_hook) PROTO((tree)); + extern tree truthvalue_conversion PROTO((tree)); /* Record for each mode whether we can move a register directly to or 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.7.1/final.c gcc-2.7.2/final.c *** gcc-2.7.1/final.c Thu Oct 26 08:00:41 1995 --- gcc-2.7.2/final.c Sun Nov 26 13:50:00 1995 *************** *** 893,898 **** /* For SDB and XCOFF, the function beginning must be marked between the function label and the prologue. We always need this, even when ! -g1 was used. */ ! #ifdef SDB_DEBUGGING_INFO if (write_symbols == SDB_DEBUG) sdbout_begin_function (last_linenum); --- 893,899 ---- /* For SDB and XCOFF, the function beginning must be marked between the function label and the prologue. We always need this, even when ! -g1 was used. Defer on MIPS systems so that parameter descriptions ! follow function entry. */ ! #if defined(SDB_DEBUGGING_INFO) && !defined(MIPS_DEBUGGING_INFO) if (write_symbols == SDB_DEBUG) sdbout_begin_function (last_linenum); *************** *** 1315,1318 **** --- 1316,1326 ---- if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_FUNCTION_BEG) { + #if defined(SDB_DEBUGGING_INFO) && defined(MIPS_DEBUGGING_INFO) + /* MIPS stabs require the parameter descriptions to be after the + function entry point rather than before. */ + if (write_symbols == SDB_DEBUG) + sdbout_begin_function (last_linenum); + else + #endif #ifdef DWARF_DEBUGGING_INFO /* This outputs a marker where the function body starts, so it 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.7.1/fixincludes gcc-2.7.2/fixincludes *** gcc-2.7.1/fixincludes Sun Nov 5 11:05:06 1995 --- gcc-2.7.2/fixincludes Sun Nov 26 14:22:28 1995 *************** *** 1998,2004 **** -e '/^#[ ]*define[ ][ ]*bool[ ][ ]*char[ ]*$/a\ #endif'\ ! -e '/^typedef[ ][ ]*char[ ][ ]*bool[ ]*;/i\ #ifndef __cplusplus'\ ! -e '/^typedef[ ][ ]*char[ ][ ]*bool[ ]*;/a\ #endif'\ ${LIB}/$file > ${LIB}/${file}.sed --- 1998,2004 ---- -e '/^#[ ]*define[ ][ ]*bool[ ][ ]*char[ ]*$/a\ #endif'\ ! -e '/^typedef[ ][ ]*char[ ][ ]*bool[ ]*;/i\ #ifndef __cplusplus'\ ! -e '/^typedef[ ][ ]*char[ ][ ]*bool[ ]*;/a\ #endif'\ ${LIB}/$file > ${LIB}/${file}.sed 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.7.1/function.c gcc-2.7.2/function.c *** gcc-2.7.1/function.c Sun Nov 12 18:08:38 1995 --- gcc-2.7.2/function.c Sun Nov 26 14:50:26 1995 *************** *** 1454,1458 **** If it has a REG_LIBCALL note, delete the REG_LIBCALL and REG_RETVAL notes too. */ ! if (GET_CODE (PATTERN (insn)) == CLOBBER && XEXP (PATTERN (insn), 0) == var) { --- 1454,1458 ---- If it has a REG_LIBCALL note, delete the REG_LIBCALL and REG_RETVAL notes too. */ ! if (GET_CODE (PATTERN (insn)) == CLOBBER && XEXP (PATTERN (insn), 0) == var) { *************** *** 2060,2070 **** /* Convert (SUBREG (MEM)) to a MEM in a changed mode. */ if (GET_CODE (fixeddest) == SUBREG) ! fixeddest = fixup_memory_subreg (fixeddest, insn, 0); else fixeddest = fixup_stack_1 (fixeddest, insn); ! temp = gen_reg_rtx (GET_MODE (SET_SRC (x)) == VOIDmode ! ? GET_MODE (fixeddest) ! : GET_MODE (SET_SRC (x))); emit_insn_after (gen_move_insn (fixeddest, --- 2060,2071 ---- /* Convert (SUBREG (MEM)) to a MEM in a changed mode. */ if (GET_CODE (fixeddest) == SUBREG) ! { ! fixeddest = fixup_memory_subreg (fixeddest, insn, 0); ! promoted_mode = GET_MODE (fixeddest); ! } else fixeddest = fixup_stack_1 (fixeddest, insn); ! temp = gen_reg_rtx (promoted_mode); emit_insn_after (gen_move_insn (fixeddest, 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.7.1/gcc.1 gcc-2.7.2/gcc.1 *** gcc-2.7.1/gcc.1 Thu Jul 13 19:23:51 1995 --- gcc-2.7.2/gcc.1 Sun Nov 26 14:11:33 1995 *************** *** 24,28 **** .TH GCC 1 "\*(Dt" "GNU Tools" "GNU Tools" .SH NAME ! gcc, g++ \- GNU project C and C++ Compiler (v2.6) .SH SYNOPSIS .B gcc --- 24,28 ---- .TH GCC 1 "\*(Dt" "GNU Tools" "GNU Tools" .SH NAME ! gcc, g++ \- GNU project C and C++ Compiler (v2.7) .SH SYNOPSIS .B gcc 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.7.1/gcc.texi gcc-2.7.2/gcc.texi *** gcc-2.7.1/gcc.texi Mon Nov 6 09:47:57 1995 --- gcc-2.7.2/gcc.texi Sun Nov 26 11:25:18 1995 *************** *** 148,156 **** @center Richard M. Stallman @sp 3 ! @center Last updated 6 November 1995 @sp 1 @c The version number appears twice more in this file. ! @center for version 2.7.1 @page @vskip 0pt plus 1filll --- 148,156 ---- @center Richard M. Stallman @sp 3 ! @center Last updated 26 November 1995 @sp 1 @c The version number appears twice more in this file. ! @center for version 2.7.2 @page @vskip 0pt plus 1filll *************** *** 157,161 **** Copyright @copyright{} 1988, 89, 92, 93, 94, 1995 Free Software Foundation, Inc. @sp 2 ! For GCC Version 2.7.1@* @sp 1 Published by the Free Software Foundation @* --- 157,161 ---- Copyright @copyright{} 1988, 89, 92, 93, 94, 1995 Free Software Foundation, Inc. @sp 2 ! For GCC Version 2.7.2@* @sp 1 Published by the Free Software Foundation @* *************** *** 198,202 **** This manual documents how to run, install and port the GNU compiler, as well as its new features and incompatibilities, and how to ! report bugs. It corresponds to GNU CC version 2.7.1. @end ifset @end ifset --- 198,202 ---- This manual documents how to run, install and port the GNU compiler, as well as its new features and incompatibilities, and how to ! report bugs. It corresponds to GNU CC version 2.7.2. @end ifset @end ifset *************** *** 205,209 **** This manual documents how to run and install the GNU compiler, as well as its new features and incompatibilities, and how to report ! bugs. It corresponds to GNU CC version 2.7.1. @end ifclear @ifclear USING --- 205,209 ---- This manual documents how to run and install the GNU compiler, as well as its new features and incompatibilities, and how to report ! bugs. It corresponds to GNU CC version 2.7.2. @end ifclear @ifclear USING 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.7.1/libgcc2.c gcc-2.7.2/libgcc2.c *** gcc-2.7.1/libgcc2.c Tue Nov 7 10:52:00 1995 --- gcc-2.7.2/libgcc2.c Sun Nov 26 14:39:21 1995 *************** *** 1920,1923 **** --- 1920,1956 ---- /* Jump to a trampoline, loading the static chain address. */ + #ifdef WINNT + + long getpagesize() + { + #ifdef _ALPHA_ + return 8192; + #else + return 4096; + #endif + } + + int mprotect(addr, len, prot) + char *addr; + int len, prot; + { + int np, op; + + if (prot == 7) np = 0x40; + else if (prot == 5) np = 0x20; + else if (prot == 4) np = 0x10; + else if (prot == 3) np = 0x04; + else if (prot == 1) np = 0x02; + else if (prot == 0) np = 0x01; + + if (VirtualProtect (addr, len, np, &op)) + return 0; + else + return -1; + + } + + #endif + #ifdef TRANSFER_FROM_TRAMPOLINE TRANSFER_FROM_TRAMPOLINE 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.7.1/md.texi gcc-2.7.2/md.texi *** gcc-2.7.1/md.texi Wed Jun 28 15:37:18 1995 --- gcc-2.7.2/md.texi Sun Nov 26 14:05:33 1995 *************** *** 1423,1426 **** --- 1423,1429 ---- 0, 1, 2, or 3 (shifts for @code{lea} instruction) + @item N + Constant in range 0 to 255 (for @code{out} instruction) + @item G Standard 80387 floating point constant 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.7.1/texinfo.tex gcc-2.7.2/texinfo.tex *** gcc-2.7.1/texinfo.tex Thu Nov 9 11:30:15 1995 --- gcc-2.7.2/texinfo.tex Sun Nov 26 14:57:26 1995 *************** *** 35,39 **** % This automatically updates the version number based on RCS. \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} ! \deftexinfoversion$Revision: 2.149 $ \message{Loading texinfo package [Version \texinfoversion]:} --- 35,39 ---- % This automatically updates the version number based on RCS. \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} ! \deftexinfoversion$Revision: 2.150 $ \message{Loading texinfo package [Version \texinfoversion]:} *************** *** 3848,3852 **** \ifdim \wd0 = 0pt % No printed node name was explicitly given. ! \ifx\SETxref-automatic-section-title\relax % % Use the actual chapter/section title appear inside % the square brackets. Use the real section title if we have it. --- 3848,3855 ---- \ifdim \wd0 = 0pt % No printed node name was explicitly given. ! \ifx\SETxref-automatic-section-title\thisisundefined ! % Use the node name inside the square brackets. ! \def\printednodename{\ignorespaces #1}% ! \else % Use the actual chapter/section title appear inside % the square brackets. Use the real section title if we have it. *************** *** 3857,3861 **** \ifhavexrefs % We know the real title if we have the xref values. ! \def\printednodename{\refx{#1-title}}% \else % Otherwise just copy the Info node name. --- 3860,3864 ---- \ifhavexrefs % We know the real title if we have the xref values. ! \def\printednodename{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. *************** *** 3863,3870 **** \fi% \fi - \def\printednodename{#1-title}% - \else - % Use the node name inside the square brackets. - \def\printednodename{\ignorespaces #1}% \fi \fi --- 3866,3869 ---- 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.7.1/version.c gcc-2.7.2/version.c *** gcc-2.7.1/version.c Mon Jun 19 13:14:48 1995 --- gcc-2.7.2/version.c Sun Nov 26 11:20:43 1995 *************** *** 1 **** ! char *version_string = "2.7.1"; --- 1 ---- ! char *version_string = "2.7.2";