|
|
1.1 ! root 1: Sat Feb 22 02:09:55 1992 Richard Stallman ([email protected]) ! 2: ! 3: * Version 2.0 released. ! 4: ! 5: * gcc.c (do_spec_1): Handle SPACE_AFTER_L_OPTION. ! 6: * hp320.h (SPACE_AFTER_L_OPTION): Defined. ! 7: Note: for 2.1, try making a space there on all systems. ! 8: ! 9: * i386mach.h (perform_*): New macros, copied from i386rose.h. ! 10: ! 11: * Makefile.in (distclean): New target. ! 12: (realclean): Avoid duplication with self or with distclean. ! 13: (gcc.xtar.Z): Depend on gcc.xtar. ! 14: (gcc.xtar): Fixes in copying files. ! 15: ! 16: * expr.c (do_store_flag): Don't correct CODE before where it is set. ! 17: ! 18: * cp-parse.y (stmt): Pass pushcase_range all the args it wants. ! 19: ! 20: Fri Feb 21 18:14:52 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 21: ! 22: * combine.c (distribute_notes): Correctly handle the case of a ! 23: REG_DEAD note for a multi-word hard register when not all of ! 24: the words are used. ! 25: ! 26: Fri Feb 21 16:47:32 1992 Michael Meissner ([email protected]) ! 27: ! 28: * mips.h (MIPS_VERSION): Change Meissner version # to 12. ! 29: (half_pic support): Move the halfpic support to halfpic.h which is ! 30: included in the decrose case, and nop the support in other MIPS ! 31: platforms. ! 32: (OPTIMIZATION_OPTIONS): Move setting caller-saves to -O2. ! 33: (OBJECT_FORMAT_COFF, EXTENDED_COFF): Define unless OSF/rose. ! 34: (INITIAL_FRAME_POINTER_OFFSET): Always recalculate the frame size, ! 35: don't rely on cached values. ! 36: ! 37: * mips.c (half_pic support): Move the halfpic support to halfpic.c, ! 38: which is only compiled for OSF/rose. ! 39: (expand_block_move): Use copy_addr_to_reg instead of copy_to_reg in ! 40: case either the source or destination is an integer constant ! 41: converted to an appropriate pointer type. ! 42: (mips_debugger_offset): Use a local variable to hold function ! 43: result. ! 44: ! 45: * decrose.h (toplevel): Include halfpic.h for halfpic support. ! 46: (PTRDIFF_TYPE): Change to 'int' to match current include files. ! 47: (WCHAR_TYPE): Change to 'unsigned int' to match include files. ! 48: (INIT_SECTION_ASM_OP): Delete, since the OSF/rose assembler doesn't ! 49: support a true initialization section. ! 50: ! 51: * encrose.h (PTRDIFF_TYPE): Change to 'int' to match current include ! 52: files. ! 53: (WCHAR_TYPE): Change to 'unsigned int' to match include files. ! 54: ! 55: * t-decrose (EXTRA_OBJS): Define as halfpic.o to provide halfpic ! 56: support. ! 57: (CONFIG2_H): Treat halfpic.h as another config file. ! 58: (halfpic.o): Add dependencies. ! 59: ! 60: * halfpic.h (new file): Common include file for systems needing the ! 61: OSF/rose half-pic shared library support. ! 62: ! 63: * halfpic.c (new file): Common support file for systems needing the ! 64: OSF/rose half-pic shared library support. Currently these are stub ! 65: functions. ! 66: ! 67: Fri Feb 21 01:34:08 1992 Richard Stallman ([email protected]) ! 68: ! 69: * dwarfout.c (location_or_const_value_attribute): Use DECL_RTL again. ! 70: Seems to be safer for the moment. ! 71: * function.c (instantiate_decls): Don't instantiate DECL_INCOMING_RTL. ! 72: ! 73: * dwarfout.c (output_mem_loc_descriptor): Handle CONST like SYMBOL_REF. ! 74: ! 75: * collect2.c (errno): Declare if not macro. ! 76: ! 77: * dbxout.c [MIPS]: Include gstab.h, not stab.h. ! 78: ! 79: * dbxout.c (dbxout_symbol): No longer flush leading _ for C++ syms. ! 80: ! 81: * cp-parse.y (.hush_warning): Set $$. ! 82: ! 83: * gstdarg.h: Handle _HIDDEN_VA_LIST as in gvarargs.h. ! 84: ! 85: Thu Feb 20 07:41:29 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 86: ! 87: * vax.c (reg_or_nxmem_operand): New function. ! 88: (split_quadword_operands): Add missing return type (void). ! 89: * vax.md (jlbc/jbc/jlbs/jbs): Handle QImode operands properly. ! 90: ! 91: * caller-save.c (set_reg_live): Use mode of SUBREG to see how many ! 92: hard regs are written. ! 93: ! 94: * combine.c (simplify_shift_const, case IOR, AND, XOR): Perform ! 95: logic computation in RESULT_MODE, not mode of VAROP. ! 96: ! 97: Wed Feb 19 18:32:05 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 98: ! 99: * hp320.h (PRINT_OPERAND): Support codes '$' and '&'. ! 100: ! 101: * reload1.c (reload): Add cast of enum in index. ! 102: ! 103: * vms.h (CPP_PREDEFINES): Define __GNUC__ as 2. ! 104: ! 105: Wed Feb 19 21:43:36 1992 Ron Guilmette (rfg at ncd.com) ! 106: ! 107: * dwarfout.c (output_mem_loc_descriptor): Deleted useless blank line. ! 108: (output_mem_loc_descriptor) Added code to handle CONSTs in DECL_RTL ! 109: expressions. ! 110: (dwarfout_finish): Added code to put a null string at the end of ! 111: the terminating .debug_macinfo section. ! 112: ! 113: Tue Feb 18 18:34:13 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 114: ! 115: * cccp.c (main): Fix typo in comment or spacing. ! 116: * dbxout.c (dbxout_block): Likewise. ! 117: * expr.c (convert_move): Likewise. ! 118: * reload1.c (emit_reload_insn): Likewise. ! 119: * rtl.h (REG_NOTES): Likewise. ! 120: * sun4o3.h: Likewise. ! 121: * ultrix.h (CPP_PREDEFINES): Likewise. ! 122: * toplev.c (flag_no_common): Likewise. ! 123: * stmt.c (layout_type): Likewise. ! 124: * gcc.c (is_linker_dir, lookup_compiler): Likewise. ! 125: ! 126: * sched.c (schedule_block): Comment code handling USE insns as ! 127: obsolete. ! 128: ! 129: Tue Feb 18 14:44:49 1992 Richard Stallman ([email protected]) ! 130: ! 131: * c++: Run gcc in same dir as c++ was in, if exists there. ! 132: Use `exec' to run it. ! 133: New var `havefiles'; special message if no input files specified. ! 134: Pass through any unrecognized options. ! 135: ! 136: * g++: Now a link to c++. ! 137: ! 138: Tue Feb 18 04:54:52 1992 david d [zoo] zuhn (zoo at lynx.spa.umn.edu) ! 139: ! 140: * protoize.c (main): added support for -p flag, to specify which ! 141: gcc is the one to call for -fgen-aux-info support. ! 142: ! 143: Tue Feb 18 07:29:23 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 144: ! 145: * combine.c (try_combine): Don't clobber OTHER_INSN's PATTERN if ! 146: we aren't able to change the insn. ! 147: ! 148: * romp.md (bit_insv): Add missing CLOBBER when making pattern to ! 149: match mftb; likewise for the DEFINE_INSN. ! 150: ! 151: Tue Feb 18 01:03:41 1992 Richard Stallman ([email protected]) ! 152: ! 153: * rs6000.h (bss_section): Set `in_section' correctly. ! 154: ! 155: * expmed.c (synth_mult): Count second shift for alg_compound. ! 156: Count extra shift for lea case. ! 157: * m68k.h (RTX_COSTS): Reduce cost of multiply. ! 158: ! 159: * function.c (instantiate_decls): Instantiate DECL_INCOMING_RTL. ! 160: ! 161: Mon Feb 17 19:17:50 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 162: ! 163: * a29k.md (divmodsi4, udivmodsi4): Don't use reg 180 explicitly. ! 164: Instead use 'q' constraint letter. ! 165: ! 166: Mon Feb 17 16:15:02 1992 Richard Stallman ([email protected]) ! 167: ! 168: * global-alloc.c (global_alloc): Always call `reload'. ! 169: ! 170: Mon Feb 17 10:38:38 1992 Jim Wilson (wilson at sphagnum.cygnus.com) ! 171: ! 172: * a29k.md (movdi define_split): Use DImode in operand_subword ! 173: calls, not DFmode. ! 174: ! 175: Mon Feb 17 08:20:33 1992 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) ! 176: ! 177: * varasm.c (assemble_external): Check that DECL is some sort of ! 178: _DECL before referencing its DECL_RTL. ! 179: ! 180: Sun Feb 16 13:05:36 1992 Michael Tiemann (tiemann at cygnus.com) ! 181: ! 182: * cp-call.c (build_method_call): Add call to `assemble_external' in ! 183: case this is the first use of FUNCTION. ! 184: * cp-class.c (build_vfn_ref): Ditto for VTBL. ! 185: * cp-decl2.c (write_vtable_entries): Ditto for FN. ! 186: * cp-init.c (build_offset_ref): Ditto for T. ! 187: * cp-typeck.c (build_function_call_real): Ditto for FUNCTION. ! 188: * cp-method.c (hack_identifier): Ditto for VALUE. Also remove ! 189: action that made call to `assemble_external' when !TREE_USED (VALUE). ! 190: ! 191: * cp-lex.c (do_identifier): Remove call to `assemble_external' when ! 192: implicitly declaring ID. ! 193: ! 194: * cp-parse.y (primary): Simplify rules for calling assemble_external. ! 195: ! 196: * cp-decl.c (finish_function): For destructors, don't call ! 197: expand_expr_stmt if EXPRSTMT is VOID_ZERO_NODE. ! 198: ! 199: Sun Dec 16 23:31:54 1992 Ron Guilmette (rfg at ncd.com) ! 200: ! 201: * dwarfout.c (fundamental_type_code): Deleted gunk for handling ! 202: OFFSET_TYPEs. (They are *not* fundamental types). ! 203: (fundamental_type_code): Fixed typo. ! 204: (location_attribute, const_value_attribute): Changed to take one ! 205: rtx parameter rather than one tree parameter. ! 206: (location_or_const_value_attribute): Changed to use DECL_INCOMING_RTL ! 207: rather than DECL_RTL for formal parameters. Also changed calls to ! 208: location_attribute and const_value_attribute to provide the rtl ! 209: parameter. ! 210: (fund_type_attribute): Changed to accept an actual fundamental type ! 211: code as a parameter directly. Also changed all calls correspondingly. ! 212: (type_attribute): Separated tests for ERROR_MARK and for VOID_TYPE ! 213: and added comments. ! 214: (output_unspecified_parameters_die): Changed to take one tree param ! 215: and to generate *both* an AT_name and an AT_type attribute when the ! 216: input parameter represents of function definition. Also adjusted ! 217: all calls correspondingly. ! 218: ! 219: Sun Feb 16 00:54:10 1992 Richard Stallman ([email protected]) ! 220: ! 221: * fixincludes: Add #ifndef around size_t declaration in types.h. ! 222: ! 223: * varasm.c (assemble_external): Do nothing if arg isn't a decl. ! 224: ! 225: * Makefile.in (cp-parse.c): Update "expect" msg. ! 226: ! 227: * next.h (CPP_SPEC): Rename -bsd to -strict-bsd. ! 228: ! 229: * Makefile.in (mostlyclean): Add ld, mips-tfile, mips-tdump. ! 230: ! 231: * protoize.c (directory_specified_p): Don't match files in subdirs. ! 232: ! 233: * xm-rs6k-m.h: Renamed from xm-rs6000-mach.h. ! 234: * configure (rs6000-*-mach*): Changed accordingly. ! 235: ! 236: * collect2.c (handler): No error msg here. Just resend signal. ! 237: (write_c_file): Arg to write_list... is pointer. ! 238: (do_wait): Fix typo. ! 239: (scan_prog_file for non-OSF): Preserve all underscores. ! 240: ! 241: * Makefile.in (install-collect2): Install gcc in libsubdir. ! 242: ! 243: Sat Feb 15 15:26:03 1992 Richard Stallman ([email protected]) ! 244: ! 245: * varasm.c (decode_reg_name): Empty string is not a reg number. ! 246: ! 247: * fold-const.c (merge_component_references): NE tests against ! 248: mismatched constants forces 1, not 0, as value. ! 249: ! 250: * i386gas.h (ASM_OUTPUT_OPCODE): Convert repz to repe. ! 251: ! 252: * collect2.c: Get rid of PROTO macro; use non-prototype decls. ! 253: Don't include gstddef.h (had conflicts). Use gstdarg.h, not stdarg.h. ! 254: (xcalloc, xmalloc): Add casts. ! 255: (do_wait): Avoid macros WTERMSIG, WEXITSTATUS missing on some machines. ! 256: ! 257: * cp-typeck.c (default_conversion): Don't use initial value if BLKmode. ! 258: ! 259: * objc-actions.c (finish_objc): Fix typos in last change. ! 260: ! 261: * c-aux-info.c, dbxout.c, cccp.c (errno): Declare, if not a macro. ! 262: ! 263: * i386.md (QI bit test recognizer): Split into separate patterns ! 264: for memory and register args. Make a scratch reg for memory. ! 265: ! 266: Fri Feb 14 23:39:58 1992 Richard Stallman ([email protected]) ! 267: ! 268: * tree.c (get_identifier): Improve -Wid-clash message. ! 269: ! 270: Fri Feb 14 16:22:48 1992 Michael Collison (collison at osf.org) ! 271: ! 272: * i386rose.h (CPP_SPEC): Define the macros LANGUAGE_OBJECTIVE_C and ! 273: LANGUAGE_C_PLUS_PLUS if we are compiling Objective C or C++. ! 274: (INIT_SECTION_ASM_OP): Define as .init. ! 275: (CC1PLUS_SPEC): Define it. ! 276: (LINK_LIBGCC_SPECIAL): Define this to work around linker bug. ! 277: ! 278: Fri Feb 14 00:38:15 1992 Richard Stallman ([email protected]) ! 279: ! 280: * Makefile.in (protoize.o, unprotoize.o): g++-include is under libdir. ! 281: ! 282: * Makefile.in (enquire.o): Make the command one long line. ! 283: ! 284: * gcc.c (do_spec_1): Omit relative prefixes from -L'ing ! 285: only if RELATIVE_PREFIX_NOT_LINKDIR is defined. ! 286: * rs6000.h (RELATIVE_PREFIX_NOT_LINKDIR): Defined. ! 287: ! 288: * varasm.c (assemble_external): Test TREE_EXTERNAL. ! 289: ! 290: * jump.c (follow_jumps): If can't find chain end, return orig label ! 291: ! 292: * mot3300.h (PRINT_OPERAND): Always print 16 hex digits for a double. ! 293: ! 294: * objc-actions.c (build_module_descriptor) [NEXT_OBJC_RUNTIME]: Ret 0. ! 295: (finish_objc): Value 0 from build_module_descriptor means no ctor. ! 296: When referencing a class_name symbol, don't output a .globl for it. ! 297: (finish_objc): Put artificial refs in text section. ! 298: ! 299: * cccp.c (pedwarn_with_file_and_line): Handle -w, -W. ! 300: ! 301: Fri Feb 14 07:44:08 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 302: ! 303: * i386.c (notice_update_cc): sCOND opcodes don't change the flags. ! 304: Don't record test or compares involving stack-like regs, since ! 305: final can't omits tests or compares involving such regs correctly. ! 306: ! 307: * i386.c (seq,sne,beq,bne): These opcodes use the state of ! 308: cc_status from before the curren insn. ! 309: ! 310: * reg-stack.c (stack_reg_mentioned_p): Don't make static. ! 311: ! 312: Fri Feb 14 06:27:48 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 313: ! 314: * jump.c (jump_optimize): Disable "if (...) {... x = C;} if (x) ..." ! 315: optimization; there doesn't seem to be a way to fix it. ! 316: ! 317: Thu Feb 13 18:06:06 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 318: ! 319: * seq386.h (ASM_OUTPUT_OPCODE): New macro. Change "movs" into ! 320: "smov" at the start of a string move mnemonic - Sequent as(1) ! 321: doesn't handle the former. ! 322: ! 323: Thu Feb 13 17:21:26 1992 Richard Stallman ([email protected]) ! 324: ! 325: * c-decl.c (finish_struct): Use pedwarn for pedantic warning. ! 326: (grokdeclarator): Likewise. ! 327: * c-parse.y (component_decl_list2): Likewise. ! 328: ! 329: Thu Feb 13 22:11:36 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 330: ! 331: * combine.c (make_extraction): Default modes to byte and register ! 332: size, as appopriate, when the bitfield insn doesn't exist. ! 333: ! 334: * a29kunix.h (LINK_SPEC): Pass default option file to gld. ! 335: (LINK_LIBGCC_SPECIAL): Define to work around gld bug. ! 336: ! 337: * explow.c (copy_to_suggested_reg): Try getting mode from TARGET. ! 338: ! 339: * rs6000.h (ASM_FILE_END): New macro. ! 340: (EXTRA_SECTIONS): New section read_only_private_data. ! 341: (EXTRA_SECTION_FUNCTIONS): New function read_only_private_data_section. ! 342: (SELECT_RTX_SECTION): Always make non-toc data private, read-only. ! 343: (SELECT_SECTION): Put read-only data in appropriate sections. ! 344: ! 345: * jump.c (jump_optimize): Place branch in correct place when ! 346: optimizing "if (...) {... x = C;} if (x) ...". ! 347: (redirect_jump): Ensure jump's UID is within range of jump chain. ! 348: ! 349: * a29k.c (output_prologue): Correctly set LR1 when more than 64 ! 350: registers are needed. ! 351: ! 352: Wed Feb 12 22:22:46 1992 (Eric Youngdale at [email protected]) ! 353: ! 354: * make-cccp.com: Define link as a local symbol to avoid ! 355: possible conflict with a user defined global symbol. ! 356: ! 357: * make-cc1.com: Likewise. ! 358: ! 359: Thu Feb 13 11:05:07 1992 Michael Meissner (meissner at osf.org) ! 360: ! 361: * mips.c (make_temp_file): Store created filename into a static ! 362: file-scope variable, not an auto. ! 363: (mips_asm_file_end): Use the appropriate filename in printing ! 364: errors. ! 365: ! 366: Thu Feb 13 01:15:00 1992 Richard Stallman ([email protected]) ! 367: ! 368: * cccp.c (skip_if_group): Skip comments after the #. ! 369: ! 370: * cccp.c (macarg): Don't assume stringify will compress spaces. ! 371: (macroexpand): In stringify, compress space only outside tokens. ! 372: ! 373: * cexp.y (exp1): Use pedwarn for comma in #if. ! 374: ! 375: * cp-decl.c (push_binding_level, pop_binding_level): ! 376: Change `inline' to `__inline'. ! 377: ! 378: * combine.c (make_compound_operation): Undo previous change. ! 379: ! 380: Wed Feb 12 18:47:47 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 381: ! 382: * function.c (instantiate_virtual_regs_1, case IF_THEN_ELSE): ! 383: Don't special case; allow all operands to be processed. The last ! 384: two operands are nontrivial on the Vax. ! 385: ! 386: Wed Feb 12 18:58:48 1992 Richard Stallman ([email protected]) ! 387: ! 388: * gcc.c (do_spec_1): Only absolute prefixes turn into -L's. ! 389: (link_command_spec): Handle LINK_LIBGCC_SPECIAL. ! 390: ! 391: Wed Feb 12 18:38:29 1992 Chris Smith (csmith at convex.com) ! 392: ! 393: * convex.h (DEFAULT_CALLER_SAVES): define again, bug is fixed. ! 394: * convex.h (BRANCH_COST): Define as 0, so we won't use complex ! 395: alternatives to branches (whose expansions contain branches ! 396: on convex). ! 397: ! 398: Wed Feb 12 17:23:57 1992 Richard Stallman ([email protected]) ! 399: ! 400: * config.sub: Accept just `hppa' for machine. ! 401: ! 402: * Makefile.in (Install-collect2): New target. ! 403: ! 404: Wed Feb 12 13:55:24 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 405: ! 406: * reorg.c (relax_delay_slots): Don't convert jump to return here. ! 407: ! 408: * configure (a29k-ultra-*): Deleted. ! 409: (a29k-*-bsd*): Merged with a29k-ultra-*. ! 410: (romp-*-mach*): Fixed typo in xmake_file name. ! 411: * xm-a29kunix.h: Renamed from xm-a29k-ult.h. ! 412: * x-a29kunix: New file. ! 413: ! 414: * reload.c (find_reloads): Don't use class from preference if it ! 415: is a single-register class. ! 416: ! 417: Wed Feb 12 13:03:16 1992 Tom Wood (wood at dg-rtp.dg.com) ! 418: ! 419: * m88k.h (FUNCTION_BOUNDARY, ASM_OUTPUT_ALIGN): Pack code tightly ! 420: when compiling crtstuff.c (flag_inhibit_size_directive). ! 421: ! 422: Wed Feb 12 10:34:09 1992 Michael Meissner (meissner at osf.org) ! 423: ! 424: * decrose.h (*_SPEC): Compress some whitespace in the specs. Also, ! 425: simpify which LANGUAGE_xxx names are defined, to be the ones uses by ! 426: the system(s). ! 427: * decstatn.h (*_SPEC): Likewise. ! 428: * iris.h (*_SPEC): Likewise. ! 429: * mips.h (*_SPEC): Likewise. ! 430: * mips-bsd.h (*_SPEC): Likewise. ! 431: * mips-news.h (*_SPEC): Likewise. ! 432: * mips-sysv.h (*_SPEC): Likewise. ! 433: ! 434: Wed Feb 12 10:34:09 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 435: ! 436: * caller-save.c (insert_save_restore): Properly check for insns that ! 437: reference CC0. ! 438: ! 439: Wed Feb 12 03:17:00 1992 Chris Smith (csmith at convex.com) ! 440: ! 441: * convex.h (DEFAULT_CALLER_SAVES): don't define, to sidestep a bug. ! 442: * convex.md (ffssi2): Comment out. ! 443: ! 444: Wed Feb 12 00:08:42 1992 (Eric Youngdale at [email protected]) ! 445: ! 446: * make-libgcc2.com: Do not save .s file. ! 447: ! 448: * vms.h: Wrap #include <stdio.h> in #ifdef L__main/endif ! 449: ! 450: Tue Feb 11 21:58:42 1992 (Eric Youngdale at [email protected]) ! 451: ! 452: * libgcc2.c (DO_GLOBAL_DTORS_BODY): New macro. ! 453: ! 454: * make-l2.com: New file to build libgcc2 on VMS. ! 455: ! 456: * vms.h (DO_GLOBAL_CTORS_BODY): Replacement definition. ! 457: ! 458: * vms.h (DO_GLOBAL_DTORS_BODY): Likewise. ! 459: ! 460: * make-cccp.com: Define bison and rename as local symbols to avoid ! 461: possible conflict with user defined global symbols. ! 462: ! 463: Tue Feb 11 22:17:32 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 464: ! 465: * sched.c (attach_deaths): Don't treat PIC offset table register ! 466: specially; flow.c doesn't. ! 467: ! 468: * combine.c (make_compound_operation, case AND): We can have ! 469: a (and (subreg (lshiftrt ..) ..) ..); handle same as without SUBREG. ! 470: ! 471: * Makefile.in (HOST_CLIB, HOST_ALLOCA, HOST_MALLOC, HOST_OBSTACK): New ! 472: variables to override. ! 473: (USE_HOST_*, HOST_LIBDEPS): Use HOST_PREFIX and new variables. ! 474: (HOST_LIBS): Use HOST_CLIB. ! 475: ! 476: Tue Feb 11 21:32:07 1992 Richard Stallman ([email protected]) ! 477: ! 478: * Makefile.in (install-common-headers): Copy byteorder.h to ! 479: compilation dir. ! 480: ! 481: * config.sub: Allow unicos as operating system. ! 482: ! 483: * m88kv4.h (INIT_SECTION_ASM_OP): Add #progbits. ! 484: ! 485: * vax.h (DYNAMIC_CHAIN_ADDRESS): New macro. ! 486: ! 487: * c++: Propagate quoted args properly. ! 488: ! 489: Tue Feb 11 16:35:01 1992 Jim Wilson (wilson at cygnus.com) ! 490: ! 491: * fixincludes: Define TERM to `unknown', to ensure that it is ! 492: valid. Otherwise, ex may fail. ! 493: * fixinc.svr4: Likewise. ! 494: ! 495: Tue Feb 11 18:04:32 1992 Michael Meissner (meissner at osf.org) ! 496: ! 497: * decrose.h (CPP_SPEC): Define the macros LANGUAGE_OBJECTIVE_C and ! 498: LANGUAGE_C_PLUS_PLUS if we are compiling Objective C or C++. ! 499: Silicon Graphics in particular uses LANGUAGE_C_PLUS_PLUS. ! 500: * decstatn.h (CPP_SPEC): Likewise. ! 501: * iris.h (CPP_SPEC): Likewise. ! 502: * mips-bsd.h (CPP_SPEC): Likewise. ! 503: * mips-news.h (CPP_SPEC): Likewise. ! 504: * mips-sysv.h (CPP_SPEC): Likewise. ! 505: ! 506: * decstatn.h (CPP_PREDEFINES): Eliminate __<name> versions, since ! 507: gcc will do these automatically. Eliminate LANGUAGE_C, since it is ! 508: handled in CPP_SPEC. ! 509: ! 510: Tue Feb 11 15:38:27 1992 Richard Stallman ([email protected]) ! 511: ! 512: * flow.c (find_basic_blocks): Don't delete labels used in non-jumps. ! 513: ! 514: * vms.h (DO_GLOBAL_CTORS_BODY): Modify the return address ! 515: only the first time __main is called. ! 516: ! 517: * fixinc.svr4: Change headers to test __STRICT_ANSI__ instead of ! 518: testing __STDC__ != 0. ! 519: ! 520: * fixinc.svr4 (mman.h): Fix backward __STDC__ conditional. ! 521: Don't add declarations of munmap and mprotect. ! 522: ! 523: * varasm.c (output_constant): Allow empty constructor for any type. ! 524: ! 525: * dwarfout.c (ASM_OUTPUT_DWARF_DATA8): Just one definition; ! 526: test WORDS_BIG_ENDIAN "at run time". ! 527: ! 528: Tue Feb 11 09:00:01 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 529: ! 530: * reload.c (find_reloads): Don't substitute in MATCH_DUPs if we ! 531: are not generating replacements. ! 532: ! 533: Tue Feb 11 08:45:14 1992 Tom Wood (wood at dg-rtp.dg.com) ! 534: ! 535: * m88kv4.h ({CTORS,DTORS}_SECTION_ASM_OP): Fix typo. ! 536: ! 537: Mon Feb 10 22:34:47 1992 Chris Smith (csmith at convex.com) ! 538: ! 539: * convex.h(HARD_REGNO_NREGS): define correctly for 64-bit regs ! 540: ! 541: Mon Feb 10 21:50:23 1992 Michael Meissner (meissner at osf.org) ! 542: ! 543: * mips.h (MIPS_VERSION): Change Meissner version # to 11. ! 544: (CPP_SPEC): Define the macros LANGUAGE_OBJECTIVE_C and ! 545: LANGUAGE_C_PLUS_PLUS if we are compiling Objective C or C++. ! 546: Silicon Graphics in particular uses LANGUAGE_C_PLUS_PLUS. ! 547: (FP_DBX_FIRST): Change the test so that stabs in ECOFF uses the ! 548: value 38, in addition to stabs in GAS. ! 549: ! 550: * mips.md (all function units): Make the function units simpler, and ! 551: not depend on the cpu type, to work around a memory hungry ! 552: genattrtab, which attempts to grow the data segment to than 32 ! 553: megabytes. ! 554: ! 555: Mon Feb 10 16:34:11 1992 Richard Stallman ([email protected]) ! 556: ! 557: * convex.h (REAL_VALUE_TRUNCATE): Obsolete definition deleted. ! 558: ! 559: * config.sub (convex-*): These are BSD, not sysv. ! 560: ! 561: * dbxout.c (have_used_extensions): New var. ! 562: (dbxout_type, dbxout_type_fields, dbxout_symbol): ! 563: Set have_used_extensions when use an extension. ! 564: (dbxout_symbol): Don't use `Tt' extension unless extensions ! 565: have been used. ! 566: ! 567: Mon Feb 10 12:28:59 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 568: ! 569: * xm-a29k-ult.h: Fix typo in placement of copyright notice. ! 570: ! 571: Mon Feb 10 05:36:45 1992 Richard Stallman ([email protected]) ! 572: ! 573: * dbxout.c (dbxout_type): Don't use GDB extensions if they are empty. ! 574: ! 575: Mon Feb 10 00:10:20 1992 Michael Tiemann (tiemann at cygnus.com) ! 576: ! 577: * cp-class.c (finish_struct): Use DECL_CHAIN, not TREE_CHAIN to walk ! 578: through the list of methods identified by a visibility declaration. ! 579: ! 580: * cp-cvt.c (convert_pointer_to): No longer need to abort if BINFO is ! 581: not a TREE_VEC or AGGR_TYPE node. ! 582: ! 583: * cp-parse.y (stmt): Improve error handling for try/except. ! 584: ! 585: * cp-class.c (add_method): If we create RTL for a copy of METHOD, ! 586: copy the RTL to METHOD's DECL_RTL slot. ! 587: ! 588: * cp-method.c (dump_type): Print `const' and/or `volatile' for ! 589: VOID_TYPE and REAL_TYPEs, too. ! 590: ! 591: Sun Feb 9 21:07:45 1992 Richard Stallman ([email protected]) ! 592: ! 593: * varasm.c (assemble_integer): Pass third arg in recursive calls. ! 594: Act appropriately if word-by-word loop doesn't finish. ! 595: ! 596: * Makefile.in (bootstrap*): Don't override value of ALLOCA. ! 597: ! 598: * dbxout.c (dbxout_symbol, dbxout_parms): Do leaf function remap ! 599: only if LEAF_REG_REMAP and only in leaf functions. ! 600: ! 601: Sun Feb 9 16:46:27 1992 Michael Tiemann (tiemann at cygnus.com) ! 602: ! 603: * cp-init.c (maybe_adjust_addr_for_delete): Build final COND_EXPR ! 604: with TREE_TYPE (addr). ! 605: ! 606: Sun Feb 9 14:20:49 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 607: ! 608: * rs6000.h (rs6000_{bss,private_data,read_only}_section_name): ! 609: Add declarations. ! 610: (rs6000_text_section_asm_op): Deleted. ! 611: (ASM_FILE_START): Initialize section names and enter bss section once. ! 612: (EXTRA_SECTIONS): Add `private_data' and `bss'; ! 613: delete `global_variable'.. ! 614: (read_only_data_section): Don't form name here. ! 615: (global_variable_section): Deleted. ! 616: (private_data_section, bss_section): New functions. ! 617: (ASM_DECLARE_FUNCTION_NAME): Don't write function name with [PR]. ! 618: (ASM_OUTPUT_POLL_PROLOGUE): No longer needed. ! 619: (SELECT_{RTX_,}SECTION): Just calls data_section or ! 620: private_data_section. ! 621: (ASM_OUTPUT_LOCAL): Put in bss section. ! 622: (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Now a constant. ! 623: * rs6000.c (rs6000_text_section_asm_op): Deleted. ! 624: (rs6000_{bss,private_data,read_only}_section_name): Add definitions. ! 625: (rs6000_gen_section_name): New function. ! 626: ! 627: Sun Feb 9 08:29:21 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 628: ! 629: * i386.h (REGNO_REG_CLASS): Use a lookup table: AIX can't handle ! 630: complex tertiary expressions. ! 631: (GO_IF_LEGITIMATE_ADDRESS): Simplify slightly for the AIX ! 632: compiler. ! 633: ! 634: * i386.c (regclass_map): New variable. Lookup array for ! 635: REGNO_REG_CLASS. ! 636: ! 637: Sat Feb 8 01:20:33 1992 Richard Stallman ([email protected]) ! 638: ! 639: * cp-parse.y (yyprint): Test __GNUC__, not __GNU__. ! 640: Use __inline, like everywhere else. ! 641: ! 642: * a29k.h, romp.h (OVERRIDE_OPTIONS): Deleted. ! 643: (OPTIMIZATION_OPTIONS): Defined, instead. ! 644: * rs6000.h (OPTIMIZATION_OPTIONS): New macro. ! 645: (OVERRIDE_OPTIONS): Don't change optimization. ! 646: ! 647: * final.c (leaf_renumber_regs_insn): No longer static. ! 648: * dbxout.c (dbxout_symbol, dbxout_parms): Call that. ! 649: ! 650: * c-decl.c (lookup_name): Do nothing special if type is error mark. ! 651: (grokdeclarator): Ignore putative type name whose type is error mark. ! 652: * c-parse.y (primary): If var type is error mark, return error mark. ! 653: ! 654: * c-typeck.c (build_array_ref): Return early if arg is error mark. ! 655: ! 656: * Makefile.in (test-protoize): Rule deleted. ! 657: ! 658: * stmt.c (emit_case_nodes): Handle just-left-subtree case ! 659: like just-right-subtree--delete mysterious code that tests cost_table. ! 660: ! 661: * varasm.c (decode_reg_name): Accept decimal number as reg name. ! 662: ! 663: * c-decl.c (finish_decl): If pop_obstacks goes to perm obstack, ! 664: call permanent_allocation. ! 665: ! 666: * gcc.c (link_command_spec): Use -lgcc, not libgcc.a. ! 667: ! 668: Fri Feb 7 16:56:17 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 669: ! 670: * rs6000.h (DOLLARS_IN_IDENTIFIERS): Define to zero, because the ! 671: assembler does not accept dollar signs. ! 672: ! 673: Fri Feb 7 15:36:40 1992 Richard Stallman ([email protected]) ! 674: ! 675: * Makefile.in (mostlyclean): Fix name of tmp-proto.1. ! 676: ! 677: * configure: Delete excess space in assignment to srcdir. ! 678: ! 679: * cp-decl2.c (DOLLARS_IN_IDENTIFIERS): Default now 1, as in C. ! 680: ! 681: * i386gas.h (ASM_OUTPUT_LOOP_ALIGN): New macro. ! 682: (ASM_OUTPUT_ALIGN_CODE): Use 16-byte boundary on 486. ! 683: ! 684: * m68k.h (TRANSFER_FROM_TRAMPOLINE): Use operands for the memrefs ! 685: to avoid dependence on assembler syntax. ! 686: ! 687: Fri Feb 7 10:26:32 1992 Michael Meissner (meissner at osf.org) ! 688: ! 689: * Makefile.in (EXTRA_OBJS): New variable for extra object files ! 690: needed when linking cc1, cc1plus, and cc1objc. ! 691: ! 692: Fri Feb 7 07:34:03 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 693: ! 694: * reload1.c (set_label_offsets, reload_as_needed): Recompute ! 695: num_not_at_initial_offset when we pick up offsets from offsets_at. ! 696: ! 697: * unroll.c (unroll_loop): Copy initial and final values to avoid ! 698: sharing. ! 699: ! 700: * cse.c (simplify_relational_operation): Complete last change by ! 701: correctly handling <= and >=. ! 702: ! 703: Thu Feb 6 23:57:02 1992 Michael Tiemann (tiemann at cygnus.com) ! 704: ! 705: * cp-decl.c (grokdeclarator): Invert sense of warning about ! 706: initialized extern vars, since in C++, const has funny semantics. ! 707: ! 708: Thu Feb 6 15:12:02 1992 Richard Stallman ([email protected]) ! 709: ! 710: * cse.c (simplify_relational_operation): Test properly for floating ! 711: equality; don't deduce this from < and >. ! 712: ! 713: * xm-mips.h (alloca): Don't define or declare if MIPS_OVERRIDE_ALLOCA. ! 714: * xm-irix4.h (MIPS_OVERRIDE_ALLOCA): Defined. ! 715: ! 716: * m68k.h (TRANSFER_FROM_TRAMPOLINE): Use explicit reg var ! 717: to avoid dependence on register name syntax. ! 718: ! 719: * mot3300.h (PUT_SDB_START_DIM, PUT_SDB_NEXT_DIM, PUT_SDB_LAST_DIM): ! 720: New macros. ! 721: (PUT_SDB_DIM): Deleted. ! 722: (PRINT_OPERAND): Handle %$ and %&. ! 723: (ASM_OUTPUT_OPCODE): Handle f%$move and f%&move. ! 724: ! 725: * gstdarg.h: If not __GNUC__, use system's stdarg.h. ! 726: ! 727: Thu Feb 6 22:36:36 1992 (Eric Youngdale at [email protected]) ! 728: ! 729: * vms.h (DEFAULT_GDB_EXTENSIONS): Define as 0. ! 730: ! 731: Thu Feb 6 13:32:37 1992 Michael Meissner (meissner at osf.org) ! 732: ! 733: * mips.h (MIPS_VERSION): Set Meissner version # to 10. ! 734: (flag_half_pic, mips_branch_likely): New global variables. ! 735: (call_memory_operand): New function declaration. ! 736: (half_pic_encode_section_info): Likewise. ! 737: (mips_constant_address_p): Likewise. ! 738: (mips_debugger_offset): Likewise. ! 739: (CC1_SPEC): Make OSF/1 -pic-xxx switches to -mhalf-pic, which is ! 740: currently undergoing development. ! 741: (DEBUGGER_AUTO_OFFSET): Emit correct information if frame pointer is ! 742: omitted. ! 743: (DEBUGGER_ARG_OFFSET): Likewise. ! 744: (TARGET_SWITCHES): Add -mabicalls and -mhalf-pic switches. ! 745: (PIC_OFFSET_TABLE_REGNUM): Define as the GP register ($28). ! 746: (EXTRA_CONSTRAINT): Add 'S' constraint for half-pic references. ! 747: (CONSTANT_ADDRESS_P): Call mips_constant_address_p. ! 748: (ENCODE_SECTION_INFO): Reorder test to test optimize first, and to ! 749: call half_pic_encode_section_info if half pic. ! 750: (PREDICATE_CODES): Add call_memory_operand. ! 751: ! 752: * mips.c (flag_half_pic): New global variable to indicate to produce ! 753: half-pic output for OSF/rose. ! 754: (mips_branch_likely): New global variable to indicate the branch ! 755: should use the branch likely form of the instruction. ! 756: (mips_sw_reg_names): Use $fp instead of fp, since regdef.h no longer ! 757: defines fp. ! 758: (call_memory_operand): New function to return TRUE if the argument ! 759: is a valid MEM for a call instruction. ! 760: (mips_move_1word): Emit comment in la of half-pic addresses as a ! 761: temporary flag to put the right code down. ! 762: (mips_constant_address): New function to determine if something is a ! 763: constant address or not. Add stub code for -mhalf-pic. ! 764: (override_options): Set flag_half_pic if -mhalf-pic. ! 765: (override_options): Mark %? as valid for print_operand. ! 766: (mips_debugger_offset): New function to correct the offset for ! 767: variables and arguments if the frame pointer has been omitted. ! 768: (print_operand): %? now emits a 'l' if mips_branch_likeley is set. ! 769: (mips_asm_file_start, function_prologue): If -mabicalls, emit the ! 770: pseudo ops that the Pyramid System V.4 port seems to want. ! 771: (compute_frame_size): Reserve space for saving GP if -mabicalls. ! 772: (half_pic_encode_section_info): Stub function for encoding whether ! 773: or not to generate a half pic reference. ! 774: ! 775: * mips.md (type attribute): Add pic attribute. ! 776: (cpu attribute): New attribute to get the CPU type. ! 777: (branch_likely attribute): New attribute to say whether or not we ! 778: can use branch likely instructions. ! 779: (define_delay): Note that we can annull false branches if -mips2. ! 780: (memory function unit): Add pic in addition to load. ! 781: (various function units): Use the cpu attribute. ! 782: (branch patterns): Support branch likely instructions if -mips2. ! 783: (call, call_internal): Use call_memory_operand instead of ! 784: memory_operand. If -mhalf-pic put function address in a register. ! 785: (call_value, call_value_internal): Likewise. ! 786: ! 787: * decrose.h (INIT_SECTION_ASM_OP): Define as .init. ! 788: ! 789: Thu Feb 6 10:07:17 1992 Tom Wood (wood at dg-rtp.dg.com) ! 790: ! 791: * m88k.c (preserve_registers): Change to walk the epilogue delay ! 792: insns in the forward rather than reverse order (for reorg.c change). ! 793: ! 794: Thu Feb 6 02:54:28 1992 Richard Stallman ([email protected]) ! 795: ! 796: * cse.c (simplify_binary_operation, case PLUS): Don't make ! 797: a (const (plus X Y)) with X a CONST_INT. ! 798: ! 799: * fixincludes: Simplify egrep command. ! 800: ! 801: Thu Feb 6 01:11:28 1992 Mark Eichin (eichin at cygnus.com) ! 802: ! 803: * cp-lex.c (process_next_inline): if we get a "parse error at end of ! 804: saved function text", set yychar to something that ! 805: restore_pending_input will digest (if it thinks input is still ! 806: pending, it will abort, but we've already reported the problem to ! 807: the user.) ! 808: ! 809: Wed Feb 5 18:42:56 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 810: ! 811: * reorg.c (fill_simple_delay_slots): When filling delay slots by ! 812: searching backward, put each new insn we find at the head of the ! 813: delay list instead of at the tail. ! 814: ! 815: * cse.c (fold_rtx): When associating operations, avoid infinite ! 816: recursion if the new expression contains our operand. ! 817: ! 818: Wed Feb 5 21:18:06 1992 Mark Eichin (eichin at cygnus.com) ! 819: ! 820: * cp-decl.c (globalize_nested_type): If the type isn't found at all, ! 821: this is an anonymous forward reference, so permit it. ! 822: Abort if type is already globally defined. ! 823: ! 824: Wed Feb 5 18:01:12 1992 Richard Stallman ([email protected]) ! 825: ! 826: * varasm.c, hp800.h, i386.h, m88k.h, mips.h, romp.h, vms.h: ! 827: (ENCODE_SECTION_INFO): Renamed from ENCODE_SEGMENT_INFO. ! 828: ! 829: * sparc.md (nonlocal_goto): Copy static chain into ! 830: virtual_stack_vars_rtx, not frame pointer itself. ! 831: (nonlocal goto return recognizer): Jump to %o0+0. ! 832: ! 833: * toplev.c (main): Fix test for -Wid-clash. ! 834: ! 835: Wed Feb 5 16:58:15 1992 Ron Guilmette (rfg at ncd.com) ! 836: ! 837: * dwarfout.c (dwarfout_init): Add two words containing the starting ! 838: and ending address of the .text section for this compilation unit to ! 839: the special initial entry in the .debug_srcinfo section. ! 840: ! 841: Tue Feb 4 14:51:16 1992 Richard Stallman ([email protected]) ! 842: ! 843: * dbxout.c (dbxout_symbol): Handle DBX_OUTPUT_CONSTANT_SYMBOL. ! 844: (dbxout_block): Handle DBX_OUTPUT_CATCH. ! 845: ! 846: * cccp.c (lookup_import, add_import, do_include): ! 847: Use bcmp and bcopy to access st_ino and ->inode fields. ! 848: ! 849: * dbxout.c (dbxout_init): Pass syms to DBX_OUTPUT_STANDARD_TYPES. ! 850: ! 851: * fold-const.c (operand_equal_p): Check that modes match. ! 852: (comparison_equiv_p): New function. ! 853: (fold): Use that when converting ?: to min_expr or max_expr. ! 854: ! 855: * c-common.c (c_expand_expr_stmt): Test for ERROR_MARK as type. ! 856: ! 857: Tue Feb 4 12:03:26 1992 Michael Tiemann (tiemann at cygnus.com) ! 858: ! 859: * stmt.c (expand_end_case): Don't crash if function called ! 860: is not an ADDR_EXPR. ! 861: ! 862: Tue Feb 4 14:17:22 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 863: ! 864: * expr.h ({float[sd]i[sd]f,fix[sd]f[sd]i,fixuns[sd]f[sd]i}_libfunc): ! 865: New declarations. ! 866: * optabs.c: Define them. ! 867: (expand_float, expand_fix): Use them instead of making a new ! 868: SYMBOL_REF each call. ! 869: (init_optabs): Initialize them. ! 870: ! 871: Tue Feb 4 00:27:35 1992 Richard Stallman ([email protected]) ! 872: ! 873: * Makefile.in (protoize.1, unprotoize.1): Rename temp files < 14 chrs. ! 874: ! 875: * cccp.c (skip_if_group): Make unknown cmd name a pedantic warning. ! 876: ! 877: Mon Feb 3 18:10:41 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 878: ! 879: * romp.h (LEGITIMATE_CONSTANT_P, ENCODE_SEGMENT_INFO): Use ! 880: SYMBOL_REF_FLAG. ! 881: ! 882: * x-romp-mach: New file. ! 883: * configure (romp-*-mach*): New alternative. ! 884: ! 885: Mon Feb 3 16:43:55 1992 Richard Stallman ([email protected]) ! 886: ! 887: * cp-typeck.c (warn_for_assignment): Print arg num in origin 1. ! 888: ! 889: * sparc.md (nonlocal_goto trap recognizer): Fix opcode spelling. ! 890: ! 891: * function.c (fix_lexical_addr): Properly search for correct display. ! 892: ! 893: * romp.h (OVERRIDE_OPTIONS): Don't set flag_omit_frame_pointer. ! 894: ! 895: Mon Feb 3 11:11:58 1992 Michael Tiemann (tiemann at cygnus.com) ! 896: ! 897: * gcc.c (@c++-cpp-output): Delete extraneous "}}}" at the end of the ! 898: rule. ! 899: ! 900: Mon Feb 3 11:38:19 1992 Ron Guilmette (rfg at ncd.com) ! 901: ! 902: * dwarfout.c (dwarfout_init): Generate an initial 2-word entry in the ! 903: .debug_srcinfo section containing the addresses of the starts of the ! 904: .line and .debug_sfnames sections. Generate it after the initial entry ! 905: for the .line section. ! 906: ! 907: * dwarfout.c [DWARF_TIMESTAMPS]: Ensure time_t and time declared. ! 908: (dwarfout_init): Make third word of initial .debug_srcinfo entry be ! 909: the compilation date/time if DWARF_TIMESTAMPS is defined, or else -1. ! 910: ! 911: * dwarfout.c (dwarfout_init): Output compilation directory name as ! 912: the first thing in the .debug_sfnames section. ! 913: ! 914: Mon Feb 3 04:12:51 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 915: ! 916: * Makefile.in (install-dir): `parent' is a shell variable. ! 917: ! 918: Mon Feb 3 09:43:51 1992 Tom Wood (wood at dg-rtp.dg.com) ! 919: ! 920: * m88k.h (EXTRA_SECTIONS): Use init and fini sections from svr3.h, ! 921: but only when using svr3.h. ! 922: ! 923: Sun Feb 2 19:50:29 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 924: ! 925: * i386.h (ADDRESS_COST): New macro. ! 926: ! 927: Sun Feb 2 17:08:47 1992 Michael Meissner (meissner at osf.org) ! 928: ! 929: * mips.c (simple_memory_operand): Don't recognize references to ! 930: variables in .sdata or .sbss, which has the effect of not putting ! 931: stores into delay slots. This fixes a bug and also doesn't temp the ! 932: MIPS linker from trying to put 4 instructions into the delay slot ! 933: when it rewrites the function as a PIC function. ! 934: ! 935: Sun Feb 2 16:58:11 1992 Richard Stallman ([email protected]) ! 936: ! 937: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Do ON_EXIT last. ! 938: ! 939: * Makefile.in (install-dir): Create the parent of mandir if nec. ! 940: ! 941: * real.h (REAL_VALUE_TRUNCATE): sizeof says what cast to float does. ! 942: ! 943: * dbxout.c (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY): New parameter macro. ! 944: (DBX_OUTPUT_MAIN_SOURCE_FILENAME, DBX_OUTPUT_SOURCE_FILENAME): ! 945: (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise. ! 946: These are used in place of ASM_... ! 947: * newpbb.h (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Macro renamed. ! 948: (DBX_OUTPUT_SOURCE_FILENAME): Likewise. ! 949: * next.h (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY): Macro renamed. ! 950: (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise. ! 951: ! 952: Sun Feb 2 12:51:54 1992 Michael Tiemann (tiemann at cygnus.com) ! 953: ! 954: * cp-typeck.c (build_component_ref_1): Call `compute_visibility' ! 955: with a BASETYPE_PATH, not a TREE_LIST. ! 956: ! 957: * cp-class.c (build_vtable_entry): Apologize if we cannot build a ! 958: proper vtable because of builtin liminations. ! 959: ! 960: Sun Feb 2 07:30:08 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 961: ! 962: * reload.c (combine_reloads): Don't combine two reloads with different ! 963: secondary reloads; copy secondary reload to combined reload. ! 964: ! 965: * cse.c (cse_main): PIC_OFFSET_TABLE_REGNUM is not clobbered by calls ! 966: if -fpic or -fPIC. ! 967: * reorg.c (mark_target_live_regs): Likewise. ! 968: * sched.c (attach_deaths): Likewise. ! 969: ! 970: * flow.c (find_basic_blocks): Don't separate a CALL_INSN from ! 971: following CLOBBER insns. ! 972: ! 973: * function.c (use_variable, use_variable_after): Don't interpret ! 974: reference to internal arg pointer as variable-sized object. ! 975: (expand_function_start, expand_function_end): Add USE for virtual ! 976: arg pointer if stupid alloc and it is not the real arg pointer. ! 977: ! 978: * flow.c (insn_dead_p, mark_set_1, mark_used_regs): Don't treat ! 979: ARG_POINTER_REGNUM specially if it isn't fixed. ! 980: * sched.c (attach_deaths): Likewise. ! 981: * reorg.c (mark_target_live_regs): Likewise; also make set of regs ! 982: clobbered on call agree with cse and flow. ! 983: ! 984: * function.c (fix_lexical_addr): Rework to look for AP references ! 985: using internal_arg_pointer; make some related cleanups. ! 986: * expr.c (expand_expr, case VAR_DECL, SAVE_EXPR): Treat ! 987: inline_function_decl just like current_function_decl. ! 988: * stmt.c (expand_end_bindings): When restoring arg pointer, restore ! 989: into the virtual form so we will subtract the proper offset, since ! 990: the saved value includes the offset. ! 991: ! 992: Sat Feb 1 14:41:34 1992 Ken Raeburn ([email protected]) ! 993: ! 994: * cp-pt.c (end_template_decl): For method template, no longer call ! 995: popclass; it isn't needed any more. If after processing template ! 996: we're not at the global binding level, throw away any other binding ! 997: levels, rather than aborting. Also deleted some other unused code. ! 998: ! 999: Sat Feb 1 09:13:47 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1000: ! 1001: * xm-rs6000-mach.h, rs6000-mach.h: New files. ! 1002: * configure (rs6000-*-mach): New option. ! 1003: ! 1004: Sat Feb 1 00:57:24 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 1005: ! 1006: * i386.c: Include tree.h ! 1007: (symbolic_operand): New predicate function. ! 1008: (symbolic_reference_mentioned_p): New function. ! 1009: (legitimize_pic_address,emit_pic_move): New functions. ! 1010: (function_prologue): Delete unused variable nregs. ! 1011: If the PIC reg is used, save the old contents and initialize with ! 1012: a pointer to the GOT. ! 1013: (simple_386_epilogue): Count the PIC reg if it is used. ! 1014: (function_epilogue): Delete unused variable "insn". Restore the ! 1015: original contents of the PIC reg if it was used. ! 1016: ! 1017: (output_pic_addr_const): New function to handle PIC symbol ! 1018: reference suffixes. ! 1019: (print_operand_address): Use that if flag_pic is true. ! 1020: (print_operand): Likewise. Don't print a prefix in front of any ! 1021: constant if the 'P' code is used. ! 1022: ! 1023: (output_387_binary_op): abort if the op is not one we handle. ! 1024: ! 1025: (maximum_field_alignment): New variable. ! 1026: (handle_pragma_token): New function. Handle `weak' and `pack'. ! 1027: ! 1028: * i386.h (CONDITION_REGISTER_USAGE): New macro. Mark PIC reg as ! 1029: fixed and call used if flag_pic is true. ! 1030: (PIC_OFFSET_TABLE_REGNUM): New macro. ! 1031: (FUNCTION_PROFILER): Output PIC compatible code if flag_pic. ! 1032: (INITIAL_ELIMINATION_OFFSET): Count the PIC reg if it is used. ! 1033: ! 1034: (GO_IF_LEGITIMATE_ADDRESS): If flag_pic is true, reject bare ! 1035: label or symbol references, but allow constant pool references. ! 1036: In all cases, don't bother to check for a constant as the first ! 1037: operand of a PLUS. ! 1038: (LEGITIMIZE_ADDRESS): Call legitimize_pic_address for symbolic ! 1039: references if flag_pic is true. In all cases, HImode regs are not ! 1040: valid memory pointers. ! 1041: (LEGITIMATE_PIC_OPERAND): New macro. ! 1042: (SYMBOLIC_CONST): New macro. ! 1043: (ENCODE_SEGMENT_INFO): New macro to notice static variables. ! 1044: (CONST_COSTS): Symbolic constants cost more if flag_pic is true. ! 1045: ! 1046: * i386.md (movsi): Use define_expand. Call emit_pic_move for ! 1047: symbolic constants if flag_pic is true. ! 1048: (divmodM4,udivmodM4): Change predicates so that only regs are ! 1049: allowed in operands that can't be a mem. Avoids reload ! 1050: congestion. ! 1051: (indirect_jump): Allow any reg or mem as operand, not just reg 0. ! 1052: (casesi): New insn, only used if flag_pic is true. ! 1053: (call,call_pop,call_value,call_value_pop): Use define_expand to ! 1054: record if this function ever emits a call, which will implicitly ! 1055: use the PIC address register. ! 1056: ! 1057: * svr4.h (SELECT_SECTION): Any item whose initial value involves ! 1058: linker relocation must go in the data section if flag_pic is true. ! 1059: ! 1060: * i386v4.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output in PIC style. If ! 1061: flag_pic is false, ADDR_DIFF_VECs are not output and this is not ! 1062: used. ! 1063: (JUMP_TABLES_IN_TEXT_SECTION): New macro. ! 1064: ! 1065: (WEAK_ASM_OP,DEF_ASM_OP): New macros. ! 1066: (maximum_field_alignment): New variable. Declare here. ! 1067: (PCC_BITFIELD_TYPE_MATTERS): New macro. Value depends on ! 1068: maximum_field_alignment. ! 1069: (BIGGEST_FIELD_ALIGNMENT): New macro. Likewise. ! 1070: (HANDLE_PRAGMA): New macro. ! 1071: (ASM_OUTPUT_ALIGNED_LOCAL): New macro. ! 1072: ! 1073: Sat Feb 1 00:15:41 1992 Richard Stallman ([email protected]) ! 1074: ! 1075: * flow.c (flow_analysis, find_basic_blocks): ! 1076: If have nonlocal labels, calls end basic blocks. ! 1077: Each call can jump to each nonlocal label. ! 1078: Pass extra arg to find_basic_blocks. ! 1079: * function.c (nonlocal_label_rtx_list): New function. ! 1080: ! 1081: * dbxout.c (dbxout_init): Vars wd and wd_gotten moved to top level ! 1082: and renamed to cwd and cwd_gotten. ! 1083: ! 1084: * c-decl.c (start_function): -Wmissing-prototypes warns if static ! 1085: function was previously used without a prototype. ! 1086: ! 1087: * loop.c (find_and_verify_loop): Initialize uid_loop_num[0]. ! 1088: (loop_optimize): Give up fast if no loops. ! 1089: ! 1090: * stmt.c (expand_end_bindings): Don't adjust fp in nonlocal goto hndlr ! 1091: if there is a nonlocal_goto insn. ! 1092: ! 1093: * Makefile.in (cccp.o): Use just libdir in GPLUSPLUS_INCLUDE_DIR. ! 1094: ! 1095: * gcc.c (do_spec_1): Supply missing arg in some recursive calls. ! 1096: ! 1097: Fri Jan 31 21:50:03 1992 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu) ! 1098: ! 1099: * m68k.h (OVERRIDE_OPTIONS): -fPIC is only supported on the 68020 ! 1100: and later cpus. Give an error if -fPIC is tried on a 68000. ! 1101: ! 1102: Fri Jan 31 21:39:33 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1103: ! 1104: * flow.c (find_auto_inc): If emitting a move insn in front of the ! 1105: first insn in a block, update basic_block_head. ! 1106: ! 1107: * caller-save.c (init_caller_save): Correctly check for case where the ! 1108: save or restore insns aren't recognized. ! 1109: ! 1110: Fri Jan 31 21:02:35 1992 Mark Eichin (eichin at cygnus.com) ! 1111: ! 1112: * cp-decl.c (pushtag): when calling pushdecl, if we're in a ! 1113: class_binding_level just do a pushdecl_class_level. Otherwise ! 1114: pushdecl gets called multiple times on class-nested enums, which ! 1115: short circuits the name list in the global_binding_level. ! 1116: ! 1117: Fri Jan 31 00:14:20 1992 Richard Stallman ([email protected]) ! 1118: ! 1119: * stmt.c (expand_goto): Use nonlocal_goto pattern if it exists. ! 1120: * sparc.md (nonlocal_goto): New pattern. ! 1121: Also nameless pattern for the special trap insn. ! 1122: ! 1123: * gcc.c (S_ISDIR): Add default definition. ! 1124: ! 1125: * function.c (expand_function_end): ! 1126: Set up arg_pointer_save_area at start of function. ! 1127: ! 1128: * c++: Accept -nostdlib, not -nostinc. ! 1129: ! 1130: * va-sparc.h: If GCC v1, define __extension__ as nothing. ! 1131: * va-i860.h, va-pyr.h, va-spur.h: Likewise. ! 1132: ! 1133: * cp-class.c (finish_struct): Fill in DECL_ALIGN of vtable field. ! 1134: ! 1135: * regclass.c (reg_class_record): ! 1136: Don't follow indirect loops in constraints. ! 1137: ! 1138: * function.c, expr.h (current_function_internal_arg_pointer): New var. ! 1139: * function.c (assign_parms): Set it. ! 1140: (push_function_context, pop_function_context): Save and restore it. ! 1141: * expr.c (expand_builtin): Use it. ! 1142: * function.h (struct function): New slot to save it in. ! 1143: ! 1144: * cse.c (cse_main): Calls do clobber arg pointer if not fixed. ! 1145: ! 1146: * hp320.h (HAVE_ATEXIT): New definition. ! 1147: ! 1148: * Makefile.in (ALL_CPPFLAGS): New variable. ! 1149: Use in all compile steps instead of CPPFLAGS. ! 1150: (X_CPPFLAGS, T_CPPFLAGS): New vars, used in ALL_CPPFLAGS. ! 1151: * x-vax (X_CPPFLAGS): Use this instead of X_CFLAGS. ! 1152: ! 1153: * stmt.c (expand_end_bindings): Fix typo. ! 1154: ! 1155: Fri Jan 31 12:15:09 1992 Ron Guilmette (rfg ay ncd.com) ! 1156: ! 1157: * dwarfout.c (LINE_LAST_ENTRY_LABEL): Definition added. ! 1158: (dwarfout_finish): Put a label on the last .line section entry. ! 1159: (dwarfout_finish): Make first word of final .debug_srcinfo record ! 1160: contain the offset of the final .line section entry. ! 1161: ! 1162: Fri Jan 31 10:31:44 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 1163: ! 1164: * cp-tree.c (__eprintf): Make definition match assert.h ! 1165: declaration. ! 1166: ! 1167: Thu Jan 30 23:17:11 1992 Per Bothner (bothner at cygnus.com) ! 1168: ! 1169: * c++: The flags -c, -S, or -E suppress passing -lg++ ! 1170: to gcc. (Otherwise, gcc prints a warning.) ! 1171: ! 1172: Thu Jan 30 21:10:02 1992 Ron Guilmette (rfg at ncd.com) ! 1173: ! 1174: * dwarfout.c (dwarfout_init): Fix generation of initial .debug_aranges ! 1175: entry to be Dwarf Version 1 compliant. ! 1176: ! 1177: Thu Jan 30 15:51:27 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 1178: ! 1179: * i386sun.h (LINK_SPEC): Delete useless %{-Bstatic} term. ! 1180: * sun2o4.h (LINK_SPEC): Likewise. ! 1181: * sun3.h (LINK_SPEC): Likewise. ! 1182: * sparc.h (LINK_SPEC): Delete useless %{Bstatic} term. ! 1183: ! 1184: * cccp.c (default_include): Delete use of obsolete ! 1185: NO_STANDARD_INCLUDE_DIR macro. ! 1186: * protoize.c (default_include): Likewise. ! 1187: ! 1188: * Makefile.in (libgcc1.null): Delete dummy.o and dummy.c. ! 1189: ! 1190: Thu Jan 30 15:34:06 1992 Michael Meissner (meissner at osf.org) ! 1191: ! 1192: * gstdarg.h: Include va-mips.h on MIPS systems. ! 1193: ! 1194: * va-mips.h (va_start): Provide alternate definition when included ! 1195: via stdarg.h. ! 1196: (va_arg): Use __alignof(...) instead of sizeof(...) to determine ! 1197: whether or not to dword align the argument pointer. ! 1198: ! 1199: Thu Jan 30 13:06:36 1992 Richard Stallman ([email protected]) ! 1200: ! 1201: * Makefile.in (install-common): Get c++ and g++ from srcdir. ! 1202: ! 1203: * i860.h (FIXED_REGISTERS): Arg pointer is no longer fixed. ! 1204: ! 1205: * assert.h (__eprintf): Add const to string args in GCC ANSI case. ! 1206: ! 1207: * Makefile.in (cccp.o, protoize.o, unprotoize.o): ! 1208: Define LOCAL_INCLUDE_DIR based on $(prefix). ! 1209: ! 1210: * stmt.c (expand_end_bindings): Arg pointer needs no special ! 1211: treatment if not fixed. ! 1212: ! 1213: * cp-parse.y, c-lex.c (yyerror): ! 1214: Avoid sign-extension of characters in error messages. ! 1215: ! 1216: Thu Jan 30 11:39:56 1992 Ron Guilmette (rfg at ncd.com) ! 1217: ! 1218: * dwarfout.c (dwarfout_finish): Fix generation of .debug_pubnames ! 1219: terminating entry to be 4-bytes of zero followed by a null string. ! 1220: ! 1221: Thu Jan 30 09:30:19 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1222: ! 1223: * rs6000.c (ccr_bit): Fix typo causing reference to possibly ! 1224: undefined operand. ! 1225: ! 1226: * rs6000.h (ASM_SPEC): Remove until new AIX assembler is available. ! 1227: (ASM_OUTPUT_POOL_PROLOGUE): Add missing "." in csect name. ! 1228: (ENCODE_SEGMENT_INFO): Deleted. ! 1229: (ASM_OUTPUT_EXTERNAL): Move code from ENCODE_SEGMENT_INFO here, ! 1230: using permalloc instead of putting name into saveable_obstack. ! 1231: Re-enable macro. ! 1232: (ASM_OUTPUT_EXTERNAL_LIBCALL): Re-enable. ! 1233: ! 1234: Wed Jan 29 21:50:26 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1235: ! 1236: * rs6000.h (ASM_SPEC): Add -u, now require new /bin/as for AIX. ! 1237: (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): No longer needed. ! 1238: ! 1239: * rs6000.h (ENCODE_SEGMENT_INFO): New macro; add [RW] or [DS] to name. ! 1240: (RS6000_OUTPUT_BASENAME): New macro. ! 1241: (ASM_OUTPUT_*): Use it instead of assemble_name when required. ! 1242: (ASM_OUTPUT_POOL_PROLOGUE): Remove trailing [RW] or [DS]. ! 1243: * rs6000.c (print_operand, case 'z'): New case, for name in CALL_INSN. ! 1244: (output_toc): Use RS6000_OUTPUT_BASENAME instead of assemble_name ! 1245: for toc entry name. ! 1246: * rs60000.md (call): Use %z. ! 1247: ! 1248: Wed Jan 29 17:17:42 1992 Michael Tiemann (tiemann at cygnus.com) ! 1249: ! 1250: * cp-init.c (build_member_call): Fix bug involving static members ! 1251: that are function pointers. ! 1252: ! 1253: Wed Jan 29 13:25:18 1992 Tom Wood (wood at dg-rtp.dg.com) ! 1254: ! 1255: * gcc.c (do_spec_1): For %D, only add -L options that are relevant. ! 1256: (is_linker_dir): Determine if a -L option is relevant. ! 1257: ! 1258: Wed Jan 29 00:57:55 1992 Richard Stallman ([email protected]) ! 1259: ! 1260: * configure: Turn ns32k alternatives back on. ! 1261: ! 1262: * Makefile.in (getopt.o, getopt1.c): Join two lines into one. ! 1263: ! 1264: * x-i386v4, x-i860v4 (GCC_CFLAGS): Add missing `-B./'. ! 1265: ! 1266: * reload.c (find_dummy_reload, push_reload): Don't reuse dying input ! 1267: reg as a reload if it is a fixed reg. ! 1268: ! 1269: * c-tree.h (C_MISSING_PROTOTYPE_WARNED): Deleted since unused. ! 1270: ! 1271: Wed Jan 29 00:42:34 1992 Tim Moore (moore at fast.cs.utah.edu) ! 1272: ! 1273: * hp800.c (print_operand): Handle INSN_ANNULLED_BRANCH_P in '*' ! 1274: operand type. ! 1275: * hp800.h (DEFAULT_GDB_EXTENSIONS): Define as 0. ! 1276: * hp800.md (cmpsi): Change arith_operand to arith5_operand. ! 1277: (bCC patterns): Delete pattern that matches a compare with a ! 1278: constant first operand. Change arith_operand to arith5_operand. ! 1279: (fp branches): Change type to cbranch. ! 1280: ! 1281: * function.c (assign_parms): Set current_function_arg_offset_rtx ! 1282: correctly for ARGS_GROW_DOWNWARD. ! 1283: * gstdarg.h: Include va-hp800.h. ! 1284: * va-hp800.h: Complete rewrite. ! 1285: ! 1286: Tue Jan 28 17:04:38 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 1287: ! 1288: * varasm.c (make_decl_rtl): Delete unused var `i'. ! 1289: ! 1290: * c-convert.c (convert_to_pointer): ! 1291: Abort if no integer type is as wide as a pointer. ! 1292: ! 1293: * gcc.c (default_compilers, .i case): Add error message for -pg ! 1294: and -fomit-frame-pointer incompatibility. ! 1295: ! 1296: * Makefile.in (install-common): Install c++ and g++ shell scripts in ! 1297: bindir. ! 1298: ! 1299: Tue Jan 28 15:44:10 1992 Michael Collison (collison at osf.org) ! 1300: ! 1301: * x-encrose (OLDCC): changed to $(GNU_ROSE_BIN)/gcc ! 1302: ! 1303: * ns32k.h: Added trampoline code. ! 1304: ! 1305: Tue Jan 28 14:19:52 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1306: ! 1307: * rtl.def (UNSPEC, UNSPEC_VOLATILE): New RTL codes. ! 1308: * cse.c (canon_hash): UNSPEC_VOLATILE operations are volatile. ! 1309: * loop.c (invariant_p): Likewise. ! 1310: * reorg.c (mark_referenced_resources): Likewise. ! 1311: * sched.c (sched_analyze_2): Likewise. ! 1312: * rtlanal.c (volatile_refs_p, side_effects_p, may_trap_p): Likewise. ! 1313: (reg_referenced_p): Support UNPEC and UNSPEC_VOLATILE. ! 1314: ! 1315: Tue Jan 28 11:50:35 1992 Michael Meissner (meissner at osf.org) ! 1316: ! 1317: * mips.c (toplevel): Add include of <ctype.h>, since isdigit is ! 1318: used. ! 1319: ! 1320: Tue Jan 28 05:47:08 1992 Michael Tiemann (tiemann at cygnus.com) ! 1321: ! 1322: * cp-decl.c (xref_tag): Addition to eichin's Jan 25 change. If REF ! 1323: is extant, and it's seen in the global scope outside of ! 1324: CLASS_BINDING_LEVEL, set its IDENTIFIER_GLOBAL_VALUE if NULL. ! 1325: ! 1326: * cp-class.c (pushclass): Forcibly remove any remnants of incomplete ! 1327: type that was previously pushed. ! 1328: ! 1329: * cp-decl.c (various places): Remove all error messages about C++ ! 1330: constructs being invalid in C language context; extern "C" is a ! 1331: linkage specifier--no more. ! 1332: ! 1333: * cp-method.c (dump_type_prefix,dump_type): Never need to output ! 1334: `unsigned' since its always part of an unsigned integer type name. ! 1335: (build_overload_name): Change test for unsigned to use ! 1336: `unsigned_type' instead of examining TREE_UNSIGNED. ! 1337: ! 1338: * cp-call.c (ideal_candidate): Don't convert PARMS in place if ! 1339: BASETYPE is NULL_TREE. ! 1340: ! 1341: Tue Jan 28 02:21:31 1992 Richard Stallman ([email protected]) ! 1342: ! 1343: * c-decl.c (grokdeclarator): Use `auto' for nested fn fwd decls. ! 1344: ! 1345: * g++: New file. ! 1346: ! 1347: * fixincludes: ! 1348: Convert machine names in #if's to have underscores. ! 1349: Fix specific files stdlib.h, locale.h, hsfs/... for Sunos 4.1. ! 1350: * fixinc.svr4: Convert machine names in #if's to have underscores. ! 1351: ! 1352: * gcc.c (do_spec_1): For %D, also make -L's for startfile_prefix. ! 1353: Also append the machine ! 1354: ! 1355: * fold-const.c (fold_convert): Properly handle real-to-real case. ! 1356: ! 1357: * configure (i486-*-sysv4*): New alternative. ! 1358: ! 1359: Tue Jan 28 00:37:24 1992 Ron Guilmette (rfg at ncd.com) ! 1360: ! 1361: * dwarfout.c (location_attribute): Fix handling of objects which ! 1362: were optimized out of existance for Dwarf Version 0 compliance. ! 1363: ! 1364: Tue Jan 28 00:42:57 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 1365: ! 1366: * Makefile.in (mostlyclean): Delete stack dump files too. ! 1367: ! 1368: Mon Jan 27 18:26:27 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1369: ! 1370: * rs6000.h (HAVE_ATEXIT, NO_DOLLAR_IN_LABEL): Now defined. ! 1371: ! 1372: Mon Jan 27 13:32:51 1992 Richard Stallman ([email protected]) ! 1373: ! 1374: * libgcc2.a (L_exit): Declare __CTOR_LIST__ and __DTOR_LIST__ ! 1375: with length 2; get rid of __CTOR_END__ and __DTOR_END__. ! 1376: (L_ctor_list, L_dtor_list): New library members. ! 1377: ! 1378: * cccp.c (main): Add terminating null, then call trigraph_pcp. ! 1379: ! 1380: * fixincludes, fixinc.svr4: Fail unless an arg was given. ! 1381: * Makefile.in (install-fixincludes): Pass output dir as argument. ! 1382: ! 1383: * Makefile.in: Renamed libgcc[12] to libgcc[12].a. ! 1384: Likewise for tmplibgcc[12]. ! 1385: ! 1386: * toplev.c (rest_of_decl_compilation): Treat all fcns as if external. ! 1387: ! 1388: * Makefile.in (TAGS): Do the work in srcdir. ! 1389: Include c-parse.h in files to move. ! 1390: ! 1391: Mon Jan 27 10:54:24 1992 Jim Wilson (wilson at sphagnum.cygnus.com) ! 1392: ! 1393: * cccp.c (get_filename): Don't pass -1 file descriptor to close. ! 1394: ! 1395: Mon Jan 27 00:26:33 1992 Michael Tiemann (tiemann at cygnus.com) ! 1396: ! 1397: * cp-decl.c (start_function): Preserve TREE_TYPE of RESULT_DECL, in ! 1398: case we have a named return value. ! 1399: (finish_function): Restrict the cases under which we build ! 1400: `no_return_label'. Use CURRENT_FUNCTION_RETURN_VALUE to eliminate ! 1401: the generation of needless cleanups when functions end with a return ! 1402: stmt. No longer zeros out CLEANUP_LABEL. Also, call `emit_jump' ! 1403: instead of `expand_null_return' in case NO_RETURN_LABEL is ! 1404: non-NULL. ! 1405: ! 1406: * cp-decl2.c (grokfield): Don't specially hack static member ! 1407: function names. ! 1408: ! 1409: * cp-except.c (cplus_expand_raise): Test correct predicate that we ! 1410: have a non-null value return. ! 1411: (cplus_expand_{throw,reraise}): Ditto. ! 1412: ! 1413: * cp-typeck.c (c_expand_return): Handle case where named return ! 1414: value has incomplete type. ! 1415: ! 1416: Sun Jan 26 20:50:55 1992 Michael Tiemann (tiemann at cygnus.com) ! 1417: ! 1418: * cp-parse.y (LC): Fix rule to use `push_obstacks_nochange'. ! 1419: (structsp): Use `pop_obstacks'. ! 1420: ! 1421: Sun Jan 26 17:39:15 1992 Richard Stallman ([email protected]) ! 1422: ! 1423: * c-parse.y (LC): Use push_obstacks_nochange and always call ! 1424: end_temporary_allocation. ! 1425: (structsp, template_instantiate_once): After LC, use pop_obstacks. ! 1426: ! 1427: * c-decl.c (grokdeclarator): ! 1428: Static function decl within a function is not external. ! 1429: ! 1430: Sun Jan 26 08:14:53 1992 Michael Meissner (meissner at osf.org) ! 1431: ! 1432: * mips.h (MIPS_VERSION): Bump meissner version # to 9. ! 1433: (enum processor_type): Delete PROCESSOR_R2000, since a r2000 ! 1434: schedules just like a r3000. ! 1435: (mips_isa, mips_isa_string, mips_cpu_string): New global variables. ! 1436: (MD_EXEC_PREFIX): If not defined, define as "/usr/lib/cmplrs/cc/". ! 1437: (TARGET_SWTICHES macros): Move setting the processor from ! 1438: TARGET_SWITCHES to TARGET_OPTIONS. Also, delete the -mfixed-ovrfl ! 1439: switch, and move -mwc8/-mwc16 to not use any bits, since we can't ! 1440: support these in GCC 2.00. Readjust the positions the bits are in. ! 1441: (TARGET_OPTIONS): Define to add switches -mcpu=x to set which ! 1442: processor type to schedule for, and -mipsx to specify the ! 1443: instruction set architecture level. ! 1444: (BRANCH_LIKELY_P): New macro, true if MIPS ISA >= 2. ! 1445: (HAVE_64BIT_P): New macro, true if MIPS_ISA >= 3. ! 1446: (HAVE_SQRT_P): New macro, true if MIPS_ISA >= 2. ! 1447: (BRANCH_COST): Define as 2 if r4000/r6000, 1 otherwise. ! 1448: (ASM_OUTPUT_SKIP): Eliminate OSF/1 gas work around. ! 1449: ! 1450: * mips.c (mips_isa, mips_isa_string, mips_cpu_string): New global ! 1451: variables. ! 1452: (print_options): Print CPU and ISA level. ! 1453: (override_otpions): Handle TARGET_OPTIONS setting cpu and ISA. ! 1454: (override_options, print_operand): %: is no longer supported, since ! 1455: -mfixed-ovfl is eliminated. ! 1456: ! 1457: * mips.md (type attribute): Add fsqrt. ! 1458: (all define_function_units): Redo, to add full r6000 and r4000 ! 1459: support, and to use the default case in case another processor type ! 1460: is added. Also, tests against PROCESSOR_R2000 eliminated. ! 1461: (add, subtract patterns): Delete use of %:. ! 1462: (sqrtdf2, sqrtsf2): Define if the MIPS ISA >= 2. ! 1463: ! 1464: * decrose.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define these to ! 1465: use the defaults on the OSF/1 reference platform. ! 1466: (i386rose.h): Likewise. ! 1467: ! 1468: Sun Jan 26 07:58:00 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1469: ! 1470: * cse.c (cse_insn): Don't call insert_regs on a SUBREG. ! 1471: When scanning table for SUBREG assignment, ignore invalid entries. ! 1472: ! 1473: * cse.c (cse_insn): When looking for first non-deleted entry in ! 1474: table, start by scanning backwards from the deleted entry. ! 1475: ! 1476: * function.c (assign_parms): Set current_function_return_rtx ! 1477: unconditionally. ! 1478: (expand_function_start): Don't set it here. ! 1479: ! 1480: Sat Jan 25 06:44:16 1992 Mark Eichin (eichin at cygnus.com) ! 1481: ! 1482: * cp-decl.c (set_identifier_local_value): New function. Clone of ! 1483: set_identifier_type_value, but uses level->shadowed instead. Only ! 1484: used in pushdecl, where the non-global install was previously ! 1485: setting the local value directly which "stuck" and didn't get ! 1486: cleared the next time through. ! 1487: (pushdecl): use set_identifier_type_value so that the local value ! 1488: actually gets erased when we leave this level. Changed code that ! 1489: checks for global_binding_level to recognize that if ! 1490: class_binding_level is set, we're not in the global one. ! 1491: (poplevel_class): restore shadowed list too, like poplevel does. ! 1492: (print_binding_level): added no_print_functions and ! 1493: no_print_builtins variables to eliminate clutter while trying to ! 1494: debug binding level problems. ! 1495: ! 1496: Fri Jan 24 18:03:36 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1497: ! 1498: * tree.c (pop_momentary): Don't reference freed stack entry. ! 1499: ! 1500: Fri Jan 24 14:20:05 1992 Michael Tiemann (tiemann at cygnus.com) ! 1501: ! 1502: * cp-parse.y (stmt): Call `define_case_label' for default label. ! 1503: * cp-decl.c (current_function_return_value): New variable. ! 1504: (define_{case_}label): Clear CURRENT_FUNCTION_RETURN_VALUE. ! 1505: * cp-typeck.c (c_expand_return): Set CURRENT_FUNCTION_RETURN_VALUE. ! 1506: ! 1507: * cp-tree.c (lang_printable_name): Use DECL_RING, and don't free ! 1508: the printable name for CURRENT_FUNCTION_DECL. ! 1509: ! 1510: Fri Jan 24 14:17:30 1992 Richard Stallman ([email protected]) ! 1511: ! 1512: * gvarargs.h: If _ANSI_H, undef _VA_LIST_. ! 1513: ! 1514: * c-typeck.c (pointer_int_sum): Don't distribute * into pointer diff. ! 1515: ! 1516: * hp320.h (MD_STARTFILE_PREFIX): Defined. ! 1517: (STANDARD_STARTFILE_PREFIX): Deleted. ! 1518: ! 1519: Fri Jan 24 09:30:41 1992 Fred Fish (fnf at fishpond) ! 1520: ! 1521: * assert.h (__eprintf): Declare as prototype for __STDC__ ! 1522: ! 1523: Fri Jan 24 05:28:53 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 1524: ! 1525: * i386.md (jump,indirect_jump,tablejump): Don't output an align ! 1526: directive here: let the following BARRIER do it. ! 1527: ! 1528: Thu Jan 23 11:54:11 1992 Ron Guilmette (rfg at ncd.com) ! 1529: ! 1530: * i486v4.h: New file. ! 1531: ! 1532: Thu Jan 23 20:34:22 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 1533: ! 1534: * fixinc.svr4: Surround uses of ${INPUT} with "" instead of '' ! 1535: so that it will get expanded. ! 1536: ! 1537: Thu Jan 23 17:50:13 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1538: ! 1539: * cse.c (qty_mode): New variable. ! 1540: (reg_rtx): Deleted. ! 1541: (hard_regs_in_table, regs_invalidate_by_call): New variables. ! 1542: (new_basic_block): Clear hard_regs_in_table. ! 1543: (delete_reg_equiv): New name for reg_invalidate; don't update reg_tick. ! 1544: (mention_regs): Don't set reg_rtx. ! 1545: Update reg_tick for all registers in a multi-register hard register ! 1546: reference. ! 1547: (insert_regs): Don't do anything special with SUBREG. ! 1548: Only insert register in a class if it is the same mode. ! 1549: Don't set reg_rtx; set qty_mode instead. ! 1550: (insert): Update hard_regs_in_table. ! 1551: Get constant equivalence in proper mode. ! 1552: (merge_equiv_classes): Call delete_reg_equiv. ! 1553: (invalidate): Call delete_reg_equiv and update reg_tick. ! 1554: Invalidate all parts of multi-word hard regs and invalidate ! 1555: any multi-word hard reg overlapping what we are to invalidate. ! 1556: Only look at constant in proper mode. ! 1557: (remove_invalid_refs): Use refers_to_regno_p. ! 1558: (invalidate_for_call): New function. ! 1559: (canon_hash, refers_to_mem_p, fold_rtx, equiv_constant): Look at ! 1560: constant in proper mode. ! 1561: (cse_rtx_addr_varies_p, cse_process_notes): Likewise. ! 1562: (exp_equiv_p): Likewise. ! 1563: Check reg_tick for all parts of multi-word hard register. ! 1564: (canon_reg): Don't use reg_rtx; get register from regno_reg_rtx or ! 1565: build hard reg in proper mode. ! 1566: (record_jump_equiv): Split into two pieces. ! 1567: (record_jump_cond): Second part of record_jump_equiv; make recursive ! 1568: call to some equivalences if args are SUBREGs. ! 1569: (cse_insn): Only replace register with equivalent if proper mode; ! 1570: don't use reg_rtx. ! 1571: Call invalidate_for_call. ! 1572: Don't avoid call to gen_lowpart for hard register. ! 1573: Make a SUBREG if gen_lowpart_if_possible fails for SUBREG ! 1574: assignment. ! 1575: (invalidate_from_clobbers): Update reg_tick of SP; invalidate ! 1576: REG entry in table, if present; use stack_pointer_rtx. ! 1577: (cse_main): Don't allocate reg_rtx. ! 1578: Initialize regs_invalidated_by_calls. ! 1579: (cse_basic_block): Allocate qty_mode. ! 1580: ! 1581: * rs6000.h (ADDITIONAL_REGISTER_NAMES): Add so we can disambiguate ! 1582: fixed and floating registers. ! 1583: ! 1584: * rs6000.md (ashrdi3): Reject all but constant shift counts. ! 1585: ! 1586: * jump.c (simplejump_p): Don't access PATTERN unless we know it is ! 1587: a JUMP_INSN. ! 1588: ! 1589: * combine.c (get_last_value): Don't do a recursive call for a ! 1590: paradoxical SUBREG. ! 1591: ! 1592: * jump.c (jump_optimize): In "if (...) x = a; else x = b;", ! 1593: don't move "x = b;" if it has non-trivial REG_NOTES. Also, allow ! 1594: B to be any constant, not just a CONT_INT. ! 1595: ! 1596: * stor-layout.c (layout_type): Handle alignment for arrays the same ! 1597: as we do for records and unions. ! 1598: ! 1599: * calls.c (expand_call): Ignore `const' on void functions. ! 1600: ! 1601: * i860.c: Include recog.c. ! 1602: Remove many explicit declaration of vars from include files. ! 1603: (i860_compare_op[01]): Define these here. ! 1604: * i860.h (i860_compare_op[01]): Add declarations. ! 1605: * i860.md (compare, branch): Rework to use define_expand for cmpxx. ! 1606: Compare just saves operands in i860_compare_op[01]. Branch emits ! 1607: both insns using the saved operands. ! 1608: ! 1609: * i860.h (PREFERRED_RELOAD_CLASS): Handle FP registers and constants. ! 1610: (SECONDARY_INPUT_RELOAD_CLASS): We need a scratch register to copy ! 1611: an integer constant to a floating-point register. ! 1612: * i860.md (addsi3, subsi3): Allow use of floating registers. ! 1613: ! 1614: Thu Jan 23 13:33:40 1992 Richard Stallman ([email protected]) ! 1615: ! 1616: * i386v4.h (CPP_PREDEFINES): Don't define X86. ! 1617: ! 1618: * c-lex.c (readescape): Warn for \a and \x if warn_traditional. ! 1619: Handle \v as vertical tab regardless of -traditional. ! 1620: ! 1621: * fixincludes, fixinc.svr4: Make LIB absolute, near the beginning. ! 1622: ! 1623: * fixincludes: Simplify egrep command while matching the same lines ! 1624: (plus occasional additional lines). ! 1625: ! 1626: * function.c (fixup_memory_subreg): New arg UNCRITICAL. Calls changed. ! 1627: ! 1628: * gcc.c (process_command): Handle LPATH like LIBRARY_PATH. ! 1629: ! 1630: * svr3.h (ASM_LONG): Deleted. ! 1631: ! 1632: * gvarargs.h: Ignore _VA_LIST_ if _ANSI_H_; ! 1633: don't define _VA_LIST_ if already defined. ! 1634: ! 1635: Thu Jan 23 09:10:52 1992 Tom Wood (wood at dg-rtp.dg.com) ! 1636: ! 1637: * m88kluna.h (includes): Include aoutos.h. ! 1638: ! 1639: Thu Jan 23 09:10:52 1992 Ron Guilmette (rfg at ncd.com) ! 1640: ! 1641: * va-i860.h (__savereg): Fix typo. ! 1642: ! 1643: * i860.h (PREDICATE_CODES): Added definition. ! 1644: ! 1645: * i386v4.h (ASM_FILE_START): Definition added which generates ! 1646: .version directive. ! 1647: ! 1648: Wed Jan 22 23:15:45 1992 (Eric Youngdale at [email protected]) ! 1649: ! 1650: * make-cc1.com: Predefine symbols for "rename" and "bison"; always ! 1651: generate c-parse.h when generating c-parse.c. ! 1652: ! 1653: Wed Jan 22 20:01:11 1992 Per Bothner (bothner at cygnus.com) ! 1654: ! 1655: * sdbout.c (sdbout_record_type_name): Use typedef names ! 1656: for C++. (A kludge.) ! 1657: * sdbout.c (sdbout_one_type): Emit base classes as ! 1658: dummy fields, just like dbxout.c when not using gdb extensions. ! 1659: ! 1660: Wed Jan 22 20:01:11 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 1661: ! 1662: * fixincludes: Surround uses of ${INPUT} with "" instead of '' ! 1663: so that it will get expanded. ! 1664: ! 1665: * gcc.c (default_compilers): For c++, define __GNUG__ to 2, and ! 1666: pass -trigraphs. ! 1667: ! 1668: * cccp.1, cpp.1, gcc.1, g++.1: Delete more RCS variables. ! 1669: ! 1670: Wed Jan 22 19:02:06 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1671: ! 1672: * combine.c (simplify_shift_const, case ASHIFT): If we will ! 1673: be suppressing a sign extension because the upper bits are ! 1674: already the same, verify that the operand is in the same ! 1675: mode as we will be doing the shift; don't ignore a SUBREG ! 1676: inside the inner SHIFT. ! 1677: ! 1678: Wed Jan 22 09:25:07 1992 Tom Wood (wood at dg-rtp.dg.com) ! 1679: ! 1680: * c-typeck.c (comp_target_types): Make decl static. ! 1681: Don't forget to return the value. ! 1682: (function_types_compatible_p, comptypes): Initialize `val'. ! 1683: ! 1684: Tue Jan 21 13:29:50 1992 Richard Stallman ([email protected]) ! 1685: ! 1686: * cross-make (ALL): Override with definition it here. ! 1687: * configure: Don't edit its value explicitly here. ! 1688: ! 1689: * crtstuff.c (__do_global_ctors): Include DO_GLOBAL_CTORS_BODY ! 1690: in crtend.o, not in crtbegin.o. ! 1691: ! 1692: * svr3.h: Prepare to use with i386. ! 1693: (PCC_BITFIELD_TYPE_MATTERS): Definition deleted. ! 1694: This pertains to the individual cpu types. ! 1695: (ASM_SHORT, ASM_LONG, ASM_DOUBLE): Likewise. ! 1696: (DBX_DEBUGGING_INFO): Undef this. ! 1697: (DBX_REGISTER_NUMBER): Deleted the #undef. ! 1698: (STARTFILE_SPEC, LINK_SPEC, LIB_SPEC): Deleted. ! 1699: * i860v3.h (STARTFILE_SPEC, LINK_SPEC, LIB_SPEC): New definitions. ! 1700: ! 1701: * att386.h: Coexist with svr3.h. ! 1702: (ASM_FILE_START): Deleted. ! 1703: (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise. ! 1704: (ASM_BYTE_OP, NO_DOLLAR_IN_LABEL): Likewise. ! 1705: (ASM_OUTPUT_LABELREF): Undef before defining. ! 1706: (ASM_FILE_START_1): Undef before defining. ! 1707: (EXTRA_SECTION_FUNCTIONS): Deleted. ! 1708: (BSS_SECTION_FUNCTION): New macro; defines bss_section. ! 1709: ! 1710: * i386v.h, aix386.h: Include svr3.h. ! 1711: (SCCS_DIRECTIVE, ASM_OUTPUT_IDENT): Deleted. ! 1712: (TARGET_MEM_FUNCTIONS): Deleted. ! 1713: (SDB_DEBUGGING_INFO, DBX_DEBUGGING_INFO): Deleted. ! 1714: ! 1715: * Support constructors and destructors on svr3. From james@bigtex. ! 1716: * i386v.h, aix386.h (STARTFILE_SPEC): Use crtbegin.o after crt1.o. ! 1717: (LIB_SPEC): Use crtend.o before crtn.o. ! 1718: (CTORS_SECTION_ASM_OP, ASM_OUTPUT_CONSTRUCTOR): New macros. ! 1719: (INIT_SECTION_ASM_OP): Likewise. ! 1720: * svr3.h (DTORS_SECTION_ASM_OP): New macros. ! 1721: (DO_GLOBAL_CTORS_BODY): New macro. ! 1722: (EXTRA_SECTIONS,EXTRA_SECTION_FUNCTIONS): Use .init and .fini ! 1723: sections in addition to .bss. ! 1724: ({INIT,FINI}_SECTION_FUNCTION): New macros for *_section functions. ! 1725: ({CTORS,DTORS}_SECTION_FUNCTION): Macros deleted. ! 1726: (ASM_OUTPUT_CONSTRUCTOR): Deleted. ! 1727: (ASM_OUTPUT_DESTRUCTOR): Use ASM_LONG. ! 1728: (INT_ASM_OP): Deleted. ! 1729: ! 1730: * c-typeck.c (default_conversion): Don't use initial value if BLKmode. ! 1731: If do use the initial value, update `type'. ! 1732: ! 1733: * arm.h (STRUCTURE_SIZE_BOUNDARY): New definition. ! 1734: ! 1735: * stor-layout.c (layout_type): Ignore MAX_FIXED_MODE_SIZE for integers. ! 1736: ! 1737: * ultrix.h (SIZE_TYPE): Use `unsigned int'. ! 1738: * Makefile.in (install-common): Add missing -f in rm. ! 1739: (install-fixincludes): Install the README file. ! 1740: ! 1741: * fixincludes: Don't match on size_t, etc., since we don't actually ! 1742: change them. ! 1743: ! 1744: Mon Jan 20 23:22:45 1992 Michael Tiemann (tiemann at cygnus.com) ! 1745: ! 1746: * cp-call.c (ideal_candidate): Don't see two functions as ambiguous ! 1747: if one is argument-by-argument equivalent or better than another. ! 1748: ! 1749: Mon Jan 20 14:08:06 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1750: ! 1751: * toplev.c (strip_off_ending): Add ".ada". ! 1752: ! 1753: Mon Jan 20 13:53:15 1992 Richard Stallman ([email protected]) ! 1754: ! 1755: * protoize.c (xfree): No longer static. ! 1756: ! 1757: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Allow tm.h to override. ! 1758: ! 1759: * final.c (leaf_renumber_regs_insn): Do just the pattern of an insn. ! 1760: ! 1761: * pyr.h (PCC_BITFIELD_TYPE_MATTERS): Defined. ! 1762: (STRUCTURE_SIZE_BOUNDARY): Deleted. ! 1763: ! 1764: * mips.c: Clean up spacing around square brackets. ! 1765: ! 1766: * c-typeck.c (convert_arguments): ! 1767: Get rid of feature to convert to a tagless union type. ! 1768: (common_type): Add pedantic warning. ! 1769: (comptypes, function_types_compatible_p): Return 2 meaning warn. ! 1770: (comp_target_types): Do the warning here. ! 1771: (type_lists_compatible_p): New function. ! 1772: ! 1773: Sun Jan 19 17:32:19 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1774: ! 1775: * reload1.c (emit_reload_insns): Fix typos when checking for secondary ! 1776: icode. ! 1777: ! 1778: Sun Jan 19 15:28:53 1992 Richard Stallman ([email protected]) ! 1779: ! 1780: * global-alloc.c (global_alloc): If LEAF_REGISTERS, those are the ! 1781: regs that cost nothing to save, for setting regs_already_used. ! 1782: ! 1783: * expr.c (expand_builtin): Preserve function value reg ! 1784: around the call to __builtin_saveregs. ! 1785: ! 1786: * configure (mips-sgi-irix4*, mips-sgi-irix*): Set install_with_cp. ! 1787: ! 1788: * c-decl.c (start_function): ! 1789: Check properly for `static' function in handling -Wmissing-prototypes. ! 1790: ! 1791: * libgcc2.c (__main): Omit this fn if INIT_SECTION_ASM_OP. ! 1792: ! 1793: Sun Jan 19 13:23:13 1992 Fred Fish (fnf at sunfish) ! 1794: ! 1795: * amix.h (ASM_OUTPUT_ASCII): Override version in svr4.h. ! 1796: ! 1797: Sun Jan 19 13:16:56 1992 Michael Tiemann (tiemann at cygnus.com) ! 1798: ! 1799: * cp-search.c (lookup_field): Accept IS_AGGR_TYPE_CODE, not ! 1800: just == RECORD_TYPE. ! 1801: ! 1802: * cp-class.c (finish_struct): Clear a tentative setting of ! 1803: DECL_BIT_FIELD. ! 1804: ! 1805: * cp-decl.c (start_decl): Don't call `pushclass' for incomplete ! 1806: CONTEXT. ! 1807: ! 1808: * cp-typeck.c (comp_target_types): Call `comp_target_parms' with ! 1809: STRICT == 0, not -1. ! 1810: (build_conditional_expr): Check that the target types of TYPE1 and ! 1811: TYPE2 are aggr type before calling `common_base_type'. ! 1812: ! 1813: Sun Jan 19 04:10:16 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 1814: ! 1815: * configure: Fix typo inserting INSTALL=cp into makefile. ! 1816: ! 1817: Sat Jan 18 12:06:58 1992 Michael Tiemann (tiemann at cygnus.com) ! 1818: ! 1819: * cp-lex.c (build_with_cleanup): Delete obsolete function. ! 1820: * cp-tree.c (break_out_cleanups): New function. ! 1821: * cp-decl.c (cplus_expand_expr): Call `break_out_cleanups'. ! 1822: * cp-typeck.c (build_compound_expr): Ditto. ! 1823: ! 1824: * cp-call.c (convert_harshness): Make any inheritance relationship ! 1825: preferable to a void* conversion. ! 1826: * cp-tree.h (CLASSTYPE_MAX_DEPTH): New macro. ! 1827: * cp-class.c (finish_struct_bits): Set CLASSTYPE_MAX_DEPTH. ! 1828: ! 1829: * cp-cvt.c (build_up_reference): Don't return in ARRAY_REF case, ! 1830: since we may need to adjust the return value for complex ! 1831: inheritance. ! 1832: ! 1833: * cp-decl2.c (lang_f_options): Add recognizers for -f{no-}builtin, ! 1834: -f{no-}ident, and -ansi. Also, remove unnecessary "no-*" forms. ! 1835: ! 1836: * cp-init.c (emit_base_init): If PEDANTIC, don't let base ! 1837: initializers leak up the hierarchy. ! 1838: ! 1839: * cp-parse.y (structsp): Disable gratuitous error message. ! 1840: ! 1841: * cp-call.c (convert_harshness): Don't overlook PENALTY when ! 1842: signed/unsigned differences are noted (in both POINTER_TYPE and ! 1843: REFERENCE_TYPE cases). ! 1844: ! 1845: * toplev.c (strip_off_ending): Grok ".ii" endings (C++ preprocessed ! 1846: files). ! 1847: ! 1848: * cp-typeck.c (build_component_ref): Add special handler when ! 1849: COMPONENT is the CLASSTYPE_VFIELD name for BASETYPE. ! 1850: ! 1851: Sat Jan 18 08:29:58 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1852: ! 1853: * cse.c (cse_insn): Don't make constant pool entries in MODE_CC modes. ! 1854: ! 1855: Sat Jan 18 00:28:48 1992 Richard Stallman ([email protected]) ! 1856: ! 1857: * Makefile.in (install-common): Fix typo installing gcc. ! 1858: ! 1859: * crds.h, isi.h, newpbb.h, tti68k.h: Add #error because -m68000 ! 1860: will cause a crash (I think), to ask people what to do. ! 1861: ! 1862: * gmicro.h (ASM_FILE_START): Don't do anything. ! 1863: (TARGET_DEFAULT): Turn on the bitfield flag. ! 1864: (TARGET_SWITCHES): Get rid of the bitfield options. ! 1865: ! 1866: * c-lex.c (readescape): No warning for \?. ! 1867: ! 1868: * protoize.c (munge_compile_params): Fix cast that sets compile_params. ! 1869: (xmalloc, xrealloc): No longer static. ! 1870: * Makefile.in (protoize, unprotoize): Add LIBDEPS as deps. ! 1871: ! 1872: * va-i860.h (va_arg): Use __extension__ to suppress pedantic warning. ! 1873: * va-sparc.h, va-spur.h, va-pyr.h: Likewise. ! 1874: ! 1875: * x-irix4.h: New file. ! 1876: * config.sub: Don't convert irix to sysv. ! 1877: * configure (mips-sgi-irix4*): New configuration. ! 1878: (mips-sgi-irix*): Renamed from mips-sgi-sysv*. ! 1879: ! 1880: * gcc.c (process_command): ! 1881: Handle the standard_exec_prefix* before the md_*_prefix. ! 1882: ! 1883: * i386.h, ns32k.h (PCC_BITFIELD_TYPE_MATTERS): Defined. ! 1884: ! 1885: * Makefile.in (libgcc1.null): Depend on GCC_PASSES. ! 1886: ! 1887: * cccp.c (lookup_import, add_import): VMS kludges so they compile. ! 1888: (hack_vms_include_specification): Add forward declaration. ! 1889: ! 1890: * stor-layout.c (layout_record): Handle BITFIELD_NBYTES_LIMITED ! 1891: just like one of the things done for PCC_BITFIELD_TYPE_MATTERS. ! 1892: ! 1893: * x-next, x-i386mach: Deleted. ! 1894: * t-libc-ok: New file. Define just LIBGCC1. ! 1895: * configure (i386-*-mach, m68k-next-*): Use t-libc-ok. ! 1896: ! 1897: * t-svr4 (FIXINCLUDES): Defined. ! 1898: * t-m88kv4 (FIXINCLUDES): Defined. ! 1899: * t-svr3 (EXTRA_PARTS): Defined. ! 1900: * t-i386sco (EXTRA_PARTS): Defined. ! 1901: ! 1902: * configure (sparc-*-sysv4*): New alternative. ! 1903: ! 1904: * configure (install_with_cp): New flag an alternative can set. ! 1905: If host sets it, add INSTALL=cp to Makefile. ! 1906: Set this for any system V, and for m68k-crds-unos. ! 1907: ! 1908: Sat Jan 18 23:15:08 1992 Ron Guilmette (rfg at ncd.com) ! 1909: ! 1910: * va-i860.h (va_list): Made __reg_base field type long* to avoid ! 1911: compilation errors. ! 1912: (__savereg): Add explicit cast to (__va_saved_regs *). ! 1913: ! 1914: Fri Jan 17 15:09:34 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 1915: ! 1916: * i386.h (FUNCTION_BOUNDARY): Do larger alignments for i486. ! 1917: (ASM_OUTPUT_ALIGN_CODE): Same here. ! 1918: (ASM_OUTPUT_LOOP_ALIGN): But not here - do word aligns as before. ! 1919: ! 1920: (enum reg_class): Delete classes ADREG and BREG - neither used nor ! 1921: useful. Add classes FP_TOP_REG and FP_SECOND_REG. ! 1922: (REG_CLASS_NAMES): Likewise. ! 1923: (REG_CLASS_CONTENTS): Likewise. ! 1924: (REGNO_REG_CLASS): Reflect that change. ! 1925: (REG_CLASS_FROM_LETTER): Likewise. Add "t" and "u" constraints. ! 1926: (CLASS_MAX_NREGS): New classes use only 1 hard reg for any mode. ! 1927: ! 1928: (CONST_OK_LETTER_P): Document uses of letters. ! 1929: ! 1930: * reg-stack.c: Add comments describing rules for asm statements ! 1931: involving stack-like regs. ! 1932: (asm_regs): Delete unused variable. ! 1933: (fatal_for_asm): Delete unused function. ! 1934: ! 1935: (get_asm_operand_lengths): New function. ! 1936: (constrain_asm_operands): New function. Like constrain_operands, ! 1937: but records some information about the matched alternative. ! 1938: ! 1939: (record_asm_reg_life): New function. ! 1940: (record_reg_life): If INSN is an asm statement, decode operands ! 1941: and pass to record_asm_reg_life. ! 1942: (record_reg_life_pat): Abort if any asm is seen here. ! 1943: ! 1944: (subst_asm_stack_regs): New function. ! 1945: (subst_stack_regs): If INSN is an asm statement, decode operands ! 1946: and pass to subst_asm_stack_regs. When handling REG_UNUSED notes, ! 1947: emit the pops in the right order. ! 1948: ! 1949: (change_stack): New argument to insert any new insns before INSN ! 1950: instead of after. All callers changed. ! 1951: ! 1952: (emit_swap_insn): Abort if the reg is not found in REGSTACK. ! 1953: ! 1954: * Makefile.in (reg-stack.o): Depends on insn-config.h. ! 1955: ! 1956: Fri Jan 17 16:38:32 1992 Richard Stallman ([email protected]) ! 1957: ! 1958: * toplev.c, flags.h (in_system_header): Declare here. ! 1959: * c-lex.c, cp-lex.c (in_system_header): Not here. ! 1960: * toplev.c (rest_of_compilation): Don't warn of unused static function ! 1961: if definition is in a system header. ! 1962: ! 1963: * gcc.c (do_spec_1): Add missing arg in recursive call. ! 1964: (link_command_spec): Don't pass -s, -S, -u*, -X, -Y*. ! 1965: ! 1966: Fri Jan 17 12:51:28 1992 Jim Wilson (wilson at cygnus.com) ! 1967: ! 1968: From Tiemann: ! 1969: * rtlanal.c (reg_set_between_p): Call `reg_set_p' with INSN, not the ! 1970: body of INSN so that CALL_INSNs are properly handled. ! 1971: * explow.c (find_next_ref): Ditto. ! 1972: ! 1973: * hp800.h, hp800.md: Delete RCS Header variables. ! 1974: ! 1975: * reg-stack.c (replace_reg): Change `abort' to `abort ()'. ! 1976: ! 1977: Fri Jan 17 14:30:14 1992 Michael Meissner (meissner at osf.org) ! 1978: ! 1979: * caller-save.c (insert_save_restore): Don't pass a CODE_LABEL to ! 1980: reg_mentioned_p when the machine has a condition code, since ! 1981: CODE_LABEL's don't have the same format as normal INSN's do. ! 1982: ! 1983: Fri Jan 17 13:24:33 1992 Tom Wood (wood at dg-rtp.dg.com) ! 1984: ! 1985: * Makefile.in (unprotoize.o): Use the rm -f option. ! 1986: ! 1987: * cp-lex.c (check_newline): Define `used_up' as in c-lex.c. ! 1988: (in_system_header): Define as in c-lex.c. ! 1989: ! 1990: Fri Jan 17 08:14:04 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 1991: ! 1992: * reorg.c (delete_from_delay_slot): Pass correct length to ! 1993: emit_delay_sequence. ! 1994: ! 1995: * genattrtab.c (substitute_address): Handle IF_THEN_ELSE in addition ! 1996: to COND. ! 1997: ! 1998: * expr.c (expand_builtin, case BUILT_IN_STRLEN): Correct args in ! 1999: expand_expr call. ! 2000: ! 2001: Fri Jan 17 17:33:40 1992 James Van Artsdalen (james@raid) ! 2002: ! 2003: * x-i386v4 (CCLIBFLAGS): Delete macro. ! 2004: (GCC-CFLAGS): Delete macro. Prevented Makefile.in from working. ! 2005: ! 2006: Thu Jan 16 17:03:27 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 2007: ! 2008: * Makefile.in (cleanconfig): Also delete tconfig.h. ! 2009: ! 2010: * varasm.c (assemble_external): Only call ASM_OUTPUT_EXTERNAL once ! 2011: for each symbol. ! 2012: (assemble_external_libcall): Fix minor typo in spacing. ! 2013: ! 2014: * toplev.c (main): Force error if invalid -W option is used. ! 2015: ! 2016: Thu Jan 16 13:35:13 1992 Tom Wood (wood at dg-rtp.dg.com) ! 2017: ! 2018: * m88kdgux.h (CPP_PREDEFINES): Added __CLASSIFY_TYPE__ back and ! 2019: noted when it would be useful. ! 2020: ! 2021: * m88k.h (ASM_FILE_END, ASM_OUTPUT_ASCII): Override svr4.h. ! 2022: ! 2023: Thu Jan 16 12:37:16 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2024: ! 2025: * svr4.h (SVR4): Add this back. ! 2026: ! 2027: * cccp.c (lookup_import): Use bcmp to compare inodes. ! 2028: ! 2029: * cccp.c (main): Handle -idirafter option. ! 2030: ! 2031: * m68kv4.h, m88kv4.h, i386v4.h, sparcv4.h, i860v4.h (CPP_PREDEFINES): ! 2032: Add __svr4__ in case user programs want to distinguish. ! 2033: ! 2034: * cp-lex.c (check_newline): Changes like Jan 12 changes in c-lex.c. ! 2035: ! 2036: * Makefile.in (install-fixincludes): Renamed from `includes'. ! 2037: Move comments so some shells are happier. Dep. on install-headers. ! 2038: ! 2039: * m88kdgux.h (CPP_PREDEFINES): Add __svr4__. Remove __CLASSIFY_TYPE__. ! 2040: Add some assertions. ! 2041: ! 2042: * c-decl.c (init_decl_processing): Don't give arg type for abort, etc. ! 2043: Always declare strlen, etc., so -O doesn't alter the warnings. ! 2044: * expr.c (expand_builtin): Open-code str* or mem* or ffs if -O. ! 2045: ! 2046: * c-decl.c (start_function): Fix backwards test for -W* options. ! 2047: ! 2048: * protoize.c (GUESSPATHLEN): Treat POSIX like USG--and use just 200. ! 2049: ! 2050: * cccp.c (deps_output): Break line iff string is empty. ! 2051: (do_include): Fix up the deps_output calls. ! 2052: ! 2053: * vax.c (print_operand_address): Handle form index + (reg+offset). ! 2054: ! 2055: * m88k.h (TARGET_VERSION): Don't use __DATE__. ! 2056: ! 2057: * gcc.c (default_compilers): Typos in c++-cpp-output case. ! 2058: ! 2059: Thu Jan 16 12:25:51 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 2060: ! 2061: * loop.c (get_condition): In HAVE_cc0 code, generate a zero with ! 2062: CONST0_RTX instead of just using const0_rtx. ! 2063: ! 2064: * cse.c (cse_isnsn): A CALL_INSN clobbers all fixed regs except ! 2065: for ap, fp, and sp. ! 2066: ! 2067: Thu Jan 16 08:03:40 1992 Tom Wood (wood at dg-rtp.dg.com) ! 2068: ! 2069: * c-decl.c (finish_enum): Compute the precision properly if the ! 2070: maximum value is negative. ! 2071: ! 2072: Thu Jan 16 07:40:29 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2073: ! 2074: * reorg.c (try_merge_delay_insns, fill_slots_from_thread): Have ! 2075: update_block put the phantom insn before THREAD. ! 2076: (update_block): Update block status if WHERE, not INSN, is block head. ! 2077: ! 2078: Thu Jan 16 00:28:14 1992 Ron Guilmette (rfg ay ncd.com) ! 2079: ! 2080: * i860.c (output_fp_move_double): Fixed typo. ! 2081: ! 2082: * protoize.c (GUESSPATHLEN, pointer_type, const_pointer_type): ! 2083: moved definitions declarations out of conditional region. ! 2084: (string_list_cons, shortpath, munge_compile_params): Added casts. ! 2085: (find_extern_def): Fixed string literal to avoid trigraph. ! 2086: (find_rightmost_formals_list): Fixed to avoid unreached code warnings. ! 2087: ! 2088: * svr4.h (ASM_OUTPUT_ASCII): Fixed typo. ! 2089: ! 2090: Wed Jan 15 21:58:01 1992 Jeffrey A Law (law at b117b.super.org) ! 2091: ! 2092: * sparc.h (SELECT_RTX_SECTION): When generating PIC, place symbolic ! 2093: operands in the data section. ! 2094: ! 2095: Wed Jan 15 21:45:09 1992 Michael Meissner (meissner at osf.org) ! 2096: ! 2097: * collect2.c (main): Pass any -b<xx>, -B<xx>, -m<xx>, -f<xx>, and ! 2098: -V<xx> options to gcc instead of the linker, in order to allow ! 2099: target switches that affect the size of pointers and search paths to ! 2100: be passed through. ! 2101: (main, choose_temp_base): Use TMPDIR environment variable, and the ! 2102: P_tmpdir macro if defined to locate directory to put temp files. ! 2103: (whole file): Reorganize so that all of the OSF/rose stuff goes at ! 2104: the end of the file, rather than being scattered throughout. ! 2105: (main, scan_prog_file): Invoke scan_prog_file twice, once on each ! 2106: output of ld. ! 2107: (scan_prog_file, read_file, write_file): On the second invocation, ! 2108: rewrite the object file in place, adding a load command to put ! 2109: __main in the list of initializer functions. This allows users ! 2110: to put constructors and destructors into shared libraries. ! 2111: (scan_prog_file): Move debug stuff and error routines to separate ! 2112: functions. ! 2113: ! 2114: Wed Jan 15 17:59:02 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2115: ! 2116: * combine.c (can_combine_p): Don't combine if DEST is still a field ! 2117: assignment after we've tried to expand it. ! 2118: ! 2119: Wed Jan 15 16:01:13 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 2120: ! 2121: * regclass.c (fix_register): Don't match a null register name. ! 2122: * varasm.c (decode_reg_name): Likewise. ! 2123: ! 2124: * i386.h (HI_REGISTER_NAMES): Give the eliminable arg pointer a ! 2125: null name. ! 2126: ! 2127: Wed Jan 15 13:40:50 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2128: ! 2129: * gcc.c (default_compilers): Pass -lang-asm, not -lang-asmc, to cpp. ! 2130: ! 2131: * gcc.c (process_command): Don't dump md_exec_prefix in specs. ! 2132: Use the md_... prefixes only if no -b. ! 2133: ! 2134: Wed Jan 15 13:35:09 1992 Ron Guilmette (rfg at ncd.com) ! 2135: ! 2136: * i386v4.h (RETURN_IN_MEMORY): Definition added. ! 2137: (CPP_PREDEFINES): Added -DX86 (needed for some system headers). ! 2138: (ASM_OUTPUT_DWARF_STRING): Deleted. ! 2139: (ASM_OUTPUT_ASCII): Added specialized definition for i386/svr4. ! 2140: ! 2141: * svr4.h (SVR4): Deleted useless define. ! 2142: (ASM_FILE_END): Added definition. ! 2143: (ESCAPES, STRING_LIMIT, STRING_ASM_OP, ASM_OUTPUT_LIMITED_STRING): ! 2144: (ASM_OUTPUT_ASCII): Generic svr4 definitions added. ! 2145: ! 2146: * m68kv4.h (CPP_PREDEFINES): Don't define SVR4. ! 2147: * sparcv4.h (CPP_PREDEFINES): Don't define SVR4. ! 2148: (ASM_OUTPUT_ASCII): Deleted obsolete definition. ! 2149: ! 2150: * xm-svr4.h (SVR4): Removed useless definition. ! 2151: (POSIX): Added definition for protoize.c. ! 2152: ! 2153: * i860b.h (ASCII_DATA_ASM_OP, ASM_OUTPUT_ASCII): Moved from i860.h. ! 2154: * i860v3.h (ASCII_DATA_ASM_OP): Added OS-specific definition. ! 2155: * i860v4.h (ASCII_DATA_ASM_OP, ASM_OUTPUT_ASCII): ! 2156: Deleted (now in svr4.h). ! 2157: ! 2158: * fixinc.svr4: Replaced all occurances of {1,\} in sed command ! 2159: string with functional equivalents (to avoid bogus results). ! 2160: ! 2161: * c-lex.c (readescape): Pass thru escaped x, a, and v if -traditional. ! 2162: (readescape): Pedantic warning for \?, \(, \{, and \[. ! 2163: ! 2164: * dwarfout.c: Updated copyright. ! 2165: (fundamental_type_code): Abort for all non-fundamental types. ! 2166: (type_is_fundamental): Return 0 for all non-fundamental types. ! 2167: (containing_type_attribute, output_ptr_to_mbr_type_die): New functions. ! 2168: (output_pointer_type_die, output_reference_type_die): Added calls to ! 2169: equate_type_number_to_die_number. ! 2170: (output_type): Handle OFFSET_TYPE correctly. ! 2171: (output_type): Ignore LANG_TYPE (for now). ! 2172: ! 2173: Wed Jan 15 09:30:08 1992 Michael Tiemann (tiemann at cygnus.com) ! 2174: ! 2175: * All cp-* files: Remove calls to `cleanup_after_call'. ! 2176: ! 2177: * cp-method.c (fndecl_as_string): Add a missing space when printing ! 2178: the return type. ! 2179: ! 2180: * cp-typeck.c (build_modify_expr): Treat arrays specially in both ! 2181: INIT_EXPR and NOP_EXPR cases. Also, if we take the address NEWRHS ! 2182: when it's not a SAVE_EXPR, build a new NEWRHS using that address. ! 2183: * cp-tree.c (lvalue_p): Handle WITH_CLEANUP_EXPR case. ! 2184: ! 2185: * cp-decl.c (grokvardecl): Don't get tripped up by static class ! 2186: members of incomplete type. ! 2187: ! 2188: Wed Jan 15 09:12:51 1992 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu) ! 2189: ! 2190: * m68k.c (legitimize_pic_address): Re-enable code which was ! 2191: mistakenly #ifdef'd out. ! 2192: ! 2193: Wed Jan 15 08:12:18 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2194: ! 2195: * reload.c (find_reloads): Check for insn not recognized. ! 2196: ! 2197: * caller-save.c (reg_{save,restore}_code): New variables. ! 2198: (init_caller_save): Set them. ! 2199: (insert_save_restore): Just make SET for pattern of insn and set ! 2200: code from reg_{save,restore}_code. ! 2201: (save_call_clobbered_regs): Put restore insns before JUMP_INSN that ! 2202: ends basic block, but after any other insn that ends the block. ! 2203: ! 2204: * sdbout.c (sdbout_symbol): Treat (mem (reg SP)) the same ! 2205: as (mem (reg FP)). ! 2206: ! 2207: * reorg.c (mark_referenced_resources): Fix typo in last change. ! 2208: (emit_delay_sequences): Update chain correctly when previous or ! 2209: next insn is also a SEQUENCE. ! 2210: ! 2211: Wed Jan 15 08:10:29 1992 Chris Smith (cks at bach.convex.com) ! 2212: ! 2213: * t-convex: Use collect2 to link. ! 2214: * convex.h: remove assembly output defines for old collect2. ! 2215: * convex.h: define vprintf and wait macros for pcc mode boot of ! 2216: collect2. ! 2217: ! 2218: * convex.h (ASM_OUTPUT_DOUBLE_INT): define. ! 2219: ! 2220: * convex.h (DEFAULT_GDB_EXTENSIONS): define as 0 until GDB version 4 ! 2221: port is available. ! 2222: ! 2223: * convex.c (ap_reload_needed): Fix comment. ! 2224: ! 2225: Wed Jan 15 07:08:25 1992 Tom Wood (wood at dg-rtp.dg.com) ! 2226: ! 2227: * m88k.h (CONST_SECTION_FUNCTION): Trivial definition for targets ! 2228: not based on svr[34].h (m88k-luna). ! 2229: ! 2230: * m88k.h (PREDICATE_CODES): Use it. ! 2231: ! 2232: * m88k.md (casesi_enter): Don't use bsr.n with -fno-delayed-branch. ! 2233: * m88k.h (ASM_OUTPUT_CASE_END): The lda goes here when bsr is used. ! 2234: ! 2235: * m88k.c (legitimize_address): When converting a symbol_ref for ! 2236: PIC, add a REG_EQUAL note. ! 2237: ! 2238: Wed Jan 15 06:22:34 1992 Michael Meissner (meissner at osf.org) ! 2239: ! 2240: * mips.h (MIPS_VERSION): Bump Meissner version # to 8. ! 2241: (fcmp_op): Add function declaration. ! 2242: (TARGET_FLOAT64): Support for -mfp64 switch to support the R4000 FR ! 2243: psw bit, which doubles the number of floating point registers. ! 2244: (TARGET_SWITCHES): Likewise. ! 2245: (HARD_REGNO_NREGS): Likewise. ! 2246: (CLASS_FCMP_OP): New bit for classifing floating point compares. ! 2247: (PREDICATE_CODES): Add cmp2_op and fcmp_op support. ! 2248: ! 2249: * mips.c (various): Move extern declarations from inside of ! 2250: functions to outside all functions. ! 2251: (fcmp_op): Match comparison operators for floating point. ! 2252: (mips_move_2words): Add -mfp64 support. ! 2253: (override_options): Likewise. ! 2254: (compute_frame_size): Likewise. ! 2255: (override_options): Set up for fcmp_op. ! 2256: (gen_conditional_branch): Redo floating point compares/branches, so ! 2257: that it is like the rest of the compiler expects -- set cc0 to a ! 2258: compare operator, instead of the exact test required, and put the ! 2259: smarts in the branch operators to generate both the test and the ! 2260: branch. ! 2261: ! 2262: * mips.md (cmpdf_eq, cmpdf_lt, cmpdf_le): Delete. ! 2263: (cmpsf_eq, cmpsf_lt, cmpsf_le): Delete. ! 2264: (cmpdf_internal): New define insn to match FP compares. ! 2265: (cmpsf_internal): Likewise. ! 2266: (branch_fp_true1, branch_fp_true2): Likewise. ! 2267: (branch_fp_false1, branch_fp_false2): Likewise. ! 2268: (branch_fp_true, branch_fp_false): New define_insns to match the ! 2269: branch part of FP compares. ! 2270: ! 2271: Wed Jan 15 01:42:39 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 2272: ! 2273: * unroll.c (copy_loop_body): New parameter copy_notes_from, to ! 2274: correct problem with bad debug info generated for preconditioned ! 2275: loops. ! 2276: (unroll_loops): Fix calls of copy_loop_body to pass new parameter. ! 2277: ! 2278: Wed Jan 15 01:01:39 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2279: ! 2280: * gcc.c (main): Don't use TARGET_VERSION. ! 2281: (endfile_spec, switches_need_spaces): New vars, initted from macros. ! 2282: (set_spec, process_command): Read and write those vars. ! 2283: (do_spec_1, process_command): Use the new vars, not the macros. ! 2284: (SWITCHES_NEED_SPACES): New default macro definition. ! 2285: ! 2286: * Makefile.in (install-common): Install driver as gcc-$(target). ! 2287: ! 2288: * gstddef.h (wchar_t): Check for _T_WCHAR. ! 2289: ! 2290: * stmt.c (pushcase, pushcase_range): Return 5 if jump into stack level. ! 2291: * c-parse.y, objc-parse.y (stmt): Print error msg for that. ! 2292: * cp-parse.y: Likewise. ! 2293: ! 2294: Tue Jan 14 23:25:37 1992 Ron Guilmette (rfg at ncd.com) ! 2295: ! 2296: * dwarfout.c: Include <string.h> if USG *or* POSIX. ! 2297: (TREE_UID): Deleted. ! 2298: (current_funcdef_number): Replacement for TREE_UID. ! 2299: (dwarfout_file_scope_decl): Increment ! 2300: current_funcdef_number after each funnction definition is processed. ! 2301: (pending_sibling_stack_depth): Renamed globally to pending_siblings. ! 2302: (pending_sibling_stack_size): Renamed to pending_siblings_allocated. ! 2303: (PENDING_SIBLING_STACK_INCREMENT): Renamed PENDING_SIBLINGS_INCREMENT. ! 2304: (pending_types_list, pending_types_allocated, pending_types, ! 2305: PENDING_TYPES_INCREMENT, fake_containing_scope): New vars/macros. ! 2306: ! 2307: * dwarfout.c (total_ft_entries): Renamed to ft_entries_allocated. ! 2308: (valid_ft_entries): Renamed to ft_entries. ! 2309: (FT_ENTRIES_INCREMENT): Definition added. ! 2310: (lookup_filename): Expand filename table (when needed) ! 2311: by adding FT_ENTRIES_INCREMENT more table elements rather than ! 2312: doubling current size. ! 2313: (dwarfout_init): Allocate initial filename table. ! 2314: ! 2315: * dwarfout.c (INSN_LABEL_FMT, FUNC_END_LABEL_FMT): Use decimal format. ! 2316: ! 2317: * dwarfout.c (member_attribute): Rewritten for proper C++ support. ! 2318: (output_array_type_die, output_set_type_die, output_entry_point_die, ! 2319: output_enumeration_type_die, output_global_subroutine_die, ! 2320: output_global_variable_die, output_inline_subroutine_die, ! 2321: output_local_variable_die, output_member_die, output_pointer_type_die, ! 2322: output_reference_type_die, output_string_type_die, ! 2323: output_structure_type_die, output_local_subroutine_die, ! 2324: output_subroutine_type_die, output_typedef_die, output_union_type_die): ! 2325: Added calls to member_attribute (for C++). ! 2326: ! 2327: * dwarfout.c (inline_attribute): Test for TREE_INLINE in here. ! 2328: (output_global_subroutine_die, output_local_subroutine_die): ! 2329: Don't test for TREE_INLINE here. ! 2330: ! 2331: * dwarfout.c (output_formal_types): Fixed to handle METHOD_TYPE ! 2332: nodes and to output all related type DIEs last (for SDB). ! 2333: (type_ok_for_scope, output_pending_types_for_scope, pend_type): ! 2334: Functions added to support C++. ! 2335: (output_type, output_decl): Added `containing_scope' ! 2336: parameter to handle C++ nested types. ! 2337: (output_type): Don't output the type unless it's OK ! 2338: for the current DIE chain (i.e. unless it's OK for the current scope). ! 2339: (output_type): Output completed non-global tagged types ! 2340: right away even if not finalizing. ! 2341: (output_type): Use correct method to get head of chain ! 2342: of C++ function members. ! 2343: (output_decl): Skip first item on chain of DECL_ARGUMENTS ! 2344: for a FUNCTION_DECL whose type is a METHOD_TYPE. ! 2345: Suppress output of type DIEs for formal parms of a FUNCTION_DECL ! 2346: until after all TAG_parameter DIEs have been output (for SDB ! 2347: compatability). ! 2348: Output DIEs for any LABEL_DECL nodes attached to outermost BLOCK of ! 2349: a FUNCTION_DECL. ! 2350: Handle LABEL_DECL nodes. ! 2351: ! 2352: * dwarfout.c (dwarfout_file_scope_decl): Un-pend all pending file- ! 2353: scope types after each file-scope declaration is output. ! 2354: (output_decls_for_scope): Un-pend all pending local types ! 2355: at end of each local scope. ! 2356: ! 2357: Tue Jan 14 16:40:39 1992 Tim Moore (moore at fast.cs.utah.edu) ! 2358: ! 2359: * calls.c (expand_call): If ARGS_GROW_DOWNWARD, make slot_offset ! 2360: negative and set highest_outgoing_arg_in_use to needed + 1. ! 2361: (store_one_arg): If ARGS_GROW_DOWNWARD deal with negative slot_offset. ! 2362: ! 2363: Tue Jan 14 20:01:59 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 2364: ! 2365: * sparc.h (TARGET_SUN_ASM, TARGET_GNU): Delete support for ! 2366: obsolete and undocumented flags -msun-asm and -mgnu. ! 2367: * sparc.md: Likewise. ! 2368: ! 2369: Tue Jan 14 19:36:21 1992 Tim Moore (moore at fast.cs.utah.edu) ! 2370: ! 2371: * xm-hp800.h (hpux8): define. ! 2372: * hp800.h (LINK_SPEC): Conditionalize on hpux8. ! 2373: (STACK_BOUNDARY): Define for snake. ! 2374: (CALL_USED_REGISTERS): Shift register is special. ! 2375: (HARD_REGNO_MODE_OK): Don't allow modes smaller that SImode in fp ! 2376: registers. ! 2377: (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Eliminate ! 2378: GENERAL_OR_FP_REGS, GENERAL_OR_SNAKE_FP_REGS classes. ! 2379: (FUNCTION_ARG): Handle snake fp arguments. ! 2380: (ASM_DOUBLE_ARG_DESCRIPTORS): define. ! 2381: (ASM_DECLARE_FUNCTION_NAME): Use above macro to get around hpux ! 2382: 8.0 change. ! 2383: * hp800.md (movsi, movdi): Add ! and * to constraints of anonymous ! 2384: define-insns to discourage SImode values in fp registers. Don't ! 2385: modify the stack pointer when moving between general and fp registers. ! 2386: (mulsi): Take out pattern that matches a degenerate multiplication ! 2387: by 1; it doesn't seem to be needed and causes problems. ! 2388: (sar_sub): Change so that const_int isn't the first argument of ! 2389: the comparison. ! 2390: * hp800.c (output_fp_move_double): As above, don't modify the ! 2391: stack pointer when moving between general and fp registers. ! 2392: (output_block_move): Don't make one CONST_INT rtx and store ! 2393: different integer values in it; cons up a "new" one for each value. ! 2394: (output_floatsisf2, output_floatsidf2): Fix typos. ! 2395: (output_arg_descriptor): Conditionalize for HPUX 8.0. ! 2396: ! 2397: Tue Jan 14 14:38:09 1992 Michael Tiemann (tiemann at cygnus.com) ! 2398: ! 2399: * cp-typeck.c (build_unary_op): Call readonly_warning_or_error if ! 2400: ARG is TREE_READONLY (in addition to the type being TYPE_READONLY). ! 2401: ! 2402: * cp-init.c (maybe_adjust_addr_for_delete): If the adjustment needs ! 2403: to be done, zero out the storage that held part of the cookie. ! 2404: ! 2405: Tue Jan 14 13:12:48 1991 Ron Guilmette (rfg at ncd.com) ! 2406: ! 2407: * c-decl.c (poplevel): Set TYPE_CONTEXT for each tagged type ! 2408: except inside function declaration parm list. ! 2409: (grokdeclarator): Set TYPE_CONTEXT for tagged type in decl parm list. ! 2410: (pushtag): Don't set TYPE_CONTEXT for tagged types here. ! 2411: ! 2412: Tue Jan 14 06:46:37 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2413: ! 2414: * global-alloc.c (global_alloc): Count multi-word pseudos correctly ! 2415: in local_reg_n_refs. ! 2416: (find_reg): Evict pseudos that overlap the register we take, not just ! 2417: that start with that register. ! 2418: ! 2419: * a29k.c (a29k_debug_reg_map): New variable. ! 2420: (output_prologue): Initialize it. ! 2421: * a29k.h (DBX_REGISTER_NUMBER): Use that map. ! 2422: ! 2423: * ultrix.h (WCHAR_TYPE): Make definition be a known type. ! 2424: ! 2425: * final.c (final_scan_insn): Call DBR_OUTPUT_SEQEND before we ! 2426: clear `final_sequence', so it can call dbr_sequence_length. ! 2427: ! 2428: * reload1.c (reload): Clear insn_needs once we know we have ! 2429: reloads, instead of always. ! 2430: Don't skip processing of reloads for CALL_INSNs when caller-save ! 2431: needs a spill register. ! 2432: ! 2433: * flow.c (mark_used_regs, case RETURN): Insert missing test for global ! 2434: registers. ! 2435: ! 2436: * reorg.c (mark_referenced_resources): Mark asm's as volatile ! 2437: when appropriate. ! 2438: ! 2439: * integrate.h (struct inline_remap): New field const_equiv_map_size. ! 2440: * integrate.c (expand_inline_function): Set it; make larger map. ! 2441: (subst_constants): Don't reference out-of-range entry in equiv map. ! 2442: * unroll.c (unroll_loop): Set const_equiv_map_size. ! 2443: ! 2444: Mon Jan 13 19:12:18 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 2445: ! 2446: * unroll.c (find_splittable_givs): When completely unrolling loop, ! 2447: use biv initial value stored in splittable_regs instead of ! 2448: bl->initial_value, since the later may not be safe. ! 2449: ! 2450: * sched.c (schedule_block): When calculating whether a register ! 2451: crosses a call, must do this after registers are killed and before ! 2452: new registers are made live. ! 2453: ! 2454: * x-rs6000: Define INSTALL as /usr/ucb/install -c. /etc/install ! 2455: (the SYS V version) does not handle -c option as Makefile.in ! 2456: intends it. ! 2457: ! 2458: Mon Jan 13 11:21:24 1992 Michael Meissner (meissner at osf.org) ! 2459: ! 2460: * mips-tfile (parse_stabs_common): Don't relocate N_LBRAC and ! 2461: N_RBRAC stabs for compatibility with other stabs implementations. ! 2462: ! 2463: Mon Jan 13 07:41:32 1992 Michael Tiemann (tiemann at cygnus.com) ! 2464: ! 2465: * cp-decl.c (grokdeclarator): Don't set TREE_PRIVATE here. ! 2466: TREE_PRIVATE is only for visibility. ! 2467: (start_function): Don't test TREE_PRIVATE here. #pragma ! 2468: interface/implementation should properly handle the case of static ! 2469: (i.e. non-public) defns in implementation section now. ! 2470: ! 2471: Mon Jan 13 07:31:38 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2472: ! 2473: * rs6000.c (output_ascii): The AIX assembler silently truncates ! 2474: strings longer than 666 characters, so break them up well before that. ! 2475: ! 2476: Mon Jan 13 00:26:47 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2477: ! 2478: * c-decl.c (pushdecl): Warn about shadowing at top level any symbol ! 2479: that was declared among the function parms. But don't warn for ! 2480: parms in a nested function. ! 2481: * tree.c (chain_member): New function. ! 2482: ! 2483: * sparc.c (output_return): Handle structure value in all the cases. ! 2484: ! 2485: * toplev.c (main): -gstabs+ means use stabs with gdb extensions. ! 2486: ! 2487: * fixincludes: Insert #undef NULL before #define NULL. ! 2488: ! 2489: * gvarargs.h (va_list): Check some macros to avoid redefinition. ! 2490: ! 2491: * tree.h (DECL_PACKED): New macro. ! 2492: * c-common.c (decl_attribute): Handle `packed'. ! 2493: * stor-layout.c (layout_record): Handle DECL_PACKED. ! 2494: * c-parse.y (attrib): Accept `packed' with no arg. ! 2495: ! 2496: * c-decl.c (shadow_tag): For useless keyword, just warn. ! 2497: (duplicate_decls): Don't preserve volatile bit from old decl ! 2498: if that is just a default declaration for abort, exit, etc. ! 2499: ! 2500: * cccp.c (do_assert, do_unassert, check_assertion): ! 2501: No pedantic warnings in system header files. ! 2502: ! 2503: * ultrix.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Defined. ! 2504: (WCHAR_TYPE_SIZE): Defined. ! 2505: ! 2506: * i386.h (HI_REGISTER_NAMES): Add a name for dummy reg 16. ! 2507: ! 2508: * dbxout.c (flag_minimal_debug): Make it static. ! 2509: ! 2510: Sun Jan 12 18:10:46 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2511: ! 2512: * c-lex.c (check_newline): Check #line for `3' meaning system header. ! 2513: * cccp.c (output_line_command): Output `3' if system header. ! 2514: * c-tree.h (system_header_p): Declare it. ! 2515: (ridpointers): Declaration deleted. ! 2516: ! 2517: * dwarfout.c (fundemental_type_code): Treat OFFSET_TYPE like integer. ! 2518: (type_is_fundamental, output_type): Likewise. ! 2519: ! 2520: * optabs.c (expand_float): Abort if FROM has VOIDmode. ! 2521: * expr.c (expand_expr, FLOAT_EXPR case): Don't pass a VOIDmode. ! 2522: ! 2523: Sun Jan 12 16:11:40 1992 Michael Meissner (meissner at osf.org) ! 2524: ! 2525: * mips.h (ASM_OUTPUT_SPACE): If assembler is gas, don't use the ! 2526: .space directive, since the table PREDICATE_CODES generates tickles ! 2527: a bug. ! 2528: ! 2529: Sun Jan 12 15:59:41 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2530: ! 2531: * expmed.c: Include real.h. ! 2532: (make_tree): Properly handle CONST_INT and handle many more rtl codes. ! 2533: (expand_mult_add): Don't do folding here; just call make_tree and fold. ! 2534: * Makefile.in (expmed.o): Includes real.h. ! 2535: ! 2536: Sun Jan 12 12:26:20 1992 Michael Tiemann (tiemann at cygnus.com) ! 2537: ! 2538: * cp-decl.c (store_parm_decls): Finish change started 11 Jan 1992. ! 2539: ! 2540: * cp-decl.c (pushtag): Don't set CLASSTYPE_TAGS after ! 2541: CURRENT_CLASS_TYPE has been defined. ! 2542: ! 2543: * cp-lex.c (check_newline): Set INTERFACE_UNKNOWN if we see a ! 2544: #pragma implementation or if it's the toplevel file. ! 2545: ! 2546: Sat Jan 11 22:04:34 1992 Michael Meissner (meissner at osf.org) ! 2547: ! 2548: * mips.md (fix_truncsfsi2_opt): Delete, since the optimizer will ! 2549: strip the clobbers when substituting a register for a cs'ed value, ! 2550: unlike GCC 1. ! 2551: (fix_truncdfsi2_opt): Likewise. ! 2552: (long long shifts): Fix various typos. ! 2553: ! 2554: Sat Jan 11 15:26:24 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2555: ! 2556: * expr.h (GEN_FCN): Alternate definition if FUNCTION_CONVERSION_BUG. ! 2557: * xm-romp.h (FUNCTION_CONVERSION_BUG): Define it. ! 2558: ! 2559: * i386.md (cmpstrsi recognizers): Change back to repz. ! 2560: ! 2561: Sat Jan 11 11:18:32 1992 Michael Tiemann (tiemann at cygnus.com) ! 2562: ! 2563: * cp-decl.c (store_parm_decls): Don't put non-PARM_DECL nodes in the ! 2564: list that will become DECL_ARGUMENTS. ! 2565: ! 2566: * cp-decl2.c (grokfield): Convert () initialization to = ! 2567: initialization in FIELD context. ! 2568: * cp-decl.c (parmlist_is_exprlist): Now non-static. ! 2569: ! 2570: * cp-decl.c (grokdeclarator): Don't let static class members be ! 2571: declared `static' at top-level. ! 2572: ! 2573: * cp-decl.c (pushdecl_class_level): Don't use DECL_ASSEMBLER_NAME. ! 2574: ! 2575: * cp-decl.c (grokdeclarator): Don't let language linkage interfere ! 2576: with declarator grokking--the two are independent. ! 2577: ! 2578: * cp-call.c (compute_conversion_costs): Look for constructor or type ! 2579: conversions regardless of whether we have CONTRAVARIANCE_HARSHNESS ! 2580: or not. Also, `#if 0' some dead code. ! 2581: ! 2582: * cp-method.c (report_type_mismatch): Fix bugs in formatting error ! 2583: messages. ! 2584: ! 2585: * cp-decl.c (grokvardecl): Verify that when static class members are ! 2586: declared at toplevel, the types match their initial declaration. ! 2587: ! 2588: Sat Jan 11 08:41:24 1992 Fred Fish (fnf at fishpond) ! 2589: ! 2590: * config/m68kv4.h (NO_DOLLAR_IN_LABEL): Undefine so that the ! 2591: default for m68k/SVR4 systems is to use '$', which is more ! 2592: widely supported. ! 2593: ! 2594: Sat Jan 11 10:56:10 1992 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu) ! 2595: ! 2596: * Finish PIC implementation on the 68k ! 2597: * output.h (flag_pic): Declare here so that insn-*.c can see it. ! 2598: ! 2599: * reload1.c (reload): When compiling PIC ignore REG_EQUIV notes ! 2600: which are CONSTANT_P, but are not LEGITIMATE_PIC_OPERAND_P. ! 2601: ! 2602: * m68k.md (call, call_value): Make these into define_expands. If ! 2603: compiling PIC code, then load the address of the function into a ! 2604: register so that we make indirect calls. ! 2605: (Non-PIC call, call_value): New define_insns. These are ! 2606: standard call insns. ! 2607: (PIC call, call_value): New define_insns which output PIC calls. ! 2608: (movsi): Make this into a define_expand. Legitimize PIC addresses ! 2609: if necessary. Old movsi code is now an unnamed define_insn pattern. ! 2610: ! 2611: * m68k.h (GO_IF_LEGITIMATE_ADDRESS case INDIRECTABLE_1_ADDRESS_P): ! 2612: Use LEGITIMATE_PIC_OPERAND_P to reject SYMBOL_REFS and LABEL_REFS ! 2613: without PIC relocation when compiling PIC code. ! 2614: ! 2615: * m68k.c (legitimize_pic_address): New function. Given an address ! 2616: return that address as "legitimized" PIC code. ! 2617: (print_operand_address): When generating PIC code, handle PIC ! 2618: relocated label_refs just like a PIC relocated symbol_ref. ! 2619: (print_operand_address): If -fpic then add ":w" to displacement in ! 2620: PIC relocated references. ! 2621: (print_operand_address): If -fPIC then add ":l" to displacement in ! 2622: PIC relocated references. ! 2623: ! 2624: Fri Jan 10 18:03:08 1992 Ken Raeburn ([email protected]) ! 2625: ! 2626: * cp-init.c (build_new): Don't allocate header for arrays if no ! 2627: destructor is needed. Also fix broken calculation of array size. ! 2628: (build_delete): Don't skip array header if no destructor is needed. ! 2629: ! 2630: Fri Jan 10 14:54:19 1992 Michael Tiemann (tiemann at cygnus.com) ! 2631: ! 2632: * cp-cvt.c cp-decl2.c cp-expr.c cp-gc.c cp-init.c cp-lex.c cp-parse.y ! 2633: cp-pt.c cp-search.c cp-tree.c: Clean up problems found with -Wreturn ! 2634: (from rfg). ! 2635: ! 2636: * cp-typeck.c cp-tree.c cp-cvt.c cp-lex.c cp-call.c cp-class.c: ! 2637: Add (unsigned) casts to all places where native SVr4 compilers ! 2638: expect to see unsigned values. ! 2639: ! 2640: Fri Jan 10 08:34:36 1992 Fred Fish (fnf at sunfish) ! 2641: ! 2642: * m68ksgs.h (REGISTER_NAMES): Provide separate versions for ! 2643: SUPPORT_SUN_FPA defined and not defined. ! 2644: ! 2645: Fri Jan 10 22:36:41 1992 (Eric Youngdale at [email protected]) ! 2646: ! 2647: * Improve I/O performance of gcc on VMS. ! 2648: * cccp.c (VMS_open, VMS_fopen, VMS_freopen): New functions. ! 2649: (open, fopen, freopen): Define as macros on VMS. ! 2650: * toplev.c (VMS_fopen): New function. ! 2651: (fopen): Define as macro on VMS. ! 2652: ! 2653: Fri Jan 10 22:00:50 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2654: ! 2655: * genrecog.c (merge_trees): If two trees both have actions, but ! 2656: one adds clobbers and one doesn't, ignore the one that does. ! 2657: ! 2658: * genemit.c (gen_split): Say that we are giving the definition number ! 2659: in our error message. ! 2660: * genrecog.c (fatal): Likewise. ! 2661: * genoutput.c (scan_operands): Likewise. ! 2662: ! 2663: * caller-save.c: Include expr.h (for gen_move_insn). ! 2664: (regno_save_elim): Deleted. ! 2665: (init_save_areas): Don't initialize it. ! 2666: (setup_save_areas): Don't set it. ! 2667: (save_call_clobbered_regs, restore_referenced_regs): Accept mode, ! 2668: not spill register. ! 2669: (insert_save_restore): Don't do our own register elimination and ! 2670: reloading; instead set the insns we make to the desired mode. ! 2671: * reload1.c (struct elim_table): New field MAX_OFFSET. ! 2672: (reload): Always call init_save_areas. ! 2673: Initialize max_offset each pass. ! 2674: At each CALL_INSN, create a need for a spill register that will ! 2675: be used by caller-save. ! 2676: Pass mode for insns to save_call_clobbered_regs instead of a ! 2677: spill reg number. ! 2678: Call reload_as_needed if we will have to reload the caller-save ! 2679: insns, even if nothing else needs reload (unlikely). ! 2680: (eliminate_regs_in_insn): Record maximum offset value. ! 2681: * Makefile.in (caller-save.o): Includes expr.h. ! 2682: ! 2683: * reload.c (find_reloads): CALL_INSNs can't have output reloads. ! 2684: * reload1.c (emit_reload_insns): Put any reloads for a CALL_INSN ! 2685: in front of any immediately-preceeding USE insns. ! 2686: ! 2687: * flow.c (life_analysis): Mark all global regs as live at the end of ! 2688: the function. ! 2689: (propagate_block): Each call makes all global registers live. ! 2690: (mark_used_regs): A RETURN may use the stack pointer and uses all ! 2691: global regs. ! 2692: * cse.c (cse_insn): A CALL_INSN clobbers any global regs. ! 2693: * reorg.c (mark_referenced_resources): Calls used global regs. ! 2694: (mark_set_resources): CALL_INSNs clobber global regs. ! 2695: ! 2696: Fri Jan 10 17:24:06 1992 Michael Meissner (meissner at osf.org) ! 2697: ! 2698: * collect2.c (whole file): Major rewrite to merge in collect3 ! 2699: functionality which uses GCC to build up the constructor and ! 2700: destructor tables, instead of using the assembler. Also improve ! 2701: the support for cross compilers to find the tools. The old assembly ! 2702: language support has been removed. ! 2703: ! 2704: * mips-tfile.c (CODE_MASK): Move to mips.h to use with mips-tdump ! 2705: also. ! 2706: (MIPS_IS_STAB): Likewise. ! 2707: (MIPS_MARK_STAB): Likewise. ! 2708: (MIPS_UNMARK_STAB): Likewise. ! 2709: ! 2710: * mips-tdump.c (various): Changes by Per Bothner to print ! 2711: encapsulated stabs, and to shorten the output. ! 2712: ! 2713: * mips.h (MIPS_VERSION): Set Meissner version # to 7. ! 2714: (cmp2_op): Make cmp2_op a real function instead of just a ! 2715: macro to cmp_op. ! 2716: (OPTIMIZATION_OPTIONS): -O now sets flag_caller_saves and ! 2717: flag_schedule_insns_after_reload. ! 2718: (CC1_SPEC): Fix typo preventing -mgpopt from being set if ! 2719: optimization. ! 2720: (PREDICATE_CODES): Define. ! 2721: (USE_COLLECT, EXTENDED_COFF, NO_UNDERSCORES): Delete, not needed in ! 2722: GCC 2.00. ! 2723: (ASM_INT_OP, ASM_SHORT_OP, ASM_CHAR_OP): Likewise. ! 2724: (CODE_MASK): Move from mips-tfile. ! 2725: (MIPS_IS_STAB): Likewise. ! 2726: (MIPS_MARK_STAB): Likewise. ! 2727: (MIPS_UNMARK_STAB): Likewise. ! 2728: ! 2729: * mips.c (cmp2_op): Make this a real function, instead of a macro ! 2730: pointing to cmp_op. ! 2731: (volatile_buffer): New static variable to support .set volatile. ! 2732: (mips_move_1word): Do .set volatile/.set novolatile around volatile ! 2733: memory references. ! 2734: (mips_move_2words): Likewise. ! 2735: ! 2736: * mips.md (sne define_split): Fix so that it generates a gtu 0. ! 2737: (all set cc define_splits): Remove reload_completed tests. ! 2738: (all set cc define_insns): Don't allow 0 as operand 1. ! 2739: ! 2740: Fri Jan 10 16:40:45 1992 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu) ! 2741: ! 2742: * m68k.md (addsi3, addhi3, subsi3, stack adjustment peepholes): ! 2743: Perform small (8 < N <= 16) constant additions and subractions to ! 2744: address registers with two addqw (or subqw) instructions. ! 2745: ! 2746: Fri Jan 10 06:54:22 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2747: ! 2748: * calls.c (expand_call): Check for _longjmp as well as longjmp; ! 2749: clean up code a bit and merge with check for setjmp-like names. ! 2750: Emit a BARRIER if this is a call to longjmp in addition to ! 2751: volatile calls. ! 2752: ! 2753: Fri Jan 10 02:25:54 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2754: ! 2755: * c-typeck.c (digest_init): Properly return error_mark_node ! 2756: after invalid element in array initializer. ! 2757: ! 2758: * gcc.c (pexecute): Use `fork' in error message if don't have vfork. ! 2759: ! 2760: * Makefile.in: Add .NOEXPORT. ! 2761: ! 2762: Thu Jan 9 13:36:25 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2763: ! 2764: * expr.c (expand_expr): Handle OFFSET_REF. ! 2765: ! 2766: * cse.c (simplify_binary_operation): Never use associative law for ! 2767: floating arithmetic. ! 2768: ! 2769: * fixinc.svr4: Renamed INCLUDES to INPUT. ! 2770: ! 2771: * i386.md (cmpstrsi recognizers): Output repe, not repz. ! 2772: ! 2773: Thu Jan 9 18:02:34 1992 Dennis P. Glatting (dennisg at tti) ! 2774: ! 2775: * tree.h (CONSTRUCTOR_NAME_FORMAT): Changed name format. Old format ! 2776: was recognized as destructors not constructors. ! 2777: * objc-actions.c (build_module_descriptor): ! 2778: Null-terminate global_object_name. ! 2779: ! 2780: Thu Jan 9 10:35:58 1992 Tom Wood (wood at dg-rtp.dg.com) ! 2781: ! 2782: * sdbout.c (sdbout_syms): Don't attempt to output a LABEL_DECL. ! 2783: ! 2784: Thu Jan 9 08:17:44 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2785: ! 2786: * fold-const.c (merge_component_references): Treat constants as ! 2787: unsigned, so we don't get extra sign bits where we don't want them. ! 2788: ! 2789: Wed Jan 8 19:12:59 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 2790: ! 2791: * reload.c (combine_reloads): Don't use a fixed_reg as an reload ! 2792: reg, even if it dies. ! 2793: ! 2794: * loop.c (record_giv): Fix typo extracting insn_uid. ! 2795: ! 2796: Wed Jan 8 15:41:10 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2797: ! 2798: * cpp.texi, gcc.texi: Files renamed. ! 2799: * invoke.texi, extend.texi, md.texi, rtl.texi, tm.texi: New subfiles. ! 2800: * Makefile.in: Corresponding changes. ! 2801: ! 2802: * fixincludes: Renamed INCLUDES to INPUT. ! 2803: ! 2804: * m68k.c (notice_update_cc, print_operand): Fix typos. ! 2805: ! 2806: * cp-decl.c (expand_static_init): Save and restore current obstacks. ! 2807: ! 2808: * c-decl.c (poplevel): Put labels in BLOCK_VARS of top-level block. ! 2809: ! 2810: Wed Jan 8 12:53:48 1992 Michael Tiemann (tiemann at cygnus.com) ! 2811: ! 2812: * cp-decl.c (expand_static_init): Switch to PERMANENT_OBSTACK during ! 2813: expansion. ! 2814: ! 2815: Wed Jan 8 07:45:58 1992 Tom Wood (wood at dg-rtp.dg.com) ! 2816: ! 2817: * m88kv3.h (STARTFILE_SPEC): SVR3 has *crt0.o files. ! 2818: ! 2819: * configure (m88k-*sysv{3,4}): The files are named m88kv{3,4}. ! 2820: ! 2821: Wed Jan 8 06:01:44 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2822: ! 2823: * romp.md (mftbi): Allow memory in the contraints since there can't ! 2824: be an input reload on an insn that uses cc0. ! 2825: ! 2826: * cse.c (FIXED_BASE_PLUS_P): Include virtual_incoming_args_rtx. ! 2827: (NONZERO_BASE_PLUS_P): New macro. ! 2828: (find_comparison, simplify_relational_operation_args): Use ! 2829: NONZERO_BASE_PLUS_P instead of FIXED_BASE_PLUS_P when appropriate. ! 2830: ! 2831: * m68k.md (peepholes): Don't change around stack adjusts and pushes ! 2832: when we are pushing something whose address involves sp. ! 2833: ! 2834: * cse.c (simplify_unary_operation): Check for operations on ! 2835: integers by looking at mode of OP, not output mode, to avoid ! 2836: confusion with FIX operations whose result is an integer. ! 2837: ! 2838: * rtl.h ([df]const[012]_rtx): Deleted. ! 2839: (const_tiny_rtx): New declaration. ! 2840: (CONST0_RTX): Use const_tiny_rtx instead of {d,f,}const0_rtx. ! 2841: (CONST1_RTX, CONST2_RTX): New macros. ! 2842: * emit-rtl.c ([df]const[012]_rtx): Deleted. ! 2843: (const_tiny_rtx): New definition. ! 2844: (init_emit_once): Initialize const_tiny_rtx instead of old vars. ! 2845: * cse.c (simpify_binary_operation): Use CONST[01]_RTX. ! 2846: * varasm.c (immed_real_const_1): Likewise. ! 2847: * combine.c (subst): Likewise. ! 2848: * reg-stack.c (record_reg_life, stack_reg_life_analysis): Likewise. ! 2849: * convex.md, i860.md, m88k.c, spur.md, vax.h, ns32k.md: Likewise. ! 2850: ! 2851: Tue Jan 7 22:11:17 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2852: ! 2853: * x-i386isc (ENQUIRE_LDFLAGS): New defn: add -posix. ! 2854: ! 2855: * protoize.c (_POSIX_SOURCE): Define only if POSIX. ! 2856: ! 2857: * m68k.h (FPA_REG_P): Always define this somehow. ! 2858: ! 2859: * c-decl.c (c_decode_option): Handle -Wchar-subscripts. ! 2860: * c-typeck.c (build_array_ref): Do the real work. ! 2861: ! 2862: Tue Jan 7 21:15:54 1992 Michael Meissner (meissner at osf.org) ! 2863: ! 2864: * mips.md (branch_zero_false): Use correct mode (CC_0) on ! 2865: match_operator. ! 2866: ! 2867: Tue Jan 7 14:24:45 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 2868: ! 2869: * reg-stack.c (replace_reg): get mode class from a mode, not a reg. ! 2870: ! 2871: Tue Jan 7 14:16:18 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2872: ! 2873: * reg-stack.c (emit_pop_insn): Fix typo FPmode_reg. ! 2874: ! 2875: * protoize.c (longjmp): Don't declare it. ! 2876: ! 2877: Tue Jan 7 09:47:47 1992 Michael Tiemann (tiemann at cygnus.com) ! 2878: ! 2879: * cp-lex.c (real_yylex): From John Hassey, allocate space for the ! 2880: terminating null on wide character literals. ! 2881: ! 2882: Tue Jan 7 07:41:42 1992 Tom Wood (wood at dg-rtp.dg.com) ! 2883: ! 2884: * m88kv3.h (LIB_SPEC): Add -lg. ! 2885: ! 2886: Tue Jan 7 06:29:30 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2887: ! 2888: * stor-layout.c (layout_type): Don't over-align a structure ! 2889: when strict alignment is not required. ! 2890: ! 2891: * rs6000.h (CALL_USED_REGISTERS): r31 should not be marked call-used. ! 2892: ! 2893: * rs6000.md (add-and-compare): Fix duplicate operand number. ! 2894: ! 2895: * a29k.md (inbyte, inhw): Correct duplicate operand number. ! 2896: ! 2897: * fold-const.c (fold, case MULT_EXPR): Simplify (a * (1 << b)). ! 2898: * combine.c (subst, case MULT): Likewise. ! 2899: (simplify_shift_const, shift cases): Similarly, associate A << B << C. ! 2900: ! 2901: * genoutput.c (seen): New array. ! 2902: (scan_operands): Give error if an operand number was specified ! 2903: twice. Include pattern number in error message. ! 2904: (gen_insn, gen_expand, gen_split, gen_peephole): Initialize `seen'. ! 2905: (gen_split, gen_peephole): Add initializations for arrays that ! 2906: are copied. ! 2907: ! 2908: * optabs.c (expand_unop): Complete recent change; one TARGET was ! 2909: not changed to TEMP. ! 2910: ! 2911: * expmed.c (expand_mult): Always try multiplication by value and ! 2912: by negated value. Fix bug where we don't include the cost of the negate ! 2913: when seeing which way is better. Write proper value in REG_EQUAL ! 2914: note. ! 2915: ! 2916: * optabs.c (extendtab): Replacement for {zero,sign}_extend_codes. ! 2917: (can_extend_p): Use new table and return type is not enum insn_code. ! 2918: (gen_extend_insn): Deleted; not used. ! 2919: (init_extends): Make like init_flottab: use new table and initialize ! 2920: unused entries to CODE_FOR_nothing, not zero. ! 2921: * expr.c (convert_move): can_extend_p fails if it returns ! 2922: CODE_FOR_nothing, not zero. ! 2923: * expr.h (can_extend_p): Add definition. ! 2924: ! 2925: * expr.h: Add "extern" to function definitions. ! 2926: ! 2927: Mon Jan 6 10:12:34 1992 Leonard Norrgard (vinsci at nic.funet.fi) ! 2928: ! 2929: * m68k.c (SUPPORT_SUN_FPA): Conditionalize references to the ! 2930: optional Sun 3 Floating Point Accelerator with SUPPORT_SUN_FPA. ! 2931: * m68k.h (SUPPORT_SUN_FPA): Likewise. ! 2932: ! 2933: * m68k.c (notice_update_cc): New function. ! 2934: * m68k.h (NOTICE_UPDATE_CC): Just call notice_update_cc. ! 2935: ! 2936: * sun3.h (SUPPORT_SUN_FPA): New define. ! 2937: ! 2938: Mon Jan 6 16:42:43 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 2939: ! 2940: * varasm.c (assemble_global, assemble_label): New functions. ! 2941: * objc-actions.c (finish_objc): Call them to define and globalize. ! 2942: Use output_constant to reference a class. ! 2943: ! 2944: * Makefile.in (install-limits-h): New target. ! 2945: (install-headers): Depend on install-limits-h. ! 2946: (USER_H): Deleted LIMITS_H. ! 2947: (INSTALLED_H): Added limits.h. ! 2948: (mostlyclean): Remove tmp-limits.h. ! 2949: * limitx.h: New file. ! 2950: ! 2951: * x-isc: File deleted. ! 2952: ! 2953: * objc-actions.c (build_module_descriptor): Init global_object_name. ! 2954: ! 2955: * Makefile.in (collect2): Depend on version.o. ! 2956: ! 2957: * protoize.c (PATH_MAX): Definition deleted. Just test it ! 2958: to see if param.h should be included. ! 2959: ! 2960: * cse.c (simplify_binary_operation, case MULT): Make a copy ! 2961: of the operand when converting 2.0 * X to X+X. ! 2962: ! 2963: * reload.c (find_reloads): Refine when we set force_reload and ! 2964: better document the cases. ! 2965: ! 2966: Mon Jan 6 08:22:19 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 2967: ! 2968: * i386.c (output_float_compare): Output only single-pop compare ! 2969: if both operands are the FP top of stack reg. ! 2970: When comparing FP top of stack with itself, print `%st(0)' as the ! 2971: reg name, not `%st'. ! 2972: ! 2973: Mon Jan 6 12:01:51 1992 Tiggr (rcpieter at mole.gnu.ai.mit.edu) ! 2974: ! 2975: * arm.md (mulsi3): Fixed contraints. ! 2976: ! 2977: Mon Jan 6 08:21:46 1992 Tom Wood (wood at dg-rtp.dg.com) ! 2978: ! 2979: * m88k-move.sh: Renamed from m88k-movstr.sh. Rename the generated ! 2980: files move*.asm from movstr*.asm to be SVR3-legit. ! 2981: * t-m88k, t-m88kluna, t-m88kv4: Use the new names. ! 2982: ! 2983: * c-aux-info.c, dbxout.c: Include errno.h as in protoize.c. ! 2984: ! 2985: * Makefile.in (BISONFLAGS): Don't use -v since *.output is big. ! 2986: (cp-parse.c): Do use -d to create cp-parse.h. ! 2987: (cp-parse.o): Don't define PARSE_OUTPUT. ! 2988: * x-mips, x-m88kdgux (BISONFLAGS): No -v. ! 2989: ! 2990: Mon Jan 6 07:54:55 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 2991: ! 2992: * genpeep.c (match_rtx): Loop over vectors (e.g., PARALLEL) in the ! 2993: natural order so we see an operand before we see a MATCH_DUP referring ! 2994: to it. ! 2995: ! 2996: * genrecog.c (write_tree_1): Simplify code that writes braces and ! 2997: avoid writing them unnecessarily. ! 2998: Don't write dead code when last test was unconditional. ! 2999: ! 3000: * optabs.c (expand_binop, expand_twoval_binop, expand_unop): ! 3001: Standardize loop for wider mode. ! 3002: (emit_cmp_insn, emit_float_lib_cmp): Likewise. ! 3003: (expand_binop): Correct how extensions are done: use convert_to_mode, ! 3004: don't use SUBREG for non-integer operations, and remove test ! 3005: involving HOST_BITS_PER_INT. ! 3006: (expand_unop): Similar changes; make code closer to expand_binop. ! 3007: Handle failure of recursive call when expanding. Fix incorrect use ! 3008: of TEMP when widening. Use SUBREG for NEG and NOT. ! 3009: ! 3010: * reload.c (find_reloads_address_part): New function. ! 3011: (find_reloads_address): Call it instead of push_reload when we are ! 3012: reloading a PLUS or a constant. ! 3013: ! 3014: Sun Jan 5 18:34:15 1992 (Eric Youngdale at [email protected]) ! 3015: ! 3016: * make-cc1.com: Change file names from cp-tab.* to cp-parse.*. ! 3017: ! 3018: Sun Jan 5 18:06:11 1992 Michael Tiemann (tiemann at cygnus.com) ! 3019: ! 3020: * cp-decl.c (grokdeclarator): Correctly grok REFERENCE_TYPE ! 3021: parameters when TYPE_REFERENCE_TO is automagically converted. ! 3022: ! 3023: Sun Jan 5 05:19:19 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3024: ! 3025: * tree.h (CONSTRUCTOR_NAME_FORMAT): New macro. ! 3026: * objc-actions.c (build_module_descriptor): Make constructor name ! 3027: from name of file or of a global that it defines. ! 3028: Return constructor name. ! 3029: (finish_objc): Use name returned as name to call. ! 3030: ! 3031: * protoize.c (GUESSPATHLEN): New macro. ! 3032: (main): Use that for initial buffer size for getcwd. ! 3033: * dbxout.c (getwd, getcwd, GUESSPATHLEN): Define as in protoize.c. ! 3034: (dbxout_init): Call getcwd in loop, as in protoize.c. ! 3035: * c-aux-info.c (getwd, getcwd, GUESSPATHLEN): Define as in protoize.c. ! 3036: (gen_aux_info_record): Call getcwd in loop. ! 3037: * i386v.h, i386vgas.h (MAXPATHLEN): Don't define. ! 3038: ! 3039: * svr3.h (LINK_SPEC): Don't pass -K. ! 3040: ! 3041: * reload.c (find_reloads): Do record in non_reloaded_operands if no -O. ! 3042: ! 3043: * m68k.c (output_function_prologue, output_function_epilogue): ! 3044: Add braces and adjust conditionals to fix balance and indentation. ! 3045: ! 3046: * objc-actions.c (build_module_descriptor): Mark __objc_file_init used. ! 3047: ! 3048: Sat Jan 4 13:27:40 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 3049: ! 3050: * protoize.c: unprotoize getcwd & fork declarations. ! 3051: (edit_fn_declaration): use "VOLATILE", not "volatile". ! 3052: ! 3053: Sat Jan 4 20:19:41 1992 Michael Meissner (meissner at osf.org) ! 3054: ! 3055: * mips.h (set_volatile): Add new global variable reference. ! 3056: ! 3057: * mips.c (set_volatile): New global variable to keep track of the ! 3058: number of .set volatile's done. At present, no code actually turns ! 3059: this on. ! 3060: (mips_move_1word): Use %. instead of putting const0_rtx into an ! 3061: unused operator and using %z to get to $0, which is hardwired to 0. ! 3062: (mips_move_2words): Likewise. ! 3063: (override_options): Allow %., %{, and %} punctuation. ! 3064: (print_operands): Add support for %. to get the current name of ! 3065: register 0, %{ to turn on .set volatile, and %} to turn on .set ! 3066: novolatile. ! 3067: (function_epilogue): Give an error if .set volatile was left on in ! 3068: the epilogue. ! 3069: (mips_asm_file_start): Don't emit .set nobopt unless we are filling ! 3070: branch delay slots. ! 3071: ! 3072: * mips.md (set reg on comparison define_splits): Don't allow the ! 3073: scheduler to split any set of a comparision insns, to work around a ! 3074: bug in sched.c. ! 3075: ! 3076: Sat Jan 4 23:01:41 1992 Jeffrey A Law (law at planet.super.org) ! 3077: ! 3078: * m68k.c (output_function_prolog): Decrement (instead of ! 3079: increment) num_saved_regs when a frame pointer is needed. ! 3080: (the link/unlk will restore the frame pointer register) ! 3081: ! 3082: Sat Jan 4 11:11:24 1992 Dennis P. Glatting (dennisg at tti) ! 3083: ! 3084: * next.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef before defining. ! 3085: ! 3086: Sat Jan 4 07:40:25 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3087: ! 3088: * expr.c (convert_to_mode): Correctly zero-extend a constant into ! 3089: a mode whose size is twice the host int size. ! 3090: ! 3091: * machmode.h (enum mode_class): Add MAX_MODE_CLASS. ! 3092: (GET_CLASS_NARROWEST_MODE): New macro. ! 3093: (byte_mode, word_mode): Add declarations. ! 3094: * caller-save.c (choose_hard_reg_mode): Use GET_CLASS_NARROWEST_MODE. ! 3095: * combine.c (make_extraction): Don't use explicit QImode and SImode. ! 3096: * cse.c (simplify_unary_operation): Integer CONST_DOUBLEs have ! 3097: VOIDmode, not DImode. ! 3098: (simplify_binary_operation): Remove explicit DFmode reference. ! 3099: * expmed.c (init_expmed): Don't make our own copy of word_mode. ! 3100: (store_bit_field, extract_bit_field): Remove explicit ! 3101: QImode reference; don't recompute word_mode. ! 3102: (store_fixed_bit_field, {store,extract}_split_bit_field): Don't ! 3103: recompute word_mode. ! 3104: (emit_store_flag): Likewise. ! 3105: (extract_fixed_bit_field): Replace explicit mode references with a ! 3106: loop on modes; don't recompute word_mode. ! 3107: * expr.c (convert_mode, move_block_{to,from}_reg, use_regs): Don't ! 3108: recompute word_mode. ! 3109: (emit_push_insn, do_jump_by_parts*): Likewise. ! 3110: (push_block): Remove explicit QImode reference. ! 3111: (get_inner_reference): Use mode_for_size. ! 3112: * emit-rtl.c (restore_reg_data): Make unused regs word_mode. ! 3113: (operand_subword): Don't recompute word_mode. ! 3114: * fold-const.c (optimize_bit_field_compare): Likewise. ! 3115: (merge_component_references): Likewise. ! 3116: * flow.c (mark_set_1, mark_used_regs): Likewise. ! 3117: * loop.c (combine_movables): Use GET_CLASS_NARROWEST_MODE. ! 3118: * optabs.c (expand_binop): Replace SImode references in multi-word ! 3119: multiply with the mode used for each subpart. ! 3120: (expand_binop, expand_unop): Don't recompute word_mode. ! 3121: * reg-stack.c (reg_to_stack): Use GET_CLASS_NARROWEST_MODE. ! 3122: * reload.c (find_equiv_reg): Check for MODE_FLOAT, not SFmode/ DFmode. ! 3123: * rtl.c (class_narrowest_mode, byte_mode, word_mode): Define. ! 3124: (init_rtl): Initialize them. ! 3125: * sched.c (attach_deaths): Don't recompute word_mode. ! 3126: * stor-layout.c (mode_for_size): Use GET_CLASS_NARROWEST_MODE. ! 3127: (get_best_mode): Likewise. ! 3128: Don't recompute word_mode. ! 3129: * unroll.c (unroll_loop): Replace default of SImode with word_mode. ! 3130: ! 3131: * calls.c (calls_alloca): Don't recurse on BLOCK_SUPERCONTEXT. ! 3132: ! 3133: Sat Jan 4 03:42:09 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3134: ! 3135: * protoize.c (pointer_type): Use char * if non-ANSI. ! 3136: (const_pointer_type): Likewise. ! 3137: (malloc, realloc): Declare to return pointer_type. ! 3138: (setjmp): Don't declare, to avoid trouble with macro defns. ! 3139: (const): If not ANSI, define as empty macro. ! 3140: ! 3141: Sat Jan 4 00:59:53 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 3142: ! 3143: * sparc.c (legitimize_pic_address): When converting a symbol_ref, ! 3144: use an extra temp reg when -fPIC, and add a REG_EQUAL note to the ! 3145: insn referencing the global offset table. This allows loop to ! 3146: optimize these PIC sequences. ! 3147: ! 3148: Fri Jan 3 20:29:57 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 3149: ! 3150: * i386.md (return): Always output return insns. ! 3151: ! 3152: * i386.h (FUNCTION_PROLOGUE): If the last nonnote insn in a function ! 3153: is a BARRIER, don't output a function epilogue. ! 3154: ! 3155: Fri Jan 3 12:43:09 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3156: ! 3157: * t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips (ALL): ! 3158: Use libgcc.a, not libgcc. ! 3159: ! 3160: * protoize.c (STRINGIFY): Provide non-ANSI alternative definition. ! 3161: ! 3162: * c-decl.c (get_parm_info): Keep non-parms in the parm list. ! 3163: ! 3164: * stmt.c (cost_table): Now short. ! 3165: (estimate_case_costs): Handle that. ! 3166: ! 3167: * Makefile.in (float.h, *protoize.1, gcc.xtar.Z): ! 3168: Make temp files, then rename. ! 3169: (clean): Delete those temp files. ! 3170: ! 3171: * Makefile.in (c-parse.c): Don't use -d, since cp-parse.output is big. ! 3172: ! 3173: Fri Jan 3 10:32:31 1992 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) ! 3174: ! 3175: * Makefile.in (cp-parse.c): Add missing -o flag. ! 3176: ! 3177: Fri Jan 3 08:21:04 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3178: ! 3179: * reg-stack.c: Complete last change (renaming DFmode_reg). ! 3180: ! 3181: * expmed.c (init_expmed): Pass dummy pointer to number of clobbers to ! 3182: recog so it can let us see patterns that need added clobbers. ! 3183: ! 3184: Fri Jan 3 07:54:32 1992 Tom Wood (wood at dg-rtp.dg.com) ! 3185: ! 3186: * c-decl.c (implicitly_declare): Record whether this is an implicit ! 3187: declaration before setting IDENTIFIER_IMPLICIT_DECL. ! 3188: ! 3189: Thu Jan 2 21:17:12 1992 Michael Meissner (meissner at osf.org) ! 3190: ! 3191: * mips.c (compute_frame_size): Don't count FP registers twice. ! 3192: ! 3193: Thu Jan 2 14:59:55 1992 Michael Tiemann (tiemann at hal) ! 3194: ! 3195: * cp-lex.h: Renamed from cp-parse.h. Now cp-parse.h is the file ! 3196: created by bison from cp-parse.y. ! 3197: * Makefile.in: reflect this naming change. ! 3198: ! 3199: Thu Jan 2 12:37:32 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3200: ! 3201: * objc-actions.c (build_obj_method_call): Typo in NEXT case. ! 3202: ! 3203: * next.h (HAVE_ATEXIT): Defined. ! 3204: ! 3205: * c-decl.c (duplicate_decls): ! 3206: No error if override decl that has DECL_BUILT_IN_NONANSI. ! 3207: ! 3208: * Makefile.in (c-parse.c): Don't use -o, since cp-parse.output is big. ! 3209: ! 3210: * Makefile.in (protoize, PROTOIZE): Delee these 2 new targets; ! 3211: `protoize' was redundant. ! 3212: ! 3213: * c-typeck.c (build_function_call): If the fn is volatile, ! 3214: make a pointer-to-volatile-function type pointer. ! 3215: * calls.c (expand_call): Handle calls to such pointers as volatile. ! 3216: ! 3217: * expmed.c (init_expmed): Pass all 3 args to `recog'. ! 3218: ! 3219: * varasm.c (output_constant): For REAL_TYPE, mode_for_size arg is bits. ! 3220: ! 3221: * sparc.md (storing SF into mem at symb addr): Fix typos. ! 3222: ! 3223: * protoize.c (my_access, my_stat, my_execvp, my_link, my_unlink): ! 3224: (my_open, my_chmod): Macros that run access, stat,... with casts. ! 3225: Renamed from former POSIX-only macros and made unconditional. ! 3226: All calls to these functions also renamed. ! 3227: ! 3228: * m68k.h (LEGITIMATE_PIC_OPERAND_P): Undo change below, ! 3229: thus making the behavior really change to accept all CONST_DOUBLE. ! 3230: ! 3231: * libgcc1.c, libgcc2.c: Renamed from gnulib1.c, gnulib2.c. ! 3232: * gcc.c (link_command_spec): Link with libgcc.a. ! 3233: * Makefile.in (libgcc): Rename targets and variables from gnulib. ! 3234: * *.h, t-*, x-*: Rename refs to those symbols and files. ! 3235: * expr.c (LIBGCC_NEEDS_DOUBLE): Renamed from GNULIB_... ! 3236: ! 3237: * m68k.c (symbolic_operand): Reject all CONST_DOUBLE. ! 3238: * m68k.h (SELECT_RTX_SECTION): Use LEGITIMATE_PIC_OPERAND_P. ! 3239: (LEGITIMATE_PIC_OPERAND_P): Reject the CONST_DOUBLEs ! 3240: that symbolic_operand used to accept. ! 3241: ! 3242: Thu Jan 2 21:06:13 1992 James Van Artsdalen (james at bigtex.cactus.org) ! 3243: ! 3244: * protoize.c (is_id_char,free_def_dec,check_aux_info): ! 3245: Don't declare them `inline'. ! 3246: (save_def_or_dec,munge_compile_params,find_extern_def,check_source, ! 3247: scan_for_missed_items): Use alloca instead of variable length arrays. ! 3248: ! 3249: * Makefile.in (protoize,unprotoize): Get $(LIBS) for alloca. ! 3250: ! 3251: Thu Jan 2 21:40:52 1992 Jeffrey A Law (law at b115.super.org) ! 3252: ! 3253: * sparc.h (OPTIMIZATION_OPTIONS): Enable caller-saves for -O2 ! 3254: and higher optimization levels. ! 3255: ! 3256: Thu Jan 2 06:46:56 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3257: ! 3258: * final.c (final_scan_insn): Compare debug_info_level with entries in ! 3259: its enum, not with integers. ! 3260: ! 3261: * reg-stack.c ({SF,DF}mode_reg): Deleted. ! 3262: (FP_mode_reg): New array, indexed by register and by mode. ! 3263: (reg_to_stack): Replace initialization of old vars with initialization ! 3264: of FP_mode_reg. ! 3265: (replace_reg): Use new array. ! 3266: ! 3267: * romp.c, romp.h, romp.md: Rename symbolic_operand to ! 3268: romp_symbolic_operand. ! 3269: ! 3270: * emit-rtl.c (init_emit_once): Create virtual registers before the ! 3271: structure value regsisters, since the latter might use the former. ! 3272: ! 3273: * varasm.c (output_constant): Fix typo: missing arg to expand_expr. ! 3274: ! 3275: * vax.md (call_pop, call_pop_value): Use correct register number for ! 3276: stack pointer. Add new patterns for case of zero args. ! 3277: ! 3278: Thu Jan 2 08:12:59 1992 Fred Fish (fnf at sunfish) ! 3279: ! 3280: * x-amix: Minor changes to some comments. ! 3281: * x-amix (CCLIBFLAGS, GNULIB2_CFLAGS, XCFLAGS): Remove definitions. ! 3282: * x-amix (manext): Add definition. ! 3283: ! 3284: Thu Jan 2 11:14:28 1991 Ken Raeburn ([email protected]) ! 3285: ! 3286: * fold-const.c (fold, case PLUS_EXPR): If association permits ! 3287: reduction to var+0, convert var to the desired type before returning ! 3288: it. ! 3289: ! 3290: Wed Jan 1 10:37:50 1992 Michael Tiemann (tiemann at cygnus.com) ! 3291: ! 3292: * expr.c (convert_move): When GET_MODE_BITSIZE (TO_MODE) > ! 3293: BITS_PER_WORD, check that it's also > GET_MODE_BITSIZE (FROM_MODE). ! 3294: ! 3295: * expr.c (expand_expr): In CONSTRUCTOR case, preserve ! 3296: MEM_IN_STRUCT_P when creating a new target when TARGET and EXP might ! 3297: not be independent. ! 3298: ! 3299: Wed Jan 1 18:32:03 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3300: ! 3301: * c-parse.y (parmlist_1): Accept `PARMS; PARMS'. ! 3302: (parmlist_or_identifiers_1): Likewise. Also use plain parmlist_2. ! 3303: Delete the ([names] decls) syntax. ! 3304: (defn_parms, defn_parmlist_2): Deleted. ! 3305: * c-decl.c (get_parm_info): Put parm decls into original order. ! 3306: Don't nreverse the original decls list. ! 3307: (pushdecl, duplicate_decls): Avoid error for forward parm decl. ! 3308: (clear_parm_order): New function. ! 3309: (push_parm_decl): Record original order of parms. ! 3310: ! 3311: * c-decl.c (struct binding_level): New slot subblocks_tag_transparent. ! 3312: (pushlevel): Use that, not ->parm_flag. ! 3313: (start_function): Set that slot. ! 3314: ! 3315: * config.sub: Always distinguish between amix and sysv4. ! 3316: Convert commodore to cbm and digital to dec. ! 3317: ! 3318: * m68k.md (stack adjust then push SI): New peephole. ! 3319: ! 3320: * m68k.h, fx80.h (WCHAR_TYPE): Use precisely "long int". ! 3321: * sun3.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Undef before defining. ! 3322: ! 3323: * cexp.y (yylex): Use LONG_TYPE_SIZE, not INT_TYPE_SIZE. ! 3324: (LONG_TYPE_SIZE): Add default definition. ! 3325: ! 3326: * objc-actions.c: Declare index and rindex. ! 3327: (build_module_descriptor): Simplify last change. ! 3328: Use a fixed name for the initialization function. ! 3329: (init_objc): Don't do constructor here. ! 3330: (finish_objc): Do it here, with proper name if not NEXT_OBJC_RUNTIME. ! 3331: ! 3332: * protoize.c: Unprotoized. ! 3333: (edit_file): Improve message in -n case. ! 3334: ! 3335: * Makefile.in (LANGUAGES): Add proto. ! 3336: (C, C++, OBJC, OBJECTIVE-C): Aliases for l.c. targets. ! 3337: (PROTOIZE, protoize, PROTO): Aliases for proto. ! 3338: (rest.encap): Delete dep `proto'. ! 3339: ! 3340: Wed Jan 1 15:07:41 1992 Michael Meissner (meissner at osf.org) ! 3341: ! 3342: * mips.md (extend*): Use gen_lowpart to make the SUBREG, rather than ! 3343: doing it wrong by hand. If not optimizing, make sign extends from ! 3344: memory not force the operand into a register first and do two ! 3345: shifts -- combine already does this when optimizing. ! 3346: (copyright): Add 1992 to list of years the file was modified. ! 3347: ! 3348: Wed Jan 1 06:10:01 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3349: ! 3350: * reload1.c (reload): When forcing an illegitimate constant into ! 3351: memory, use mode of SET_DEST in case constant is VOIDmode. ! 3352: ! 3353: * stmt.c (expand_end_case): Pass index type to emit_case_nodes instead ! 3354: of unsigned flag. ! 3355: (node_has_{low,high}_bound): Accept INDEX_TYPE as an argument and see ! 3356: if the a node value is at the limit of values of the type. ! 3357: (node_is_bounded): Accept INDEX_TYPE and pass to above functions; ! 3358: always call them. ! 3359: (emit_case_nodes): Accept INDEX_TYPE instead of UNSIGNEDP as arg; ! 3360: pass index type to recursive calls and to calls to bound checking ! 3361: functions. ! 3362: ! 3363: * varasm.c (assemble_integer_zero): Deleted. ! 3364: (assemble_integer, assemble_real): New functions. ! 3365: (output_constant_pool, output_constant): Use new functions. ! 3366: * final.c (end_final, profile_function): Likewise. ! 3367: ! 3368: * calls.c (calls_alloca): Don't interpret operands that are RTL as if ! 3369: they were trees; check args of nested CALL_EXPR for alloca calls. ! 3370: ! 3371: Wed Jan 1 16:51:30 1992 Fred Fish (fnf at fishpond) ! 3372: ! 3373: * Makefile.in (manext): Include the '.' character. ! 3374: (mandir): Don't use manext. ! 3375: (install-man, uninstall): Change uses of manext. ! 3376: ! 3377: Wed Jan 1 21:31:01 1992 Ron Guilmette (rfg at ncd.com) ! 3378: ! 3379: * i860.md (cmpeqsi, cmpltsi, cmpgtsi): Made control flow more obvious. ! 3380: (cmpnesi, cmplesi, cmpgesi): New patterns. ! 3381: (cmpgeusi, cmpleusi): Fixed bug in compares against zero. ! 3382: ! 3383: Tue Dec 31 11:16:37 EST 1991 Dennis P. Glatting (...!uunet!tti!dennisg) ! 3384: ! 3385: * objc-actions.c (build_module_descriptor): Emit a constructor ! 3386: function. Constructor function calls a ObjC run-time routine passing ! 3387: a pointer to the module's module structure. ! 3388: (init_objc): Call different constructor function if not Next. ! 3389: (build_selector_translation_table): Don't give a selector global scope. ! 3390: Changed in construction of decl_specs. ! 3391: ! 3392: Tue Dec 31 18:06:23 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3393: ! 3394: * genrecog.c (add_to_sequence): Clear PREDS for "const_int_operand". ! 3395: (same_modes): Properly check when we should ignore a mode test. ! 3396: ! 3397: * reload1.c (emit_reload_insns): Only change spill_reg_store for ! 3398: output reloads. ! 3399: Clear spill_reg_store when we did an input reload to a spill register. ! 3400: (delete_output_reload): Use single_set. ! 3401: (count_occurrences): Don't count use which is SET_DEST. ! 3402: ! 3403: Tue Dec 31 16:51:37 1991 Michael Meissner (meissner at osf.org) ! 3404: ! 3405: * mips.h (MIPS_VERSION): Change Meissner version # to 6. ! 3406: (ASM_FINAL_SPEC): Don't pass -d and friends to mips-tfile. ! 3407: (CONSTANT_ALIGNMENT): Align constructors on word boundaries. ! 3408: ! 3409: * mips.md (extend*): Replace sign extension insns with a ! 3410: define_expand that converts the expansion into the appropriate ! 3411: shifts. Add insns that do sign extension from memory, which the ! 3412: optimizer will utilitize if the thing being sign extended really ! 3413: comes from memory. This allows the shifts to compete for CSE, at a ! 3414: potential cost of generating worse code if reload spills a HI or QI ! 3415: register to the stack. ! 3416: (sne define_split): Instead of using a constant 0 as the second ! 3417: argument to the slti instruction, use a hard coded regisiter 0. ! 3418: ! 3419: * mips-sysv.h (MD_STARTFILE_PREFIX): Define to point into the ! 3420: directory where the MIPS compilers live. ! 3421: (LIB_SPEC): Add crtn.o after all libs. ! 3422: (STARTFILE_SPEC): Use crt1.o, not crtn.o. ! 3423: (MACHINE_TYPE): Correct typo, this is System V, not BSD. ! 3424: Changes are from Ron Guilmette (rfg at ncd.com). ! 3425: ! 3426: * configure (mips-*-sysv): Correctly use mips-sysv.h instead of ! 3427: mips.h. Change is from Ron Guilmette. ! 3428: ! 3429: Tue Dec 31 16:51:37 1991 Michael Stump (mrs at charlie.secs.csun.edu) ! 3430: ! 3431: * t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips: Remove ! 3432: collect2 from EXTRA_PASSES, as collect2 does not need installing as ! 3433: collect2. Also, change the symlink back to a hard link. ! 3434: ! 3435: * Makefile.in: Add collect2 to STAGESTUFF as it is something that ! 3436: needs removing or moving to stagen, but it should not be installed. ! 3437: ! 3438: Tue Dec 31 15:47:50 1991 Michael Tiemann (tiemann at hal) ! 3439: ! 3440: * combine.c (simplify_comparison): Swap evaluation of OP0 and OP1 so ! 3441: the lattern can use the result of the former. ! 3442: ! 3443: * conditions.h: In comments, refer to `tm.h', since `tm-' is no ! 3444: longer the form used for these files. ! 3445: ! 3446: Tue Dec 31 11:45:26 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3447: ! 3448: * cp-lex.c (lineno, finput): Decls deleted. ! 3449: ! 3450: * global-alloc.c (find_reg): New arg RETRYING. ! 3451: (retry_global_alloc, global_alloc): Pass that arg. ! 3452: ! 3453: * Makefile.in (*protoize, *protoize.o): Compile with CC. ! 3454: * protoize.c: Include config.h, not tconfig.h. ! 3455: Always define _POSIX_SOURCE. ! 3456: ! 3457: * convex*.h (CPP_SPEC): !ansi controls _POSIX_SOURCE, _CONVEX_SOURCE. ! 3458: * conv1*.h, conv2*.h: Files deleted. ! 3459: ! 3460: * m68k.h, fx80.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Defined. ! 3461: ! 3462: Tue Dec 31 08:08:32 1991 Tom Wood (wood at dg-rtp.dg.com) ! 3463: ! 3464: * cexp.y (yylex): Record the parsed characters when dealing with ! 3465: multibyte characters. ! 3466: ! 3467: Mon Dec 30 17:13:30 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 3468: ! 3469: * i386.md (mulhi3,mulsi3): If a multiply by constant 128, use the ! 3470: two operand multiply instead of three operand form: the AT&T ! 3471: assemblers generate incorrect object code for the latter. ! 3472: ! 3473: Mon Dec 30 17:39:36 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3474: ! 3475: * jump.c (jump_optimize): Complete last change: use expand_and result. ! 3476: ! 3477: * reload1.c (emit_reload_insns): Check if reload_in needs a secondary ! 3478: reload if we have an in-out reload, since it might have been the ! 3479: output the needed the secondary reload. ! 3480: ! 3481: * cse.c (simplify_unary_operation): Mode of integer CONST_DOUBLE is ! 3482: VOIDmode, not DImode. ! 3483: ! 3484: * fold-const.c (fold, case COND_EXPR): Make an ABS_EXPR when the ! 3485: comparison is LE_EXPR or LT_EXPR. ! 3486: ! 3487: * calls.c (calls_alloca): New function. ! 3488: (expand_call): Preexpand any argument that contains a call to alloca ! 3489: if this call will use the stack. ! 3490: ! 3491: * rs6000.h (DATA_SECTION_OP): Make result a string to avoid compilation ! 3492: error. ! 3493: ! 3494: * rs6000.h, sparc.h, sun2o4.h, sun3.h (WCHAR_TYPE_SIZE): Fix ! 3495: incorrect definition. ! 3496: ! 3497: Mon Dec 30 16:10:46 1991 Michael Meissner (meissner at osf.org) ! 3498: ! 3499: * mips.h (CC1_SPEC): Complete change deleting -mnogpopt and -mngpopt ! 3500: in favor of -mno-gpopt. ! 3501: ! 3502: Mon Dec 30 11:32:05 1991 Michael Tiemann (tiemann at cygnus.com) ! 3503: ! 3504: * cp-class.c (build_vtable): If we're doing #pragma interface ! 3505: and the interface is known, set TREE_PUBLIC, regardless of ! 3506: TREE_EXTERNAL settings. ! 3507: ! 3508: * cp-decl.c (make_temporary_for_reference): Don't call ! 3509: `convert_pointer_to', since the type may not be an aggr type. ! 3510: ! 3511: * cp-decl.c (finish_decl): Now takes 4th arg NEED_POP. ! 3512: All callers changed. ! 3513: ! 3514: * cp-class.c (permanent_obstack): Declare it. ! 3515: (add_method): push and pop obstacks before changing out of/into ! 3516: temporary allocation. ! 3517: * cp-decl.c (implicitly_declare): Add ! 3518: push_obstacks_nochange/pop_obstacks around changes out of/into ! 3519: temporary allocation. ! 3520: (shadow_tag,xref_tag,start_decl,finish_decl): Ditto. ! 3521: * cp-decl2.c (grokfield,get_temp_name): Ditto. ! 3522: * cp-except.c ({ansi_}lookup_exception_object): Ditto. ! 3523: * cp-lex.c (get_time_identifier): Ditto. ! 3524: * cp-tree.c (build_exception_variant): Ditto. ! 3525: * cp-typeck.c (mark_addressable): Ditto. ! 3526: ! 3527: * cp-decl.c (grokdeclarator,maybe_build_cleanup): Delete calls to ! 3528: preserve allocation status. Now handled by callers. ! 3529: ! 3530: Mon Dec 30 01:44:21 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3531: ! 3532: * c-lex.c (yyprint): Function moved here. ! 3533: * c-parse.y, objc-parse.y: Moved from here. ! 3534: ! 3535: * Makefile.in (c-parse.c, objc-parse.c, cp-tab.c, cexp.c): ! 3536: cd to srcdir to run Bison. ! 3537: ! 3538: * c-lex.c (check_newline): Get rid of #ident pedantic warning. ! 3539: * cccp.c (do_ident): Put it here. ! 3540: Don't warn if in system header file. ! 3541: ! 3542: * cccp.c (main, finclude): Warn if file ends in backslash-newline. ! 3543: ! 3544: * next.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): New definitions. ! 3545: ! 3546: * global-alloc.c (find_reg): Kick out local regs if that helps. ! 3547: (global_alloc): Set up vars local_regs_live_length, local_regs_n_refs. ! 3548: ! 3549: * protoize.c (do_processing): Fix setting syscalls_absolute_filename. ! 3550: ! 3551: * configure (m68k-*-sysv4*, m68k-*-amix*): New alternatives. ! 3552: * config.sub (*-commodore): Default OS to Amigados. ! 3553: (-amix*): Allow this as input. ! 3554: (amiga): New abbreviation. ! 3555: ! 3556: * sparc.c (output_function_epilogue): Skip unimp differently in leaf. ! 3557: Use jmp insn rather than separate add. ! 3558: (output_return): Skip unimp here too. ! 3559: * sparc.md (return "peepholes"). Handle skipping the unimp. ! 3560: ! 3561: * fold-const.c (fold, optimizing 2*EXPR): Use save_expr. ! 3562: ! 3563: * varasm.c (make_decl_rtl): Permit initializer for local explicit reg. ! 3564: ! 3565: * c-decl.c (kept_level_p): Changed to also return TRUE for binding ! 3566: levels which contain only tagged type declarations. ! 3567: ! 3568: * calls.c (expand_call): Cleaned up prev change. ! 3569: ! 3570: Mon Dec 30 11:29:47 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) ! 3571: ! 3572: * cp-lex.c (real_yylex): Call REAL_VALUE_TRUNCATE with 2 args. ! 3573: ! 3574: * calls.c (expand_call): Handle allocating ARGBLOCK in the case ! 3575: that ACCUMULATE_OUTGOING_ARGS is not defined. ! 3576: ! 3577: Mon Dec 30 10:27:11 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 3578: ! 3579: * protoize.c: fix typo in <sys/wait.h> inclusion. ! 3580: ! 3581: Mon Dec 30 06:16:16 1991 Leonard Norrgard (vinsci at nic.funet.fi) ! 3582: ! 3583: * c-decl.c (grokdeclarator): Changed erroneus error message. ! 3584: ! 3585: Sun Dec 29 16:16:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3586: ! 3587: * toplev.c (main): Last -On option wins. ! 3588: * Makefile.in (ENQUIRE_CFLAGS): Add -O0. ! 3589: ! 3590: * Makefile.in (cp-tab.c): Change "expect" message. ! 3591: ! 3592: * final.c (leaf_renumber_regs): Renumber just the PATTERN. ! 3593: ! 3594: Sun Dec 29 14:20:15 1991 Per Bothner (bothner at cygnus.com) ! 3595: ! 3596: * dbxout.c (dbxout_type): Tiemann's DECL_IGNORED_P optimization (Nov ! 3597: 20) was a little too drastic: If it succeded, no type info was ! 3598: emitted at all, which made for syntactically invalid stabs. ! 3599: Instead, just set 'full=0', ! 3600: * dbxout.c (dbxout_symbol): Re-write code for TYPE_DECL to be a ! 3601: little cleaner. It *seems* to work ... ! 3602: ! 3603: Sun Dec 29 07:04:22 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3604: ! 3605: * expr.c (convert_move): Add truncates from DImode to smaller modes. ! 3606: (move_by_pieces, move_by_pieces_ninsns): Rework to remove explicit ! 3607: references to integer modes. ! 3608: Never need to align greater than BIGGEST_ALIGNMENT. ! 3609: ! 3610: * optabs.c (init_extends, init_fixtab, init_floattab, init_optabs): ! 3611: Add TImode operations. ! 3612: ! 3613: * reload.c (find_reloads): Prefer alternatives that reload SCRATCH ! 3614: instead of something else. ! 3615: ! 3616: * rs6000.md (movti): Adjust constraints and alternative order so ! 3617: we actually get to use the stsi insn. ! 3618: ! 3619: * rs6000.h (REG_ALLOC_ORDER): Put r9 in front of r11 so we don't try to ! 3620: put a TImode value in r11 as often. ! 3621: ! 3622: * caller-save.c (setup_save_areas): New parameter pchanged; set when ! 3623: memory is allocated. ! 3624: * reload1.c (reload): Pass pointer to something_changed to ! 3625: setup_save_areas. ! 3626: ! 3627: * loop.c (scan_loop): Don't suppress moving insns that can trap just ! 3628: because we have passed a call inside a libcall/retval block. ! 3629: ! 3630: * jump.c (get_label_before): Don't separate a CALL_INSN from any USE ! 3631: insns immediately preceeding it. ! 3632: (get_label_after): Likewise, for following CLOBBERs. ! 3633: ! 3634: * cse.c (fold_rtx, case '<'): When seeing if we have seen this ! 3635: comparison before, use a constant equivalence. ! 3636: Add test for things like "(a | 1) != 0". ! 3637: (fold_rtx, case '2'): Move code to handle associative operations to ! 3638: here; add support for MINUS, SMAX, SMIN, UMAX, and UMIN. ! 3639: (record_jump_equiv): See if OP1 is equivalent to a constant. ! 3640: ! 3641: * jump.c (jump_optimize): Don't pass a SUBREG as a target to ! 3642: expand_and. ! 3643: ! 3644: * combine.c (subst): Never associate floating-point, even if not IEEE. ! 3645: Associate MAX and MIN operations. ! 3646: ! 3647: * output.h (output_asm_insn, asm_fprintf): Add "extern" to decls. ! 3648: (alter_subreg): Add declaration. ! 3649: * rs6000.md (movsf, movdf): Don't declare alter_subreg here. ! 3650: (trunc_call_rtl): Don't declare trunc_used; use rs6000_trunc_used. ! 3651: * rs6000.c (rs6000_trunc_used): New name of trunc_used. ! 3652: * rs6000.h (rs6000_trunc_used): Add declaration. ! 3653: ! 3654: Sat Dec 28 18:14:21 1991 Michael Tiemann (tiemann at cygnus.com) ! 3655: ! 3656: * cp-method.c (build_overload_name): Don't call OB_FINISH unless END ! 3657: is nonzero. ! 3658: ! 3659: Sat Dec 28 17:46:05 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 3660: ! 3661: * gcc.c (default_compilers): Handle -ansi in the C++ entries ! 3662: exactly the same way as the C entries do. ! 3663: ! 3664: * rtl.c (add_dependence): Cast enums to int before doing an ! 3665: ordered comparison, since some compilers can't do this. ! 3666: ! 3667: * sparc.c (pic_address_needs_scratch): New function. Returns ! 3668: true if the pic address X needs a scratch register when loaded. ! 3669: (legitimize_pic_address): Clean up. New argument SCRATCH, which ! 3670: is a scratch register for those loads that need it. ! 3671: (emit_move_sequence): New argument SCRATCH_REG, which is a scratch ! 3672: register for those loads that need it. When loading a pic label, ! 3673: set %o7 instead of clobbering it so its value can be used later. ! 3674: (compute_frame_size): Leaf functions need to allocate space for ! 3675: register window in frame if size greater than 0. ! 3676: (print_operand): Delete obsolete %^ which added %o7 to addresses. ! 3677: All uses of %o7 are now explicit. ! 3678: * sparc.h: Fix callers of legitimize_pic_address. ! 3679: (REG_CLASS_FROM_LETTER): Add 'r' case. ! 3680: (SECONDARY_INPUT_RELOAD_CLASS): New macro, to force reload to ! 3681: allocate a scratch register for certain pic address reloads. ! 3682: (flag_pic): Define as extern so that it will be defined for ! 3683: insn-emit.c. ! 3684: * sparc.md: Fix all callers of legitimize_pic_address and ! 3685: emit_move_sequence. ! 3686: (reload_insi): New pattern. Used to force reload to allocate a ! 3687: scratch register for those pic address loads that need one. ! 3688: (reload_insi+2): When loading pic label, set %o7 instead of ! 3689: clobbering it. ! 3690: (movdf, movsf): Reject matches that would require reloading via ! 3691: use of a condition. ! 3692: (tablejump): Now a define_expand, so can generate different ! 3693: pattern when pic. ! 3694: (pic_tablejump): Explicitly mention in rtl that %o7 is used, ! 3695: instead of using %^. ! 3696: ! 3697: * m88k.h, sparc.h: Delete references to non-existent ! 3698: BLOCK_PROFILER_USED_REG_P macro. ! 3699: ! 3700: Sat Dec 28 14:31:36 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3701: ! 3702: * c-lex.c (check_newline): Set ignore_escape_flag for reading filename. ! 3703: (yylex): Handle ignore_escape_flag in string constant. ! 3704: ! 3705: * gnulib2.c (__do_global_dtors): Count elements properly. ! 3706: ! 3707: * m68k.md (tsthi): Don't allow address register. ! 3708: ! 3709: Sat Dec 28 11:49:06 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 3710: ! 3711: * final.c (final): Initialize elements of line_note_exists. ! 3712: ! 3713: * protoize.c: Don't include <sys/wait.h> on USG unless SVR4. ! 3714: ! 3715: Sat Dec 28 11:09:36 1991 Fred Fish (fnf at fishpond) ! 3716: ! 3717: * Makefile.in (includes): Pre-remove the tmp dir; fix INSTALLED_H ref. ! 3718: ! 3719: Sat Dec 28 06:31:16 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3720: ! 3721: * sparc.md (movstrsi): Fix typo testing for more than 32 subunits. ! 3722: ! 3723: * genrecog.c: Major rework. ! 3724: We now check to see if pairs of comparison nodes can have anything ! 3725: that they both match. If not, they can be reordered. An efficient ! 3726: ordering is established that groups all nodes with identical rtl ! 3727: codes inside groups with identical modes. This allows us to generate ! 3728: a comparison tree that is a list of nested switch statements. ! 3729: Also, genrecog.c is now indented properly so that debugging is eased. ! 3730: (add_to_sequence): Enforce mode on the first arg of COMPARE, comparison ! 3731: operation, SIGN_EXTEND, and ZERO_EXTEND. ! 3732: ! 3733: * a29k.h, romp.h, rs6000.h (PREDICATE_CODES): Add definition. ! 3734: ! 3735: Fri Dec 27 17:31:48 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 3736: ! 3737: * a29k.h, decrose.h, encrose.h, m88kdgux.h (WCHAR_TYPE_SIZE): ! 3738: Add definition. ! 3739: * rs6000.h, sparc.h, sun2o4.h, sun3.h, svr3.h, svr4.h: Likewise. ! 3740: ! 3741: * expmed.c (expand_mult): For negative values, try multiplication by ! 3742: the original value as well as by negated value. ! 3743: ! 3744: Fri Dec 27 20:54:59 1991 Fred Fish (fnf at fishpond) ! 3745: ! 3746: * m68kv4.h: Include m68ksgs.h rather than m68k.h. ! 3747: ! 3748: * m68kv4.h: Define TARGET_DEFAULT to be 68020 + 68881. ! 3749: (CPP_SPEC): Define based on TARGET_DEFAULT ! 3750: ! 3751: * m68kv4.h (PCC_STATIC_STRUCT_RETURN): Undef this. ! 3752: (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Defs deleted. ! 3753: (ASCII_DATA_ASM_OP, ASM_OUTPUT_ASCII): Defs deleted. ! 3754: ! 3755: * m68kv4.h (ASM_OUTPUT_SKIP, FUNCTION_VALUE_REGNO_P): ! 3756: (FUNCTION_PROFILER, STRUCT_VALUE_REGNUM, BSS_ASM_OP): ! 3757: (FUNCTION_VALUE, FUNCTION_EXTRA_EPILOGUE, LIBCALL_VALUE): ! 3758: (STACK_BOUNDARY, EMPTY_FIELD_BOUNDARY, BIGGEST_ALIGNMENT): ! 3759: Redefined to match m68k/SVR4 conventions. ! 3760: ! 3761: * m68ksgs.h (ASM_OUTPUT_SKIP): Redefined to use `.space'. ! 3762: (ASM_NO_SKIP_IN_TEXT): Defined. ! 3763: ! 3764: * amix.h, xm-amix.h, x-amix: New files. ! 3765: ! 3766: Fri Dec 27 20:43:11 1991 Michael Tiemann (tiemann at cygnus.com) ! 3767: ! 3768: * cp-tree.h (build_overload_name): Declare this function. ! 3769: * cp-decl2.c, cp-method.c: Delete random `extern' declarations. ! 3770: ! 3771: * cp-lex.c (get_directive_line): Declare it extern. ! 3772: (lineno,yychar,yylval,lastiddecl,finput): Ditto. ! 3773: (ridpointers): Don't need to declare it here. ! 3774: (check_newline): Handle new #pragmas. ! 3775: ! 3776: * cp-class.c (add_method): Add a cast in call to `obstack_base'. ! 3777: ! 3778: Fri Dec 27 20:22:05 1991 Michael Tiemann (tiemann at cygnus.com) ! 3779: ! 3780: * cp-decl.c (push_overloaded_decl): Now returns a value. ! 3781: All callers changed. ! 3782: ! 3783: * cp-decl.c (duplicate_decls): Give better error message when user ! 3784: declaration conflicts with built-in one. Also, when we decide to ! 3785: keep a builtin function builtin, copy the DECL_RTL from OLDDECL to ! 3786: NEWDECL. ! 3787: ! 3788: Fri Dec 27 17:18:15 1991 Michael Meissner (meissner at osf.org) ! 3789: ! 3790: * mips.h (TRAMPOLINE_TEMPLATE): Define correctly for MIPS. ! 3791: (TRAMPOLINE_SIZE): Define to be 9 words. ! 3792: (INITIALIZE_TRAMPOLINE): Define correctly for MIPS. ! 3793: (TRANSFER_FROM_TRAMPOLINE): Define to do a mprotect of the ! 3794: trampoline, so that we can jump to it. I suspect the mprotect may ! 3795: fail on some MIPS based systems, because the trampoline is on the ! 3796: stack, and not in the data section. ! 3797: ! 3798: * mips.c (mips_output_filename): Don't warn about ECOFF not ! 3799: handling #line's within functions if we are using the OSF/rose ! 3800: object format. ! 3801: ! 3802: Fri Dec 27 15:35:38 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3803: ! 3804: * c-typeck.c (build_array_ref): Special warning about `register' array. ! 3805: ! 3806: * gnulib2.c (L_trampoline): Don't create a function here. ! 3807: The definition of TRANSFER_FROM_TRAMPOLINE can do that if nec. ! 3808: * m68k.h (TRANSFER_FROM_TRAMPOLINE): Make the function here. ! 3809: ! 3810: * fx80.*: Renamed from alliant.*. ! 3811: * configure: Alternative renamed to fx80-alliant-*. ! 3812: * config.sub: Corresponding changes. ! 3813: ! 3814: * cccp.c (traditional): No longer static. ! 3815: * cexp.y (yylex): Handle full variety of character constants. ! 3816: Include stdlib.h and locale.h if needed. ! 3817: ! 3818: * c-decl.c (shadow_tag): Change warnings to error or pedwarn. ! 3819: ! 3820: * gnulib2.c (__do_global_dtors): If length not given, count it. ! 3821: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Ignore length; scan till null. ! 3822: (__CTOR_END__, __DTOR_END__): Declarations deleted. ! 3823: ! 3824: * cp-decl2.c (finish_file): Always change $ to _ ! 3825: regardless of NO_DOLLAR_IN_LABEL. ! 3826: ! 3827: Fri Dec 27 15:04:40 1991 Tom Wood (wood at dg-rtp.dg.com) ! 3828: ! 3829: * svr4.h (ASM_OUTPUT_ALIGNED_COMMON): Fix typo. ! 3830: ! 3831: * m88k.c: Move extern decls. ! 3832: (output_ascii): Use ASCII_DATA_ASM_OP. ! 3833: * m88k.h (HAVE_ATEXIT): Delete. ! 3834: (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL, ! 3835: ASCII_DATA_ASM_OP): Override svr4.h. ! 3836: (EXTRA_SECTIONS): No ctors/dtors for m88k-luna. ! 3837: * m88kdgux.h (STANDARD_STARTFILE_PREFIX): No need to override svr4.h. ! 3838: ! 3839: Fri Dec 27 11:34:59 1991 Ken Raeburn ([email protected]) ! 3840: ! 3841: * cp-pt.c (mangle_class_name_for_template): Use a local obstack ! 3842: rather than fixed-size buffers. ! 3843: ! 3844: * cp-class.c (add_method): Case obstack_base value to desired type ! 3845: when reallocating vector node. ! 3846: ! 3847: Fri Dec 27 09:16:50 1991 Ron Guilmette (rfg at ncd.com) ! 3848: ! 3849: * sort-protos: New file. ! 3850: ! 3851: * i386.c: Remove decls of frame_pointer_needed; include flags.h. ! 3852: * i386.c (output_387_binary_op, output_float_compare): ! 3853: Moved declarations of strcat to top level. ! 3854: ! 3855: * i860.md (cmpnesf, cmpnedf): New patterns. ! 3856: * i860.md (cmplesf, cmpgesf): Corrected to allow for IEEE conformance. ! 3857: ! 3858: Thu Dec 26 11:20:07 1991 Michael Tiemann (tiemann at cygnus.com) ! 3859: ! 3860: * cp-class.c: Declare N_* variables here. ! 3861: * cp-class.h: Declare N_* variables extern here. ! 3862: ! 3863: * cp-gc.c (build_static_gc_entry): Call `assemble_gc_entry' instead ! 3864: of implementing it directly. ! 3865: * varasm.c (assemble_gc_entry): New function. ! 3866: ! 3867: * calls.c (expand_call): Don't crash if somebody declared a void ! 3868: function `const'. ! 3869: ! 3870: * cp-cvt.c (convert): Handle case when two equal array types are ! 3871: distinct (in memory). ! 3872: * tree.c (build_index_2_type): Don't set TREE_TYPE of lower bound. ! 3873: (index_type_equal): New function. ! 3874: ! 3875: * cp-spew.c (yylex): Extend special-case ptr-to-func ((*)()) parsing ! 3876: to handle (*)[] and (&)[] declarations as well. ! 3877: ! 3878: * cp-decl2.c (finish_file): Unconditionally call ! 3879: assemble_{constructor,destructor}. Also, delete code for writing ! 3880: _init and _fini sections that was #if 0'd. These actions belong in ! 3881: varasm if anywhere. ! 3882: ! 3883: * cp-class.c (add_method): Fix handling of obstacks to correctly ! 3884: extend TREE_VECs. ! 3885: ! 3886: Thu Dec 26 15:24:45 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3887: ! 3888: * cccp.c (main): Add new option -include. Rename -i to -imacros. ! 3889: * gcc.c (SWITCH_TAKES_ARG): Remove -i. ! 3890: (WORD_SWITCH_TAKES_ARG): Add -include, -imacros. ! 3891: * hp800.h (WORD_SWITCH_TAKES_ARG): Add all the standard alternatives. ! 3892: * mips.h (SWITCH_TAKES_ARG): Remove -Y and -i. ! 3893: * next.h, sparc.h (WORD_SWITCH_TAKES_ARG): Add -include, -imacros. ! 3894: * sun2.h, sun3.h (WORD_SWITCH_TAKES_ARG): Copy from sparc.h. ! 3895: * svr4.h (SWITCH_TAKES_ARG): Remove -i, -f. ! 3896: (WORD_SWITCH_TAKES_ARG): Add -include, -imacros. ! 3897: ! 3898: * toplev.c (flag_gnu_linker): New variable. -fgnu-linker. ! 3899: * flags.h (flag_gnu_linker): Declare it. ! 3900: * varasm.c (assemble_constructor, assemble_destructor): ! 3901: Handle flag_gnu_linker. ! 3902: ! 3903: * sparc.md (structure values): Separate unimp pattern deleted. ! 3904: New pattern for combined call and unimp. `call' pattern changed. ! 3905: (type): Deleted type marker, added call_no_delay_slot. ! 3906: ! 3907: Thu Dec 26 05:04:28 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 3908: ! 3909: * reg-stack.c (move_for_stack_reg): If a SET_DEST is REG_UNUSED, ! 3910: just pop the SET_SRC. ! 3911: ! 3912: Wed Dec 25 17:23:25 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3913: ! 3914: * c-decl.c (init_decl_processing): Fix type of exit, _exit. ! 3915: ! 3916: * jump.c (cross_jump_death_matters): Move def to front, make static. ! 3917: ! 3918: Tue Dec 24 20:41:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 3919: ! 3920: * hard-reg-set.h (reg_names): Declare here. ! 3921: * stmt.c (expand_asm_operands): Not here. ! 3922: ! 3923: * gcc.c (handle_braces, do_spec_1, give_switch): Clear up %*. ! 3924: ! 3925: * expr.c (expand_expr): Delete decl of lang_expand_expr. ! 3926: ! 3927: * final.c (final_scan_insn): Delete line number followed by another ! 3928: line number, if numbers are effectively consecutive. ! 3929: ! 3930: * jump.c (jump_optimize): Set cross_jump_death_matters from cross_jump. ! 3931: * reg-stack.c (reg_to_stack): Pass 2 for cross_jump to jump_optimize. ! 3932: Don't set cross_jump_death_matters here. ! 3933: (record_reg_life): Delete decl of call_used_reg_set. ! 3934: ! 3935: * c-decl.c (init_decl_processing): ! 3936: Declare abort, exit, and _exit as volatile. ! 3937: ! 3938: * c-decl.c (implicitly_declare): Set IDENTIFIER_IMPLICIT_DECL earlier. ! 3939: (pushdecl): Test that and avoid nested extern warning. ! 3940: ! 3941: * c-decl.c (init_decl_processing): Don't handle EXPAND_BUILTIN_VARARGS. ! 3942: ! 3943: Tue Dec 24 15:42:34 1991 Michael Tiemann (tiemann at cygnus.com) ! 3944: ! 3945: * cp-init.c (add_friends): Add missing IDENTIFIER_POINTER macro ! 3946: application to strncmp argument. ! 3947: ! 3948: * cp-method.c (build_overload_*): Now uses SCRATCH_OBSTACK instead ! 3949: of relying on fixed buffers of finite length. ! 3950: (fndecl_as_string): Ditto. ! 3951: All callers changed. ! 3952: * cp-except.c (cplus_exception_name): Definition moved to ! 3953: cp-method.c. ! 3954: ! 3955: Tue Dec 24 10:38:49 1991 Michael Collison (collison at osf.org) ! 3956: ! 3957: * ns32k.c (hard_regno_mode_ok): Define this as a function now. ! 3958: Also change the way it work so that we don't allow moves between ! 3959: the general registers and the floating point registers. ! 3960: ! 3961: * ns32k.h (HARD_REGNO_MODE_OK): Turn it into a function call. ! 3962: ! 3963: * ns32k.md (call_value): fix to correct a bug where the compiler thinks ! 3964: the return value of a function call is in f0 instead of r0. Fix ! 3965: courtesy of vince russo. ! 3966: (movqi, movhi): Fix up these patterns because they could return ! 3967: undefined instruction templates. Fix courtesy of vince russo. ! 3968: ! 3969: Tue Dec 24 10:14:20 1991 Ron Guilmette (rfg at ncd.com) ! 3970: ! 3971: * mips-tfile.c (main): Move nested extern decl of version_string to ! 3972: file-scope. ! 3973: (catch_signal): Move nested extern decl of sys_siglist to ! 3974: file-scope. ! 3975: ! 3976: * varasm.c (assemble_variable): Handle ASM_OUTPUT_ALIGNED_COMMON. ! 3977: * svr4.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): New. ! 3978: (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Deleted. ! 3979: ! 3980: * gcc.c (SWITCH_TAKES_ARG, default_compilers): Eliminated -Y* option. ! 3981: (execute): Moved decls of execv and execvp to top level. ! 3982: (do_spec, do_spec1, handle_braces, give_switch): Support new %* spec. ! 3983: ! 3984: * c-lang.c (recognize_objc_keyword): Added explicit return. ! 3985: ! 3986: * svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): New definitions. ! 3987: (ASM_SPEC, LINK_SPEC): Support more standard svr4 options. ! 3988: (LIB_SPEC): Fixed to link crtend.o *after* libc.a. ! 3989: ! 3990: * svr4.h (CONST_SECTION_FUNCTION): Moved decl of `text_section' to ! 3991: top level. ! 3992: ! 3993: * cexp.y (main): Add explicit return type and explicit value. ! 3994: Move decl of yydebug to top level. ! 3995: ! 3996: * gnulib2.c (__bb_init_func): Moved decl of ___tcov_init to top level. ! 3997: ! 3998: * toplev.c (main): Deleted obsolete checks for -opt and -noreg. ! 3999: Moved decls of environ, version_string, language string to file-scope. ! 4000: Compile-time error if PREFERRED_DEBUGGING_TYPE is missing. ! 4001: ! 4002: * tree.c (dump_tree_statistics): Deleted decl of class_obstack. ! 4003: (object_permanent_p): Added explicit return type. ! 4004: ! 4005: Tue Dec 24 09:29:24 1991 Charles Hannum (mycroft at hal.gnu.ai.mit.edu) ! 4006: ! 4007: * expr.h (lang_expand_expr): Fix typo. ! 4008: ! 4009: Tue Dec 24 06:52:45 1991 Michael Meissner (meissner at osf.org) ! 4010: ! 4011: * gnulib2.c (__main): Make sure the exit module is pulled in if we ! 4012: have atexit, since that module defines constructor/destructor ! 4013: variables as bss symbols rather than as references. ! 4014: ! 4015: * decrose.h (HAVE_ATEXIT): Define. ! 4016: * encrose.h (HAVE_ATEXIT): Define. ! 4017: * i386rose.h (HAVE_ATEXIT): Define. ! 4018: * decstatn.h (HAVE_ATEXIT): Define. ! 4019: ! 4020: * gcc.texinfo (HAVE_ATEXIT): Expand documentation. ! 4021: (EXIT_BODY): Document. ! 4022: ! 4023: * protoize.c (POSIX): Make protoize accept TARGET_POSIX as a synonym ! 4024: for POSIX to make the code and documentation agree. Also, if the ! 4025: user defined _POSIX_SOURCE explicitly, turn on POSIX support in ! 4026: protoize. ! 4027: ! 4028: Tue Dec 24 00:14:38 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4029: ! 4030: * calls.c (emit_call_1): Additional arg STRUCT_VALUE_SIZE. ! 4031: Use as arg in call and call_value insns. ! 4032: (expand_call): Record the size, to pass it. ! 4033: * expr.c (emit_library_call): Pass 0 for STRUCT_VALUE_SIZE. ! 4034: * sparc.md (call, call_value): Make use of new arg. ! 4035: Generate an unimp instruction to use sparc calling convention. ! 4036: Add nameless pattern to recognize it. ! 4037: * sparc.c (output_function_epilogue): Skip the caller's unimp insn. ! 4038: ! 4039: * Makefile.in (INSTALLED_H): New variable. ! 4040: (includes): Preserve just those specific files. ! 4041: ! 4042: * expr.h (lang_expand_expr): Declare it. ! 4043: * expr.c: Don't declare it. ! 4044: * cp-expr.c (init_cplus_expand): Set up lang_expand_expr here. ! 4045: * cp-lex.c (init_lex): Call init_cplus_expand. ! 4046: ! 4047: Mon Dec 23 15:17:59 1991 Tom Wood (wood at dg-rtp.dg.com) ! 4048: ! 4049: * configure: Delete m88k-v88r32 (this is supported by m88k-svr3) ! 4050: and add m88k. ! 4051: * config.sub: Delete v88r as a system type. ! 4052: ! 4053: Mon Dec 23 19:50:48 1991 Fred Fish (fnf at fishpond) ! 4054: ! 4055: * 3b1.h, crds.h, hp320.h, m68k.md, m68ksgs.h, mot3300.h, news.h, ! 4056: tower-as.h: Replace port oriented macros SGS_3B1, HPUX_ASM, and ! 4057: SONY_ASM, with configuration oriented macros SGS_SWITCH_TABLES, ! 4058: SGS_SWAP_W, SGS_CMP_ORDER, and SGS_NO_LI. ! 4059: ! 4060: * m68ksgs.h: New file. ! 4061: ! 4062: * m68k.c (print_operand_address): Change switch labels for MOTOROLA. ! 4063: Don't use a `%'. Add missing `L' to some labels. ! 4064: For SGS assembler, use one symbol for the offset. ! 4065: ! 4066: Mon Dec 23 17:03:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4067: ! 4068: * recog.h (insn_name): New declaration. ! 4069: * final.c (output_asm_insn): Don't declare insn_name here. ! 4070: ! 4071: * dbxout.c (dbxout_function, dbxout_begin_function): ! 4072: Pass missing arg to dbxout_really_begin_function. ! 4073: ! 4074: * jump.c (jump_optimize): Set new var can_reach_end. ! 4075: * c-decl.c, cp-decl.c (finish_function): ! 4076: Merge that into current_function_returns_null. ! 4077: ! 4078: * config.sub (fx2800): New machine alias. ! 4079: ! 4080: * va-m88k.h (va_start): Test __GNUC__, not __CLASSIFY_TYPE__. ! 4081: ! 4082: * m88kv4.h: New version from Wood. ! 4083: (CPP_PREDEFINES): Put -A options here. Remove __CLASSIFY_TYPE__. ! 4084: ! 4085: * cccp.c (initialize_builtins): Define __GNUC__ as 2. ! 4086: ! 4087: * rtl.h (read_rtx): New declaration. ! 4088: ! 4089: * c-lex.c: Don't include output.h. ! 4090: (asm_out_file): Declare it. ! 4091: (ridpointers): Allocate storage here. ! 4092: ! 4093: * c-lex.h (lastiddecl, token_buffer): Declare here. ! 4094: (yylex, make_pointer_declarator, reinit_parse_for_function): Likewise. ! 4095: * c-parse.y, objc-parse.y: Not here. ! 4096: ! 4097: * objc-actions.c (error_with_ivar, error_with_method): ! 4098: (warn_with_method): Use count_error, not errorcount. ! 4099: ! 4100: Mon Dec 23 11:50:37 1991 Ron Guilmette (rfg at ncd.com) ! 4101: ! 4102: * sdbout.c: Fixed typo. ! 4103: * stmt.c (init_stmt, init_stmt_for_function): Explict return type. ! 4104: * gnulib2.c (__fixunsdfdi, __fixunssfdi): Move extern decls. ! 4105: * recog.c (init_recog): Added explicit return type. ! 4106: * longlong.h (count_leading_zeros): Moved decl of `__clz_tab'. ! 4107: * print-rtl.c (insn_name_ptr): Make decl `extern'. ! 4108: ! 4109: * objc-actions.h, objc-actions.c (doing_objc_thang): Make extern. ! 4110: * objc-actions.h, objc-actions.c (finish_class): Return void. ! 4111: * objc-actions.c (continue_class): Added default error return value. ! 4112: ! 4113: * fixinc.svr4: Map assertion tests to equivalent ANSI macro tests. ! 4114: ! 4115: * i860.c (output_block_move): Disabled code to move by words or ! 4116: halfwords until it can be made to work right. ! 4117: ! 4118: * i860.c (output_block_move): Moved a sequence of common ! 4119: `output_asm_insn' calls out of (and before) conditionals. ! 4120: ! 4121: * i860.c (output_block_move): Corrected bugs in move loop. ! 4122: ! 4123: Mon Dec 23 15:25:01 1991 Tom Wood (wood at dg-rtp.dg.com) ! 4124: ! 4125: * m88kv4.h (CPP_PREDEFINES): Fix for varargs/stdarg. ! 4126: (includes): Include svr4.h before m88k.h so the overrides in m88k.h ! 4127: will take effect. ! 4128: ! 4129: Mon Dec 23 07:06:27 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4130: ! 4131: * i860.c (output_delayed_branch): Call insn_extract and ! 4132: constrain_operands so that `which_alternative' is set properly. ! 4133: ! 4134: * stor-layout.c (layout_type, case ARRAY_TYPE): Handle ! 4135: TYPE_NO_FORCE_BLK similar to RECORD_TYPE. ! 4136: ! 4137: * encrose.h, i386rose.h, mips.h (LIBG_SPEC): Deleted; unused. ! 4138: ! 4139: Sun Dec 22 12:02:03 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 4140: ! 4141: * i386.c (function_epilogue): Use correct operand for insn mode. ! 4142: ! 4143: Sun Dec 22 12:20:16 1991 Michael Tiemann (tiemann at cygnus.com) ! 4144: ! 4145: * cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC for member ! 4146: functions that are really declared as inline methods. ! 4147: ! 4148: * cp-init.c (build_virtual_init): Add missing call to ! 4149: `assemble_external' when we use a virtual function table. ! 4150: ! 4151: * cp-decl.c (implicitly_declare): Don't allocate a decl if at the ! 4152: global binding level. ! 4153: ! 4154: * vax.h (PRINT_OPERAND): Handle new 'R' case. ! 4155: * vax.md: Change all patterns which passed a negated operand for ! 4156: `rotl' to use 'R' as the negator, since rotl cannot acctually handle ! 4157: negative arguments. ! 4158: ! 4159: Sun Dec 22 12:31:46 1991 Ron Guilmette (rfg at ncd.com) ! 4160: ! 4161: * i386v4.h (TARGET_VERSION): Added definition. ! 4162: * i860v4.h (TARGET_VERSION): Added definition. ! 4163: ! 4164: * m68kv4.h: New file. ! 4165: * fx2800.h: New file. ! 4166: ! 4167: * m88kv4.h (DWARF_DEBUGGING_INFO): Deleted redundant definition. ! 4168: (It's defined already in svr4.h.) ! 4169: ! 4170: * m88kv4.h (CPP_PREDEFINES): Added definition. ! 4171: ! 4172: * m88kv4.h (CPP_SPEC, LIB_SPEC, LINK_SPEC, STARTFILE_SPEC): ! 4173: Deleted redundant definitions. (These are defined in svr4.h.) ! 4174: ! 4175: * cccp.c (errno, sys_nerr, sys_errlist): Moved extern decls to top lev. ! 4176: * function.c (round_down): Likewise. ! 4177: * calls.c, c-convert.c: Delete block-level extern decls. ! 4178: * c-convert.c: Include flags.h. ! 4179: ! 4180: * configure (i386-*-sysv*): Fixed tmake_file value. ! 4181: (i860-*-sysv3*): Fixed xmake_file and tmake_file value. ! 4182: (i860-alliant-*): New configuration. ! 4183: ! 4184: * i860.c (recog_operand, call_used_regs, insn_template, ! 4185: insn_n_operands, insn_outfun, alter_subreg): Moved extern ! 4186: declarations out of local contexts and put them at file-scope. ! 4187: ! 4188: * i860.c (zero_operand): Deleted useless function. ! 4189: ! 4190: * i860.c (singlemove_string): Added code to optimize moving halfword ! 4191: constants. ! 4192: ! 4193: * i860.c (output_block_move): Don't do CC_STATUS_INIT until it is ! 4194: definitely necessary & appropriate. ! 4195: ! 4196: * i860.c (output_block_move): Create up to 16 sequential load/store ! 4197: pairs for constant length moves regardless of operand sizes (e.g. ! 4198: byte, halfword, word). ! 4199: ! 4200: * i860.c (output_block_move): Try to generate widest kind of ! 4201: sequential load/store pairs for constant length moves before trying ! 4202: the less efficient (narrower) ones. ! 4203: ! 4204: * i860.c (output_block_move): Don't do sequential load/store pairs ! 4205: for constant length moves unless the size is a multiple of the ! 4206: size of the operands moved each time (i.e. word, halfword, byte). ! 4207: ! 4208: * i860.c (output_block_move): Re-wrote code to do inline variable ! 4209: length block moves to correct fatal errors (e.g. no check for zero ! 4210: or neagtive start count) and to make it more efficient (saved 1 cycle ! 4211: per iteration). ! 4212: ! 4213: * i860.c (output_block_move): Make variable length moves with starting ! 4214: alignment of 4 or 2 `#if 0' for now, until they can be fixed to work ! 4215: right. Also reordered all three cases so that longer alignments are ! 4216: checked for first. ! 4217: ! 4218: Sun Dec 22 01:25:07 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4219: ! 4220: * i386v4.h: Include svr4.h just once. ! 4221: ! 4222: * protoize.c (fprintf, printf): Decls put in #if 0. ! 4223: ! 4224: * emit-rtl.c (stack_slot_list): Delete superfluous extern decl. ! 4225: (emit): Abort if arg isn't recognized. ! 4226: ! 4227: * c-parse.y (current_declspecs, declspec_stack): Declare static. ! 4228: (undeclared_variable_notice): Likewise. ! 4229: (lastiddecl): Declare extern. ! 4230: * objc-parse.y: Same changes as c-parse.y. ! 4231: (token_buffer): Declare extern. ! 4232: ! 4233: * c-lex.c: Include output.h. ! 4234: (check_newline): Decl of asm_out_file deleted. ! 4235: ! 4236: * c-lex.h (ridpointers, NORID): Declare/define here. ! 4237: * c-lex.c, c-parse.y, objc-parse.y: Not here. ! 4238: ! 4239: * sun3.h (WORD_SWITCH_TAKES_ARG): Add `-assert'. ! 4240: (LINK_SPEC): Pass -assert to linker. ! 4241: ! 4242: * gbl-ctors.h (__CTOR_END__, __DTOR_END__): Remove `extern'. ! 4243: ! 4244: * sparc.h (RTX_COSTS): Increase multiply cost to 20. ! 4245: (MULSI3_LIBCALL): Use .umul. ! 4246: (UMULSI3_LIBCALL): Deleted. ! 4247: ! 4248: Sat Dec 21 18:34:27 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4249: ! 4250: * combine.c (simplify_comparison): Allow OP0 to be VOIDmode if it ! 4251: is a COMPARE or a comparison operation. ! 4252: ! 4253: * i860.md (bte): Remove now unneeded patterns. ! 4254: Correct mode mismatch errors in patterns that will now be used. ! 4255: ! 4256: Sat Dec 21 00:14:25 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4257: ! 4258: * ns32k.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Dummies deleted. ! 4259: (INITIALIZE_TRAMPOLINE): Likewise. #error inserted. ! 4260: ! 4261: * ns32k.c (print_operand_address): For invalid address, just abort. ! 4262: ! 4263: * Makefile.in (FIXINCLUDES): New variable. ! 4264: (includes, maketest): Use that. ! 4265: * x-i386v4 (FIXINCLUDES): Override here. ! 4266: ! 4267: Fri Dec 20 18:28:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4268: ! 4269: * dbxout.c (dbxout_really_begin_function): New subroutine. ! 4270: (dbxout_function): Use that, but only if not DBX_FUNCTION_FIRST. ! 4271: (dbxout_begin_function): New function. ! 4272: * varasm.c (assemble_start_function): Call dbxout_begin_function. ! 4273: ! 4274: * dbxout.c (dbxout_function): Implement DBX_OUTPUT_FUNCTION_END. ! 4275: ! 4276: * sparc.md (movstrsi): Add missing double quote. ! 4277: ! 4278: * gcc.c (process_command): Handle -Xlinker. ! 4279: ! 4280: * calls.c (expand_call): Treat vfork like setjmp. ! 4281: ! 4282: * c-decl.c (implicitly_declare): Use push_obstacks_nochange. ! 4283: ! 4284: * sparc.h (WORD_SWITCH_TAKES_ARG): Add -assert. ! 4285: (LINK_SPEC): Pass -assert to linker. ! 4286: ! 4287: * svr4.h (ASM_OUTPUT_LOCAL): Fix typo. ! 4288: ! 4289: Fri Dec 20 07:52:19 1991 Michael Tiemann (tiemann at cygnus.com) ! 4290: ! 4291: * cp-decl2.c (lang_decode_option): Recognize more -fno-OPTION ! 4292: options which need special treatment (in the turning off of the ! 4293: option). ! 4294: ! 4295: * cp-parse.y (named_class_head_sans_basetype_either): Rule deleted. ! 4296: (identifier_either): Rule deleted. ! 4297: (delete): Don't call `build_x_delete'' if the type does not have a ! 4298: destructor. We may still need to adjust the address passed to ! 4299: `operator delete'. ! 4300: ! 4301: * cp-init.c (build_delete): New argument MAYBE_ADJUST. All callers ! 4302: changed. Also, add #if 0/#endif around code dealing with ALIGNMENT. ! 4303: It's dead code, and that's unclear otherwise. ! 4304: (maybe_adjust_addr_for_delete): New function. ! 4305: (build_new): Initialize special header for arrays allocated with ! 4306: `operator new[]'. This is a rewrite of Ken's code. ! 4307: (init_init_processing): New built-in type BI_header_type. ! 4308: ! 4309: * cp-init.c (build_{new,delete}): Call `build_builtin_call' for BIN, ! 4310: BID. ! 4311: (build_builtin_call): New function. ! 4312: ! 4313: * cp-decl.c (grokvardecl): Set TREE_EXTERNAL. ! 4314: (grokdeclarator): Set TREE_PUBLIC for all member functions. They ! 4315: are effectively global. Do the same for static members. ! 4316: (start_function): Don't clear TREE_EXTERNAL in case the function ! 4317: belongs to another file's implementation. Other fixes to ! 4318: TREE_PUBLIC/TREE_EXTERNAL logic based on interface/implementation. ! 4319: ! 4320: * cp-method.c (hack_identifier): Call `assemble_external' if ! 4321: necessary. ! 4322: ! 4323: Fri Dec 20 06:27:38 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4324: ! 4325: * reload1.c (emit_reload_insns): Always record first insn emitted ! 4326: for a reload, including any insns for a secondary reload. ! 4327: (gen_input_reload): Correct documentation of function. ! 4328: ! 4329: Thu Dec 19 22:01:51 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4330: ! 4331: * gnulib1.c (perform_fixdfsi): New customization macro. ! 4332: ! 4333: * svr4.h (SELECT_RTX_SECTION): Undef before defining. ! 4334: ! 4335: Thu Dec 19 16:59:12 1991 (Eric Youngdale at [email protected]) ! 4336: ! 4337: * cccp.c (hack_vms_include_specification): Make conversion of ! 4338: filenames more versatile for user specified include directories. ! 4339: ! 4340: Thu Dec 19 17:38:18 1991 Michael Meissner (meissner at osf.org) ! 4341: ! 4342: * mips.h (#error's): Put tab in front of all #error's, so that ! 4343: ancient pre-ANSI compilers will not complain about unknown ! 4344: directives, even if the #error is #ifdef'ed out. ! 4345: ! 4346: * mips.md (fix_trunc*): Reorder constraints so that 'd' comes before ! 4347: 'f', and put a '*' in front of 'f' constraints to keep integer in ! 4348: the GP registers. ! 4349: (define_splits): Add reload_completed check for all define_splits ! 4350: that use subreg on the arguments to work around bug in sched.c. ! 4351: ! 4352: * cccp.c (lang_asm): New static variable to indicate we are ! 4353: processing an assembly file and to ignore unknown directives in case ! 4354: they are comments, like they are on the MIPS systems. ! 4355: (main): Set lang_asm if -lang-asm switch. ! 4356: (handle_directive, skip_if_group): Don't report about unknown ! 4357: directives if lang_asm is set. ! 4358: ! 4359: * gcc.c (default_compilers array): Pass -lang-asm to cpp when ! 4360: processing .S files instead of -lang-c. ! 4361: ! 4362: Thu Dec 19 15:06:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4363: ! 4364: * c-decl.c (c_decode_option): Handle -fno-ident. ! 4365: * c-lex.c (check_newline): Ignore #ident for -fno-ident. ! 4366: ! 4367: * svr4.h (ASM_OUTPUT_LOCAL): Use assemble_name. ! 4368: ! 4369: * mips.h: Use #error, not #include, for error messages. ! 4370: ! 4371: * cccp.c (warning, main): Implement -Werror. ! 4372: ! 4373: * i386sco.h (CPP_SPEC): Move non-fixed option here. ! 4374: (CPP_PREDEFINES): From here. ! 4375: ! 4376: * gcc.c (do_spec_1): For %p, just pass -D options. ! 4377: For %P, pass all -A options. Put in whitespace, fix typos. ! 4378: ! 4379: * c-parse.y (parmlist_2, defn_parmlist_2): Warn about (...). ! 4380: * c-decl.c (get_parm_info): Don't warn here. ! 4381: ! 4382: Thu Dec 19 06:15:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4383: ! 4384: * toplev.c (compile_file): Avoid ordered comparison of debug_info_level ! 4385: since it is an enum. ! 4386: ! 4387: * mips.c: Include gstab.h. ! 4388: ! 4389: * sparc.md: Fix typo. ! 4390: ! 4391: * caller-save.c (save_call_clobbered_regs): Don't save regs that ! 4392: die in a CALL_INSN or that are born there. ! 4393: ! 4394: Thu Dec 19 04:28:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4395: ! 4396: * c-aux-info.c (gen_aux_info_record): Don't write space at line beg. ! 4397: ! 4398: Wed Dec 18 11:46:13 1991 Tom Wood (wood at dg-rtp.dg.com) ! 4399: ! 4400: * cse.c (cse_main): Use get_max_uid rather than computing it. ! 4401: ! 4402: Wed Dec 18 18:13:06 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4403: ! 4404: * loop.c (scan_loop): Ensure replacement made by single-use code ! 4405: is not modified in the life of the register being replaced. ! 4406: ! 4407: Wed Dec 18 15:37:52 1991 Ron Guilmette (rfg at ncd.com) ! 4408: ! 4409: * rtl.h (fconst2_rtx, dconst2_rtx): Added extern declarations. ! 4410: ! 4411: * flags.h (flag_inhibit_size_directive): Declared. ! 4412: ! 4413: * svr4.h (INT_ASM_OP, INIT_SECTION_ASM_OP): Moved around. ! 4414: (ASCII_DATA_ASM_OP): Definition added. ! 4415: (flag_inhibit_size_directive): Deleted superfluous extern decls. ! 4416: ! 4417: * Makefile.in: Correct number of expected shift/reduce conflicts ! 4418: reported by bison for cp-parse.y. ! 4419: ! 4420: * sparcv4.h: New file. ! 4421: ! 4422: * i860.h (FUNCTION_ARG_BOUNDARY): Added definition. ! 4423: (sfmode_constant_to_ulong): Added extern declaration. ! 4424: ! 4425: * i860.md (BTE/BTNE patterns): Changed all instances of ! 4426: `(match_operand:SI 2 "zero_operand" "J")' to `(const_int 0)'. ! 4427: ! 4428: * i860.md (load then BTE/BTNE patterns): Added 8 new patterns, ! 4429: for cond branch on EQ/NE of a zero-extended memref with small integer. ! 4430: ! 4431: * i860.md: 20 new patterns (involving BTE/BTNE) like existing 20 ! 4432: but simplified so that the combiner will find them. ! 4433: ! 4434: * i860.md (sfmode_constant_to_ulong, fconst2_rtx): Removed ! 4435: superfluous nested extern declarations. ! 4436: ! 4437: Wed Dec 18 15:39:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4438: ! 4439: * va-i860.h (va_start for stdarg.h): Divide reg counts by 4. ! 4440: ! 4441: * stmt.c (emit_case_nodes): Fix typo, near testing cost_table. ! 4442: ! 4443: * i860.h (CUMULATIVE_ARGS): Define a named struct, then use it. ! 4444: ! 4445: * function.c (expand_function_start): Compute sizes in proper order. ! 4446: ! 4447: * svr4.h (MD_STARTFILE_PREFIX): Defined. ! 4448: (STANDARD_STARTFILE_PREFIX): Deleted. ! 4449: ! 4450: * sparc.md (movstrsi): Disable if needs more than 32 insns. ! 4451: ! 4452: * expr.c (store_expr): Handle copying too-short STRING_CST. ! 4453: ! 4454: * gstdarg.h (_VA_LIST): Handle this like _VA_LIST_. ! 4455: ! 4456: * m68k.h (LOCAL_LABEL_PREFIX): Remove the `L'. ! 4457: Fix uses of %L by adding `L'. ! 4458: * m68k.c (print_operand_address): Fix use of %L. ! 4459: * m68k.md (movhi): Fix use of %L. They were inconsistent. ! 4460: ! 4461: Wed Dec 18 14:59:26 1991 Michael Meissner (meissner at osf.org) ! 4462: ! 4463: * limits.h (whole file): Protect against inclusion. ! 4464: ! 4465: * t-decrose (LIMITS_H): Don't install limits.h on OSF/1. ! 4466: * t-encrose (LIMITS_H): Don't install limits.h on OSF/1. ! 4467: * t-i386rose (LIMITS_H): Don't install limits.h on OSF/1. ! 4468: ! 4469: * x-decrose (SYSTEM_INCLUDES): Don't do -I/usr/include. ! 4470: * x-encrose (SYSTEM_INCLUDES): Don't do -I/usr/include. ! 4471: * x-i386rose (SYSTEM_INCLUDES): Don't do -I/usr/include. ! 4472: ! 4473: Wed Dec 18 04:53:23 1991 Ken Raeburn ([email protected]) ! 4474: ! 4475: * cp-init.c (build_new): Rewrote some of the array-handling code. ! 4476: Now stores the number of elements (after stripping off all outer ! 4477: ARRAY_TYPE nodes) at the start of allocated storage, just before the ! 4478: pointer the user's program sees. We also store the 2s compliment ! 4479: value of the pointer returned so we can distinguish when deleting a ! 4480: pointer whether it was "adjusted" or not. ! 4481: (expand_vec_init): Added a type conversion for cases when the ! 4482: address of an array gets passed in and we want to deal with the ! 4483: elements. ! 4484: (build_delete): Catch a case where deletion of arrays could slip ! 4485: through. ! 4486: (build_vec_delete): More array-handling rewrites. Extract the ! 4487: stored value and use it as the number of objects to destroy; ignore ! 4488: any value supplied by the user. ! 4489: ! 4490: * cp-init.c (init_vfields): Now static. ! 4491: ! 4492: * cp-tree.h (struct lang_decl_flags): Merged "dummy" fields. ! 4493: ! 4494: * cp-tree.h (DECL_TEMPLATE_INSTANTIATIONS): New macro for finding a ! 4495: list of instantiations already made of a template. (Only ! 4496: implemented for functions currently.) ! 4497: * cp-tree.def (DECL_TEMPLATE_INSTANTIATIONS): Describe it. ! 4498: * cp-pt.c (instantiate_template): Maintain and make use of it. ! 4499: ! 4500: * cp-pt.c (tsubst, case REFERENCE_TYPE): Call build_reference_type ! 4501: instead of constructing the type here. ! 4502: ! 4503: Wed Dec 18 03:37:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4504: ! 4505: * c-parse.y (label_decl): Use identifiers_or_typenames. ! 4506: ! 4507: * c-parse.y: Support FUNCTION ([ARGNAMES] DECLS) {...}. ! 4508: (defn_parmlist_2, defn_parms): New nonterminals. ! 4509: (identifiers_or_typenames): New nonterminal. ! 4510: (parmlist_or_identifiers_1): Changed. ! 4511: * c-decl.c (combine_parm_decls): New function. ! 4512: ! 4513: Tue Dec 17 22:18:43 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4514: ! 4515: * function.c (expand_main_function): Build SYMBOL_REF with Pmode, ! 4516: not VOIDmode. ! 4517: ! 4518: * rs6000.h (HARD_REGNO_NREGS, CLASS_MAX_NREGS): FP regs can only hold ! 4519: 64 bits, not any size FP value. ! 4520: ! 4521: * reload1.c (reload): Remove variable old_caller_save_needed. ! 4522: Call init_save_areas and setup_save_areas instead of ! 4523: allocate_save_areas and elim_save_addrs. ! 4524: * caller-save.c (init_caller_save): New function, from part of ! 4525: allocate_save_areas. ! 4526: (setup_save_areas): New function, from rest of allocate_save_areas ! 4527: and elim_save_addrs. ! 4528: When scanning pseudos to find hard regs that might need caller-save, ! 4529: look at all parts of multi-word registers. ! 4530: ! 4531: * flow.c (elim_reg_set): New variable. ! 4532: (flow_analysis): Set it to contain those regs that we can eliminate. ! 4533: (mark_used_regs): Don't set eliminable regs as live when they are used. ! 4534: ! 4535: * global-alloc.c (global_alloc): Clear preferences with eliminable ! 4536: regs, in addition to clearing conflicts. ! 4537: ! 4538: * reload.c (find_reloads_toplev): Abort instead of making ! 4539: a SUBREG of a VOIDmode constant. ! 4540: ! 4541: * emit-rtl.c (copy_rtx_if_shared): SCRATCH may always be shared. ! 4542: ! 4543: Tue Dec 17 21:06:03 1991 Michael Meissner (meissner at osf.org) ! 4544: ! 4545: * mips.h (MIPS_VERSION): Bump MM version number to 5. ! 4546: (processor_type): New enum to hold which type of ! 4547: processor to schedule for. ! 4548: (mips_cpu): New global to hold processor type. ! 4549: (MASK_*, TARGET_*): Rearrange target bits, add bits to select ! 4550: processor type, r4000 int/long/long long sizes. ! 4551: (TARGET_SWITCHES): Delete redunant no options, only leave no- ! 4552: version. ! 4553: (CUMULATIVE_ARGS): Make this a structure, not a pointer to a ! 4554: structure. ! 4555: (INIT_CUMULATIVE_ARGS): CUMULATIVE_ARGS changes. ! 4556: (FUNCTION_ARG_ADVANCE): Ditto. ! 4557: (FUNCTION_ARG): Ditto. ! 4558: (FUNCTION_ARG_PARTIAL_NREGS): Ditto. ! 4559: (RTX_COSTS): Count simple memory refs as one instruction. ! 4560: (REGISTER_MOVE_COST): Define as 4, to make sure constraints are ! 4561: checked. ! 4562: ! 4563: * mips.md (hilo type attribute): Add hilo type attribute to ! 4564: separate moves to/from the hi/lo registers with other register ! 4565: transfers. ! 4566: (move patterns): Set hilo attribute as appropriate. ! 4567: (define_function_units): Update the integer and memory functional ! 4568: units to include R4000 and R6000 processors, keyed off of the ! 4569: -mr[46]000 switches. Add a new functional unit for transfering ! 4570: stuff between register sets. ! 4571: (mov{sf,df}_xfer*): Remove these patterns, as they are no longer ! 4572: needed in GCC 2.00 to move between the different register sets, ! 4573: and generate insn not found messages if used. ! 4574: (movsi_ulw, movsi_usw): Correct test to see if stack loads are ! 4575: aligned. Use UNITS_PER_WORD-1 instead of a hard coded 3. ! 4576: (move define_expands): Delete move define_expands, since they are ! 4577: illegal according to the documentation, and the bug they guard ! 4578: against has long ago been fixed. ! 4579: ! 4580: * mips.c (mips_cpu): New global to hold processor type. ! 4581: (override_options): Set mips_cpu, check for 64 bit r4000 switches ! 4582: if processor not a r4000. ! 4583: (init_cumulative_args): CUMULATIVE_ARGS changes. ! 4584: (function_arg_advance): Ditto. ! 4585: (function_arg): Ditto. ! 4586: (function_arg_partial_nregs): Ditto. ! 4587: (mips_output_filename): Except for first .file, don't emit any other ! 4588: .file if encapsulating stabs in ECOFF, just put out stabs. This ! 4589: confuses gdb. ! 4590: (mips_output_lineno): Don't put out .loc's if encapulating stabs in ! 4591: ECOFF. ! 4592: (mips_asm_file_start): Put a .set nobopt for MIPS assembler to ! 4593: work around bug where the assembler goes bonkers if a branch ! 4594: inside of a .set noreorder section jumps to a label outside of a ! 4595: .set noreorder section. This is supposed to be fixed in 2.20 of ! 4596: the assembler. ! 4597: (function_epilogue): Correctly emit nops with tabs and newlines if ! 4598: needed. ! 4599: ! 4600: * decrose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to ! 4601: enable OSF/rose support, rather than use nm. ! 4602: ! 4603: * encrose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to ! 4604: enable OSF/rose support, rather than use nm. ! 4605: ! 4606: * i386rose.h (OBJECT_FORMAT_ROSE): Define, to tell collect to ! 4607: enable OSF/rose support, rather than use nm. ! 4608: ! 4609: * t-decrose (EXTRA_PASSES): Build collect2 instead of collect-osf, ! 4610: and link it to ld. ! 4611: ! 4612: * t-encrose (EXTRA_PASSES): Build collect2 instead of collect-osf, ! 4613: and link it to ld. ! 4614: ! 4615: * t-i386rose (EXTRA_PASSES): Build collect2 instead of collect-osf, ! 4616: and link it to ld. ! 4617: ! 4618: * x-decrose (DEBUG): Delete -g, since CFLAGS already passes it. ! 4619: (GCC_CFLAGS): Define POSIX so we can build protoize. ! 4620: ! 4621: * x-encrose (DEBUG): Delete -g, since CFLAGS already passes it. ! 4622: (GCC_CFLAGS): Define POSIX so we can build protoize. ! 4623: ! 4624: * x-i386rose (DEBUG): Delete -g, since CFLAGS already passes it. ! 4625: (GCC_CFLAGS): Define POSIX so we can build protoize. ! 4626: ! 4627: * t-decstatn (EXTRA_PASSES): Explicitly mention collect2. ! 4628: (ld): Use $(SYMLINK) rather than just ln. ! 4629: ! 4630: * t-mips (EXTRA_PASSES): Explicitly mention collect2. ! 4631: ! 4632: * collect2.c (whole file): Rewrite file based on collect-osf, to ! 4633: make it more portable. Highlights include: running ld only once if ! 4634: there are no constructors; OSF/rose support; not assuming that the ! 4635: linker, assembler, nm live in /bin; -v support to trace the commands ! 4636: being executed and print a version number; loops instead of ! 4637: recursion used to write out the tables; support for user using -r; ! 4638: checking all error returns; not using the shell to start processes. ! 4639: ! 4640: * collect-osf.c (whole file): Deleted, merged into collect2.c. ! 4641: ! 4642: Tue Dec 17 15:49:06 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 4643: ! 4644: * sched.c (schedule_insns): Don't update value of reg_live_length ! 4645: when it is negative, because negative values are special. ! 4646: ! 4647: * sched.c (schedule_block): Make new_needs an int not an enum, since ! 4648: some compilers won't accept using `|' and `&' with enums. ! 4649: ! 4650: * sparc.md: Don't emit nop after floating point compare; this is ! 4651: no longer needed. ! 4652: ! 4653: From Tom Wood: ! 4654: * sched.c (memrefs_conflict_p): Exchange xsize and ysize when x ! 4655: and y are exchanged. ! 4656: ! 4657: Tue Dec 17 15:01:04 1991 Mark Eichin (eichin at cygnus.com) ! 4658: ! 4659: * cp-decl.c (set_nested_typename): use SET_IDENTIFIER_TYPE_VALUE, ! 4660: not set_identifier_type_value, so that the binding doesn't get ! 4661: unwound by leaving class scope. ! 4662: ! 4663: Tue Dec 17 10:57:12 1991 Tom Wood (wood at dg-rtp.dg.com) ! 4664: ! 4665: * toplev.c (main): Make -g0 produce no debugging information. ! 4666: ! 4667: Tue Dec 17 15:15:20 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4668: ! 4669: * gcc.c (do_spec_1): In %P, duplicate the names with __ just in front. ! 4670: ! 4671: * gstab.h: Renamed from stab.h. ! 4672: * collect2.c, dbxout.c, final.c, mips-tfile.c: #include changed. ! 4673: * dbxout.c (N_CATCH): Define this if stab.h does not. ! 4674: * Makefile.in: Depend on gstab.h where appropriate. ! 4675: ! 4676: * Makefile.in (STAGESTUFF): Remove collect and collect2. ! 4677: ! 4678: * c-parse.y (parmlist_2): Allow just `...' with no named args. ! 4679: * c-decl.c (get_parm_info): Pedantic warning for that usage. ! 4680: ! 4681: * final.c (final_scan_insn): Don't output blocks for -g1. ! 4682: ! 4683: * Makefile.in (crtbegin.o, crtend.o): Use -g0. ! 4684: ! 4685: * function.c (expand_main_function): Do nothing if INIT_SECTION_ASM_OP. ! 4686: ! 4687: * varasm.c (assemble_asm): Handle ADDR_EXPR of a STRING_CST. ! 4688: * stmt.c (expand_asm): Likewise. ! 4689: * c-parse.y (extdef, stmt): Accept STRING_CST or ADDR_EXPR in asm. ! 4690: ! 4691: Tue Dec 17 15:01:11 1991 Tom Wood (wood at dg-rtp.dg.com) ! 4692: ! 4693: * m88k.h (INIT_SECTION_ASM_OP): Override svr[34].h. ! 4694: * m88kv4.h (INIT_SECTION_ASM_OP): Override svr4.h and m88k.h. ! 4695: * m88kdgux.h ({INIT,CTORS,DTORS}_SECTION_ASM_OP): Override m88k.h ! 4696: except when compiling crtstuff.c. ! 4697: ! 4698: Mon Dec 16 21:50:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4699: ! 4700: * stmt.c (struct case_node): Remove unused field `test_label'. ! 4701: (pushcase, pushcase_range): Don't initialize it. ! 4702: ! 4703: * stmt.c (check_for_full_enumeration_handling): Only print warnings ! 4704: if -Wswitch is specified. ! 4705: (expand_end_case): Call check_for_full_enumeration_handling even if ! 4706: -Wswitch is not specified. ! 4707: ! 4708: * expr.c (convert_move): Add missing arg to call to force_reg. ! 4709: (convert_to_mode): Likewise, for protect_from_queue. ! 4710: ! 4711: Mon Dec 16 20:33:10 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4712: ! 4713: * expr.c (expand_builtin): Check number and types of args. ! 4714: ! 4715: * c-parse.y (stmt, extdef): Allow constant expression inside plain asm. ! 4716: ! 4717: * m68k.md (movhi): Use asm_fprintf to print .set or equivalent. ! 4718: * m68k.c (print_operand_address): Use %R when printing pc register. ! 4719: * m68k.h (ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL): ! 4720: Use %L. ! 4721: ! 4722: * c-typeck.c, cp-typeck.c (c_sizeof): Give error for incomplete type. ! 4723: ! 4724: Mon Dec 16 11:14:28 1991 Ken Raeburn ([email protected]) ! 4725: ! 4726: * cp-decl.c (init_decl_processing): Don't declare unused function ! 4727: __builtin_vec_delete. ! 4728: ! 4729: Mon Dec 16 08:35:04 1991 Torbjorn Granlund (tege at hal.gnu.ai.mit.edu) ! 4730: ! 4731: * gnulib2.c (__udivmoddi4): Add comment. ! 4732: ! 4733: Mon Dec 16 07:47:13 1991 Michael Tiemann (tiemann at cygnus.com) ! 4734: ! 4735: * cp-call.c (ideal_candidate): Always set BEST before using it. ! 4736: Also, call `build_component_ref_1' with 3 args everywhere, and ! 4737: `build_indirect_ref' with 2 args everywhere. ! 4738: ! 4739: Mon Dec 16 07:17:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4740: ! 4741: * reload.h: Add `extern' to function declarations. ! 4742: (gen_input_reload): Add declaration. ! 4743: * reload1.c (reload): Allocate save area if caller-saves are needed; ! 4744: check for case when it becomes needed after some spill registers are ! 4745: obtained. ! 4746: Can now eliminate frame pointer even when caller-saves are needed. ! 4747: Perform register elimination of save area and see if caller-save needs ! 4748: a spill register. ! 4749: If required, find a spill register and pass it to caller-save code. ! 4750: (gen_input_reload): No longer static. ! 4751: * Makefile.in (caller-save.o): Now includes reload.h (again). ! 4752: * global-alloc.c (global_alloc): Can eliminate frame pointer even if ! 4753: we have caller-saves. ! 4754: * toplev.c (compile_file): Call init_caller_saves. ! 4755: ! 4756: * caller-save.c: Major rewrite; almost entirely new code. ! 4757: Integrate caller-saving with frame pointer elimination. ! 4758: Don't try to save and restore registers that cannot be directly ! 4759: copied to memory (such as MQ). ! 4760: Correctly place save and restore insns. ! 4761: Don't restore a saved register until end of block or if it is needed. ! 4762: ! 4763: * cse.c (mention_regs): Now returns int to indicate that the hash code ! 4764: may have changed. ! 4765: For COMPARE and comparison op, ensure that any register operand has ! 4766: a quantity number. ! 4767: (insert_regs): Return value from mention_regs. ! 4768: (rehash_using_reg): New function. ! 4769: (record_jump_equiv, mention_regs): Call rehash_using_reg if an operand ! 4770: of a compare is a REG whose hash code is changing. ! 4771: ! 4772: Mon Dec 16 07:09:21 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4773: ! 4774: * function.c (expand_main_function): New subroutine. Call __main. ! 4775: * c-decl.c, cp-decl.c (store_parm_decls): Use that. ! 4776: * cp-decl.c (init_decl_processing): Don't declare __main. ! 4777: ! 4778: * objc-actions.c (init_objc): Call __objcInit as a constructor. ! 4779: ! 4780: * toplev.c (compile_file): Reenable SDB code #if 0'd before. ! 4781: ! 4782: * protoize.c (version_string): Make it extern. ! 4783: * Makefile.in (protoize, unprotoize): Link with version.o. ! 4784: ! 4785: Sun Dec 15 23:31:47 1991 Michael Tiemann (tiemann at cygnus.com) ! 4786: ! 4787: * cp-tree.c (virtual_member): When recurring, don't dive into ! 4788: nonexistent baseclasses. ! 4789: ! 4790: * cp-decl.c (grokdeclarator): Set TREE_STATIC for initialized const ! 4791: arrays. ! 4792: * cp-typeck.c (mark_addressable): A decl that was TREE_STATIC might ! 4793: be chagned to TREE_EXTERNAL due to #pragma interface/implementation. ! 4794: ! 4795: Sun Dec 15 14:57:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4796: ! 4797: * Makefile.in (SYSCALLS.c.X): Fix typo. ! 4798: (INTERNAL_CFLAGS): Delete -DMERGED. ! 4799: ! 4800: * dbxout.c (dbxout_init): Pass proper args to ASM_OUTPUT_MAIN_*. ! 4801: * newpbb.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Add proper arguments. ! 4802: ! 4803: * stmt.c (emit_case_nodes): Rewrite to change induction conditions. ! 4804: Handle boundedness in the bounded node itself. ! 4805: Handle branching entirely at the parent level. ! 4806: ! 4807: * gstdarg.h: Use va-i860.h. ! 4808: * va-i860.h (va_start for ANSI): Fix typo. Call __builtin_next_arg. ! 4809: ! 4810: Sat Dec 14 20:45:30 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4811: ! 4812: * Makefile.in (USER_H): va-hp9k8.h should be va-hp800.h. ! 4813: ! 4814: * loop.c (invariant_p): Call-clobbered register is not invariant if ! 4815: loop has calls. ! 4816: (count_loop_regs_set): Count a CLOBBER as a setting of a register. ! 4817: ! 4818: * stmt.c: Move include of ctype.h and definition of cost variables to ! 4819: front of file. ! 4820: (expand_end_case): Always set use_cost_table. Check type here instead ! 4821: of in estimate_case_costs. Don't suppress use of cost table when ! 4822: not optimizing. ! 4823: (estimate_case_costs): Now returns int. Check for any case tag ! 4824: that is an unusual control character here and reject use of table ! 4825: if so. Always do comparisons signed, since that's how we access the ! 4826: cost table. ! 4827: (balance_case_nodes): Don't check for strange control characters here. ! 4828: (node_has_low_bound): Do checking if we don't have a left branch, ! 4829: instead of if we do. ! 4830: (node_has_{low,high}_bound): Remove spurious checks on branches. ! 4831: (emit_case_nodes): Ensure operation passed to emit_cmp_insn matches ! 4832: the branch we actually emit. ! 4833: Fix case of a range node with no left or right branch; use of case ! 4834: and default label were backward for the high test. ! 4835: Remove unused variables defaulted_{left,right}. ! 4836: ! 4837: Sat Dec 14 16:10:11 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4838: ! 4839: * protoize.c: Don't include limits.h. ! 4840: Rename `pathname' to `filename' everywhere. ! 4841: Clean up indentation of fprintf calls. ! 4842: Use standard GNU format for file name/line in error messages. ! 4843: (n_base_source_files): Renamed from base_source_files. ! 4844: (convert_filename, invocation_filename, base_source_filenames): ! 4845: `path' renamed to `filename'. ! 4846: (syscalls_absolute_filename): Renamed from syscalls_pathname. ! 4847: (find_file): Arg FILENAME no longer const. ! 4848: (main): Fix getcwd error-checking logic. ! 4849: (varargs_style_indicator): Delete `const'. ! 4850: (savestring): Declare arg `input' const. ! 4851: ! 4852: * Makefile.in (protoize, protoize.o, unprotoize, unprotoize.o): ! 4853: Use GCC_FOR_TARGET. ! 4854: (getopt.o, getopt1.o): Likewise. ! 4855: (GCC_FOR_TARGET): Delete -B./. ! 4856: (GCC_CFLAGS): Add -B./. Copy ALL_CFLAGS's definition, less XCFLAGS. ! 4857: ! 4858: * cp-init.c (add_friends): Pass proper args to strncmp. ! 4859: ! 4860: * toplev.c (compile_file): Clear DECL_RTL for vars not really output. ! 4861: #if 0 possibly redundant code for SDB output. ! 4862: ! 4863: * sys-types.h: Include gstddef.h to get size_t and wchar_t. ! 4864: ! 4865: * ultrix.h (CPP_PREDEFINED): Add __unix, __ultrix, __bsd4_2. ! 4866: ! 4867: * Makefile.in (STAGESTUFF): Add collect, collect2. ! 4868: ! 4869: Sat Dec 14 12:16:12 1991 Michael Tiemann (tiemann at cygnus.com) ! 4870: ! 4871: * cp-search.c (get_baselinks): Use obstacks right, instead of ! 4872: aborting when we know we're using them wrong. ! 4873: ! 4874: * cp-parse.y (structsp): Fix typo in exception declaration rule. ! 4875: ! 4876: * cp-typeck.c (build_modify_expr_1): Recursive call to ! 4877: `build_modify_expr_1' used pre-BINFO representation for ! 4878: BASETYPE_PATH argument. ! 4879: ! 4880: * cp-decl.c (start_decl): Don't switch to temporary allocation for ! 4881: decls of type REFERENCE_TYPE, as their initializers may live a long ! 4882: time, too. ! 4883: ! 4884: Sat Dec 14 07:11:03 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 4885: ! 4886: * reload.c (find_reloads_toplev): If we have a SUBREG of a multi-word ! 4887: constant, try to extract just the word we want. ! 4888: ! 4889: * global-alloc.c (global_alloc): Correct reference to ELIMINABLES. ! 4890: ! 4891: Fri Dec 13 15:28:38 1991 Michael Meissner (meissner at osf.org) ! 4892: ! 4893: * configure (mips-mips-sysv): On MIPS System V, use xm-umips.h, not ! 4894: xm-mips.h. ! 4895: ! 4896: * gstddef.h (__PTRDIFF_TYPE__): Provide default definition in case ! 4897: non-GCC 2.00 compiler is used. ! 4898: (__SIZE_TYPE__): Ditto. ! 4899: (__WCHAR_TYPE__): Ditto. ! 4900: ! 4901: Fri Dec 13 14:49:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4902: ! 4903: * config.sub: Renamed from config.subr. ! 4904: Support os -sym1. ! 4905: Convert -svr3, -svr4 to -sysv3, -sysv4. ! 4906: * configure: Used new name. ! 4907: ! 4908: * Makefile.in (includes): Preserve files from GCC already in dir. ! 4909: ! 4910: Fri Dec 13 11:01:12 1991 Fred Fish (fnf at fishpond) ! 4911: ! 4912: * att386.h: Fix unparenthesized macro arguments in ! 4913: ASM_OUTPUT_ASCII macro. ! 4914: ! 4915: * i386v4.h: Select an assembly language syntax file and include ! 4916: it. Supply missing macros from ones in i386v.h (TARGET_DEFAULT, ! 4917: VALUE_REGNO, FUNCTION_VALUE_REGNO_P). ! 4918: ! 4919: * svr4.h: Fix misspelled variable name labelno (was labeno). ! 4920: ! 4921: Fri Dec 13 09:07:22 1991 Michael Tiemann (tiemann at cygnus.com) ! 4922: ! 4923: * cp-typeck.c (build_component_ref): Call `assemble_external' as ! 4924: nec. ! 4925: (build_function_call_real): Call `assemble_external' as nec. for ! 4926: function calls we build. Code slightly rearranged for clarity. ! 4927: * cp-call.c (build_method_call): Call `assemble_external' as nec. ! 4928: ! 4929: Thu Dec 12 22:03:52 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil) ! 4930: ! 4931: * make-cc1.com: Change message given to user. Change c-parse_tab.* ! 4932: to c-parse.* ! 4933: ! 4934: * config-gcc.com: Purge excess versions of version.opt. ! 4935: ! 4936: Thu Dec 12 20:25:20 1991 Michael Meissner (meissner at osf.org) ! 4937: ! 4938: * Makefile.in (BOOT_CFLAGS): Remove quotes around the argument, ! 4939: since this causes a syntax error when it is later expanded. ! 4940: ! 4941: Thu Dec 12 17:53:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4942: ! 4943: * config.subr: Add many new machines and some OS's. ! 4944: ! 4945: * va-i860.h: Rewrite from rfg. ! 4946: ! 4947: * toplev.c (main): Handle -dm on USG systems. ! 4948: ! 4949: * m68k.c (print_operand, print_operand_address): New functions. ! 4950: * m68k.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Just call them. ! 4951: ! 4952: * m68k.c (S_*, D_*): Delete the #undefs at the end. ! 4953: ! 4954: * stmt.c (expand_return): Special case if fcn returns void. ! 4955: ! 4956: * objc-actions.c (build_objc_method_call): Fix typo in NeXT case. ! 4957: ! 4958: * expr.c (expand_builtin, BUILT_IN_ARGS_INFO): Cast init of word_ptr. ! 4959: ! 4960: * protoize.c: Delete the `extern "C"' for C++ compilation. ! 4961: ! 4962: Thu Dec 12 10:01:13 1991 Michael Meissner (meissner at osf.org) ! 4963: ! 4964: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Fix off by one error in ! 4965: handling the constructor list when a valid count is supplied. ! 4966: ! 4967: * collect2.c (write_hooks): Emit a count before the list of ! 4968: constructors, to go back to the old format. ! 4969: ! 4970: * collect-osf.c (write_s_file): Emit a count before the list of ! 4971: constructors, to go back to the old format. ! 4972: ! 4973: * gnulib2.c (exit): Provide default defintions as bss symbols for ! 4974: all of the constructor/destructor related symbols if the macro ! 4975: INIT_SECTION_ASM_OP is not defined. The second link that collect ! 4976: does and/or gld will provide the right values. ! 4977: ! 4978: * decrose.h (HAVE_ATEXIT): Nuke macro, no longer used. ! 4979: * encrose.h (HAVE_ATEXIT): Nuke macro, no longer used. ! 4980: * i386rose.h (HAVE_ATEXIT): Nuke macro, no longer used. ! 4981: ! 4982: Thu Dec 12 07:27:05 1991 Tom Wood (wood at dg-rtp.dg.com) ! 4983: ! 4984: * gbl-ctors.h (__CTOR_LIST__, __DTOR_LIST__): Renamed from *_BEGIN__. ! 4985: * collect-osf.c collect2.c: Rename here as well. ! 4986: ! 4987: Thu Dec 12 04:15:22 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4988: ! 4989: * c-parse.y (stmt): Make asm alternatives allow expr. ! 4990: * c-typeck.c (c_expand_asm_operands): Get the STRING_CST from the expr. ! 4991: ! 4992: * c-parse.y (datadecl, datadecls, lineno_datadecl): New rules. ! 4993: (xdecls): Use them. ! 4994: ! 4995: Wed Dec 11 18:36:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 4996: ! 4997: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Just one definition; use ON_EXIT. ! 4998: Test for -1 and handle both kinds of table format. ! 4999: * gnulib2.c (__do_global_dtors): Check for -1... ! 5000: (__do_global_ctors): Dummy defn of ON_EXIT if no other defined. ! 5001: (__main): Do nothing if called again. ! 5002: (exit): Use EXIT_BODY if defined. ! 5003: * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__): ! 5004: Renamed from *_BEGIN__. Add -1 as first elt. ! 5005: (__CTOR_END__, __DTOR_END__): Add 0 as last elt. ! 5006: (ON_EXIT): Dummy defn if no other is defined. ! 5007: ! 5008: Wed Dec 11 18:08:36 1991 Mark Eichin (eichin at cygnus.com) ! 5009: ! 5010: * cp-parse.y (template_parm): removed some reduce/reduce conflicts ! 5011: by noting which of identifier or identifier_defn would actually be ! 5012: passed up in this context. ! 5013: ! 5014: Wed Dec 11 17:52:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5015: ! 5016: * flow.c (propagate_block): Adjust loop depth if it is changed in ! 5017: notes at the end of a block. ! 5018: Abort if loop depth ever reaches zero. ! 5019: ! 5020: Wed Dec 11 16:30:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 5021: ! 5022: * cccp.c (do_endif): Don't call record_control_macro at top level. ! 5023: ! 5024: Wed Dec 11 14:45:42 1991 Mark Eichin (eichin at cygnus.com) ! 5025: ! 5026: * cp-decl.c (set_identifier_type_value): If we're in a ! 5027: class_binding_level, shadow the type there. ! 5028: (xref_defn_tag): New function. Calls xref_tag with special flag set ! 5029: to indicate that we know we're defining something. ! 5030: (pushdecl_top_level): if class_binding_level is set, search from it ! 5031: instead of only from current_binding_level when trying to find ! 5032: shadowed values. This is in support of tests m5.cc through m8.cc, ! 5033: which broke after the changes for m9.cc were installed. ! 5034: ! 5035: * cp-spew.c (do_aggr): New function. Looks ahead from AGGR to see if ! 5036: we have AGGR identifier { or AGGR identifier : which are both ! 5037: definitions, and passes up identifier_DEFN instead. This is in ! 5038: support of test m9.cc. ! 5039: (yylex): add SPEW_DEBUG case after EMPTY, so we don't have gaps in ! 5040: the displayed stream. ! 5041: (yylex, case AGGR): added call to do_aggr. ! 5042: (debug_yychar): added call to debug_yytranslate for proper ! 5043: translations. ! 5044: ! 5045: * cp-parse.y (debug_yytranslate): New function to support SPEW_DEBUG ! 5046: translations. ! 5047: (TYPENAME_DEFN): new token, TYPENAME seen by do_aggr. ! 5048: (IDENTIFIER_DEFN): new token, ditto. ! 5049: (PTYPENAME_DEFN): new token, ditto. ! 5050: (identifier_defn): corresponds to identifier, but when the ! 5051: identifier has been seen by do_aggr. ! 5052: (named_class_head_sans_basetype_defn): specially recognize aggr ! 5053: identifier_defn. ! 5054: (named_class_head): add parallel clauses calling xref_tag_defn when ! 5055: we know we're defining this aggr. ! 5056: (named_class_head_sans_basetype_defn_either): for when we don't care ! 5057: if it is a defn or not (such as templates) ! 5058: (identifier_either): ditto. ! 5059: ! 5060: * cp-tree.h (xref_defn_tag): New declaration. ! 5061: ! 5062: Wed Dec 11 12:37:51 1991 Ken Raeburn ([email protected]) ! 5063: ! 5064: * cp-parse.y (label_colon): New nonterminal, with all label prefixes ! 5065: from "stmt" moved here. ! 5066: (stmt): Use it. Also provide useful message for label followed by ! 5067: end of block (close-brace). ! 5068: ! 5069: * cp-init.c (BIVN): Deleted unused variable. ! 5070: * cp-decl.c (init_decl_processing): Don't declare function ! 5071: __builtin_vec_new; it's never used. ! 5072: ! 5073: Wed Dec 11 10:59:48 1991 Michael Meissner (meissner at osf.org) ! 5074: ! 5075: * toplev.c (main): Complete last change from RMS, use variable ! 5076: 'level' which used to be named 'arg'. ! 5077: ! 5078: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Don't reference ON_EXIT for ! 5079: those poor systems without atexit or on_exit. ! 5080: ! 5081: Wed Dec 11 09:06:52 1991 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu) ! 5082: ! 5083: * m68k.c (output_function_prologue, output_function_epilogue): ! 5084: When saving/restoring only 2 registers, do so with two "movel" ! 5085: instructions instead of a single "moveml". This results in ! 5086: faster code for the 68020 and later machines. ! 5087: ! 5088: Wed Dec 11 06:45:08 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5089: ! 5090: * x-romp (MAKE): Add definition; the supplied `make' doesn't define it. ! 5091: ! 5092: Tue Dec 10 22:17:50 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5093: ! 5094: * combine.c (try_combine): Always make a copy of I2's pattern if ! 5095: it will be used in a PARALLEL (`added_sets_2' nonzero). ! 5096: ! 5097: * Makefile.in (BOOT_CFLAGS): New parameter. ! 5098: (bootstrap*): Use it. ! 5099: ! 5100: * flow.c (find_basic_blocks): Set depth of last insn, not first, ! 5101: into basic_block_loop_depth. ! 5102: (propagate_blocks): Use consistently with new definition. ! 5103: ! 5104: * cse.c (cse_end_of_basic_block, cse_basic_block): Remove previous ! 5105: change; it can cause loops following around branches. ! 5106: ! 5107: * Makefile.in (USER_H): Add va-hp9k8.h. ! 5108: ! 5109: Tue Dec 10 17:22:01 1991 Tom Wood (wood at dg-rtp.dg.com) ! 5110: ! 5111: * m88k*.h: Include svr3.h as the default. m88kv4.h and m88kdgux.h ! 5112: include svr4.h. Override svr[34].h as needed. ! 5113: * t-m88k, t-m88kv4: Specify EXTRA_PARTS. ! 5114: ! 5115: * m88k.c (uses_arg_area_p): Check current_function_varargs. ! 5116: ! 5117: Tue Dec 10 15:41:03 1991 Michael Meissner (meissner at osf.org) ! 5118: ! 5119: * osf-main.c (whole file): Delete, since the constructor stuff was ! 5120: moved to gnulib2.c. ! 5121: ! 5122: * Makefile.in (collect2, collect2.o): Change to use the default ! 5123: compiler to build collect2, instead of the newly built GCC, since ! 5124: otherwise, collect2 will create a circular dependency. Also, pass ! 5125: LDFLAGS when linking. ! 5126: ! 5127: * collect-osf.c (write_s_file): Change to the new way of doing ! 5128: constructors and destructors of having an end marker instead of a ! 5129: count. ! 5130: ! 5131: * collect.c (REAL_AS_PATH, REAL_LD_PATH, REAL_NM_PATH): New macros ! 5132: to allow cross compilers to specify where the real linker, ! 5133: assembler, and nm live. ! 5134: (NM_FLAGS): New macro to allow a configuration to change what flags ! 5135: get passed to nm. ! 5136: (alloca defines): Remove alloca defines, since config.h provides ! 5137: them. ! 5138: (write_hooks): Change to the new way of doing constructors and ! 5139: destructors of having an end marker instead of a count. Cast all ! 5140: alloca calls to be the appropriate pointer type. Put both ! 5141: constructors and destructors into the data section, because the MIPS ! 5142: tools do not like non-instructions in the .text section. ! 5143: ! 5144: * decrose.h (HAVE_ATEXIT): Define, OSF/1 has atexit. ! 5145: (FULL_PROTOTYPES, NO_CONST_IN_SYSCALL): Remove, no longer used. ! 5146: ! 5147: * encrose.h (HAVE_ATEXIT): Define, OSF/1 has atexit. ! 5148: (FULL_PROTOTYPES): Remove, no longer used. ! 5149: ! 5150: * i386rose.h (HAVE_ATEXIT): Define, OSF/1 has atexit. ! 5151: ! 5152: * t-decrose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer ! 5153: needed, since constructor/destructor support moved into gnulib2.c. ! 5154: ! 5155: * t-encrose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer ! 5156: needed, since constructor/destructor support moved into gnulib2.c. ! 5157: ! 5158: * t-i386rose (LIB2FUNCS_EXTRA): Remove, osf-main.c is no longer ! 5159: needed, since constructor/destructor support moved into gnulib2.c. ! 5160: ! 5161: * t-decstatn (CCLIBFLAGS, GNULIB2_CFLAGS): Define so that gnulib1 ! 5162: and gnulib2 are both compiled with -G 0, in case the users compiles ! 5163: and links this way. It also fixes a bug where the constructors and ! 5164: destructors that collect2 produces are in the big data section, but ! 5165: gnulib2 thinks they are in the small data section, because it only ! 5166: sees a pointer. ! 5167: (ld): Add -f to remove old ld link to collect2, if it exists. ! 5168: ! 5169: * t-mips (CCLIBFLAGS, GNULIB2_CFLAGS): Define so that gnulib1 ! 5170: and gnulib2 are both compiled with -G 0, in case the users compiles ! 5171: and links this way. It also fixes a bug where the constructors and ! 5172: destructors that collect2 produces are in the big data section, but ! 5173: gnulib2 thinks they are in the small data section, because it only ! 5174: sees a pointer. ! 5175: (ld): Add rule to link collect2 to ld. ! 5176: (EXTRA_PASSES): Build collect2 (aka ld). ! 5177: ! 5178: * xm-mips.h (alloca): If not GNU C, declare alloca to be char *. ! 5179: ! 5180: * mips-tfile.c (add_aux_sym_tir): Move code to record bitfield size, ! 5181: so that it agrees with MIPS ECOFF practice, rather than the ! 5182: documentation, which affects enum bitfields. Changes from Per ! 5183: Bothner. ! 5184: ! 5185: Tue Dec 10 14:10:10 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 5186: ! 5187: * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Get rid of __reverse_order, etc. ! 5188: * gnulib2.c (__do_global_dtors): Remove & before arrays. ! 5189: ! 5190: * configure: Set a default value for xm_file. ! 5191: Remove redundant defaulting of cpu_type. ! 5192: ! 5193: * svr4.h (ASM_DECLARE_FUNCTION_SIZE): Output internal label properly. ! 5194: ! 5195: * function.c (assign_parms): Set current_function_args_info. ! 5196: * output.h: Declare that var. ! 5197: * tree.h (BUILTIN_ARGS_INFO): Renamed from BUILT_IN_VARARGS. ! 5198: * expr.c (expand_builtin): Implement __builtin_args_info. ! 5199: * c-decl.c (init_decl_processing): Declare it. ! 5200: * va-i860.h: Use it. ! 5201: Also update order of elements in struct __va_ctl. ! 5202: ! 5203: * toplev.c (main): Eliminate -gsdb and -gdbx. ! 5204: Clean up setting of use_gdb_dbx_extensions. ! 5205: ! 5206: Tue Dec 10 10:33:58 1991 Tom Wood (wood at gen-rtx) ! 5207: ! 5208: * svr4.h (ASM_DECLARE_FUNCTION_SIZE): Use an internal label. ! 5209: ! 5210: Tue Dec 10 07:12:28 1991 James Van Artsdalen (james@raid) ! 5211: ! 5212: * Makefile.in (crtbegin.o, crtend.o): crstuff.c is in $(srcdir). ! 5213: ! 5214: Tue Dec 10 06:56:26 1991 Michael Tiemann (tiemann at cygnus.com) ! 5215: ! 5216: * cp-decl.c (kept_level_p): New function, borrowed from c-decl.c. ! 5217: * cp-parse.y (compstmt): Call it. ! 5218: ! 5219: Mon Dec 9 18:37:32 1991 Ken Raeburn ([email protected]) ! 5220: ! 5221: * cp-decl.c (grok_enum_decls): Don't give warning for class-local ! 5222: enum types; this is a perfectly reasonable usage. ! 5223: ! 5224: Mon Dec 9 12:23:48 1991 Ron Guilmette (rfg at ncd.com) ! 5225: ! 5226: * toplev.c (main): Check that no extra chars follow the level # ! 5227: in a -gNNN option. Also check that the debugging level requested ! 5228: is between 0 and 3 (inclusive). ! 5229: ! 5230: Mon Dec 9 20:34:48 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 5231: ! 5232: * sched.c (schedule_block): Don't crash if `line' is zero. ! 5233: (schedule_insns): Initialize line_note_head. ! 5234: ! 5235: Mon Dec 9 15:31:46 1991 Michael Meissner (meissner at osf.org) ! 5236: ! 5237: * mips-tfile.c (pseudo_ops array): Correctly size the .stabs and ! 5238: .stabn elements. ! 5239: ! 5240: * mips.c (function_prologue, function_epilogue): Use assemble_name ! 5241: to print the current function, instead of fprintf, in case there is ! 5242: a leading '*'. ! 5243: ! 5244: * mips-news.h (CPP_PREDEFINES): Define news3700, not news7300. ! 5245: ! 5246: * mips.md (ashldi3_internal3): Fix typos. ! 5247: (ashrdi3_internal3): Ditto. ! 5248: (lshldi3_internal3): Ditto. ! 5249: ! 5250: Mon Dec 9 11:49:52 1991 Torbjorn Granlund (tege at hal.gnu.ai.mit.edu) ! 5251: ! 5252: * longlong.h (__a29k__ udiv_qrnnd): Change "q" to "1" for operand ! 5253: 2 constraint. ! 5254: ! 5255: Mon Dec 9 11:22:58 1991 Ken Raeburn ([email protected]) ! 5256: ! 5257: * cp-typeck.c (build_x_function_call): A method might have type ! 5258: pointer-to-method as well. Don't build an OFFSET_REF for any ! 5259: "function" that already has pointer type. Only use ! 5260: DECL_CLASS_CONTEXT to find type of `this' for FUNCTION_DECLs; for ! 5261: method pointer expressions, look up the basetype of the method type. ! 5262: (build_unary_op): Fix comment in typo. ! 5263: ! 5264: * cp-tree.c: Fix typo in comment at start of file. ! 5265: ! 5266: Mon Dec 9 07:17:13 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5267: ! 5268: * cse.c (cse_insn): When a jump is converted to unconditional, ! 5269: delete the dead code, but leave the notes. ! 5270: (cse_basic_block, cse_end_of_basic_block): Some unconditional jumps are ! 5271: part of the basic block. ! 5272: (cse_basic_block): Add missing arg to cse_end_of_basic_block call. ! 5273: ! 5274: Mon Dec 9 07:16:15 1991 Ron Guilmette (rfg at ncd.com) ! 5275: ! 5276: * sys-types.h: New file. ! 5277: * sys-protos.h: New file. ! 5278: * SYSCALLS.c: Just include those files. ! 5279: ! 5280: * protoize.c (VOLATILE): Define this symbol conditionally so that ! 5281: it can be used to declare GNU `volatile' functions. ! 5282: (abort): Added VOLATILE extern declaration (but not if it's a macro). ! 5283: (kill, fork): Added extern declaration. ! 5284: (substr): Declare c as int. ! 5285: ! 5286: * gbl-ctors.h: New file. ! 5287: * crtstuff.c: Include gbl-ctors.h. ! 5288: (INIT_SECTION_ASM_OP): Delete default definition. ! 5289: Only compile .init section code if INIT_SECTION_ASM_OP is defined. ! 5290: (pointer): Globally changed to `func_ptr'. ! 5291: * Makefile.in (crtbegin.o, crtend.o, gnulib2): Depend on gbl-ctors.h. ! 5292: * gnulib2.c: Added definition of __builtin_saveregs for i860/svr4 ! 5293: and fixed up definition of __builtin_saveregs for i860/non-svr4. ! 5294: (__bb_avoid_warning): Added explicit return type. ! 5295: (__builtin_new, __builtin_vec_new, __builtin_delete, ! 5296: __builtin_vec_delete): Use `void*' where appropriate. ! 5297: (exit): Change conditional to ON_EXIT. Make dummy if no real exit. ! 5298: Include gbl-ctors.h. ! 5299: (__main): Change conditional to INIT_SECTION_ASM_OP. ! 5300: (__do_global_ctors): Conditional on INIT_SECTION_ASM_OP. ! 5301: Use DO_GLOBAL_CTORS_BODY for the guts. ! 5302: Include gbl-ctors.h. ! 5303: ! 5304: Mon Dec 9 01:07:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 5305: ! 5306: * fixinc.svr4: Don't change #ident or assertion tests. ! 5307: Don't install inline.h. ! 5308: ! 5309: * c-common.c (get_directive_line): Declare c as int. ! 5310: ! 5311: * configure: Create additional file tconfig.h. ! 5312: * protoize.c: Include that, not tm.h. ! 5313: * Makefile.in (protoize.o, unprotoize.o): Depend on tconfig.h. ! 5314: ! 5315: * svr4.h (HAVE_ATEXIT): Defined. ! 5316: * gnulib2.c (_main, exit): Use HAVE_ATEXIT to control use of atexit. ! 5317: ! 5318: * final.c (final_scan_insn): Output first and last note in a series. ! 5319: ! 5320: * objc-actions.c (build_objc_method_call): ! 5321: New arg LOOKUP_OBJECT. ! 5322: (build_message_expr): Pass RECEIVER for LOOKUP_OBJECT. ! 5323: Pass RECEIVER or self_decl as OBJECT. ! 5324: ! 5325: * unx386.h (PRINT_IMMED_PREFIX, PRINT_OFFSET_PREFIX): Deleted. ! 5326: ! 5327: * rtl.h: Undef FLOAT. ! 5328: ! 5329: * svr4.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_SIZE): ! 5330: Fix typo. ! 5331: ! 5332: Sun Dec 8 21:46:51 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 5333: ! 5334: * protoize.c (main): Declare `value'. ! 5335: (abspath): Declare endp. Declare and set outp and inp. ! 5336: ! 5337: * cp-decl.c (sigsegv): Function deleted. ! 5338: (init_decl_processing): Don't use it. ! 5339: Also don't include signal.h. ! 5340: ! 5341: * t-svr4: New file. ! 5342: * configure (i386-*-sysv4*, i860-*-sysv4*): Use that file. ! 5343: ! 5344: Sun Dec 8 12:01:36 1991 Ron Guilmette (rfg at ncd.com) ! 5345: ! 5346: * fixinc.svr4: New file. ! 5347: ! 5348: * final.c (profile_function): Specify return type. ! 5349: (get_attr_length): Added a return statement to prevent warnings. ! 5350: ! 5351: * final.c (final_scan_insn): Switch to .text section before output ! 5352: of jumptable lable (if requested by JUMP_TABLES_IN_TEXT_SECTION). ! 5353: Don't switch sections again after the label. ! 5354: ! 5355: * configure (i386-*-sysv*): Configuration deleted. ! 5356: (i386-*-sysv3, i386-*-sysv4, i860-*-sysv3, i860-*-sysv4): ! 5357: Added assignment to `tmake_file' (to pick up def of EXTRA_PARTS). ! 5358: (i860-*-sysv3, i860-*-sysv4): Added assignment to `xmake-file'. ! 5359: (i860-*-sysv3): Deleted bogus GAS related stuff. ! 5360: ! 5361: * combine.c (combinable_i3pat): Added explicit return type. ! 5362: ! 5363: * i860.h (TARGET_FPU): Deleted this target flag. i860 fpu is on chip. ! 5364: (TARGET_XP): New target flag for XR and XP models. ! 5365: (TARGET_FLAGS, HARD_REGNO_MODE_OK): Adjusted for above changes. ! 5366: (REG_ALLOC_ORDER): Use first the regs less likely for other purposes. ! 5367: (LITERAL_COMPARE_BETTER_UNSIGNED): Defined. ! 5368: (BRANCH_COST): Defined. ! 5369: (CC_ONLY_*): Deleted these obsolete defines. ! 5370: (CC_NEGATED): Added for IEEE behavior with cmpgesf and cmplesf. ! 5371: (ASM_OUTPUT_CASE_LABEL): ! 5372: Added .align so assembler doesn't barf on subsequent .long(s). ! 5373: (FLOAT_TYPE_VALUE, INTIFY, FLOATIFY, FLOAT_ARG_TYPE): ! 5374: Added definitions needed to build a useable gnulib1 library. ! 5375: ! 5376: * i860.md: Removed all references to CC_ONLY_* symbols. ! 5377: (cmpledf, cmpgedf): Adjusted assembler code as suggested ! 5378: by i860 manuals, for IEEE results. ! 5379: (cbranch, flipped_cbranch, inverse_cbranch, flipped_inverse_cbranch): ! 5380: Check for CC_NEGATED. ! 5381: (bte, btne patterns): Complete rewrite. ! 5382: (anonymous sign-extend patterns): Moved before the named patterns. ! 5383: ! 5384: * i860.md (addsi3, subsi3): Disparaged alternatives with a floating- ! 5385: pointer input register to avoid complicated reloading problem. ! 5386: (negsi2): Deleted bogus `I' constraint on operand 1. ! 5387: (divdf3, divsf3): Added additional continuation characters ! 5388: needed to make lines acceptable to `read_rtx' in the gen* programs. ! 5389: ! 5390: * i860.c: Include "flags.h" to get access to `optimize' flag. ! 5391: (leaf_function_p): Added extern declaration. ! 5392: (zero_operand): New function. ! 5393: (must_preserve_r1, must_preserve_bytes): New variables. ! 5394: (function_prologue, function_epilogue): ! 5395: Support treatment of return-address reg (r1) in leaf functions. ! 5396: ! 5397: * i860v4.h (CPP_PREDEFINES): Add pre-assertions for i860/svr4. ! 5398: (CPP_SPEC): Deleted definition. ! 5399: (TYPE_OPERAND_FMT): New definition. ! 5400: (ASM_OUTPUT_FUNCTION_PREFIX): #undef before defining. ! 5401: (ASM_OUTPUT_EPILOGUE_SUFFIX): Deleted obsolete macro. ! 5402: (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, ! 5403: TDESC_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ! 5404: TDESC_SECTION_FUNCTION): Definitions added. ! 5405: ! 5406: * i860v3.h: Complete rewrite. Uses svr3.h. ! 5407: ! 5408: * i386v4.h: Don't include i386v.h. Include i386.h instead. ! 5409: (SDB_DEBUGGING_INFO): #undef deleted. ! 5410: (ASM_OUTPUT_DWARF_STRING): Added definition. ! 5411: ! 5412: * gcc.c (default_compilers): Pass -g* options to cpp. ! 5413: ! 5414: * gcc.c (do_spec_1): Don't duplicate -A options in CPP_PREDEFINES. ! 5415: ! 5416: * gnulib2.c (exit, __main, __do_global_dtors, __do_global_ctors): ! 5417: New functions. ! 5418: ! 5419: * i386.h (PRINT_IMMED_PREFIX, PRINT_OFFSET_PREFIX): ! 5420: Define here, and use IP. ! 5421: ! 5422: * i386.h: Don't include syms.h or define FILNMLEN. ! 5423: ! 5424: * x-i860v3, x-i860v4: New files. ! 5425: * x-i386v4 (CCLIBFLAGS, GCC_CFLAGS): Added definitions. ! 5426: ! 5427: * xm-svr3.h: New file. ! 5428: * xm-i86v3.h, xm-i86v4.h, xm-i386v.h: Rewritten. ! 5429: * xm-i38v4.h: New file. ! 5430: ! 5431: * svr4.h (LIB_SPEC): Make crtend.o come before any *crtn.o ! 5432: file (to avoid hitting return without standard epilogue in .init code). ! 5433: (INIT_SECTION_ASM_OP): Added definition for crtstuff.c (and friends). ! 5434: (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): ! 5435: Adjusted indentation of continuations to match those in rest of file. ! 5436: ! 5437: * svr3.h (CPP_PREDEFINES): Don't define this here. ! 5438: (ASM_FILE_START_1): Provide no-op default definition. ! 5439: (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Undef these before defining. ! 5440: (INT_ASM_OP, USE_CONST_SECTION, INIT_SECTION_ASM_OP, ! 5441: CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, ! 5442: EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, READONLY_DATA_SECTION, ! 5443: CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION, ! 5444: ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR, SELECT_SECTION, ! 5445: SELECT_RTX_SECTION): Definitions added. ! 5446: ! 5447: Sun Dec 8 15:27:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 5448: ! 5449: * next.c (handle_pragma): Use get_directive_line. ! 5450: ! 5451: * gnulib2.c (__do_global_dtors, __do_global_ctors): ! 5452: Remove the feature to control the order of execution. ! 5453: This is not a clean solution to the overall problem. ! 5454: ! 5455: Sun Dec 8 14:47:44 1991 Michael Meissner (meissner at osf.org) ! 5456: ! 5457: * mips-tfile.c (toplevel, add_local_symbol, parse_stabs_common): ! 5458: More changes for smuggling stabs through from [email protected] and ! 5459: [email protected]. ! 5460: ! 5461: * mips.h (ignore_line_number): New global, set when we must avoid ! 5462: putting out a MIPS ECOFF .loc because the file changed inside of a ! 5463: function, and we are also putting out stabs, which can handle this. ! 5464: (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Define to put a comment ! 5465: in front of the pseudo op, if we are encapsulating stabs in MIPS ! 5466: ECOFF. ! 5467: (ASM_OUTPUT_SOURCE_FILENAME): Change to call mips_output_filename. ! 5468: (ASM_OUTPUT_SOURCE_LINE): change to call mips_output_lineno. ! 5469: ! 5470: * mips.c (toplevel): Include stab.h for encapsulating stabs. ! 5471: (ignore_line_number): New global variable. ! 5472: (reg_or_0_operand): Call register_operand for REG's as well as ! 5473: SUBREG's. ! 5474: (override_option): Don't allow ints in FP registers unless -mdebugh. ! 5475: (mips_output_filename): New function to write the filename to the ! 5476: assembler output. Add special support for encapsulating .stabs in ! 5477: MIPS ECOFF. ! 5478: (mips_output_lineno): New function to write the line number to the ! 5479: assembler output. Add special support for encapsulating .stabs in ! 5480: MIPS ECOFF. ! 5481: (function_epilogue): Clear ignore_line_number. ! 5482: ! 5483: * mips.md (fix_trunc??si_opt, mov??_internal): Change '!' constraint ! 5484: back to '*'. ! 5485: ! 5486: Sat Dec 7 16:58:57 1991 Ken Raeburn ([email protected]) ! 5487: ! 5488: * cp-spew.c (scan_tokens): Stop scanning at semi-colon. ! 5489: ! 5490: * cp-spew.c: Made SPEW_DEBUG code useable: ! 5491: (yylex): Use stderr in SPEW_DEBUG code. ! 5492: (yytags): Deleted table. ! 5493: (debug_yychar): Print to stderr, and don't try finding translations ! 5494: for values over 256. ! 5495: ! 5496: * cp-class.c (push_lang_context): Fix typo in comment. ! 5497: ! 5498: * cp-decl.c (finish_decl): Undo `pushclass' done in start_decl for ! 5499: top-level decls of methods. ! 5500: ! 5501: * cp-lex.c (restore_pending_input): Cast 0 to pointer type for ! 5502: obstack_free. ! 5503: ! 5504: * cp-pt.c (do_pending_expansions): Use TREE_USED instead of ! 5505: TREE_ADDRESSABLE for functions. Put in comments explaining why we ! 5506: compile unused methods of classes that are interface-unknown: the ! 5507: file initializer/cleanup functions might need them. ! 5508: (mumblefrotz): Delete unused function; this code is in cp-parse.y. ! 5509: ! 5510: Sat Dec 7 15:46:55 1991 Timothy Moore ([email protected]) ! 5511: ! 5512: * function.c: Handle ARGS_GROW_DOWNWARD. ! 5513: (pad_below, pad_to_arg_alignment, round_down): New subroutines. ! 5514: (locate_and_pad_parm): Use them, for the existing case. ! 5515: Also handle the ARGS_GROW_DOWNWARD case, using them. ! 5516: ! 5517: Sat Dec 7 15:46:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 5518: ! 5519: * tree.h (DECL_ARG_TYPE_AS_WRITTEN): New macro. ! 5520: * c-decl.c (grokdeclarator): Store value there. ! 5521: ! 5522: * m68k.c (output_function_prologue, output_function_epilogue): ! 5523: Support MOTOROLA syntax. ! 5524: ! 5525: * toplev.c (main): Testing for -ggdb catches -g also. ! 5526: Default use_gdb_dbx_extensions to 1 for -gstabs, 0 for -gdbx. ! 5527: Specified default is for -g. ! 5528: ! 5529: * cccp.c (handle_directive): Store start address in directive_start. ! 5530: (do_xifdef): Use that, checking if at start of file. ! 5531: (do_endif): Compute ep properly. ! 5532: ! 5533: * protoize.c (abspath): Fix errors referencing argument cwd. ! 5534: (main): Allocate big enough buffer for getcwd. ! 5535: Don't clobber varargs_style_indicator, copy it. ! 5536: (savestring): New function. ! 5537: ! 5538: Sat Dec 7 00:53:16 1991 Ron Guilmette (rfg at ncd.com) ! 5539: ! 5540: * c-decl.c (warn_redundant_decls, warn_nested_externs): New vars. ! 5541: (c_decode_option): Support -Wredundant-decls and -Wnested-externs. ! 5542: (pushdecl): Print those warnings. ! 5543: * c-tree.h (warn_redundant_decls, warn_nested_externs): Declared. ! 5544: ! 5545: * c-decl.c (pending_xref_error, c_mark_varargs): Added return type. ! 5546: ! 5547: * cccp.c (main): Added code to support the presence of -A (assertion) ! 5548: options within CPP_PREDEFINES. ! 5549: ! 5550: * c-lang.c: Minor cleanups. ! 5551: ! 5552: * c-lex.c (check_newline): Added support for the -g3 option. ! 5553: ! 5554: * dwarfout.c (type_tag): Fixed bug in gcc Dwarf generation for ! 5555: tagged types. ! 5556: ! 5557: * dwarfout.c (output_decl): Added two pre-checks to see if nodes ! 5558: are ERROR_MARK nodes before using them. ! 5559: ! 5560: * dwarfout.c (generate_new_sfname_entry): Function added. ! 5561: ! 5562: * dwarfout.c (lookup_filename): Call generate_new_sfname_entry ! 5563: as soon as each new source filename is added to the list of ! 5564: known filenames (thus avoiding an m68k forward-ref assembler bug). ! 5565: ! 5566: * dwarfout.c (dwarfout_line): Initialize prev_file_entry_num to ! 5567: (unsigned) -1 rather than zero to avoid bogus suppression of ! 5568: first .debug_sfnames section entry. ! 5569: ! 5570: * dwarfout.c (compare_filename_entries): Function deleted. (It's ! 5571: no longer needed.) ! 5572: ! 5573: * dwarfout.c (dwarfout_finish): Don't generate .debug_sfnames ! 5574: section entries here anymore. (See lookup_filename.) ! 5575: ! 5576: * Makefile.in (realclean): Delete c-parse.h. ! 5577: Delete objc-parse.output just once. ! 5578: ! 5579: Fri Dec 6 17:49:28 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5580: ! 5581: * cse.c (FIXED_BASE_PLUS_P): The frame or argument pointer itself is ! 5582: a fixed address. ! 5583: (find_comparison_args): If we find something equivalent to a ! 5584: fixed address, return the fixed address. ! 5585: ! 5586: * combine.c (try_combine): Don't access new_i2_notes if it hasn't been ! 5587: defined (it isn't defined unless newi2pat != 0). ! 5588: ! 5589: Fri Dec 6 16:01:02 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 5590: ! 5591: * rtl.h (enum reg_note): Define two new values REG_DEP_ANTI, ! 5592: REG_DEP_OUTPUT, which are used to mark LOG_LINKS. ! 5593: * rtl.c (reg_note_name): Likewise. ! 5594: (add_dependence): Return void. New parameter DEP_TYPE to indicate ! 5595: type of dependence. ! 5596: ! 5597: * sched.c: Major rewrite to delete much obsolete code, correct many ! 5598: comments, delete unused variables, etc. Modify all callers of ! 5599: add_dependence to pass new argument. Significant changes are: ! 5600: (reassign_dependence): Deleted, was unnecessary. ! 5601: (priority): Account for type of dependence when calculating ! 5602: priority. ! 5603: (flush_pending_lists): New function. Encapsulate code which makes ! 5604: dependencies between an INSN and every insn on the ! 5605: pending_read_insns and pending_write_insns lists. ! 5606: (rank_for_schedule): Account for type of dependence with last ! 5607: scheduled insn when deciding which ready insn to schedule next. ! 5608: (launch_link): Give all birthing insns the same priority. ! 5609: (schedule_block): Only sort the ready list once, after all ready ! 5610: insns have been added to it. ! 5611: (schedule_block): When deciding what REG_DEAD notes are needed on a ! 5612: just scheduled insns, process all sets first (sched_note_set) then ! 5613: process all uses (attach_deaths_insn). ! 5614: (attach_deaths): Simplified by above change. ! 5615: (sched_note_set): Likewise. ! 5616: (update_flow_info): Renamed from update_links, since it no longer ! 5617: does anything with LOG_LINKS. Sched_analyze_insn creates all ! 5618: necessary new LOG_LINKS already. ! 5619: (schedule_insn): Delete no op move insns after reload. ! 5620: ! 5621: Fri Dec 6 13:33:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 5622: ! 5623: * crtstuff.c: Give permission to link with non-free programs. ! 5624: ! 5625: * toplev.c (flag_inhibit_size_directive): New var and -f option. ! 5626: * svr4.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_SIZE): Use it. ! 5627: * Makefile.in (crtbegin.o, crtend.o): Use that option. Use -g1. ! 5628: ! 5629: Fri Dec 6 08:42:53 1991 Ron Guilmette (rfg at ncd.com) ! 5630: ! 5631: * Makefile.in (STAGESTUFF): Added __main and _exit to support g++. ! 5632: ! 5633: * c-common.c (c_expand_expr_stmt): Made return type explicit. ! 5634: ! 5635: * c-common.c: (get_directive_line): Function added to support -g3. ! 5636: ! 5637: Fri Dec 6 04:50:39 1991 Michael Tiemann (tiemann at cygnus.com) ! 5638: ! 5639: * cp-tree.h (OPERATOR_ASSIGN_CHARS_P): Flushed. ! 5640: * cp-decl.c (grok_op_properties): Flush OPERATOR_ASSIGN_CHARS_P. ! 5641: * cp-init.c (add_{friend,friends}): Ditto. ! 5642: ! 5643: Thu Dec 5 22:31:12 1991 Jeffrey A Law (law at super.super.org) ! 5644: ! 5645: * m68k.h (CONST_COSTS): Show that constants which can be easily ! 5646: generated are less expensive than most. ! 5647: ! 5648: * m68k.md (movsi): Use two instruction sequences to load constants ! 5649: which are just outside moveq's range (within 8 of moveq's range). ! 5650: Likewise for positive even constants within twice moveq's range. ! 5651: ! 5652: Thu Dec 5 20:17:13 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil) ! 5653: ! 5654: * config-gcc.com: Generate a file 'version.opt' which will be given ! 5655: to the VMS linker to put the gcc version number in the image ! 5656: header version number field. ! 5657: ! 5658: * make-cc1.com: Compile c-lex.c when building gcc and objc, and ! 5659: add c-lex.obj to the list of files given to the linker. ! 5660: Add version.opt to the list of files given to the linker. ! 5661: ! 5662: * make-cccp.com: Add version.opt to the list of files given to the ! 5663: linker. ! 5664: ! 5665: Thu Dec 5 23:04:20 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5666: ! 5667: * combine.c (make_extraction): Don't make a STRICT_LOW_PART of a MEM; ! 5668: clean up comments so they agree with the code. ! 5669: ! 5670: * combine.c (try_combine): Correct test for when we can safely change ! 5671: the mode of a pseudo; can't if it doesn't die in I3. ! 5672: ! 5673: * c-decl.c (WCHAR_TYPE_SIZE): Deleted; never used. ! 5674: * c-common.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Deleted, no longer needed. ! 5675: (combine_strings): Use size of `wchar_type_node' to get number of ! 5676: bytes in wchar_t. ! 5677: * next.h (WCHAR_TYPE_SIZE): Delete; no longer used. ! 5678: ! 5679: * cse.c (cse_main): Add new argument to cse_basic_block_call. ! 5680: Don't call cse_around_loop here. ! 5681: (cse_basic_block): Call cse_around_loop from here while we still ! 5682: have our arrays allocated. ! 5683: ! 5684: * combine.c (simplify_comparison): Fix error in last change; don't ! 5685: reference TEM before it is set. ! 5686: ! 5687: * toplev.c (fatal_insn_not_found): Flush all files before aborting. ! 5688: ! 5689: Thu Dec 5 21:42:29 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 5690: ! 5691: * objc-actions.c (build_objc_method_call): Eval OBJECT and SELECTOR ! 5692: only once. Always pass self_decl as self to the method. ! 5693: ! 5694: Thu Dec 5 14:52:16 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 5695: ! 5696: * ccrtstuff.c, gnulib2.c, protoize.c: Include tm.h not config.h, ! 5697: since these are complied for the target, host defines do not apply. ! 5698: ! 5699: Thu Dec 5 14:52:24 1991 Michael Meissner (meissner at osf.org) ! 5700: ! 5701: * dbxout.c (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): If ! 5702: not defined, define as .stabs/.stabn/.stabd respectively. Change ! 5703: all places emitting stabs to use the macros. ! 5704: * cp-decl2.c: Ditto. ! 5705: * cp-gc.c: Ditto. ! 5706: * final.c: Ditto. ! 5707: * varasm.c: Ditto. ! 5708: * gcc.texinfo: Document ASM_STAB[DNS]_OP macros. ! 5709: ! 5710: Thu Dec 5 12:03:40 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 5711: ! 5712: * gcc.c (process_command): Don't put `.' on startfile_prefix. ! 5713: Cast result of alloca. ! 5714: ! 5715: * config/*.h (ASM_OUTPUT_ASCII): Put parens around all uses of args. ! 5716: ! 5717: * hp800.h, hp800.c, hp800.md, xm-hp800.h: New files. ! 5718: * va-hp800.h: New file. ! 5719: * gvarargs.h: Use va-hp800.h if needed. ! 5720: * config.subr, configure: Add alternatives for hp800, hp700. ! 5721: ! 5722: Thu Dec 5 09:35:15 1991 Michael Tiemann (tiemann at cygnus.com) ! 5723: ! 5724: * cp-search.c (note_debug_info_needed): Do the right thing for ! 5725: static member functions. ! 5726: ! 5727: Thu Dec 5 01:25:13 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) ! 5728: ! 5729: * version.c: Now 1.96. ! 5730: ! 5731: Wed Dec 4 23:17:23 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5732: ! 5733: * reorg.c (try_merge_delay_insns, fill_simple_delay_slots): Correctly ! 5734: update NEXT_TRIAL after possibly splitting an insn. ! 5735: ! 5736: Wed Dec 4 17:03:11 1991 Jim Wilson (wilson at sphagnum.cygnus.com) ! 5737: ! 5738: * gplus.gperf: Add throw and template keywords. Update private, ! 5739: protected, and public definitions. ! 5740: ! 5741: * print-tree.c (print_node): Add missing indentation argument to ! 5742: print_node call for values field. ! 5743: ! 5744: Wed Dec 4 18:39:33 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 5745: ! 5746: * objc-actions.c (build_objc_method_call): Define as static. ! 5747: ! 5748: Wed Dec 4 17:04:49 1991 Michael Meissner (meissner at osf.org) ! 5749: ! 5750: * mips-tfile.c (add_varray_page, alloc_type enum): Keep track of how ! 5751: many pages we allocated for varrays as well as the small stuff. ! 5752: (stabs_filename): New static to hold the special filename used for ! 5753: passing stabs through. ! 5754: (parse_stabs_common, parse_stabs, parse_stabn): New functions to ! 5755: smuggle stabs through to the debugger. Stabs must be commented out, ! 5756: just like the other debug directives. ! 5757: (add_local_symbol): Check hash_ptr to see if it's null before ! 5758: storing into it, in case no name is passed. ! 5759: (add_file): Add support for the special stabs file. ! 5760: (copy_object): Before copying the external symbols, figure out the ! 5761: file indexes of each of the files, and then explicitly remap the ! 5762: original file indexes of the external symbol to be the new file ! 5763: index. If this isn't done, then bad file numbers can get generated ! 5764: if a filename is repeated. ! 5765: (various): Change the name of small_alloc to alloc_counts, since we ! 5766: now track large memory allocations as well. ! 5767: ! 5768: * mips-tdump.c (toplevel): Delete unnecessary include file stamp.h. ! 5769: ! 5770: Wed Dec 4 11:05:04 1991 Michael Collison (collison at osf.org) ! 5771: ! 5772: * encore.h (ASM_OUTPUT_LABELREF_AS_INT): add definition ! 5773: * ns32k.h: ditto ! 5774: ! 5775: * ns32k.h (ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL): If COLLECT is ! 5776: defined provide alternate definitions ! 5777: ! 5778: * encrose.h (ASM_OUTPUT_INT): If COLLECT is defined provide ! 5779: alternate definition ! 5780: ! 5781: Wed Dec 4 01:39:07 1991 Ken Raeburn ([email protected]) ! 5782: ! 5783: * cp-pt.c (end_template_decl): For method templates, pop the class ! 5784: binding level before the others rather than after. ! 5785: ! 5786: * cp-class.c: Added DEBUG_CP_BINDING_LEVELS code. Include cp-decl.h ! 5787: if that symbol is defined, but don't list it in Makefile.in since ! 5788: that's not the normal mode. ! 5789: (pushclass): Print messages and frob indentation level. ! 5790: (popclass): Likewise. ! 5791: ! 5792: * cp-spew.c (yylex): If identifier_type says PTYPENAME, and ! 5793: following token is "<", force looking_for_typename to be ! 5794: non-negative. ! 5795: ! 5796: * cp-pt.c (mangle_class_name_for_template): Drop extra spaces ! 5797: between last parm and closing ">". Print a message before aborting ! 5798: if a parm type isn't handled. ! 5799: ! 5800: * cp-decl.c (maybe_globalize_type): Don't do it if the identifier ! 5801: that names the type doesn't currently have a type value. ! 5802: ! 5803: Wed Dec 4 01:06:28 1991 Michael Tiemann (tiemann at cygnus.com) ! 5804: ! 5805: * cp-decl.c (finish_enum): Call `rest_of_type_compilation' for ! 5806: ENUMTYPE. ! 5807: * cp-class.c (finish_struct): Ditto. ! 5808: * cp-decl.c (pushtag): Set TYPE_STUB_DECL. ! 5809: * cp-search.c (note_debug_info_needed): Call ! 5810: `rest_of_type_compilation' if we notice we need debug info for TYPE. ! 5811: * dbxout.c (dbxout_init): Fix typo in comment. ! 5812: ! 5813: * cp-parse.y (DOT_STAR): New token. ! 5814: (expr_no_commas): Handle DOT_STAR expressions. ! 5815: * cp-lex.c (real_yylex): Recognize DOT_STAR. Also, rearrange ! 5816: scanner to make it more efficient. ! 5817: ! 5818: * cp-decl.c (maybe_build_cleanup): When building cleanups, pass ! 5819: TYPE_MAIN_VARIANT to `build_delete'. ! 5820: ! 5821: Tue Dec 3 22:52:33 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 5822: ! 5823: * flow.c (mark_set_1): Make a REG_UNUSED note not a REG_DEAD note ! 5824: for the part of multi-word hard registers not needed. ! 5825: ! 5826: Tue Dec 3 22:34:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 5827: ! 5828: * configure: Support --objdir. ! 5829: ! 5830: * objc-parse.y: Get rid of many static decls. ! 5831: Reorder all token definitions to match c-parse.y. ! 5832: (recognize_objc_keyword): New function. ! 5833: * c-lex.c (token_buffer): No longer static. ! 5834: (yylex): For @, call recognize_objc_keyword. Don't use keyword table. ! 5835: * c-lang.c (recognize_objc_keyword): Dummy definition. ! 5836: ! 5837: * objc-actions.c (build_objc_method_call) [!NEXT_OBJC_RUNTIME]: ! 5838: Pass selector as arg to the method. ! 5839: Always cast the method to a function type. ! 5840: ! 5841: * xm-sparc.h (alloca): If using Sun CC, include alloca.h. ! 5842: If using GCC, define as __builtin_alloca the way other machines do. ! 5843: ! 5844: * cccp.c (print_containing_files): Print the nominal file names. ! 5845: ! 5846: Tue Dec 3 16:54:04 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 5847: ! 5848: * jump.c (jump_optimize): If branches are expensive, convert jumps ! 5849: around increments or decrements by one into an increment by the ! 5850: conditional expression. ! 5851: ! 5852: * combine.c (simplify_comparison): Don't remove a SUBREG unless ! 5853: it doesn't affect either operand. ! 5854: ! 5855: * cse.c (find_comparison_args): Rework so that we can correctly ! 5856: fold comparisons on machines that set CC0 to the result of a ! 5857: condition test, not just a COMPARE. ! 5858: (cse_insn): Don't set THIS_INSN_CC0 to a constant if we don't know ! 5859: its mode. ! 5860: ! 5861: Tue Dec 3 12:01:12 1991 Jim Wilson (wilson at sphagnum.cygnus.com) ! 5862: ! 5863: * mips.md: Use AND not IOR in define_function_unit definitions. ! 5864: Correct setting of MODE attribute in various insn patterns. ! 5865: ! 5866: Tue Dec 3 08:31:18 1991 Michael Tiemann (tiemann at cygnus.com) ! 5867: ! 5868: * cp-spew.c (scan_tokens): Delete Dec 2 change. ! 5869: (yylex): Instead, copy TMP_TOKEN.YYLVAL.TTYPE if it was allocated on ! 5870: the wrong obstack. ! 5871: (probe_obstack): New function to support the above change. ! 5872: ! 5873: * cp-tree.h (CLASSTYPE_DEBUG_REQUESTED): New flag. ! 5874: (CLASSTYPE_ASM_WRITTEN): Deleted. ! 5875: cp-class.c (finish_struct): Now almost always assume that classes ! 5876: with methods are to ignored for debugging purposes. ! 5877: cp-search.c (dfs_debug_{mark,unmarkedp}): Rewritten to handle new ! 5878: algorithm for minimizing debug output. ! 5879: ! 5880: * cp-decl2.c (constructor_name): Handle case when THING is a ! 5881: UNION_TYPE. ! 5882: ! 5883: Tue Dec 3 06:35:38 1991 Michael Tiemann (tiemann at cygnus.com) ! 5884: ! 5885: * jump.c (duplicate_look_exit_test): If REG_MAP is non-zero, call ! 5886: replace_regs on the REG_NOTES of COPY. ! 5887: ! 5888: * cp-spew.c (scan_tokens): Don't read past '='. ! 5889: ! 5890: * cp-call.c (compute_conversion_costs): For now, treat ! 5891: CONTRAVARIANCE_HARSHNESS as EVIL_HARSNESS, since we cannot tell the ! 5892: difference between when we should accept it (pointers to the right ! 5893: sort of methods) and when we shouldn't (base* to derived* ! 5894: conversions). ! 5895: ! 5896: Mon Dec 2 18:53:42 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 5897: ! 5898: * cse.c (cse_around_loop): Fix typo in comment. ! 5899: * dbxout.c (dbxout_type_fields): Likewise. ! 5900: ! 5901: * sched.c (sched_analyze_1): Pass the second and third args of a ! 5902: ZERO_EXTRACT or SIGN_EXTRACT in the SET_DEST to sched_analyze_2. ! 5903: ! 5904: * combine.c (make_compound_operation): Change (lshiftrt (ashift ...)) ! 5905: to a ZERO_EXTRACT, not a SIGN_EXTRACT. ! 5906: ! 5907: Mon Dec 2 15:09:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 5908: ! 5909: * jump.c (jump_optimize): New arg AFTER_REGSCAN. ! 5910: If not set, don't use duplicate_loop_exit_test. ! 5911: * toplev.c (compile_file): Pass new arg to jump_optimize. ! 5912: ! 5913: * next.h (SELECT_SECTION): Test TREE_CONSTANT as well as TREE_READONLY. ! 5914: ! 5915: * xm-i86v[34].h: Renamed from xm-i860v[34].h. ! 5916: * configure: Corresponding changes. ! 5917: ! 5918: * m68k.c (output_function_epilogue): Put %R on all regs in asm_fprintf. ! 5919: ! 5920: * t-decstatn (ld): Just copy collect2. ! 5921: (collect): Target deleted. ! 5922: (EXTRA_PASSES): Deleted collect. ! 5923: (mips-tfile, mips-tdump): Depend on LIBDEPS. ! 5924: * t-mips (mips-tfile, mips-tdump): Depend on LIBDEPS. ! 5925: * collect2.c (main): Run /bin/ld. ! 5926: Use fatal_perror where appropriate. ! 5927: ! 5928: * objc-actions.c (build_message_expr): Fix typo. ! 5929: ! 5930: * configure: Add missing fi to finish last change. ! 5931: ! 5932: * cse.c (simplify_binary_operation): Restore missing break in case DIV. ! 5933: ! 5934: * sdbout.c (sdbout_init): Explicitly do nothing. ! 5935: (sdbout_typedefs): Function deleted. ! 5936: ! 5937: Mon Dec 2 12:504:35 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil) ! 5938: ! 5939: * config-gcc.com: Finish changeover from tm-*.h to *.h. ! 5940: ! 5941: Sun Dec 1 05:18:32 1991 Michael Tiemann (tiemann at cygnus.com) ! 5942: ! 5943: * cp-search.c (lookup_{field,fnfields}): If PROTECT is 0, don't ! 5944: memoize the entry we find. ! 5945: ! 5946: * cp-decl.c (grokvardecl): Call `build_lang_field_decl' instead of ! 5947: `build_decl' if we retroactively allocate a VAR_DECL. ! 5948: ! 5949: Sun Dec 1 00:10:18 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 5950: ! 5951: * configure: Convert option syntax from + to --. ! 5952: Support --target. ! 5953: ! 5954: * i386v4.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_GLOBAL): Deleted. ! 5955: (ASM_FILE_START): Deleted. ! 5956: (STARTFILE_SPEC, LIB_SPEC, STANDARD_STARTFILE_PREFIX): Deleted. ! 5957: (STDC_VALUE): Deleted. ! 5958: ! 5959: * real.h (REAL_VALUE_TRUNCATE): Check for same size as SFmode. ! 5960: ! 5961: * config/*.h: Renamed from tm-*.h. #includes and comments changed. ! 5962: * configure: Changed accordingly. ! 5963: * t-*: tm-*.h file names changed. ! 5964: ! 5965: * gnulib2.c (__enable_execute_stack): Renamed function. ! 5966: * convex.h (INITIALIZE_TRAMPOLINE): Use new name. ! 5967: ! 5968: Sun Dec 1 08:57:45 1991 Michael Meissner (meissner at osf.org) ! 5969: ! 5970: * cccp.c (main): Add cast in front of alloca for non GCC compilers. ! 5971: ! 5972: Sat Nov 30 22:33:24 1991 Chris Smith ([email protected]) ! 5973: ! 5974: * config.subr: Recognize -c3*. ! 5975: New alternatives for convex-c3*. ! 5976: * configure: Alternatives for convex rewritten. ! 5977: ! 5978: * gnulib2.c (__execute_enable_stack): New function for Convex only. ! 5979: ! 5980: * gcc.c (do_spec_1): Use \ as quoting char. ! 5981: ! 5982: * convex.h (TARGET_SWITCHES): Add new machine types c32, c34, c38. ! 5983: Add flag TARGET_INDIRECTS, true for c1 and c2, false for c3. ! 5984: * convex.h (GO_IF_LEGITIMATE_ADDRESS): Avoid indirect ! 5985: addressing if ! TARGET_INDIRECTS. ! 5986: ! 5987: * convex.h: (BITS_PER_WORD, UNITS_PER_WORD, WORDS_BIG_ENDIAN): ! 5988: It now works to describe machine correctly. ! 5989: ! 5990: * convex.h (SIZE_TYPE, PTRDIFF_TYPE): Make them ints rather ! 5991: than longs to match usage in /usr/include. ! 5992: ! 5993: * convex.h (enum reg_class): Add classes SP_REGS, the stack ! 5994: pointer, and INDEX_REGS, the remaining A_REGS. ! 5995: (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Adjust ! 5996: for new classes. ! 5997: (INDEX_REG_CLASS, BASE_REG_CLASS): Use INDEX_REGS so gcc will ! 5998: not index off the stack pointer (register 0). ! 5999: ! 6000: * convex.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, ! 6001: INITIALIZE_TRAMPOLINE): Define. ! 6002: ! 6003: * convex.h (INITIAL_FRAME_POINTER_OFFSET): Define. ! 6004: ! 6005: * convex.h (RTX_COSTS): Specify costs to prevent multiply ! 6006: from being synthesized from shifts (which aren't faster). ! 6007: ! 6008: * convex.h (NOTICE_UPDATE_CC): No need to do CC_STATUS_INIT, ! 6009: cc is never looked at. ! 6010: ! 6011: * convex.h (VTABLE_USES_MASK, VINDEX_MASK, SET_DECL_VINDEX): ! 6012: define so g++ works. ! 6013: ! 6014: * convex.h: If COLLECT is defined, define output macros for ! 6015: collect to call. ! 6016: ! 6017: * convex*.h: If !traditional, define _LONGLONG and 64-bit ! 6018: typedefs to prevent types.h from murdering ansi compilations. ! 6019: ! 6020: * convex.md (movsi): split into define_expand and two ! 6021: anonymous define_insns, one that uses indirection and ! 6022: one that doesn't. TARGET_INDIRECTS selects which. ! 6023: ! 6024: * convex.c (output_call): New routine. Scan forward from call ! 6025: to decide if AP is live, omit AP reload if not. ! 6026: * convex.md (call, call_value): use output_call. ! 6027: ! 6028: * convex.md (bit manipulation peepholes): remove, now done in ! 6029: combine. ! 6030: ! 6031: * convex.md (indirect_jump): Define. ! 6032: ! 6033: * convex.c (const_double_{high,low}_int): Just return the ! 6034: appropriate word, remove slow float computations. ! 6035: ! 6036: * math-convex: New file to use builtin instructions. ! 6037: ! 6038: * x-convex: Use cc -pcc to bootstrap gcc. ! 6039: ! 6040: Sat Nov 30 10:21:26 1991 Ron Guilmette (rfg at ncd.com) ! 6041: ! 6042: * tm-i386v4.h (DBX_REGISTER_NUMBER): Different renumbering. ! 6043: ! 6044: * tm-svr4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Changed ! 6045: so that the progbits parameter actually appears in the definitions. ! 6046: ! 6047: * tm-svr4.h (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Adapted ! 6048: for change in CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP. ! 6049: ! 6050: Sat Nov 30 07:05:06 1991 Michael Tiemann (tiemann at cygnus.com) ! 6051: ! 6052: * cp-spew.c (follows_{identifier,typename}): New arrays. ! 6053: * cp-spew.c (init_spew): Initialize new arrays. ! 6054: * cp-decl.c (lookup_name): takes new parameter PREFER_TYPE. ! 6055: All callers changed. ! 6056: * cp-spew.c (yylex): Set LOOKING_FOR_TYPENAME every time we see an ! 6057: AGGR or ENUM. ! 6058: ! 6059: * cp-lex.c (real_yylex): When composing EXTERN_LANG_STRING, call ! 6060: `real_yylex', not `yylex'. Changed other places that depended on ! 6061: calling `real_yylex' for their input. ! 6062: ! 6063: * cp-spew.c (scan_tokens): Never read past '{' or ':'. Fill the ! 6064: token buffer with EMPTY tokens in that case. ! 6065: (yylex): Handle EMPTY tokens. ! 6066: ! 6067: * cp-parse.y (structsp): Avoid using `yyungetc' to push a ';' back ! 6068: on the input stream. ! 6069: (START_DECLARATOR): New token. ! 6070: (absdcl): Handle START_DECLARATOR. ! 6071: * cp-spew.c (consume_token): Renamed from `discard_token'. ! 6072: (struct token): Changed structure to make it smaller. ! 6073: (spew_init): Renamed from init_spew. Now called from init_lex. ! 6074: (scan_tokens): Renamed from slurp_next_token. ! 6075: Many functions reformatted to match GCC indentation style. ! 6076: ! 6077: * cp-lex.c (arbitrate_lookup): Don't guess in favor of type if ! 6078: yychar is ')'. ! 6079: ! 6080: * cp-decl.c (lookup_name): Fixed so that all binding levels use ! 6081: `looking_for_typename' consistently. ! 6082: * cp-type2.c (build_functional_cast): Handle new case that we are ! 6083: called in a context where a method is appropriate (but we parsed it ! 6084: as a ctor call). ! 6085: ! 6086: * cp-call.c (CONST_HARSHNESS): Change bit that we test. ! 6087: (convert_harshness,compute_conversion_costs): Call CONST_HARSHNESS ! 6088: consisently when needed. ! 6089: ! 6090: * cp-init.c (decl_constant_value): Keep enabled even when ! 6091: CURRENT_FUNCTION_DECL is null. ! 6092: ! 6093: Sat Nov 30 01:23:38 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6094: ! 6095: * sdbout.c (sdbout_init): Just call sdbout_one_type on each type. ! 6096: ! 6097: * tm-att386.h (ASM_OUTPUT_ASCII): Output a space after ASM_BYTE_OP. ! 6098: * tm-sun386.h: Likewise. ! 6099: * tm-i386.h (ASM_OUTPUT_BYTE, ASM_OUTPUT_CHAR): Likewise. ! 6100: (ASM_OUTPUT_SHORT, ASM_OUTPUT_LONG, ASM_OUTPUT_DOUBLE): Likewise. ! 6101: (ASM_OUTPUT_FLOAT, ASM_OUTPUT_ADDR_VEC_ELT): Likewise. ! 6102: * tm-att386.h (ASM_BYTE_OP, ASM_SHORT, ASM_LONG, ASM_DOUBLE): ! 6103: Don't end with space. ! 6104: * tm-sun386.h, tm-bsd386.h: Likewise. ! 6105: ! 6106: * c-lex.h: Renamed from c-parse.h. All #includes changed. ! 6107: * c-parse.c, c-parse.h: Renamed from c-parse.tab.*. ! 6108: * Makefile.in: Changed accordingly. ! 6109: (C_OJBS, realclean, TAGS): These changed too. ! 6110: ! 6111: * tm-svr4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): ! 6112: Undef before defining. ! 6113: ! 6114: * tm-i386v4.h: Include tm-svr4.h. ! 6115: (CPP_PREDEFINES): Define SVR4, and several assertions. ! 6116: (LIB_SPEC): Delete -Qy. LINK_SPEC handles this. ! 6117: (DBX_REGISTER_NUMBER): New macro. ! 6118: ! 6119: Fri Nov 29 22:16:06 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6120: ! 6121: * rs6000.md: Cannot use "muls" and "muli" to do widening multiply ! 6122: from HImode to SImode; delete the 12 patterns that try to do this. ! 6123: ! 6124: Fri Nov 29 21:32:52 1991 Michael Tiemann (tiemann at cygnus.com) ! 6125: ! 6126: * cp-cvt.c (build_type_conversion): Don't assume that if ! 6127: TYPE_HAS_{INT,REAL}_CONVERSION implies that CLASSTYPE_CONVERSION for ! 6128: the given type combination is non-NULL. ! 6129: ! 6130: Fri Nov 29 16:08:22 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6131: ! 6132: * crtstuff.c: New file. Needs papers from rfg. ! 6133: * Makefile.in (crtbegin.o, crtend.o): New targets. ! 6134: ! 6135: * objc-actions.c (build_message_expr): Lots of cleanups. ! 6136: (build_objc_method_call): New subroutine. ! 6137: Handles new option NEXT_OBJC_RUNTIME. ! 6138: ! 6139: * expr.c (do_jump): Any LABEL_REF is nonzero. ! 6140: (expand_expr): Construct LABEL_REFs with Pmode. ! 6141: ! 6142: Fri Nov 29 14:43:32 1991 Michael Meissner (meissner at osf.org) ! 6143: ! 6144: * mips-tfile.c (parse_def): Change an error into a warning. ! 6145: ! 6146: * mips.md (fix_trunc??si_opt, mov??_internal): Change '*' constraint ! 6147: to '!' to keep reload from allocating FP registers from holding ! 6148: excess integer values. ! 6149: (ashift right define_splits): Fix typo, so that the long long ! 6150: arithmetic right shifts are recognized. ! 6151: (all define_splits): dummy out constraints, since they are not used. ! 6152: ! 6153: * mips.c (override_options): Allow int's in FP registers again, now ! 6154: that ! constraints are used. ! 6155: ! 6156: Fri Nov 29 13:20:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6157: ! 6158: * dwarfout.c (output_compile_unit_die): Don't include the name ! 6159: of the compiler which compiled the compiler in the AT_producer ! 6160: string. It goofs up comparisons of stage2 & stage3 object files. ! 6161: ! 6162: * c-parse.y, objc-parse.y: Don't declare position_after_white_space ! 6163: as static; it is now in c-lex.c. ! 6164: ! 6165: Fri Nov 29 05:15:26 1991 Michael Tiemann (tiemann at cygnus.com) ! 6166: ! 6167: * cp-decl.c (xref_tag): Check that TREE_CODE (ref) is aggr type ! 6168: before storing into CLASSTYPE_DECLARED_CLASS (ref). ! 6169: ! 6170: * cp-decl2.c (build_push_scope): Don't let non-aggr types appear in ! 6171: `cname::fname' expressions. ! 6172: ! 6173: * cp-class.c (resolves_to_fixed_type_p): VAR_DECL and FIELD_DECL ! 6174: nodes of ARRAY_TYPE may resolved to fixed type. Also handle other ! 6175: cases of WITH_CLEANUP_EXPR. ! 6176: ! 6177: * cp-spew.c (frob_identifier): Handle case of a type conversion ! 6178: operator that converts to a nested type. ! 6179: ! 6180: * cp-expr.c (cplus_expand_expr): In NEW_EXPR case, if ARGS is ! 6181: permanent, build a new arglist instead of modifying it in place. ! 6182: ! 6183: * cp-typeck.c (convert_arguments): Add ??? to comment about virtual ! 6184: function conversions. ??? I don't understand what that code is ! 6185: supposed to do anymore. ! 6186: (comp_target_parms): If STRICT <= 0, accept types whose ! 6187: TYPE_MAIN_VARIANTs are equal. ! 6188: ! 6189: * cp-call.c (convert_harshness): Revamped to handle contravariance ! 6190: better. ! 6191: * cp-class.h (struct candidate): Declaration moved from cp-tree.h. ! 6192: ! 6193: * cp-class.c (duplicate_tag_error): New function. ! 6194: * cp-parse.y (LC): Call it if we're redefining a tag. ! 6195: * cp-decl.c (duplicate_decls): Only copy DECL_ARGUMENTS from OLDDECL ! 6196: if non-NULL. Otherwise we get nonsense when we try to parse ! 6197: inline function bodies of classes that have already been redefined. ! 6198: * cp-lex.c (reinit_parse_for_method): If we get some text for a ! 6199: class that's been redefined, flush the text. ! 6200: * cp-tree.h (TYPE_REDEFINED): New field in `struct lang_type'. ! 6201: ! 6202: * cp-cvt.c (convert_to_integer): Only warn about anachronistic ! 6203: conversion from int to enum if PEDANTIC is nonzero. ! 6204: ! 6205: * cp-typeck.c (convert_for_initialization): No longer give warning ! 6206: messages about bitwise copy: this is currently how the default X(X&) ! 6207: constructor is implemented. ! 6208: * cp-init.c (expand_aggr_init_1): Ditto. ! 6209: ! 6210: * cp-method.c (dump_init): Handle WITH_CLEANUP_EXPR and TARGET_EXPR. ! 6211: * tree.c (simple_cst_equal): Handle WITH_CLEANUP_EXPR. Correct ! 6212: handling of TARGET_EXPR case. ! 6213: ! 6214: * cp-decl.c (grok_reference_init): If DECL is permanent, make it's ! 6215: DECL_REFERENCE_SLOT permanent as well. ! 6216: ! 6217: * cp-cvt.c (build_type_conversion): If PEDANTIC, give message about ! 6218: conversions which cast away const. ! 6219: ! 6220: * cp-decl.c (store_return_init): If PEDANTIC, give error about named ! 6221: return values. ! 6222: ! 6223: * cp-init.c (decl_constant_value): Don't return DECL_INITIAL if ! 6224: CURRENT_FUNCTION_DECL is null or if the initializer is a ! 6225: CONSTRUCTOR. ! 6226: ! 6227: Thu Nov 28 05:29:52 1991 Michael Tiemann (tiemann at cygnus.com) ! 6228: ! 6229: * integrate.c (expand_inline_function): When passing objects by ! 6230: invisible reference, correctly compute the amount of space to be ! 6231: allocated in the pseudo-frame we create for the inline function. ! 6232: ! 6233: * cp-typeck.c (mark_addressable): Add call to ! 6234: `mark_inline_for_output' that got lost in Nov 25 change. ! 6235: ! 6236: * cp-decl.c (push_overloaded_decl): If the value of a name is an ! 6237: ADDR_EXPR, look inside to get the _DECL node. ! 6238: ! 6239: * cp-decl.c (grokdeclarator): Don't convert type of operators new ! 6240: and delete to METHOD_TYPE; they remain FUNCTION_TYPEs. ! 6241: ! 6242: * function.c (expand_function_start): Set TREE_REGDECL bit on ! 6243: RESULT_DECL if result starts life in a register. ! 6244: ! 6245: * c-common.c (truthvalue_conversion): Don't treat a CONVERT_EXPR as ! 6246: a NOP when it or the expression inside it is of REFERENCE_TYPE. ! 6247: ! 6248: * cp-class.c (finish_struct): Test DESTRUCTOR_NAME_P on ! 6249: DECL_ASSMBLER_NAME, not DECL_NAME. ! 6250: ! 6251: Wed Nov 27 13:49:10 1991 Jim Wilson (wilson at sphagnum.cygnus.com) ! 6252: ! 6253: * cse.c (simplify_relational_operation): Correct handling of ! 6254: COMPARE as first argument. Always strip it off. Don't invert ! 6255: return value for EQ when !HAVE_cc0. ! 6256: ! 6257: Thu Nov 28 20:08:15 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6258: ! 6259: * gmon.c: New file. ! 6260: ! 6261: Thu Nov 28 15:02:24 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6262: ! 6263: * combine.c (subst, case SET): Never make a paradoxical SUBREG of ! 6264: a REG unless the SUBREG and REG occupy the same number of words. ! 6265: ! 6266: * emit-rtl.c: Include flags.h. ! 6267: (operand_subword): Always look inside floating if -fpretend-float. ! 6268: * final.c (split_double): Likewise. ! 6269: * Makefile.in (emit-rtl.o): Includes flags.h. ! 6270: ! 6271: * c-lex.c (yylex): Add goto to `L' case. ! 6272: ! 6273: Thu Nov 28 08:37:02 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) ! 6274: ! 6275: * tm-mips.h (ASM_OUTPUT_INT): Use `do {...} while (0)' so it can be ! 6276: used in if/else constructs. ! 6277: ! 6278: Thu Nov 28 00:23:26 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6279: ! 6280: * tree.h (BUILT_IN_FRAME_ADDRESS, BUILT_IN_RETURN_ADDRESS): ! 6281: New function codes. ! 6282: * c-decl.c (init_decl_processing): Declare the functions. ! 6283: * expr.c (expand_builtin): Implement them. ! 6284: ! 6285: * gcc.c: Pass to ld all the dirs in LIBRARY_PATH: ! 6286: (library_prefix): New list of prefixes. ! 6287: (process_command): Put dirs from LIBRARY_PATH on that list. ! 6288: (do_spec_1): %D outputs those dirs. ! 6289: (link_command_spec): Use %D after passing -L options. ! 6290: ! 6291: * gcc.c (process_command): Don't require machine suffix ! 6292: for dirs from COMPILER_PATH or LIBRARY_PATH. ! 6293: ! 6294: * cccp.c (main): C_INCLUDE_PATH, etc., add dirs rather than replacing. ! 6295: ! 6296: * Use the TYPE_DECLs to drive dbx and sdb output of type tags. ! 6297: * toplev.c (rest_of_type_compilation): New function. ! 6298: (compile_file): Pass list of initial decls to dbxout_init, sdbout_init. ! 6299: (various): Don't call get_*_types. ! 6300: * dbxout.c (dbxout_init): Get initial types from that list. ! 6301: * sdbout.c (sdbout_init): Likewise. ! 6302: * sdbout.c, dbxout.c: Don't call get_*_types. ! 6303: (*out_typedefs): New subroutines. ! 6304: * c-decl.c (finish_struct, finish_enum): Call rest_of_type_compilation. ! 6305: (pushtags): Record TYPE_STUB_DECL. ! 6306: * tree.h (TYPE_STUB_DECL): New macro. ! 6307: * stor-layout.c (chain_type, get_permanent_types, get_temporary_types): ! 6308: Deleted. ! 6309: (save_storage_status, restore_storage_status): Don't frob chains. ! 6310: (layout_type): Don't call chain_type. ! 6311: ! 6312: * dbxout.c (dbxout_type_fields): Output `/'-spec after type tag ! 6313: only if really needed. ! 6314: ! 6315: Wed Nov 27 18:52:55 1991 Michael Tiemann (tiemann at cygnus.com) ! 6316: ! 6317: * expr.c (expand_expr): Typo in expand_end_bindings, in BIND_EXPR case. ! 6318: ! 6319: Wed Nov 27 23:10:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6320: ! 6321: * cccp.c (main): Use savestring, not strdup. ! 6322: ! 6323: Wed Nov 27 17:10:17 1991 Michael Meissner (meissner at osf.org) ! 6324: ! 6325: * mips.c (mips_load_reg3, mips_load_reg4): New global variables to ! 6326: enable scheduling the second nop for the mfhi and mflo instructions. ! 6327: (mips_hard_regno_mode_ok): New global array to give the results ! 6328: of HARD_REGNO_MODE_OK for each register and mode. ! 6329: (mips_fill_delay_slot): Instead of taking the number of nops as a ! 6330: parameter, take an enumeration, giving what kind of delay this is. ! 6331: If the next instruction is a label, put nops before label, not ! 6332: after. Add support for mflo/mfhi, which need 2 nops if the next ! 6333: instruction would modify the hi/lo registers. ! 6334: (mips_move_1word, mips_move_2words): mips_fill_delay_slot calling ! 6335: sequence changes. Pass mflo/mfhi to schedule nops. ! 6336: (mips_move_2words): Move DImode to/from hi and lo registers is now ! 6337: supported. ! 6338: (function_arg): Correctly align long long parameters, just like ! 6339: doubles. Also correct typo in debug code. Bug report from ! 6340: [email protected]. ! 6341: (override_options): Initialize mips_hard_regno_mode_ok. Restrict ! 6342: int's from going in the FP registers, to limit the register ! 6343: allocator from allocating them instead of using memory. Also, make ! 6344: the special registers (HI, LO, FPSW) only accept full sized ints, or ! 6345: a double int for the HI:LO combination. ! 6346: (compute_frame_size): Don't set the initialized member until reload ! 6347: has completed, since otherwise the information may change. ! 6348: ! 6349: * mips.md (various): Add 64 bit integer operations for addition, ! 6350: subtraction, negation, and, inclusive or, exclusive or, one's ! 6351: complement, shifts, and nor. Add 32x32->64 bit support for ! 6352: multiply, which the compiler then uses to construct 64 bit ! 6353: multiplies. ! 6354: (mulsi3): Break mul into it's two instructions, and schedule the ! 6355: two nops needed for the mflo instruction. Don't allow an integer ! 6356: multiplier anymore. ! 6357: (ffssi2): Delete define_expand, and use a second clobber'ed register ! 6358: to preserve the original input, instead of (clobber (match_dup 1)). ! 6359: (movsi_ulw): Change mips_fill_delay_slot calling sequence. ! 6360: (movdi_internal): Allow DImode move from HI/LO to/from GP registers. ! 6361: (movdi define_split): Add a define_split to separate the two parts ! 6362: of DImode register pairs when using GP registers. ! 6363: (movdf define_split): Add a define_split to separate the two parts ! 6364: of DFmode register pairs when using GP registers. ! 6365: (mov??_internal): Change condition to call memory_operand, instead ! 6366: of just checking for MEM, which disallows (subreg (MEM)) during ! 6367: the intermediate parts of the compilation. Reported by ! 6368: [email protected]. ! 6369: (negsi2): Turn back into a real insn instead of just a ! 6370: define_expand for subsi3. ! 6371: (one_cmplsi2): Turn back into a real insn instead of just a ! 6372: define_expand for norsi3. ! 6373: (andsi3, iorsi3, xorsi3): Be more liberal than the real machine, and ! 6374: allow 32 bit constants to improve the code generated for bitfields, ! 6375: at the expense of potentially not moving the constant out of loops. ! 6376: (various): Add = constraint to all clobbers. ! 6377: (fix_trunc*): Go back to old method of using two clobbers, since ! 6378: unoptimized compiles call abort otherwise, when returning the result ! 6379: of truncating a float as a function result. ! 6380: ! 6381: * tm-mips.h (delay_type): New enum to express different types of ! 6382: delay slots. ! 6383: (mips_load_reg3, mips_load_reg4): Declarations for more registers ! 6384: to check for needing nops. Used by multiply/divide to schedule ! 6385: the two nops needed after mfhi/mflo if the next instruction would ! 6386: clobber the register. ! 6387: (CONDITIONAL_REGISTER_USAGE): If -msoft-float, disable all FP ! 6388: registers. ! 6389: (MASK_DEBUG_G): Add comment saying -mdebugg turns of new DImode ! 6390: patterns, in case the code is wrong. ! 6391: (HARD_REGNO_NREGS): All FP registers use register pairs, so that ! 6392: SF in a GP register takes only one register, and SI in a FP ! 6393: register takes 2. ! 6394: (HARD_REGNO_MODE_OK): Change macro to reference the array ! 6395: mips_hard_regno_mode_ok, which is now built in override_options. ! 6396: (CONST_OK_FOR_LETTER_P): 'N' is now for negative numbers, 'O' is ! 6397: an exact power of 2, and 'P' is now for positive numbers. ! 6398: (PREFERRED_RELOAD_CLASS): If -msoft-float, never prefer a FP ! 6399: register. ! 6400: (PREFERRED_RELOAD_CLASS_FM): Delete, since nobody uses it. ! 6401: (FINAL_PRESCAN_INSN): Check for mips_load_reg3 and mips_load_reg4 ! 6402: being mentioned. Also add a missing tab when more than one delay ! 6403: slot. ! 6404: (CONST_COSTS): Make all constant ints cost 0 to lower register ! 6405: pressure according to Richard Kenner. ! 6406: (RTX_COSTS): Adjust costs for DI, SF, and DF modes, and add ABS/FFS ! 6407: costs as well. ! 6408: (REGISTER_MOVE_COSTS): Bump costs for moving between register ! 6409: classes, so that reload doesn't try to store int type values in the ! 6410: floating point registers. ! 6411: ! 6412: Wed Nov 27 15:01:52 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6413: ! 6414: * config-gcc.com: Renaming of out-vax.c. ! 6415: * make-cc1.com: Link dbxout with all languages. Add cp-spew. ! 6416: ! 6417: * cccp.c (include_defaults_array): Fix typo. ! 6418: ! 6419: * gstddef.h: Handle _STDDEF_H_. ! 6420: ! 6421: * configure.bat, Makefile.dos: New files. ! 6422: ! 6423: * c-lex.c: New file. All subroutines moved here. ! 6424: (yylex): Small diffs between C and OBJC merged. ! 6425: * c-parse.y, objc-parse.y: Deleted from here. ! 6426: * c-lang.c (lookup_interface): New stub. ! 6427: * Makefile.in (c-lex.o): New rule. ! 6428: (OBJC_OBJS, C_OBJS): Changed for new files. ! 6429: ! 6430: Wed Nov 27 13:34:15 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 6431: ! 6432: * c-parse.y (yylex): Don't assume that long is 32 bits and long ! 6433: long is 64 bits when warning for out of range integer constants, ! 6434: and when creating a tree to represent integer constants. ! 6435: * cp-lex.c (real_yylex): Likewise. ! 6436: * objc-parse.y (yylex): Likewise. ! 6437: ! 6438: * combine.c (simplify_comparison, ASHIFT case): Prevent shift by ! 6439: HOST_BITS_PER_INT for inequality comparisons. ! 6440: ! 6441: * fold-const.c (operand_equal_p): Arguments are not equal if ! 6442: signedness differs. Conversions don't match if signedness differs. ! 6443: ! 6444: * sparc.md (movsi, movhi, movqi, movdi): Prohibit matches that ! 6445: would require reloading by the use of conditions. ! 6446: ! 6447: * alloca.c (alloca): Add parens to make precedence clearer. ! 6448: ! 6449: * tm-news.h (PRINT_OPERAND): Add 68040 support so that the compiler ! 6450: will bootstrap. ! 6451: ! 6452: Wed Nov 27 09:41:13 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6453: ! 6454: * expr.c (expand_expr, case MIN_EXPR): Fix typo in operand number ! 6455: in safe_from_p call. ! 6456: ! 6457: * recog.c (indirect_operand): Correctly handle case where we have ! 6458: a (subreg (mem X) C) after reload. ! 6459: ! 6460: Tue Nov 26 16:24:03 1991 Ron Guilmette (rfg at ncd.com) ! 6461: ! 6462: * dwarfout.c (output_enumeration_type_die): Handle a GNU C ! 6463: language extension: incomplete enum types. ! 6464: ! 6465: * dwarfout.c (output_type): Fixed bug which causes DIEs for ! 6466: file-scope tagged types to be generated in a local-scope ! 6467: under some conditions. ! 6468: ! 6469: * dwarfout.c (dwarfout_init, dwarfout_finish): Moved code which ! 6470: generates most of the .debug_aranges entries from dwarfout_init ! 6471: into dwarfout_finish to avoid m68k assembler bug. ! 6472: ! 6473: * Makefile.in (EXTRA_PARTS): New parameter. ! 6474: (install-common): Compile the things in EXTRA_PARTS. ! 6475: (GCC_PASSES, GCC_PARTS): New variables. ! 6476: (STAGESTUFF, native, enquire, enquire.o): Use them. ! 6477: (protoize, protoize.o, unprotoize, unprotoize.o, SYSCALLS.c.X): ! 6478: (gnulib2.ready, collect2, collect2.o, getopt.o, getopt1.o): Likewise. ! 6479: ! 6480: * tm-svr4.h (CPP_PREDEFINES): Don't define this here. Undef it ! 6481: so that other files which include this one will be forced to ! 6482: define it appropriately for the specific target and OS. ! 6483: (CPP_SPEC): Deleted. ! 6484: (LIB_SPEC): Add crtend.o as last thing linked in on each link-step. ! 6485: (STARTFILE_SPEC): Add crtbegin.o as the first thing linked in. ! 6486: (NO_DOLLAR_IN_LABEL): Added define. Most svr4's don't support $. ! 6487: ! 6488: * tm-svr4.h: Added support for the .ctors and .dtors sections ! 6489: (as for the m88k). ! 6490: (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): New macros. ! 6491: * tm-svr4.h (HERE_ASM_OP, ASM_DECLARE_FUNCTION_SIZE): Deleted ! 6492: define of HERE_ASM_OP and made ASM_DECLARE_FUNCTION_SIZE not ! 6493: try to use a dot when computing a function's size in a .size ! 6494: directive (because Tom Wood says that 88open doesn't approve ! 6495: of dot as an asm operand). ! 6496: ! 6497: * x-genix, x-i386sco, x-xenix (INSTALL): Define as cp. ! 6498: ! 6499: Tue Nov 26 16:24:03 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6500: ! 6501: * gcc.c (default_compilers): Pass -A* to cpp. ! 6502: ! 6503: * Make names unique if unpacked on MSDOG. ! 6504: * config/*.c: `out-' removed from all file names out-*.c. ! 6505: * x-hp*: Renamed from x-hp9k*. ! 6506: * tm-conv1.h, tm-conv2.h: Renamed from tm-convex*.h. ! 6507: * tm-hp*.h: `9k' removed from these names. ! 6508: * tm-isi*.h: `68' removed from these names. ! 6509: * tm-i860b.h, tm-i860bg.h: `sd' removed. ! 6510: * tm-i860g3.h: Renamed from tm-i860v3g.h. ! 6511: * tm-i386sun.h: Renamed from tm-sun386i.h. ! 6512: * tm-sun3o3.h, tm-sun4o3.h: Were tm-sun*os3.h. ! 6513: * tm-sun3n3.h: Was tm-sun3os3nf.h. ! 6514: * tm-sun3n.h: Was tm-sun3-nfp.h. ! 6515: * tm-sun2o4.h: Was tm-sun2os4.h. ! 6516: * xm-hp320.h: Was xm-hp9k320.h. ! 6517: * xm-i386sun.h: Was xm-sun386i.h. ! 6518: * configure: Adjust for those renamings. ! 6519: ! 6520: * configure (m68000-hp-hpux*): Use xm-hp320.h. ! 6521: ! 6522: * stmt.c (expand_value_return): New subroutine. ! 6523: (expand_return): Use that. ! 6524: ! 6525: * make-gcc.com: New name for make.com. ! 6526: ! 6527: * stor-layout.c (layout_record): Return list of static members. ! 6528: (layout_type): Lay them out here. ! 6529: ! 6530: * expmed.c (init_expmed): Use 3 as shift count for shift_cost. ! 6531: ! 6532: * x-sco: File deleted. ! 6533: ! 6534: * print-tree.c (print_node): Always be brief for vector elts. ! 6535: ! 6536: Tue Nov 26 07:42:41 1991 Michael Tiemann (tiemann at rtl.cygnus.com) ! 6537: ! 6538: * cp-decl.c (grokdeclarator): Fix typo involving ~RID_STATIC. ! 6539: ! 6540: Mon Nov 25 21:51:09 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6541: ! 6542: * optabs.c (emit_cmp_insn): If both operands are VOIDmode, ! 6543: put first operand into register, not second. ! 6544: ! 6545: * alliant.md, gmicro.md, i386.md, m68k.md, ns32k.md, pyr.md: ! 6546: Don't allow a constant as the first operand to tstxx insns. ! 6547: * tahoe.md, vax.md: Likewise. ! 6548: * convex.md: Remove erroneous comment on tstsi. ! 6549: ! 6550: Mon Nov 25 20:51:00 1991 DJ Delorie ([email protected]) ! 6551: ! 6552: * cccp.c (main): Look in env vars to override header dir list. ! 6553: * gcc.c (process_command): Likewise. ! 6554: ! 6555: * gcc.c (execute): Alternate way to get status on MSDOS. ! 6556: Error for -pipe on MSDOS. ! 6557: (pexecute): Alternate definition for MSDOS. ! 6558: (find_a_file): Handle new hook EXECUTABLE_SUFFIX. ! 6559: (EXECUTABLE_SUFFIX): Add default definition, and alternate for MSDOS. ! 6560: (P_tmpdir): Add default definition for MSDOS. ! 6561: ! 6562: Mon Nov 25 17:18:52 1991 Michael Collison (collison at osf.org) ! 6563: ! 6564: * x-encrose: New file for mmax running OSF/1. ! 6565: * t-encrose: ditto. ! 6566: ! 6567: * ns32k.md (movsi): Use new constraint letters 'x' and 'y' ! 6568: representing the frame and stack pointer. ! 6569: (movhi,movqi): Add constraints and template code to allow moves ! 6570: between the floating point and general purpose registers. ! 6571: ! 6572: * tm-ns32k.h (REGISTER_MOVE_COST): Use this macro to discourage ! 6573: moves between the floating point registers and the frame and stack ! 6574: pointer. Also discourage moves between the fp and general registers. ! 6575: (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, ! 6576: REG_CLASS_FROM_LETTER): Add two new register classes representing ! 6577: the frame pointer and stack pointer respectively. ! 6578: (GO_IF_NONINDEXED_ADDRESS): Add check to see if register is also a ! 6579: base register. This causes reload to reject pseudo registers when ! 6580: REG_OK_STRICT is defined. ! 6581: ! 6582: * tm-i386rose.h: New file for 386 running on OSF/1. ! 6583: * x-i386rose: ditto ! 6584: * t-i386rose: ditto ! 6585: ! 6586: * config.subr: Added case for 'osf-'. ! 6587: * configure: Added case for i386-osfrose ! 6588: ! 6589: * tm-encrose.h (CC1_SPEC): Simplified so by default it passes nothing. ! 6590: (ASM_SPEC): Changed so that under OSF/1 with NO_J_SWITCH defined ! 6591: nothing is passed to the assembler. ! 6592: (TARGET_DEFAULT): Changed so that, by default, no code is generated ! 6593: using the static base (sb) register. ! 6594: (OVERRIDE_OPTIONS): Removed in lieu of the new debug macros ! 6595: PREFERRED_DEBUGGING_TYPE and DEFAULT_GDB_EXTENSION. ! 6596: (DEFAULT_GDB_EXTENSIONS): Define it ! 6597: (PREFERRED_DEBUGGING_TYPE): Use it. ! 6598: ! 6599: Mon Nov 25 17:18:52 1991 Jyrki Kuoppala (jkp at batman.hut.fi) ! 6600: ! 6601: * ns32k.md (ashlhi3): use addw also on 32532 if shiftcount is 1. ! 6602: (ashlqi3): likewise. ! 6603: (addsi3): don't use addr instead of addd on the 32532. ! 6604: ! 6605: * out-ns32k.c (calc_address_cost): don't assume unknown RTX codes ! 6606: have XEXP's which are rtx's. ! 6607: ! 6608: * ns32k.md (movsi): don't use addr for the 32532 immed displacements. ! 6609: (shift patterns): fixed a typo with %$%n. ! 6610: ! 6611: * out-ns32.c (calc_address_cost) new function. ! 6612: tm-ns32k.h (ADDRESS_COST): call calc_address_cost. ! 6613: ! 6614: * out-ns32k.c (print_operand_address): use error & debug_rtx if error. ! 6615: ! 6616: * tm-ns32k.h (CONST_OK_FOR_LETTER_P): constraint 'I' shouldn't ! 6617: match anything on the 32532 to make negative arithmetic left ! 6618: shifts behave consistently. ! 6619: ! 6620: * ns32k.md (subsf+1): don't use ajdspb on the 32532. ! 6621: ! 6622: * tm-ns32k.h (CONST_OK_FOR_LETTER_P): positive values not OK for ! 6623: constraint 'I' if on 32532. ! 6624: ! 6625: * ns32k.md (ashl??): if TARGET_32532, use lsh{d,w,b}. ! 6626: ! 6627: * ns32k.md (adjusting stack pointer): don't use ajdp{b,w} if not 32532. ! 6628: ! 6629: * ns32k.md (isv,insv-1,insv-2,extzv): use constraint K instead of ! 6630: n for offset. ! 6631: ! 6632: * ns32k.md (insv-1): use only register_operand with constraint ! 6633: "r" for operand 2, insd can't take constant offsets >= 8. ! 6634: (pattern insv-2): added another insv-like pattern, for ! 6635: offsettable operand. ! 6636: (insv): constraint should be "+g". ! 6637: (pattern before insv): installed an insv-like pattern ! 6638: with operand 0 having register_operand and SImode. ! 6639: ! 6640: * out-ns32k.c (print_operand): define as a void function. ! 6641: ! 6642: * ns32k.md (call_value): use operands[1], not operands[0] to check ! 6643: for CONSTANT_ADDRESS_P. ! 6644: ! 6645: * out-ns32k.c (print_operand): eliminate ! 6646: PRINT_OPERAND_EXTRACT_FLOAT, don't depend on HOST_WORDS_BIG_ENDIAN. ! 6647: ! 6648: * tm-ns32.h (INDIRECTABLE_1_ADDRESS_P): use CONSTANT_ADDRESS_P, ! 6649: not CONSTANT_P. ! 6650: ! 6651: * tm-ns32k.h (GO_IF_LEGITIMATE_ADDRESS): checking for CONST_INT ! 6652: is not right because displacements are not 32-bit. Use ! 6653: CONSTANT_ADDRESS_NO_LABEL_P instead. ! 6654: ! 6655: * tm-ns32k.h (output_move_double, output_shift_insn): New declarations. ! 6656: ! 6657: * out-ns32k.c (print_operand_address): Use fatal for errors. ! 6658: ! 6659: * ns32k.md (insv, extzv): Replaced with the pattern near insv in 1.40. ! 6660: ! 6661: * out-ns32k.c (print_operand): function moved from tm-ns32k.h. ! 6662: Modified to use PUT_IMMEDIATE_PREFIX, PUT_EXTERNAL_PREFIX; added ! 6663: macro PRINT_OPERAND_EXTRACT_FLOAT. ! 6664: ! 6665: * out-ns32k.c (print_operand_address): replaced the function with ! 6666: a more clean version, written for gas syntax. ! 6667: ! 6668: * ns32k.md (call): #if 0 code which was used when GAS_SYNTAX was not ! 6669: defined. ! 6670: (call_value): likewise. ! 6671: ! 6672: * ns32k.md (pattern after ashrsi3): added % before $ so the ! 6673: pattern works also for gas syntax. ! 6674: (pattern after ashrhi3): likewise. ! 6675: (pattern after ashrqi3): likewise. ! 6676: (pattern after lshrsi3): likewise. ! 6677: (pattern after lshrhi3): likewise. ! 6678: (pattern after lshrqi3): likewise. ! 6679: (pattern after rotrsi3): likewise. ! 6680: (pattern after rotrhi3): likewise. ! 6681: (pattern after rotrqi3): likewise. ! 6682: ! 6683: * ns32k.md (movsf): put #ifndef GAS_SYNTAX part inside #if 0 since ! 6684: for now we only use GAS syntax. ! 6685: ! 6686: * tm-ns32k.h (INDIRECTABLE_2_ADDRESS_P): add TARGET_SB as a ! 6687: condition in addition to CONSTANT_ADDRESS_P. ! 6688: ! 6689: * tm-ns32k.h (MEM_REG): use CONSTANT_ADDRESS_P instead of GET_CODE ! 6690: == SYMBOL_REG, add TARGET_SB to the second-part condition. ! 6691: ! 6692: * ns32k.md (rotrsi3): fixed a typo NEGATE->NEG ! 6693: ! 6694: * tm-ns32k.h: added a comment about CONSTANT_ADDRESS_P; it's not ! 6695: strictly according to the spec. ! 6696: ! 6697: * tm-ns32k.h: added defaults for ABSOLUTE_PREFIX,IMMEDIATE_PREFIX ! 6698: etc, using gas syntax. ! 6699: ! 6700: * out-ns32k.c: removed macro FP_REG_P. ! 6701: ! 6702: * tm-ns32k.h: (ASM_OUTPUT_ALIGN_CODE): changed alignment from 4 to ! 6703: 2 since GAS syntax is the default assembler syntax now. ! 6704: (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): defined to call ! 6705: print_operand and print_operand_address in out-ns32k.c, ! 6706: respectively. ! 6707: ! 6708: * tm-ns32k.h: New macros TARGET_SB, TARGET_PIC. ! 6709: Dummy code for trampolines, calls fatal(). ! 6710: Macro FP_REG_P moved here from out-ns32k.c. ! 6711: Some reorganizations of blocks. ! 6712: 68000 -> ns32k. ! 6713: ! 6714: * tm-ns32k.h (TARGET_VERSION) says GAS syntax. ! 6715: (TARGET_*) added some empty lines for clarity. ! 6716: ! 6717: Mon Nov 25 14:29:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6718: ! 6719: * Makefile.in (aux-output.o): Depend on insn-codes.h. ! 6720: ! 6721: * make-cc1.com: Handle print-rtl.c. ! 6722: ! 6723: * toplev.c (warn_aggregate_return): New variable. ! 6724: (W_options): Define option to set it. ! 6725: * flags.h: Declare it. ! 6726: * calls.c (expand_call): Print warning if value is aggregate. ! 6727: * function.c (init_function_start): Likewise. ! 6728: ! 6729: Mon Nov 25 13:29:50 1991 Per Bothner (bothner at cygnus.com) ! 6730: ! 6731: * cp-except.c (init_exception_processing): Fix return type of ! 6732: longjmp (from int to void). ! 6733: ! 6734: Mon Nov 25 13:11:51 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 6735: ! 6736: * rtlanal.c (refers_to_regno_p): Check for `x == 0' on repeat. ! 6737: ! 6738: * x-mips, xm-vms.h: Change cplus-* to cp-* in comments. ! 6739: * x-tower (X_CFLAGS): Add missing `-'. ! 6740: ! 6741: * unroll.c (unroll_loop): When simplifying loops executed only once, ! 6742: use last_loop_insn not copy_end. ! 6743: ! 6744: Mon Nov 25 07:45:46 1991 Michael Tiemann (tiemann at rtl.cygnus.com) ! 6745: ! 6746: * cp-except.c (init_exception_processing): Mark `ExceptionHandler' ! 6747: constructor and destructor as being TREE_EXTERNAL, and mark the ! 6748: `ExceptionHandler' type as being interface-only. ! 6749: ! 6750: * cp-decl.c (maybe_globalize_type): Don't test TYPE_BEING_DEFINED ! 6751: for ENUMERAL_TYPE. ! 6752: ! 6753: * cp-class.c (modify_vtable_entry): Disable code which attempts to ! 6754: encode in a vtable an indirection to another vtable entry. ! 6755: ! 6756: * cp-call.c (build_method_call): Convert FUNCTION to ! 6757: DECL_MAIN_VARIANT (FUNCTION) once we are going to use it for real. ! 6758: * cp-init.c (build_delete): Use DECL_MAIN_VARIANT (DTOR). * ! 6759: * cp-typeck.c (mark_addressable): Use DECL_MAIN_VARIANT (X). ! 6760: ! 6761: Mon Nov 25 00:41:14 1991 Per Bothner (bothner at cygnus.com) ! 6762: ! 6763: * dbxout.c (dbxout_type): Tiemann's DECL_IGNORED_P optimization (Nov ! 6764: 20) was a little too drastic: If it succeded, no type info was ! 6765: emitted at all, which made for syntactically invalid stabs. ! 6766: Instead, just set 'full=0', ! 6767: * dbxout.c (dbxout_symbol): Re-write code for TYPE_DECL to be a ! 6768: little cleaner. It *seems* to work ... ! 6769: ! 6770: Sun Nov 24 19:32:07 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 6771: ! 6772: * sched.c (update_links): Use PUT_REG_NOTE_KIND to change REG_NOTE. ! 6773: ! 6774: Sun Nov 24 14:53:37 1991 Ron Guilmette (rfg at ncd.com) ! 6775: ! 6776: * cccp.c: Add `return 0;' statements to all do_* functions which ! 6777: needed them to prevent spurious warnings. Also change plain ! 6778: `return;' statements to `return 0;' statements where appropriate. ! 6779: ! 6780: Sun Nov 24 07:37:17 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6781: ! 6782: * cse.c (cse_insn): When making equivalences of subparts of ! 6783: a SET, avoid putting a (hard) register in the hash table twice, ! 6784: each time with different modes. ! 6785: ! 6786: * genrecog.c (write_tree_1,change_state): Don't check for a position ! 6787: containing a '*' since we don't set it to that. ! 6788: (main): Don't define recog_addr_dummy; no longer used. ! 6789: * recog.c (recog_addr_dummy): No longer needed; wasn't actually used. ! 6790: (init_recog_no_volatile, init_recog): Don't set recog_addr_dummy. ! 6791: ! 6792: * expmed.c (store_split_bit_field, extract_bit_field): Abort if ! 6793: operand_subword of target returns 0. ! 6794: * expr.c (convert_move, move_block_from_reg, emit_move_insn): Likewise. ! 6795: ! 6796: * combine.c (subst, case SUBREG): Don't allow making a SUBREG of ! 6797: a hard reg in a mode not valid for that hard reg. ! 6798: * emit-rtl.c (gen_lowpart_common, operand_subword): Likewise. ! 6799: ! 6800: * expmed.c (extract_split_bit_field): Use operand_subword_force. ! 6801: * expr.c (emit_move_insn): If operand_subword fails for non-const, ! 6802: use operand_subword_force. ! 6803: ! 6804: * expmed.c (expand_mult): Pass OP0 through protect_from_queue so we can ! 6805: use it in a REG_EQUAL note and check it for being a MEM. ! 6806: ! 6807: * rtl.def (SMIN, SMAX, UMIN, UMAX): New RTL codes. ! 6808: * fold-const.c (const_binop, case MIN_EXPR, MAX_EXPR): Use MIN and MAX. ! 6809: (fold, case MIN_EXPR, MAX_EXPR): Check for operands equal; check for ! 6810: min (x, lowest-value-for-type) and max (x, highest-value-for-type). ! 6811: (fold, case COND_EXPR): Look for conditionals that are equivalent ! 6812: to ABS_EXPR, MIN_EXPR, or MAX_EXPR and convert them to the appropriate ! 6813: expression. ! 6814: * expr.h (smin_optab, smax_optab, umin_optab, umax_optab): New vars. ! 6815: * gcc.texinfo (smin, smax, umin, umax): Add documentation. ! 6816: * expr.c (expand_expr, case ABS_EXPR): Ignore ABS on unsigned types. ! 6817: If jumps are expensive, we can do ABS with shifts and xors. ! 6818: (expand_expr, case MIN_EXPR, MAX_EXPR): Try to do using new optabs. ! 6819: * optabs.c (smin_optab, smax_optab, umin_optab, umax_optab): ! 6820: Initialize new optabs. ! 6821: * cse.c (simplify_binary_operation): New cases SMIN, SMAX, UMIN, UMAX. ! 6822: * rs6000.md (sminsi3, smaxsi3, uminsi3, umaxsi3): New patterns. ! 6823: * m88k.md (abssi2): Delete pattern; now done in expr.c. ! 6824: ! 6825: * rs6000.md (scc): Correct typos in last change. ! 6826: ! 6827: * expmed.c (expand_mult): TARGET will only be written once, so ! 6828: function return register is OK. ! 6829: Write a REG_EQUAL note so multiplications can be cse'ed. ! 6830: ! 6831: * expmed.c (emit_store_flag): Skip trying most sequences of insns ! 6832: if branches are very cheap (BRANCH_COST == 0). ! 6833: * expr.c (expand_expr, case COND_EXPR): Check for BRANCH_COST <= 1, ! 6834: not equal to 1. ! 6835: Know that emit_store_flag won't do most sequence if branches are very ! 6836: cheap. ! 6837: ! 6838: * tm-vax.h (BRANCH_COST): Define to be equal to zero. ! 6839: ! 6840: Sun Nov 24 07:07:31 1991 Michael Tiemann (tiemann at cygnus.com) ! 6841: ! 6842: * cp-decl.c (maybe_globalize_type): Don't globalize a type that's ! 6843: being defined. ! 6844: ! 6845: Sun Nov 24 05:08:57 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6846: ! 6847: * c-decl.c (finish_struct): Use main variant checking ANSI bitfields. ! 6848: ! 6849: * tm-tower-as.h (ASM_FILE_START): Use output_file_directive. ! 6850: ! 6851: * gcc.c (process_command): Treat `-' as file name, not option. ! 6852: ! 6853: Sat Nov 23 20:28:58 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6854: ! 6855: * cse.c (simplify_binary_operation): Remove duplicate code for SFmode ! 6856: and DFmode; use of REAL_VALUE_TRUNCATE means that all modes can be ! 6857: handled with the same code. ! 6858: Truncate result as well as inputs to computations. ! 6859: ! 6860: * cse.c (cse_basic_block): Allow recording of destinations in the ! 6861: final insn of a LIBCALL block. ! 6862: ! 6863: * flow.c (insn_dead_p): Add new argument CALL_OK. ! 6864: (propagate_block): Pass new arg. ! 6865: (libcall_dead_p): Indicate that we can accept a CALL when we use ! 6866: insn_dead_p to see if the destination of the CALL is dead. ! 6867: ! 6868: * genrecog.c (struct decision): Remove fields `dupcount' ! 6869: and `reg_class' and all references; they were being set but never ! 6870: used and are now obsolete. ! 6871: ! 6872: * emit-rtl.c (gen_lowpart_common, operand_subword): Don't make ! 6873: a new REG for the function return value until we after the RTL ! 6874: is copied for possible inlining; use a SUBREG instead. ! 6875: ! 6876: * combine.c (can_combine_p): Don't move insn past a volatile ref if ! 6877: it is an `asm', even if non-volatile. ! 6878: ! 6879: * gmicro.md: Fix punctuation problem causing syntax error. ! 6880: ! 6881: * tm-rs6000.h (CONST_OK_FOR_LETTER_P): Add `O' and `P'. ! 6882: * out-rs6000.c (reg_or_neg_short_operand): New function. ! 6883: ! 6884: * rs6000.md (attribute "type"): New type `delayed_compare'. ! 6885: Add define_function_unit for delayed comparisons. ! 6886: Mark comparison results of certain insns as being delayed for ! 6887: longer that normal comparison results; add a new missing types ! 6888: of `compare'. ! 6889: (seq, sle): Remove special-cases for (const_int 0) operands; use ! 6890: alternative with constraint of `O' instead. ! 6891: (sltu, sgeu): Support most constants in second operand. ! 6892: ! 6893: * cse.c (prev_insn_cc0_mode): New variable. ! 6894: (fold_rtx): When folding CC0, get the mode from prev_insn_cc0_mode. ! 6895: (cse_insn): Save mode of SET of CC0 in prev_insn_cc0_mode. ! 6896: ! 6897: Sat Nov 23 17:01:47 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 6898: ! 6899: * expmed.c (init_expmed): Make REG a pseudo, not a hard reg. ! 6900: ! 6901: * tm-m68k.h (RTX_COSTS): New macro. ! 6902: ! 6903: * varasm.c (make_decl_rtl): Get rid of pedantic warning. ! 6904: ! 6905: * gcc.c (link_command_spec): Delete code for handling -collect. ! 6906: (default_compilers): Get rid of the %x for g++. ! 6907: This is because now collect is always supposed to be run. ! 6908: ! 6909: * tm-vms.h (ASM_OUTPUT_COMMON): Avoid void as type in :? operator. ! 6910: * tm-sun3.h (ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND): ! 6911: Likewise. ! 6912: * tm-vaxv.h (ASM_OUTPUT_ASCII): Declare `s' as unsigned char *. ! 6913: * tm-crds.h (FUNCTION_EPILOGUE): Don't call FUNCTION_EXTRA_EPILOGUE. ! 6914: ! 6915: * configure (i386-dontknow-*, ns32k-*-*): Alternatives deleted. ! 6916: (m68k-tti2-*): Deleted. ! 6917: (m68k-tti-*): Renamed from m68k-tti1-*. ! 6918: ! 6919: * i860.md (floatsidf2): Escape the doublequotes. ! 6920: ! 6921: * Makefile.in (final.o): Add insn-codes.h as dep. ! 6922: (OBJS): Add dbxout.o. ! 6923: (C_OBJS, OBJC_OBJS): Deleted here. ! 6924: (CPLUS_OBJS): Deleted cp-dbxout.o. ! 6925: (cp-dbxout.o): Target deleted. ! 6926: ! 6927: Sat Nov 23 06:33:24 1991 Michael Tiemann (tiemann at cygnus.com) ! 6928: ! 6929: * cp-spew.c (yylex): Don't see TYPENAME if LOOKING_FOR_TYPENAME ! 6930: is < 0. Definitely see TYPENAME if LOOKING_FOR_TYPENAME > 0. ! 6931: ! 6932: * cp-decl.c (grokdeclarator): Any type construction that uses a ! 6933: struct/union/enum type that is not yet defines pushes that type into ! 6934: the global namespace. ! 6935: ! 6936: * cp-spew.c (discard_token): Renamed from `eat_token'. ! 6937: Also, make all local functions static. Some day we'll use inlining. ! 6938: ! 6939: Thu Nov 21 16:06:14 1991 Mark Eichin (eichin at cygnus.com) ! 6940: ! 6941: * Makefile.in: added rule for cp-spew.o ! 6942: ! 6943: * cp-parse.y (TYPENAME_SCOPE): added an action, since it is no ! 6944: longer done in the lexer. ! 6945: (yyprint): Took out case for TYPENAME_SCOPE. ! 6946: ! 6947: * cp-lex.c (real_yylex): renamed from yylex. Also all of the code ! 6948: dealing with nested classes has been #if 0'd in favor of the code in ! 6949: cp-spew.c. ! 6950: ! 6951: * cp-spew.c (New File): This calls yylex (which is now real_yylex) ! 6952: and looks ahead as far as possible to bind up nested classes and ! 6953: pass them on to the parser. ! 6954: ! 6955: Thu Nov 21 18:14:11 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 6956: ! 6957: * out-sparc.c (output_function_epilogue): Correct parameters in ! 6958: call to final_scan_insn, write_symbols parameter no longer exists. ! 6959: ! 6960: * integrate.c (save_for_inline_copying): Use GET_RTX_CLASS. ! 6961: ! 6962: Thu Nov 21 17:44:46 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6963: ! 6964: * gcc.texinfo (PCC_BITFIELD_TYPE_MATTERS): Clarify that macro ! 6965: must always be non-zero unless MEM extv/extzv/insv exist. ! 6966: ! 6967: * romp.md (movdi): Disable define_split when we are moving ! 6968: between overlapping registers prior to reload to work ! 6969: around hard-to-fix sched.c bug. ! 6970: ! 6971: Thu Nov 21 17:14:54 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 6972: ! 6973: * jump.c (invert_exp): Correct typo in comment. ! 6974: ! 6975: Thu Nov 21 15:34:27 1991 Michael Meissner (meissner at osf.org) ! 6976: ! 6977: * gcc.texinfo (warning options): Make the documentation agree with ! 6978: the code, -Wstrict-prototypes and -Wmissing-prototypes are not ! 6979: turned on via -Wall; -Wnoparenthesis is now spelled ! 6980: -Wno-parenthesis. ! 6981: (option header): Mention that -W options take the no- prefix as well ! 6982: as -f options. ! 6983: ! 6984: Thu Nov 21 08:12:51 1991 Tom Wood (wood at dg-rtp.dg.com) ! 6985: ! 6986: * out-m88k.c (check_float_value): Change use of REAL_VALUE_TRUNCATE. ! 6987: * tm-m88k.h (FLOAT_TO_INT_INTERNAL): Ditto. ! 6988: (AS_BUG_POUND_TYPE): Simplify. ! 6989: * tm-m88kdgux.h: Don't need AS_BUG_DOT_LABELS or AS_BUG_POUND_TYPE. ! 6990: ! 6991: Thu Nov 21 06:47:11 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 6992: ! 6993: * rs6000.md (scc): Add missing '&' in some alternatives of constraints. ! 6994: ! 6995: * a29k.md (negdf2): Fix typo in constraints for SCRATCH in 29050 case. ! 6996: ! 6997: * real.h (REAL_VALUE_TRUNCATE): Default is to truncate to float if ! 6998: mode size is BITS_PER_WORD instead of when mode if SFmode. ! 6999: ! 7000: Thu Nov 21 01:58:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7001: ! 7002: * dbxout.c (dbxout_type): Test TYPE_BINFO before TYPE_BINFO_BASETYPES. ! 7003: ! 7004: Thu Nov 21 01:45:53 1991 Ken Raeburn ([email protected]) ! 7005: ! 7006: * cp-parse.y (unary_expr): Break out `new' expressions with ! 7007: parenthesized types into more basic forms, and handle trailing array ! 7008: dimensions with an appropriate warning message. ! 7009: ! 7010: * cp-class.c (pushclass): For UPType, overload the template name. ! 7011: (popclass): For UPType, undo the overload. ! 7012: ! 7013: * cp-decl.c (pop_decl_level): Don't look up DECL_NAME slot of a ! 7014: null pointer. ! 7015: (pushdecl_top_level): Reworked handling of shadow lists to be ! 7016: correct. ! 7017: (lookup_tag): Bypass redefinition error message for UPT as well as ! 7018: for TEMPLATE_DECL. ! 7019: (start_decl): Add template decls only to top level. Print message ! 7020: for non-function, non-class templates. ! 7021: (finish_decl): Disable code that renames anonymous types; leave it ! 7022: disabled until we figure out why it was being done in the first ! 7023: place. ! 7024: (grokdeclarator): Eliminate hack to deal with destructor templates. ! 7025: Extend some code handling constructors to handle destructors as ! 7026: well. Deleted some unnecessary code dealing with function ! 7027: templates. ! 7028: ! 7029: * cp-decl2.c (constructor_name): Treat class template decl like ! 7030: type decl. ! 7031: ! 7032: * cp-lex.c (store_pending_inline): If a function is not to be ! 7033: compiled, discard its text only if can_free flag is set. ! 7034: ! 7035: * cp-decl.c (start_function): For `pre-parsed' functions, only ! 7036: set extern-inline flag if inline flag is set. ! 7037: * cp-lex.c (do_pending_inlines): Don't set inline flag for method ! 7038: templates, regardless of default-inline flag setting. ! 7039: (process_next_inline): Ditto. ! 7040: ! 7041: * cp-method.c (dump_type): Do something semi-useful with UPT ! 7042: nodes, instead of crashing. ! 7043: (fndecl_as_string): For constructor and destructor, use name of ! 7044: function rather than looking up class constructor name; should be ! 7045: the same, and it's cheaper this way. ! 7046: (build_overload_name): Make template-related names unique, as well ! 7047: as unlikely to be accepted by the assembler. ! 7048: ! 7049: * cp-parse.y (yyprint): Handle PRE_PARSED_CLASS_DECL. ! 7050: (template_def): In case handling destructors, pass new decl to ! 7051: end_template_decl, rather than ungrokked call_expr node. Rewrote ! 7052: last derivation. ! 7053: (scoped_typename): Don't try building from template type; it doesn't ! 7054: work. ! 7055: (try_for_typename): Treat typename using template parms like any ! 7056: other typename. ! 7057: ! 7058: * cp-pt.c: New comment at start lists some known problems. ! 7059: (end_template_decl): Do nothing for error_mark_node. Check ! 7060: DECL_CLASS_CONTEXT and DECL_EXTERNAL when setting TREE_EXTERNAL ! 7061: field of template decl. Don't need to pop extra class level for ! 7062: non-operators any more, but do need to assign class context field. ! 7063: (instantiate_member_templates): Now returns void. ! 7064: (tsubst, case FUNCTION_DECL): Process flag fields of method as for ! 7065: other functions. Handle class context field. Push decl at top ! 7066: level only if decl context is null. ! 7067: (tsubst, case TREE_LIST): Use via-public and via-virtual fields. ! 7068: (do_pending_expansions): Correct handling of methods. ! 7069: ! 7070: * cp-pt.c (overload_template_name): If not class-level, push ! 7071: extra binding level. Disable check that overload hasn't already ! 7072: been done; for now, it's needed. ! 7073: (undo_template_name_overload): Pop it. ! 7074: ! 7075: Thu Nov 21 00:15:33 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 7076: ! 7077: * dbxout.c (dbxout_type_methods): Don't dereference TYPE_NAME and ! 7078: ctor_name until after checking for non-null methods. ! 7079: ! 7080: * sched.c (create_reg_dead_note): New function. Add a REG_DEAD note ! 7081: for REG to INSN, reusing a REG_DEAD note from the dead_notes line. ! 7082: (attach_deaths): Add quick exit for many rtx that can't contain a ! 7083: register. Rewrite REG_DEAD note code to use the new scheme (see ! 7084: the Nov 1 ChangeLog entry). ! 7085: (new_insn_dead_notes): Don't add a REG_DEAD note to an insn that ! 7086: already has one. ! 7087: (update_links): Must convert REG_UNUSED notes to REG_DEAD when a ! 7088: register formerly just clobbered is now explicitly set and used in ! 7089: the new split insns. ! 7090: ! 7091: Wed Nov 20 18:02:38 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 7092: ! 7093: * c-decl.c, cccp.c: Change all -Wno options to ! 7094: -Wno- options so as to be consistent with toplev.c, and so as ! 7095: to also be consistent with the -fno- options. ! 7096: * objc-actions.c: Add a -Wno-selector option to match the ! 7097: -Wselector option. ! 7098: ! 7099: * gcc.c (default_compilers): Pass all -W options to cpp, so that ! 7100: -Wno options will be passed along with the -W options that it ! 7101: understands. ! 7102: * cccp.c (main): Accept -Wno option counterparts for every ! 7103: existing option. ! 7104: ! 7105: Wed Nov 20 00:03:41 1991 Michael Tiemann (tiemann at cygnus.com) ! 7106: ! 7107: * cp-tree.c (lang_output_debug_info): Deleted. ! 7108: * cp-class.c (finish_struct): Set DECL_IGNORED_P on the TYPE_DECL ! 7109: nodes for types that should not have their debugging info written ! 7110: out. ! 7111: * dbxout.c (dbxout_{symbol,type}): Check DECL_IGNORED_P for ! 7112: TYPE_DECLs of RECORD_TYPE nodes. ! 7113: ! 7114: * cp-decl.c (grok_op_properties): Fix bug in grokking NEW_EXPR ! 7115: and DELETE_EXPR operators. ! 7116: * cp-method.c (hack_operator): Deleted. ! 7117: * cp-init.c (init_init_processing): Use `ansi_opname' for ! 7118: {NEW,DELETE}_EXPR instead of calling hack_operator and build_opid. ! 7119: * cp-decl2.c (grokopexpr): Deleted. ! 7120: * cp-lex.c (build_opid): Deleted. ! 7121: * cp-class.c (build_instantiated_decl): Deleted. ! 7122: * All cp-* files: OP_IDENTIFIER is no longer used. ! 7123: ! 7124: * cp-parse.y (operator_name): For most cases, Use `ansi_opname' ! 7125: directly instead of calling `build_opid'. ! 7126: ! 7127: Tue Nov 19 16:02:51 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7128: ! 7129: * c-decl.c (xref_tag): If we find wrong kind of type, return it. ! 7130: (lookup_tag): Fill in pending_invalid_xref_file, ..._line. ! 7131: ! 7132: * real.h (REAL_VALUE_TRUNCATE): New argument MODE. ! 7133: * cse.c (simplify_unary_operation, simplify_binary_operation): ! 7134: Pass that arg. ! 7135: * c-parse.y, objc-parse.y, cp-lex.c (yylex): Likewise. ! 7136: * fold-const.c (combine): Truncate floating result to fit mode. ! 7137: (fold): Don't add 1 to float constant if that doesn't change the value. ! 7138: ! 7139: Tue Nov 19 09:37:36 1991 Michael Meissner (meissner at osf.org) ! 7140: ! 7141: * configure (ns32k-encore-osf): Restore Encore Multimax using the ! 7142: OSF/rose object format, since the necessary files, such as ! 7143: tm-encrose.h, are present in the distribution. ! 7144: ! 7145: Mon Nov 18 21:38:13 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 7146: ! 7147: * out-sparc.c (output_cbranch): Always emit a nop before a FP branch ! 7148: to avoid illegal assembly output. ! 7149: * sparc.md: Don't define delay slot for FP compare insns. This was ! 7150: meant to solve the above problem, but fails with insn scheduling. ! 7151: ! 7152: * sparc.md (movsi): Must accept 'f' in addition to 'r' because ! 7153: combine can convert FP hard registers to SImode. ! 7154: ! 7155: Mon Nov 18 13:43:12 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7156: ! 7157: * rtlanal.c (replace_regs): Correct code that prevents nested SUBREGs. ! 7158: ! 7159: Mon Nov 18 13:43:12 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7160: ! 7161: * c-decl.c (finish_decl): Reinstall lost end_temporary_allocation. ! 7162: ! 7163: * tree.h (DECL_LANG_FLAG_8): Deleted. ! 7164: * print-tree.c (print_node): Don't use it. Do print DECL_IGNORED_P. ! 7165: ! 7166: Mon Nov 18 06:59:37 1991 Michael Tiemann (tiemann at cygnus.com) ! 7167: ! 7168: * cp-decl.c (value_identifier): Gone, following c-decl.c. Now use ! 7169: zero DECL_NAME for this purpose. ! 7170: * cp-typeck.c: Also affected by this change. ! 7171: ! 7172: * c-lang.c, objc-lang.c (lang_output_debug_info): New function. ! 7173: * dbxout.c (dbxout_type_methods): Fix minor problems arising from ! 7174: assuming all RECORD_TYPE are C++ RECORD_TYPE nodes. ! 7175: (dbxout_type): Ditto. ! 7176: ! 7177: Sun Nov 17 17:33:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7178: ! 7179: * tree.c (struct obstack_stack): New slots expression and rtl. ! 7180: (push_obstacks, push_obstacks_nochange, pop_obstacks): ! 7181: Save and restore all 4 obstack vars individually. ! 7182: ! 7183: * c-decl.c (start_decl): Call push_obstacks_nochange here. ! 7184: (push_parm_decl, grokfield): Also here. ! 7185: (finish_decl): Not here. ! 7186: Also clean up test for whether to replace DECL_INITIAL with error mark. ! 7187: ! 7188: Sun Nov 17 14:25:15 1991 Michael Tiemann (tiemann at cygnus.com) ! 7189: ! 7190: * cp-typeck.c (c_expand_return): Be more careful about throwing ! 7191: away only cleanup generated by 'build_functional_cast'. ! 7192: ! 7193: * cp-init.c (build_new): Use TRUE_TYPE instead of TYPE more ! 7194: consistently, in case TYPE is really an ARRAY_TYPE on its own. ! 7195: ! 7196: * cp-dbxout.c: Gone. Now G++ uses dbxout.c. ! 7197: * cp-tree.h (OPERATOR_NAME_P): Changed to IDENTIFIER_OPNAME_P. ! 7198: (OPERATOR_TYPENAME_P): Changed to IDENTIFIER_TYPENAME_P. ! 7199: (OPERATOR_{NEW,DELETE}_FORMAT): Deleted. ! 7200: * cp-lex.c (ansi_{opname,assopname}): New variables. All cp-* files ! 7201: changed to use these where comparisons against *_FORMAT were made. ! 7202: (init_lex): Initialize `ansi_{opname,assopname}' arrays. ! 7203: Also, update {opname,assignop}_tab grok new ANSI equivalences. ! 7204: (build_operator_fnname): Changed to build ANSI-style overloaded ! 7205: names. ! 7206: * cp-dem.c (optable): Add new ANSI equivalences. ! 7207: (cplus_demangle): Fixed to recognize new ANSI demangling. Note that ! 7208: old-style destructors, and possibly other codes were broken by the ! 7209: (undocumented) 27 Oct changes. ! 7210: ! 7211: * cp-decl2.c (grokclassfn): Set DECL_CLASS_CONTEXT here. ! 7212: * cp-class.c (finish_struct): Don't skip over FUNCTION_DECL that ! 7213: already has a DECL_CLASS_CONTEXT. ! 7214: ! 7215: * cp-except.c (cplus_expand_end_try): Set BLOCK_HANDLER_BLOCK for ! 7216: blocks that handle exceptions. ! 7217: (EXCEPTION_NAME_PREFIX): Shorted to "__ex" (from "__exception"). ! 7218: (EXCEPTION_NAME_LENGTH): Reduced to 4 from 12. ! 7219: ! 7220: * dbxout.c (flag_minimal_debug): Define new variable that is ! 7221: non-zero when symtab output routines can output abbreviated. ! 7222: (dbxout_type_fields): Move code that writes out debugging info about ! 7223: fields of RECORD_TYPE and UNION_TYPE nodes from `dbxout_type' into ! 7224: this function. ! 7225: (dbxout_type_{method,method_1}): Move code from `dbxout_type' into ! 7226: these new functions. ! 7227: (dbxout_type): Now writes out info about basetypes. Also, no longer ! 7228: need to record info about types having ctors, dtors, or both. GDB ! 7229: now figures out what it needs to, when it needs to. ! 7230: (dbxout_symbol): Implement special abbreviated form for C++ classes, ! 7231: which place their names in both the struct and decl namespaces. ! 7232: (dbxout_block): Write out special debugging stabs for exception ! 7233: handler blocks. ! 7234: ! 7235: * tree.h (BLOCK_HANDLER_BLOCK): Define new flag to indicate that a ! 7236: BLOCK is an exception handler block (a `catch' block for C++). ! 7237: (TREE_VFIELD, DECL_IGNORED_P): New macros. ! 7238: ! 7239: Sat Nov 16 22:21:56 1991 Jeffrey A Law (law at super.super.org) ! 7240: ! 7241: * tm-m68k.h (CONST_COSTS): Integer values between -128 and 127 ! 7242: inclusive are very cheap because of moveq. ! 7243: ! 7244: Sat Nov 16 00:40:04 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7245: ! 7246: * Makefile.in (install-cross-tools): Avoid clobbering symlinks already ! 7247: made. Double the $ before the @ in the indirection script. ! 7248: ! 7249: * t-decstatn: New file. ! 7250: * configure: (mips-dec-ultrix*): Use t-decstatn. ! 7251: ! 7252: * collect-ld: Always run collect if collect is installed. ! 7253: ! 7254: * collect-osf.c, enquire.c, gnulib2.c: Use gstddef.h, not stddef.h. ! 7255: ! 7256: * gnulib2.c (__eprintf): Undef NULL. ! 7257: ! 7258: * c-typeck.c (build_array_ref): Ref is volatile if array is volatile. ! 7259: ! 7260: Fri Nov 15 19:53:41 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 7261: ! 7262: * c-typeck.c (build_binary_op_nodefault): Delete ERROR_CODE ! 7263: argument because it is always the same as CODE. Add new argument ! 7264: CONVERT_P, and call default_conversion on the operand trees if ! 7265: true. Rename to build_binary_op. ! 7266: (old build_binary_op): Deleted because it is now unnecessary. ! 7267: * c-common.c, c-convert.c, c-decl.c, c-tree.h, c-typeck.c: All ! 7268: callers and other references to build_binary_op* fixed. ! 7269: * c-typeck.c (new build_binary_op): Add warning message for ! 7270: comparisons of signed and unsigned variables that won't give the ! 7271: expected result due to unexpected sign extension. ! 7272: ! 7273: * expr.c (convert_move): Add TFmode support and clean up code. ! 7274: * optabs.c (init_fixtab): Add TFmode support. ! 7275: (init_floattab): Likewise. ! 7276: (expand_float): Likewise. ! 7277: (expand_fix): Likewise. ! 7278: (init_optabs): Likewise. ! 7279: ! 7280: From Per Bothner: ! 7281: * collect2.c: Define vfork as fork for USG. Rewrite to not use ! 7282: prototypes, so it doesn't need gcc for compilation. ! 7283: (main): No longer uses static sized array for ld arguments, so ! 7284: that long command lines will work. Vfork ld instead of running ! 7285: via popen with nm. ! 7286: (write_hooks): Use type names not variable names in sizeof calls. ! 7287: ! 7288: Fri Nov 15 15:01:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7289: ! 7290: * fold-const.c (size_int): Properly preserve old obstack settings. ! 7291: * c-decl.c (finish_decl, grokdeclarator, xref_tag): Likewise. ! 7292: * stor-layout.c (layout_type): Likewise. ! 7293: * varasm.c (output_constant_def): Likewise. ! 7294: * tree.c (push_obstacks_nochange): New function. ! 7295: ! 7296: * stor-layout.c (layout_type): Make size of temp type saveable. ! 7297: * tree.c (saveable_allocation): New function. ! 7298: ! 7299: * configure: Comment out certain alternatives not yet updated. ! 7300: (sparc-unicom-*, m68k-tti1-*, m68-tti2-*): New alternatives. ! 7301: (m88k-*-v88r32*): New alternative. ! 7302: (i386-alternate-sysv): New alternative, not sure why. ! 7303: (sparc-*-sysv*): Commented out--not really supported. ! 7304: ! 7305: Fri Nov 15 22:22:32 PDT 1991 Mike Stump (mrs at csun.edu) ! 7306: ! 7307: * configure: Recognize only canonical names. Added missing entries ! 7308: for some configurations that obviously have not been tested in a ! 7309: while. ! 7310: ! 7311: * config.subr: Massive overhaul. It claimed to canonicalize ! 7312: the machine specification, but it never really did. Now it ! 7313: does. In general, it is not necessary to specify the os for ! 7314: popular machines that have a popular os, or given the os, it ! 7315: can sometimes figure out the vendor. Added in all the old ! 7316: ways of specifying machines from configure. Also added ! 7317: support for all (before it was missing a few) of the tm-*.h ! 7318: files. It now supports the concept of guessing the vendor for ! 7319: a given CPU type. It now supports the concept of guessing the ! 7320: os version given the vendor and/or the CPU type. Changed the ! 7321: default os for vax to ultrix, changed the default os for i386 ! 7322: to sco. ! 7323: ! 7324: * collect-ld: New file. It is useful when compiling C++ programs ! 7325: on machines that use collect. This includes the decstation. ! 7326: ! 7327: Fri Nov 15 14:19:29 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 7328: ! 7329: * out-sparc.c: Singlemove_string no longer static. ! 7330: (emit_move_sequence): Emit sethi/low_sum insn pair for values which ! 7331: are not arith_double_operands, was missing not. ! 7332: * sparc.md: DImode sethi pattern now uses singlemove_string to load ! 7333: a constant into a reg. ! 7334: * tm-sparc.h (LEGITIMATE_CONSTANT_P): Accept anything except a ! 7335: floating point constant. ! 7336: Declare singlemove_string so it can be used in sparc.md. ! 7337: ! 7338: * jump.c (jump_optimize): Correct typos in comments. ! 7339: ! 7340: Fri Nov 15 08:05:26 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7341: ! 7342: * out-rs6000.c (scc_comparison_operator): Allow non-FP EQ. ! 7343: ! 7344: * combine.c (subst, case NEG): Correct shift count in code that ! 7345: negates ZERO_EXTRACT to SIGN_EXTRACT. ! 7346: ! 7347: Thu Nov 14 23:03:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 7348: ! 7349: * genrecog.c (try_merge_1): Add big new comment. ! 7350: ! 7351: Thu Nov 14 19:28:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7352: ! 7353: * m68k.md: Fix peephole that merges a stack adjust with a push to ! 7354: use addqw instead of addql since we know we are incrementing an ! 7355: address register (sp). ! 7356: ! 7357: * loop.c (scan_loop): Rework code that looks for loops starting at the ! 7358: exit test; don't skip non-jump insns at start of loop and modernize ! 7359: and clean up code. ! 7360: ! 7361: * gcc.texinfo (SECONDARY_RELOAD_CLASS): Update description to ! 7362: show uses for both intermediate and scratch registers. ! 7363: * reload.h (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS): Default from ! 7364: SECONDARY_RELOAD_CLASS, if defined. ! 7365: (HAVE_SECONDARY_RELOADS): Defined if any of the secondary reload ! 7366: macros are defined. ! 7367: (reload_secondary_icode, reload_{in,out}_optab): New vars. ! 7368: * reload.c: Include insn-codes.h. ! 7369: (find_secondary_reload): New function. ! 7370: (push_reload): Call find_secondary_reload to process input and ! 7371: output reloads. Create both secondary and tertiary reloads, ! 7372: as required. ! 7373: * reload1.c: Include insn-codes.h. ! 7374: (init_reload): Initialize reload_{in,out}_optab. ! 7375: (emit_reload_insns): Handle cases where a secondary reload ! 7376: is a scratch register and where tertiary reloads are required. ! 7377: * Makefile.in (reload.o, reload1.o): Now include insn-codes.h. ! 7378: ! 7379: * tm-romp.h (SECONDARY_OUTPUT_RELOAD_CLASS): Define to use a BASE_REGS ! 7380: for symbolic memory locations. ! 7381: * romp.md (reload_outsi, reload_outhi, reload_outqi): New patterns. ! 7382: ! 7383: * expr.c (expand_expr): Pass BRANCH_COST to do_store_flag. ! 7384: (do_store_flag): Canonicalizations done in emit_store_flag ! 7385: need to be done here as well. ! 7386: Test for ffs as well as abs when seeing if scc is expensive. ! 7387: * expmed.c (emit_store_flag): Correct cases that are open-coded: ! 7388: Add a few missing cases and correct handling of normalizep. ! 7389: * combine.c (simplify_shift_const, case IOR): Convert sequence ! 7390: open-coded by emit_store_flag into LE or (neg (le ..)), as ! 7391: appropriate. ! 7392: (simplify_shift_const, case MINUS): Similarly, for GT. ! 7393: (simplify_comparison): sign_bit_comparison_p now true only if ! 7394: also comparing against constant zero. ! 7395: (simplify_comparison, case NOT): If sign bit comparison, just ! 7396: reverse comparison. ! 7397: (simplify_comparison, case MINUS): Move case where we subtract ! 7398: one from the absolute value of something to PLUS, since we ! 7399: subtract one using a PLUS operation. ! 7400: (simplify_comparison, case MINUS): Handle GT case done by ! 7401: emit_store_flag. ! 7402: (simplify_comparison, cae IOR): Similarly, for IOR. ! 7403: ! 7404: * tm-rs6000.h (BRANCH_COST): Define as 2. ! 7405: * rs6000.md (scc): Allow some more cases. ! 7406: (new scc patterns): Add numerous patterns to reflect superoptimizer ! 7407: results for scc insns on RS/6000. ! 7408: ! 7409: Thu Nov 14 16:42:19 1991 Michael Meissner (meissner at osf.org) ! 7410: ! 7411: * mips-tfile.c (all): Change small allocation requests to use ! 7412: separate allocation and free functions, instead of using the word8 ! 7413: union to hold each request. In order to support this easily, a free ! 7414: field was added to each small structure that is released. ! 7415: (main): If debugging, print a summary of the number of small ! 7416: allocations, frees, and the number of pages used. ! 7417: (add_procedure, copy_objects): Stuff the pointer to the end symbol ! 7418: into the shash chain, and use it's value to generate the new value ! 7419: for the computed end block. This is much safer than trying to ! 7420: calculate this on the fly. ! 7421: (main): Don't try to avoid using malloc by setvbuf'ing the streams ! 7422: we use. ! 7423: ! 7424: Wed Nov 13 23:47:10 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 7425: ! 7426: From [email protected]: ! 7427: * sparc.md: In DF load peephole, use operands not xoperands, so ! 7428: that output_asm_insn will use the right values. ! 7429: ! 7430: * tm-sun3.h, tm-sun2os4.h: Define PTRDIFF_TYPE, SIZE_TYPE, ! 7431: WCHAR_TYPE same as tm-sparc.h. ! 7432: ! 7433: * c-decl.c (finish_function): Don't clear current_function_decl ! 7434: for nested functions. ! 7435: ! 7436: * dbxout.c: Include insn-config.h and reload.h. ! 7437: (dbxout_symbol): Pass DECL_RTL (decl) through eliminate_regs before ! 7438: using. ! 7439: (dbxout_parms): Pass DECL_RTL and DECL_INCOMING_RTL of parms through ! 7440: eliminate_regs before using. ! 7441: * sdbout.c: Include insn-config.h and reload.h. ! 7442: (sdbout_symbol): Pass DECL_RTL (decl) through eliminate_regs before ! 7443: using. ! 7444: (sdbout_parms): Pass DECL_RTL and DECL_INCOMING_RTL of parms through ! 7445: eliminate_regs before using. ! 7446: * Makefile.in: Update dependency lists for dbxout.c and sdbout.c. ! 7447: ! 7448: * combine.c (try_combine): Don't pass sets with (USE (MEM ...)) ! 7449: dests to reg_referenced_p. ! 7450: ! 7451: Wed Nov 13 21:38:03 1991 John Bunda (bunda at cs.utexas.edu) ! 7452: ! 7453: * reload1.c (gen_input_reload): If IN is a PLUS whose second arg ! 7454: is the same as the reload register, swap the args of the PLUS. ! 7455: ! 7456: Wed Nov 13 14:43:09 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 7457: ! 7458: * tm-sparc.h (OPTIMIZATION_OPTIONS): Don't redefine options set in ! 7459: toplev.c, only effect flag_omit_frame_pointer. ! 7460: ! 7461: * sparc.md: Delete obsolete sign_extract and zero_extract patterns. ! 7462: We get better code without them. ! 7463: (indirect_jump, tablejump): Extend indirect_jump pattern to accept ! 7464: any address, not just a register. Add tablejump like pattern which ! 7465: also accepts any address. ! 7466: ! 7467: * unroll.c (final_biv_value): Make sure the initial value of the biv ! 7468: is invariant if it is used after the loop. ! 7469: ! 7470: Tue Nov 12 23:16:51 1991 Michael Meissner (meissner at osf.org) ! 7471: ! 7472: * tm-mips.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Correct so ! 7473: ASM_OUTPUT_REG_PUSH actually does a push instead of pop, and vica ! 7474: versa. Also make ASM_OUTPUT_REG_POP turn on .set noreorder, and ! 7475: increment the appropriate -mstats load delay counters. ! 7476: ! 7477: Tue Nov 12 22:53:45 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7478: ! 7479: * expr.h (BRANCH_COST): Supply default value here. ! 7480: * jump.c (BRANCH_COST): Don't default BRANCH_COST here. ! 7481: ! 7482: * global-alloc.c (global_alloc): Use proper entry in eliminables ! 7483: when searching for the frame pointer. ! 7484: ! 7485: Tue Nov 12 22:23:36 1991 Jim Wilson (wilson at sphagnum.cygnus.com) ! 7486: ! 7487: * expr.c: (expand_expr, MIN_EXPR case): Check for const_true_rtx ! 7488: not const1_rtx as return value from compare_from_rtx. ! 7489: (do_jumps_by_part_greater): Handle const0_rtx and const_true_rtx ! 7490: return values from compare_from_rtx. ! 7491: (do_jumps_by_part_equality, do_jumps_by_part_equality_rtx): Likewise. ! 7492: ! 7493: * sched.c (sched_analyze_2): Correctly handle ASM_OPERAND and ! 7494: ASM_INPUT rtx. Volatile and traditional asm statements are ! 7495: assumed to use and clobber all hard registers and all memory. ! 7496: (schedule_block): Delete code that incorrectly handles ASM_OPERAND ! 7497: and ASM_INPUT rtx by exiting early. ! 7498: ! 7499: Tue Nov 12 15:38:56 1991 Tom Wood (wood at dg-rtp.dg.com) ! 7500: ! 7501: * sched.c: Introduce names for various priority values. Reduce ! 7502: LAUNCH_PRIORITY to avioid wrap-around in launch_link. ! 7503: ! 7504: Tue Nov 12 14:21:52 1991 Per Bothner (bothner at cygnus.com) ! 7505: ! 7506: * cp-lex.c (init_lex): Exception-handling fixes. ! 7507: * cp-tree.h: Add new OPERATOR_CHARS_P that is like ! 7508: OPERATOR_NAME_P, except if takes a (char*), not a tree. ! 7509: * cp-dbxout.c (dbxout_type_methods): Handle operators ! 7510: specially when chopping prefix for minimal_debug. ! 7511: ! 7512: * config/tm-news.h: In PRINT_OPERAND, recognize new 68040 ! 7513: operand types. Add definition of CPP_DEFINES for cross-compiling. ! 7514: ! 7515: Tue Nov 12 13:11:01 1991 Michael Meissner (meissner at osf.org) ! 7516: ! 7517: * protoize.c (__OSF1__ ifdef): Remove OSF/1 specific ifdefs, since ! 7518: the problem they address has been fixed, and the ifdefs now cause ! 7519: spurious warnings. ! 7520: ! 7521: * tm-mips.h (INT_TYPE_SIZE): Define. ! 7522: (SHORT_TYPE_SIZE): Define. ! 7523: (LONG_TYPE_SIZE): Define. ! 7524: (LONG_LONG_TYPE_SIZE): Define. ! 7525: (CHAR_TYPE_SIZE): Define. ! 7526: (FLOAT_TYPE_SIZE): Define. ! 7527: (DOUBLE_TYPE_SIZE): Define. ! 7528: (LONG_DOUBLE_TYPE_SIZE): Define. ! 7529: ! 7530: * out-mips.c (block_move_load_store): New commn function to create ! 7531: one load and store for the block move functions. The load is ! 7532: emitted directly, and the store is returned, to be emitted later. ! 7533: (block_move_sequence): Call block_move_load_store. For straight ! 7534: line moves, have two outstanding loads before a store, for newer ! 7535: machines that want two delay slots. ! 7536: (block_move_loop): Call block_move_load_store. Move 4 words per ! 7537: loop, for a loop that moves 16 bytes in 11 cycles if aligned, and 16 ! 7538: bytes in 19 cycles if not aligned. ! 7539: (block_move_memcpy): Change argument names for consistancy. ! 7540: (expand_block_move): Always move address into a register, even for ! 7541: one byte moves. Fix bugs in calling memcpy. If moving a large ! 7542: constant amount of unaligned data, emit a runtime check to see if ! 7543: the data is really aligned, and if so do an aligned move, otherwise ! 7544: an unaligned move loop. ! 7545: ! 7546: * mips-tfile.c (toplevel): Make some changes, so that mips-tfile can ! 7547: be debugged on OSF/1. ! 7548: (efdr structure): Align identifiers in declaration. ! 7549: (cur_proc_value): Delete variable. ! 7550: (cur_oproc_begin): New global to record original proc .ent symbol. ! 7551: (cur_oproc_end): New global to record original proc .end symbol. ! 7552: (add_procedure): Set cur_oproc_begin, cur_oproc_end variables ! 7553: instead of cur_proc_value. ! 7554: (parse_begin, parse_end): Add check for cur_oproc_begin being set. ! 7555: (parse_end): Use cur_oproc_end's value node for new value node. ! 7556: (main): Add cast to free_multiple_pages call. ! 7557: ! 7558: Tue Nov 12 08:57:39 1991 Tom Wood (wood at dg-rtp.dg.com) ! 7559: ! 7560: * jump.c (jump_optimize): Merge the "if (...) x = 0;" case with ! 7561: the "x = a; if (...) x = b;" case. ! 7562: ! 7563: Mon Nov 11 19:27:03 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7564: ! 7565: * cp-cvt.c (convert_pointer_to): Correctly get type of a TREE_VEC ! 7566: object. (This patch is from someone at Cygnus.) ! 7567: ! 7568: * combine.c (try_combine): Add missing parens. ! 7569: ! 7570: Mon Nov 11 19:26:24 1991 Ron Guilmette (rfg at ncd.com) ! 7571: ! 7572: * c-typeck.c (build_binary_op_nodefault, convert_for_assignment): ! 7573: A (void *) object is compatible with a function pointer if it is ! 7574: the constant zero. ! 7575: (build_conditional_expr): Properly check for pointers to functions. ! 7576: ! 7577: Sun Nov 10 19:59:12 1991 Michael Meissner (meissner at osf.org) ! 7578: ! 7579: * cccp.c (make_undef): Fix by off by one error. ! 7580: (MIN, MAX): Add #undef, in case some system include file defined ! 7581: these macros. ! 7582: ! 7583: Sun Nov 10 10:34:17 1991 Michael Tiemann (tiemann at cygnus.com) ! 7584: ! 7585: * cp-decl2.c (grokfield): Set TREE_EXTERNAL on static const ! 7586: decls that are either uninitialized in their initial declaration, ! 7587: or initialized by something we cannot evaluate at initial ! 7588: declaration time. ! 7589: ! 7590: * cp-init.c (build_new): Make `operator new' with placement cast ! 7591: its return type to the type of the object being allocated. ! 7592: ! 7593: * cp-typeck.c (commonparms): If the last element of P1 is ! 7594: VOID_LIST_NODE, use that. ! 7595: ! 7596: * stor-layout.c (layout_record): Return PENDING_STATICS. ! 7597: (layout_type): Don't commit static members to a particular mode ! 7598: until REC has been laid out completely. ! 7599: ! 7600: Sat Nov 9 23:16:51 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7601: ! 7602: * cccp.c (fancy_abort): Don't declare as static. ! 7603: ! 7604: Sat Nov 9 20:38:30 1991 Michael Tiemann (tiemann at cygnus.com) ! 7605: ! 7606: * cp-decl.c (push_overloaded_decl): Don't cons new decl to ! 7607: existing ERROR_MARK_NODE. If the old decl was erroneous, just ! 7608: ignore it. ! 7609: ! 7610: * cp-call.c (ideal_candidate): Fix typo in error message. ! 7611: ! 7612: Sat Nov 9 14:13:46 1991 Jeffrey A Law (law at super.super.org) ! 7613: ! 7614: * tm-hp9k2bsd.h (MULSI3_LIBCALL): New define which avoids ! 7615: the use of __mulsi3 for signed integer multiplication. ! 7616: (UMULSI3_LIBCALL, DIVSI3_LIBCALL, UDIVSI3_LIBCALL): Likewise. ! 7617: (MODSI3_LIBCALL, UMODSI3_LIBCALL): Likewise. ! 7618: ! 7619: Fri Nov 8 12:05:39 1991 Per Bothner (bothner at cygnus.com) ! 7620: ! 7621: First cut at ANSI-style exception handling (using ! 7622: syntax and semantics of Stroustrup 2nd ed). ! 7623: THIS IS WORK IN PROGRESS! ! 7624: * cp-tree.h: Declare flag_ansi_exceptions. ! 7625: * gplus.gperf: Add 'throw' (for ANSI exception handling), ! 7626: and update private/protected/public from (old) cp-lex.c. ! 7627: * cp-hash.h: New file, generated from gplus.gperf. ! 7628: * cp-lex.c: #include cp-hash.h, instead of requiring ! 7629: manual cut-and-paste when keywords are changed. ! 7630: * cp-lex.c: Commented out some extern declarations that ! 7631: were conflicting with inlines in cp-input.c. ! 7632: Hooks for ANSI-style exception handling. ! 7633: * cp-parse.y: Parse ANSI-style exception stuff. ! 7634: * cp-decl2.c: Define new flag flag_ansi_exceptions. ! 7635: * cp-decl2.c (finish_table): Off-by-one error in ! 7636: calculating index type. ! 7637: * clus-decl2.c (finish_vtable_vardecl): Add missing ! 7638: TREE_OPERAND to get dossier decl. ! 7639: * cp-except (cplus_expand_start_except): Allow NULL name, ! 7640: since there is no distinguished name for ANSI exceptions. ! 7641: * cp-except (cplus_expand_raise): Too few ! 7642: parameters to expand_expr; add them. ! 7643: * cp-except.c: New functions for ANSI exceptions: ! 7644: cplus_exception_name, ansi_exception_object_lookup, ! 7645: cplus_expand_throw, ansi_expand_start_catch. ! 7646: These are heavily hacked from similar old functions. ! 7647: ! 7648: Try to make -fdossier work better (but more work is needed). ! 7649: (Especially, generate fewer unneeded descriptors.) ! 7650: * cp-class.c (add_virtual_function, finish_struct): Do not ! 7651: create a vtable just because of -fdossier. ! 7652: * cp-gc.c: Each type points to an array of fields, ! 7653: instead of an array of pointers to fields. Ditto for methods. ! 7654: This saves one pointer per field or method by removing ! 7655: unneded extra indirection. Also other tweaks to save space. ! 7656: * cp-decl.c (init_decl_processing): Add length of ! 7657: field and method arrays to descriptors, instead of ! 7658: relying on NULL-termination (since we no longer have ! 7659: the extra pointer array). ! 7660: Make the parameter count and required count of ! 7661: method descriptors be shorts. ! 7662: * cp-method.c: Remove no-longer-needed functions ! 7663: build_i_desc_overload and build_m_desc_overload. ! 7664: ! 7665: Other C++ fixes: ! 7666: * cp-dbxout.c (dbxout_symbol): Class types were ! 7667: emitting only a "t" spec which made gdb unhappy. ! 7668: Kludged it so that it once more emits "Tt". ! 7669: * cp-tree.c (lang_output_debug_info): Do emit debugging ! 7670: info if this implementation file corresponds the the ! 7671: type's interface, even if nothing is written. ! 7672: ! 7673: Fri Nov 8 08:18:55 1991 Tom Wood (wood at dg-rtp.dg.com) ! 7674: ! 7675: * tm-m88k*.h: Fix comments, minor cleanups. ! 7676: ! 7677: Thu Nov 7 16:21:05 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) ! 7678: ! 7679: * longlong.h (__ibm032__): Fix operand order for add_ssaaaa and ! 7680: sub_ddmmss. ! 7681: ! 7682: Thu Nov 7 12:47:14 1991 Michael Meissner (meissner at osf.org) ! 7683: ! 7684: * tm-mips.h (MIPS_VERSION): Bump meissner version number to 3.3. ! 7685: (PCC_BITFIELD_TYPE_MATTERS): Define this to be 1. ! 7686: ! 7687: * out-mips.c (block_move_loop): New function to generate a loop to ! 7688: do a block move. ! 7689: (block_move_call): Pass the source, destination, size as separate ! 7690: arguments, rather than a pointer to an array of operands. ! 7691: (expand_block_move): Change block_move_call calling sequence. ! 7692: (expand_block_move): If moving big aligned items, generate a loop to ! 7693: do it, rather than calling memcpy/bcopy. ! 7694: (override_options): If -msoft-float, 'f' constraint picks GP ! 7695: registers. ! 7696: ! 7697: * t-decrose (collect): Use ALL_CFLAGS instead of CFLAGS, since this ! 7698: gets the shared library flags in x-decrose. ! 7699: ! 7700: Thu Nov 7 07:57:36 1991 Tom Wood (wood at dg-rtp.dg.com) ! 7701: ! 7702: * tm-m88k.h (MEMORY_MOVE_COST): Define. ! 7703: (TARGET_88*): Fix. ! 7704: ! 7705: Wed Nov 6 19:07:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7706: ! 7707: * a29k.md (negsf2, negdf2): Add missing CLOBBER in 29050 case. ! 7708: ! 7709: * jump.c (jump_optimize): When looking for a conditional jump ! 7710: skipping an unconditional jump, be sure the conditional jump is ! 7711: not an unconditional jump. ! 7712: ! 7713: * combine.c (try_combine): If we make an unconditional jump, ! 7714: be sure it is followed by a BARRIER. ! 7715: (subst, case SET): Convert (set (pc) (return)) to (return). ! 7716: ! 7717: Wed Nov 6 13:41:55 1991 Tom Wood (wood at dg-rtp.dg.com) ! 7718: ! 7719: * tm-m88kv3.h, xm-m88kv3.h: Renamed from *m88ksysv3*. ! 7720: ! 7721: Wed Nov 6 09:27:16 1991 Michael Meissner (meissner at osf.org) ! 7722: ! 7723: * tm-mips.h (MIPS_VERSION): Bump meissner version number to 3.2. ! 7724: (TARGET_SWITCHES): Add -msoft-float and -mhard-float. ! 7725: (GP_RETURN): Use GP_REG_FIRST as base of GP registers. ! 7726: (FP_RETURN): Use FP_REG_FIRST as base of FP registers. If ! 7727: -msoft-float, make $2 be the return register. ! 7728: (GP_ARG_FIRST, GP_ARG_LAST): Use GP_REG_FIRST as 1st GP reg. ! 7729: (FP_ARG_FIRST, FP_ARG_LAST): Use FP_REG_FIRST as 1st FP reg. ! 7730: ! 7731: * mips.md (ffssi2, ffssi2_internal): Fix ffs builtin so that it ! 7732: doesn't clobber the input argument by turning it into a ! 7733: define_expand, and using a parallel operation including the ! 7734: necessary clobber's. ! 7735: (abssi2, ffssi2, ffssi2_internal): Use the 'd' constraint which only ! 7736: matches the integer registers, rather than 'r' which can match ! 7737: floating point registers as well. ! 7738: ! 7739: * tm-mips-news.h (CPP_SPEC): Add -Dnews7300, -Dsony_news, -Dmips, ! 7740: and -Dhost_mips. ! 7741: ! 7742: Wed Nov 6 08:46:54 1991 Mark Eichin (eichin at cygnus.com) ! 7743: ! 7744: * cp-class.c (add_method): when adding a new constructor or ! 7745: destructor, actually chain onto method_vec[0] rather than replacing ! 7746: the list with the current entry. ! 7747: ! 7748: Wed Nov 6 07:04:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7749: ! 7750: * expr.c (store_field): Handle case where we are storing into a BLKmode ! 7751: field of an object that is in a register. ! 7752: (expand_expr, case COMPONENT_REF): Handle case where we are extracting ! 7753: a BLKmode field from an object in a register. ! 7754: ! 7755: Tue Nov 5 22:16:39 1991 Michael Meissner (meissner at osf.org) ! 7756: ! 7757: * tm-mips.h (target_flags): Delete second declaration. ! 7758: (MASK_G0, MASK_G1, MASK_G2): Delete, since -G xx now works to set ! 7759: the size of the small data/bss area cutoff. ! 7760: (MASK_G012_USED, MASK_G012_NUSED): ditto. ! 7761: (TARGET_GVALUE): ditto. ! 7762: (TARGET_G012_USED): ditto. ! 7763: (TARGET_SWITCHES): Delete -mGx, -mno-Gx switches. ! 7764: (TARGET_DEFAULT): Set to 0 instead of MASK_G012_NUSED. ! 7765: ! 7766: * tm-decrose.h (TARGET_DEFAULT): Eliminate MASK_G012_NUSED. ! 7767: ! 7768: * out-mips.c (override_options): Remove support for -mGx and -mno-Gx ! 7769: switches to set the cutoff size for small data/bss. ! 7770: ! 7771: * mips.md (abssi2): Add new pattern. ! 7772: (ffssi2): Add new pattern. ! 7773: ! 7774: Tue Nov 5 18:36:29 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7775: ! 7776: * gcc.texinfo (MEMORY_MOVE_COST): Document new macro. ! 7777: * regclass.c (MEMORY_MOVE_COST): Default it to 2. ! 7778: (regclass, reg_class_record): Use MEMORY_MOVE_COST, not constant 2. ! 7779: (regclass): Look at result of single_set instead of checking again if ! 7780: pattern is a SET. ! 7781: * tm-rs6000.h (MEMORY_MOVE_COST): Add definition. ! 7782: ! 7783: Tue Nov 5 17:01:05 1991 Ken Raeburn (raeburn at cygnus.com) ! 7784: ! 7785: * cp-pt.c (tsubst): For char_type_node, just build variant and ! 7786: return it. ! 7787: (tsubst, case FUNCTION_DECL): Walk methods more efficiently. ! 7788: ! 7789: * cp-pt.c (overload_template_name): Push a binding level, to ! 7790: separate template name binding from method parameters. Check ! 7791: identifier value slots for TYPE_DECLs, not RECORD_TYPEs. Don't need ! 7792: to do extra push of TYPE_DECL for template name. ! 7793: (undo_template_name_overload): Pop it. Don't need to explicitly ! 7794: clear template name binding. ! 7795: ! 7796: * cp-ptree.c (print_lang_decl): For FIELD_DECL, don't try to ! 7797: print fields that go off the end of the lang_decl_flags structure. ! 7798: ! 7799: * cp-pt.c (pop_template_decls): Don't explicitly clear out value ! 7800: slots of identifier; let poplevel/poplevel_class do it. ! 7801: ! 7802: * cp-pt.c: Use build_lang_decl insteaed of build_decl for ! 7803: all TEMPLATE_DECL and TYPE_DECL nodes. ! 7804: ! 7805: * cp-tree.h (make_anon_name): Declare it. ! 7806: ! 7807: * cp-pt.c (unify): Deleted unreachable code. ! 7808: ! 7809: * cp-decl.c (push_overloaded_decl): Fixed typo from merge. ! 7810: (start_decl): Ditto. ! 7811: (grokdeclarator, case CALL_EXPR): Remove debug_tree call ! 7812: accidentally left in. Handle constructor templates specially, like ! 7813: destructor templates. Removed some commented-out code. ! 7814: (grokdeclarator, case SCOPE_REF): If the type is uninstantiated, ! 7815: treat it like any other aggregate type code. ! 7816: ! 7817: * cp-lex.c (identifier_typedecl_value): If no binding slot from ! 7818: the identifier is the right type decl, use the type name if it is ! 7819: non-null, even if the name doesn't match. ! 7820: (build_lang_decl): If new decl node is TREE_PERMANENT, make sure the ! 7821: lang-specific info gets allocated that way too; don't assume that ! 7822: the current obstack is permanent. ! 7823: (copy_decl_lang_specific): If decl is TREE_PERMANENT, assert that ! 7824: the current obstack is permanent. ! 7825: ! 7826: * cp-parse.y (template_def): Delete derivations that were ! 7827: purportedly for constructors; they didn't work. ! 7828: (notype_declarator): Deal with them here. ! 7829: (template_instantiate_once): Copy decl node with permanent obstacks, ! 7830: thereby clearing the chain pointer, before pushing it into top ! 7831: level. ! 7832: (structsp): Don't need to undo template name overload here. ! 7833: (scoped_typename): Want TYPENAME with template type, not PTYPENAME. ! 7834: ! 7835: Tue Nov 5 13:46:06 1991 Tom Wood (wood at dg-rtp.dg.com) ! 7836: ! 7837: * sdbout.c (sdbout_init, sdbout_symbol): Don't reverse the ! 7838: permanent types. ! 7839: ! 7840: * cccp.c (make_definition): Eliminate previous change associated ! 7841: with pretty-printing strings passed to do_define. ! 7842: (pass_thru_directive): Move pretty-printing here. ! 7843: ! 7844: Tue Nov 5 11:21:34 1991 Michael Meissner (meissner at osf.org) ! 7845: ! 7846: * tm-mips-news.h (ASM_SPEC, LINK_SPEC): Correctly pass -EB instead ! 7847: of -EL, since the Sony News system is big endian not little endian. ! 7848: ! 7849: Tue Nov 5 09:54:08 1991 Tom Wood (wood at dg-rtp.dg.com) ! 7850: ! 7851: * tm-m88kv4.h, t-m88kv4, x-m88kv4: Renamed from *m88ksysv4*. ! 7852: ! 7853: Tue Nov 5 06:36:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7854: ! 7855: * cse.c (simplify_relational_operation, unsigned comparisons): Don't ! 7856: simplify unless mode of operand is a MODE_INT mode. ! 7857: ! 7858: * Makefile.in (*CFLAGS): More clearly document the purposes of each ! 7859: of the flags. Add X_CFLAGS and T_CFLAGS for x-* and t-* to override. ! 7860: * x-decrose, x-hp9k320g, x-i386isc, x-m88ksysv4, x-mips, x-tower: ! 7861: Override X_CFLAGS instead of CFLAGS or INTERNAL_CFLAGS. ! 7862: * x-vax: Likewise. ! 7863: * x-sco: Don't include XCFLAGS in definition of CFLAGS. ! 7864: ! 7865: * gstddef.h: Renamed from stddef.h. ! 7866: * Makefile.in (USER_H, install-common-headers): Install gstddef.h as ! 7867: stddef.h. ! 7868: ! 7869: Mon Nov 4 17:54:04 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7870: ! 7871: * integrate.c (save_constants): If we are referencing a constant in ! 7872: the constant pool in a different mode than its normal mode, make ! 7873: a SUBREG so that we can record both modes. ! 7874: (copy_for_inline, restore_constants): Handle these SUBREG's. ! 7875: (copy_for_inline): Must copy a MEM if it's address contains an ! 7876: ADDRESS (i.e., the address of a constant pool entry). ! 7877: ! 7878: * expr.c (expand_expr, case PLUS_EXPR): If adding constant, FP, and ! 7879: something else, add FP to the constant and then add the other operand. ! 7880: ! 7881: * global-alloc.c (find_reg): If all_regs_p, use ALL_REGS, not ! 7882: GENERAL_REGS. ! 7883: * local-alloc.c (block_alloc): Likewise. ! 7884: ! 7885: * genoutput.c (gen_expand): Record all the same information as ! 7886: for a DEFINE_INSN. ! 7887: ! 7888: * cse.c (simplify_binary_operation, case PLUS): Simplify expressions ! 7889: like (a +/- b) - (a +/- c). ! 7890: (simplify_binary_operation, case MULT): For X * (-1), try to simplify ! 7891: the NEG before we make it. ! 7892: ! 7893: Mon Nov 4 16:29:01 1991 Mark Eichin (eichin at cygnus.com) ! 7894: ! 7895: * cp-pt.c (overload_template_name): use build_lang_decl so that ! 7896: lang_specific gets initialized properly. ! 7897: ! 7898: * cp-parse.y (LC): use make_lang_type to produce complete node, ! 7899: not just make_node. ! 7900: ! 7901: * cp-ptree.c (print_lang_type): return if TYPE_LANG_SPECIFIC is ! 7902: null, since everything printed here is in lang_specific. ! 7903: ! 7904: Mon Nov 4 16:17:48 1991 James Van Artsdalen (james at raid.dell.com) ! 7905: ! 7906: * x-i386v4: New file. ! 7907: * configure (i386-sysv4): Use it. ! 7908: ! 7909: Mon Nov 4 12:36:09 1991 Michael Meissner (meissner at osf.org) ! 7910: ! 7911: * gcc.texinfo (BRANCH_COST): Move so BRANCH_COST formats correctly. ! 7912: ! 7913: Mon Nov 4 08:03:44 1991 Tom Wood (wood at dg-rtp.dg.com) ! 7914: ! 7915: * x-m88kdgux, x-m88ksysv4: Don't set XCFLAGS. ! 7916: ! 7917: * jump.c (jump_optimize): Change "if (...) x = 0;" to use a ! 7918: store-flag insn if jumps are expensive (BRANCH_COST). ! 7919: ! 7920: * tm-m88k.h (BRANCH_COST): Branches are cheap on the m88100. ! 7921: (OVERRIDE_OPTIONS): Make m88100 the default. ! 7922: (STORE_FLAG_VALUE): Use -1. ! 7923: (.ctors and .dtors sections): Change section flags. ! 7924: * m88k.md (sxx, negate sxx): Use ext and extu. Eliminate extendsxx. ! 7925: ! 7926: Mon Nov 4 07:19:36 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7927: ! 7928: * romp.md (movdf, movdi): When splitting, ensure we put in a CLOBBER ! 7929: for a scratch register, when needed. ! 7930: ! 7931: * tm-a29k.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define to be ! 7932: compatible with those chosen by EPI. ! 7933: ! 7934: * tm-rs6000.h (REG_ALLOC_ORDER): Put CR registers before integer regs. ! 7935: ! 7936: * cse.c (simplify_relational_operation): Fix error in last change. ! 7937: ! 7938: Sun Nov 3 12:22:41 1991 Torbjorn Granlund (tege at sics.se) ! 7939: ! 7940: * longlong.h (m68020 count_leading_zeros): Fix typo in previous ! 7941: change. ! 7942: ! 7943: Sun Nov 3 09:25:39 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7944: ! 7945: * cse.c (simplify_relational_operation, cases GEU, LTU, GTU, LEU): ! 7946: Simplify comparisons that have known values such as (unsigned) x < 0. ! 7947: ! 7948: * final.c (final_scan_insn): If we've just made a branch unconditional, ! 7949: convert (set (pc) (return)) to (return). ! 7950: Use const_true_rtx instead of calling gen_rtx to make it again. ! 7951: ! 7952: * x-romp (CC): Pass -Hnocpp to hc so it will use builtin preprocessor. ! 7953: (INTERNAL_CFLAGS): Don't define BSTRING here. ! 7954: * xm-romp.h (alloca): Add definition to allow use of hc's builtin. ! 7955: (BSTRING): Define here. ! 7956: ! 7957: * reload1.c (spill_hard_reg): Correct typo in previous change; had ! 7958: test backwards. ! 7959: ! 7960: * function.c (instantiate_virtual_regs_1, case PLUS): If can't ! 7961: replace operand with register, try to replace all copies of operand ! 7962: with the register in case of MATCH_DUP. ! 7963: ! 7964: * recog.c (validate_replace_rtx_1): Use rtx_equal_p to see if ! 7965: things are equal. ! 7966: ! 7967: * genconfig.c (max_recog_operands, max_dup_operands): Remove `_flag' ! 7968: in name since these aren't flags. ! 7969: (max_clobbers_per_insn): Likewise. ! 7970: (main): Default to at least 10 operands (for asm) and 1 dup operand. ! 7971: ! 7972: Sun Nov 3 07:26:57 1991 Ron Guilmette (rfg at ncd.com) ! 7973: ! 7974: * Makefile.in (gnulib1.null): Use $(GCC_FLAGS) instead ! 7975: of $(CCLIBFLAGS). ! 7976: (gnulib1): Don't copy gnulib1.c into a temporary .c file before ! 7977: compiling. That messes up the source file names in the debug info, ! 7978: which makes it harder to debug gnulib1 problems. ! 7979: ! 7980: * Makefile.in (install-*): Force removal of previously installed files ! 7981: before installing new ones (in case they got set to read-only somehow). ! 7982: ! 7983: * Makefile.in (uninstall): Remove protoize.1 and unprotoize.1 man ! 7984: page files. ! 7985: ! 7986: Sat Nov 2 22:42:06 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 7987: ! 7988: * out-a29k.c (output_epilog): Remove write_symbols from parameter list ! 7989: of call to final_scan_insn. ! 7990: * out-m88k.c (preserve_registers): Likewise. ! 7991: * out-mips.c (function_epilogue): Likewise. ! 7992: * out-sparc.c (output_function_epilogue, output_tail_call): Likewise. ! 7993: ! 7994: Sat Nov 2 22:02:45 1991 Ken Raeburn (raeburn at cygnus.com) ! 7995: ! 7996: * cp-search.c (push_class_decls): Added missing argument to ! 7997: overload_template_name. ! 7998: ! 7999: * cp-ptree.c (print_lang_decl): Don't print lang-specific fields ! 8000: for FIELD_DECL, since it has only the shorter flags structure. ! 8001: ! 8002: * cp-class.c (finish_struct_method): Fixed comment typo. ! 8003: ! 8004: * cp-decl.c: Add some code for debugging binding level ! 8005: manipulations, conditionalized on DEBUG_CP_BINDING_LEVELS. ! 8006: (debug_bindings_indentation): New var, used to maintain indentation ! 8007: to indicate which changes are on the behalf of other routines. ! 8008: (push_binding_level): Print debugging messages to track binding ! 8009: level changes and call/nesting sequences. ! 8010: (pushlevel, poplevel): Ditto. ! 8011: (pushlevel_class): Ditto. ! 8012: (pop_binding_level): Ditto. Also scribble over freed binding level, ! 8013: and don't store it for re-use. ! 8014: (poplevel_class): Ditto. ! 8015: * cp-decl.h (debug_bindings_indentation): Declare it. ! 8016: * cp-pt.c (push_template_decls, pop_template_decls): Added ! 8017: debugging fprintf calls here too. ! 8018: ! 8019: Sat Nov 2 17:00:22 1991 Ron Guilmette (rfg at ncd.com) ! 8020: ! 8021: * cp-except.c (finish_exception_decl): Change `enum debugger' to ! 8022: `enum debug_info_type'. ! 8023: * final.c (final_start_function, final, final_end_function, ! 8024: output_source_line): Delete the `write_symbols' parameter. ! 8025: Instead use the global `write_symbols' declared in flags.h. ! 8026: * sched.c (unlink_notes, schedule_block, schedule_insns): Compare ! 8027: `write_symbols' with NO_DEBUG rather than with zero. ! 8028: * toplev.c (rest_of_decl_compilation, rest_of_compilation): Don't ! 8029: pass `write_symbols' to assemble_variable, final_start_function, ! 8030: final, final_end_function. ! 8031: * varasm.c (assemble_variable): Delete the `write_symbols' parameter. ! 8032: Instead use the global`write_symbols' declared in flags.h ! 8033: ! 8034: Sat Nov 2 09:48:47 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8035: ! 8036: * caller-save.c: Don't include reload.h; not used. ! 8037: * Makefile.in (caller-save.o): Likewise. ! 8038: ! 8039: * final.c (final_start_function, final_end_function, final): Change ! 8040: enum debugger to enum debug info to finish previous change. ! 8041: (final_scan_insn, output_source_line): Likewise. ! 8042: * varasm.c (assemble_variable): Likewise. ! 8043: ! 8044: * rtlanal.c (modified_between_p, find_last_value): New functions; not ! 8045: yet used. ! 8046: * rtl.h (find_last_value): Declare. ! 8047: ! 8048: * cse.c (simplify_binary_operation): Remove comparison cases from ! 8049: here; now in simplify_relational_operation. ! 8050: ! 8051: Fri Nov 1 19:04:50 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8052: ! 8053: * rtl.h (REG_DEAD): More precisely describe when a REG_DEAD note ! 8054: should be present. ! 8055: * rtlanal.c (dead_or_set_regno_p): New function. ! 8056: (dead_or_set_p): A value is dead or set only if each register in it ! 8057: is dead or set. ! 8058: * combine.c (reg_bitfield_target): New function. ! 8059: (distribute_notes, case REG_DEAD): Place REG_DEAD note only if both ! 8060: dead_or_set_p and reg_bitfield_target are false. ! 8061: * flow.c (cc0_live): New variable; replaces following_insn_dead. ! 8062: (propagate_block): Initialize cc0_live instead of following_insn_dead. ! 8063: Track CC0's life just like other regs instead of using special ! 8064: mechanism involving following_insn_dead. ! 8065: Clear last_mem_set even when not final pass. ! 8066: Don't call mark_used_regs on dead insns. ! 8067: (insn_dead_p): Use cc0_live to see if a set of CC0 is dead. ! 8068: Correctly test if set of multi-word value is needed; set if dead only ! 8069: if none of the words are needed. ! 8070: (libcall_dead_p): Allow CALL to be in any part of PARALLEL. ! 8071: Use insn_dead_p to see if SET of return register is dead; old code ! 8072: incorrectly tested multi-word registers. ! 8073: (mark_set_1): Track whether all or only some words of a value are ! 8074: needed; write partial REG_UNUSED note if only some words won't be ! 8075: needed. ! 8076: (mark_used_regs): Likewise for REG_DEAD notes. ! 8077: Set cc0_live for a reference to CC0. ! 8078: Don't write REG_DEAD note if register is already dead or set in INSN. ! 8079: No longer check for unused SET_DEST since it won't be called for dead ! 8080: insns; if a single SET's result was unneeded but the insn can't be ! 8081: deleted, the source of the SET is live. ! 8082: Clear last_mem_set even if not final pass. ! 8083: ! 8084: * reload1.c (gen_input_reload): Handle REG+MEM the same as REG+INT. ! 8085: ! 8086: * gcc.c (xmalloc, xrealloc): Use unsigned instead of size_t for `size'. ! 8087: ! 8088: * cccp.c (bcopy, bzero, bcmp): No longer static. Only declare at ! 8089: front of file if we are going to define them later. ! 8090: ! 8091: Fri Nov 1 18:57:25 1991 Ron Guilmette (rfg at ncd.com) ! 8092: ! 8093: * cccp.c (timebuf): Declaration moved out of `special_symbol' and ! 8094: made global (and "static") to get values of __DATE__ and __TIME__ ! 8095: to remain constant throughout compilation. ! 8096: (debug_output): New variable. ! 8097: (main): Accept -g3 option and set debug_output when seen. ! 8098: (main): Moved initializations of `outbuf' and `fp' to before call ! 8099: to `initialize_builtins'. ! 8100: Pass fp and &output to initialize_builtins so that it can write out ! 8101: artificial #define lines for builtin symbols. ! 8102: Call `output_line_directive' before doing each make_define or ! 8103: make_undef so that when `debug_output' is in effect, we'll ! 8104: get #line 0 directives before each artificial #define or #undef. ! 8105: (special_symbol): Initialization of `timebuf' deleted from here. ! 8106: (initialize_builtins): Initialize timebuf here. ! 8107: (pass_thru_directive): New function. ! 8108: (do_define, do_undef): Use `pass_thru_directive' for "precompilation" ! 8109: of header files. ! 8110: Call `pass_thru_directive' when -g3 option used. ! 8111: (initialize_builtins): Generate artificial #define directives (in the ! 8112: output) to represent the values of all builtin symbols whose defs ! 8113: can't change during compilation. ! 8114: (make_undef): Added output buffer param so that make_undef could let ! 8115: do_undef do output to stdout. ! 8116: Call do_undef with a real output buffer. ! 8117: (make_definition): Likewise. ! 8118: Many minor changes to get strings passed to do_define to always look ! 8119: like correctly formed #define directives. ! 8120: ! 8121: * c-decl.c (store_parm_decls): Remove non-params from the list before ! 8122: checking to see if the type of any element of the list is complete. ! 8123: (pushlevel): Fixed bug which caused scope of tagged types to be ! 8124: incorrectly assigned to the outermost {} block of functions rather ! 8125: than to the outermost binding contours of functions. ! 8126: (pushtag): Revised to clarify code used to find applicable ! 8127: binding level for a tagname. ! 8128: Set TYPE_CONTEXT of new tagged type so that dwarfout.c can tell ! 8129: file-scope tagged types from non-file-scope tagged types. ! 8130: Create a NULL-named TYPE_DECL node for each new tagged type ! 8131: (even incomplete ones). ! 8132: (finish_struct, finish_enum): Don't create NULL-named ! 8133: TYPE_DECL nodes for complete tagged types. (This is now done in ! 8134: `pushtag' for *all* new tagged type declarations and definitions.) ! 8135: ! 8136: * toplev.c (compile_file): Adjust conditions under which ! 8137: `dwarfout_file_scope_decl' is called during final traversal of ! 8138: the chain of file-scope decls so that it is called also for ! 8139: file-scope TYPE_DECLs. ! 8140: (rest_of_decl_compilation): Deleted call to `dwarfout_file_scope_decl' ! 8141: for file-scope TYPE_DECLs; call `dwarfout_file_scope_decl' instead of ! 8142: `dwarfout_file_scope_symbol'. ! 8143: ! 8144: * dbxout.c, sdbout.c, flags.h, toplev.c: Change DEBUG_LEVEL_* to ! 8145: DINFO_LEVEL_* to prevent possible confusion about meaning. ! 8146: ! 8147: * flags.h, toplev.c: (enum debug_info_type): Renamed type from ! 8148: `debugger' and cleaned up definition of type (including deletion ! 8149: of useless EXTENDED_DBX_DEBUG code). ! 8150: (use_gdb_dbx_extensions): Make declarations conditional on ! 8151: DBX_DEBUGGING_INFO being defined. ! 8152: ! 8153: * out-i860.c (output_fp_move_double, find_addr_reg): Add return stmts ! 8154: to avoid warnings when compiling with -Wreturn-type. ! 8155: (output_delayed_branch): Fix test for CONST_INT values which must be ! 8156: loaded in two instructions (as two halves). ! 8157: (function_epilogue): Remove ASM_OUTPUT_EPILOGUE_SUFFIX. (Superceeded ! 8158: by ASM_DECLARE_FUNCTION_SIZE in varasm.c.) ! 8159: ! 8160: * xm-i386.h (i386): Define in case the native host compiler doesn't. ! 8161: ! 8162: * tm-svr4.h (SVR4): Define this rather than SVR4_target. ! 8163: (ASM_FINAL_SPEC): Support the -pipe option. ! 8164: (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_OBJECT_NAME): Allow easy ! 8165: redefinition of the syntax for second operand of .type. ! 8166: (ASM_DECLARE_FUNCTION_SIZE): Fix line continuations. ! 8167: ! 8168: Fri Nov 1 14:14:14 1991 Michael Meissner (meissner at osf.org) ! 8169: ! 8170: * out-mips.c (mips_asm_file_end): Generate correct code if the user ! 8171: uses asm("name"). Patch from [email protected]. ! 8172: ! 8173: * mips-tfile.c (init_file initialization): Fix #ifdef ! 8174: BYTES_BIG_ENDIAN to be #if BYTES_BIG_ENDIAN, to allow the DECstation ! 8175: to work again. ! 8176: (toplevel): Remove declarations of internal library functions, ! 8177: _flsbuf, _filbuf. ! 8178: ! 8179: Thu Oct 31 14:59:11 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) ! 8180: ! 8181: * longlong.h (m68020 count_leading_zeros): Use %b for offset and ! 8182: width syntax for bfffo instruction. ! 8183: ! 8184: Thu Oct 31 05:45:54 1991 Ken Raeburn ([email protected]) ! 8185: ! 8186: * cp-decl.c (PUSH_BINDING_LEVEL, POP_BINDING_LEVEL): Replaced ! 8187: uses of macros with their expansions, and deleted the macros. ! 8188: ! 8189: Wed Oct 30 12:45:33 1991 Ron Guilmette (rfg at ncd.com) ! 8190: ! 8191: * dwarfout.c, dwarf.h, README.DWARF: Replacement files that bring ! 8192: the Dwarf implementation up to that defined by draft 5 of the ! 8193: UI/PLSIG Dwarf specification. ! 8194: ! 8195: Wed Oct 30 10:50:07 1991 Michael Meissner (meissner at osf.org) ! 8196: ! 8197: * objc-parse.y (yylex): Cast short types to int before shifting, to ! 8198: avoid bogus warnings from the MIPS C compiler. ! 8199: ! 8200: * cccp.c (fancy_abort): Make this global again, so that ! 8201: -Dabort=fancy_abort will not cause a link error, because obstack.c ! 8202: contains a reference to abort. ! 8203: ! 8204: Wed Oct 30 07:38:08 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8205: ! 8206: * SYSCALLS.c (abort): Undefine first. ! 8207: ! 8208: * xm-m88k.h (HOST_WORDS_BIG_ENDIAN): Define it. ! 8209: * out-m88k.c (output_and): Choose "clr" last. ! 8210: ! 8211: Tue Oct 29 22:49:47 1991 Michael Meissner (meissner at osf.org) ! 8212: ! 8213: * tm-mips.h (num_refs): New global array. ! 8214: (mips_count_memory_refs): New function decl. ! 8215: ! 8216: * out-mips.h (num_refs): New global array to count number of 1, 2, ! 8217: or 3 instruction data references with -mstats. ! 8218: (mips_count_memory_refs): New function decl to determine whether a ! 8219: data memory reference uses 1, 2, or 3 instructions. ! 8220: (mips_move_1word, mips_move_2words): Call mips_count_memory_refs ! 8221: as appropriate. ! 8222: (function_epilogue): Print number of 1, 2, and 3 instruction ! 8223: memory references if -mstats. ! 8224: ! 8225: * mips.md (movsi_ulw, movsi_usw): Call mips_count_memory_refs if ! 8226: needed. ! 8227: ! 8228: Tue Oct 29 05:14:27 1991 Ken Raeburn (raeburn at cygnus.com) ! 8229: ! 8230: * cp-parse.y (template_def): Don't pass bogus declspecs to ! 8231: start_decl. ! 8232: ! 8233: * cp-pt.c (tsubst, case FUNCTION_DECL): Build new argument list ! 8234: from method template, instead of retaining the old one. ! 8235: ! 8236: Tue Oct 29 00:44:51 1991 Ken Raeburn (raeburn at cygnus.com) ! 8237: ! 8238: * cp-class.c (finish_struct): Skip type fields if they are ! 8239: template names bound to their expansions. ! 8240: ! 8241: * cp-decl.c (binding_levels_sane): Define only if PARANOID; use a ! 8242: macro returning 1 otherwise. Check class_binding_level stack for ! 8243: consistency also. ! 8244: (pushdecl): Verify that bindings pushed at global scope are in ! 8245: permanent obstack storage. ! 8246: (start_decl): While processing_template_decl, don't also need to ! 8247: verify that the decl uses the template parameters. For method ! 8248: templates, construct proper method type for result. TREE_EXTERNAL ! 8249: flag for methods should be cleared if DECL_EXTERNAL is clear. ! 8250: (grokdeclarator, case CALL_EXPR): Intercept destructor templates, ! 8251: which have a different internal form, and convert them to a form ! 8252: that can be recognized. ! 8253: ! 8254: * cp-decl2.c (grokclassfn): Include length of class name when ! 8255: creating assembler name for destructor; otherwise ambiguities ! 8256: result. ! 8257: ! 8258: * cp-lex.c (identifier_typedecl_value): New fn; scans bindings of ! 8259: identifier for a given type decl; falls back to name of type. ! 8260: * cp-tree.h (IDENTIFIER_TYPEDECL_VALUE): Call it. ! 8261: ! 8262: * cp-method.c (fndecl_as_string): Print constructor_name of type ! 8263: for constructor and destructor, not type name. ! 8264: ! 8265: * cp-parse.y (template_def): Don't output warning about missing ! 8266: type and storage class, since this gets printed for destructor ! 8267: templates. ! 8268: (notype_declarator): Accept '~' PTYPENAME. ! 8269: (scoped_typename): Want a PTYPENAME, not TYPENAME. Build a ! 8270: SCOPE_REF node instead of calling resolve_scope_to_name. ! 8271: ! 8272: * cp-pt.c (instantiate_member_templates): New fn. Instantiates ! 8273: members associated with template for a given template class. ! 8274: * cp-method.c (template_instantiate_once): Call it. ! 8275: ! 8276: * cp-pt.c (end_template_decl): Catch destructor templates that ! 8277: are being passed through without being converted to TEMPLATE_DECL ! 8278: nodes; convert them now. Copy argument list for function template ! 8279: into permanent storage. ! 8280: (lookup_template_class): Supply IDENTIFIER_TEMPLATE data for new ! 8281: anonymous type name. ! 8282: (tsubst, case FUNCTION_DECL): Improve method lookup code. ! 8283: (tsubst): Use hash table and build_cplus_* functions for building ! 8284: new nodes when possible, so equality tests are easier. Extend ! 8285: FUNCTION_TYPE case to handle METHOD_TYPE as well. ! 8286: (instantiate_template): Don't do anything for error_mark_node. ! 8287: (do_pending_expansions): Keep expansions not used in queue to check ! 8288: again later. ! 8289: ! 8290: * cp-tree.def: Fix up some comments relating to PT-related types. ! 8291: ! 8292: * tree.c (init_tree_codes): Now void, in agreement with decl ! 8293: elsewhere. ! 8294: ! 8295: Mon Oct 28 22:07:44 1991 Jeffrey A Law (law at b117.super.org) ! 8296: ! 8297: * output.h (current_function_uses_pic_offset_table): Declare here ! 8298: so that out-*.c can see it. ! 8299: ! 8300: * tm-m68k.h (FINALIZE_PIC): New macro. ! 8301: (PIC_OFFSET_TABLE_REGNUM): New macro. Defines which address ! 8302: register is used to hold the offset table for PIC. ! 8303: (CONDITIONAL_REGISTER_USAGE): Make PIC_OFFSET_TABLE_REGNUM be ! 8304: fixed when generating position independent code. ! 8305: ! 8306: * out-m68k.c (finalize_pic): New function. ! 8307: (output_function_prologue): If generating position independent ! 8308: code output assembler text to load the pic_offset_table register. ! 8309: ! 8310: Mon Oct 28 10:02:36 1991 Michael Meissner (meissner at osf.org) ! 8311: ! 8312: * toplev.c (main): If -G is used, set g_switch_set to true, and set ! 8313: g_switch_value to be the integer value of it's argument, for use in ! 8314: the MIPS port to determine whether a static or global item goes into ! 8315: the normal data area, or into the small data area. ! 8316: ! 8317: * out-mips.c (g_switch_set, g_switch_value): Delete these global ! 8318: variables, since toplev.c now defines them. ! 8319: ! 8320: * tm-mips.h (EXTRA_INT_OPTIONS): Delete macro which is no longer ! 8321: used in internal OSF patches to provide -G xx support. ! 8322: (ASM_SPEC, CC1_SPEC, LINK_SPEC): Remove -G32, since the new -G ! 8323: patches take care of it now. ! 8324: ! 8325: * tm-decrose.h (ASM_SPEC, LINK_SPEC): Remove -G32. ! 8326: ! 8327: * tm-decstatn.h (ASM_SPEC, LINK_SPEC): Remove -G32. ! 8328: ! 8329: * tm-iris.h (ASM_SPEC, LINK_SPEC): Remove -G32. ! 8330: ! 8331: * tm-mips-bsd.h (LINK_SPEC): Remove -G32. ! 8332: ! 8333: * tm-mips-news.h (ASM_SPEC, LINK_SPEC): Remove -G32. ! 8334: ! 8335: * tm-mips-sysv.h (LINK_SPEC): Remove -G32. ! 8336: ! 8337: Mon Oct 28 07:11:28 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8338: ! 8339: * combine.c (try_combine): Don't delete unused SETs if they have ! 8340: side-effects. ! 8341: ! 8342: * Makefile.in, t-i386sco: Had both LIMIT_H and LIMITS_H; latter ! 8343: is correct. ! 8344: ! 8345: * combine.c (subst): New argument `unique_copy'; if non-zero ensure ! 8346: each copy of `from' replaced gets a unique copy of `to'. ! 8347: Pass arg to recursive callers. ! 8348: (try_combine): Pass new arg to subst. ! 8349: ! 8350: * Makefile.in (LANGUAGES): Use `objective-c' instead of `class-c' ! 8351: to avoid confusion. ! 8352: ! 8353: * gcc.c (xmalloc, xrealloc): Really make non-static. ! 8354: ! 8355: Mon Oct 28 00:21:56 1991 Michael Meissner (meissner at osf.org) ! 8356: ! 8357: * tm-mips.h (CC1_SPEC): Convert -gline into -g1. ! 8358: ! 8359: Sun Oct 27 17:15:48 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8360: ! 8361: * reload1.c (spill_hard_reg): Rework code that relies on the fact that ! 8362: reg_class_superclasses[i][0] == i, since it isn't true! ! 8363: ! 8364: Sun Oct 27 06:15:24 1991 Ron Guilmette (rfg at ncd.com) ! 8365: ! 8366: * configure: Always remove any files before we write them in case ! 8367: the old copy was read-only. ! 8368: ! 8369: * Makefile.in (manext): Now just extension without the period. ! 8370: (mandir): Default to include manext. ! 8371: (install-man): Adjust to new definition of manext. ! 8372: (uninstall): Remove protoize.1 and unprotoize.1 from mandir. ! 8373: ! 8374: * genemit.c (gen_exp): Write integer using %u instead of %d to ! 8375: avoid warnings from some compilers when most negative int is written. ! 8376: ! 8377: * cccp.c: Make variables not used outside this file static. ! 8378: (main, line_to_error, xmalloc, xrealloc, xcalloc): Add missing return ! 8379: statements (in unreachable paths). ! 8380: (xmalloc, xrealloc, xcalloc, savestring): Make SIZE arg unsigned. ! 8381: ! 8382: Sun Oct 27 06:14:45 1991 Jeffrey A Law (law at b115.super.org) ! 8383: ! 8384: * tm-m68k.h (SELECT_RTX_SECTION): New macro. Used to force ! 8385: symbolic objects in the constant pool into the read-write data ! 8386: section when generating position independent code. ! 8387: ! 8388: * recog.c (general_operand, immediate_operand, nonmemory_operand): ! 8389: Use LEGITIMATE_PIC_OPERAND_P to reject constants which are not ! 8390: valid when generating position independent code. ! 8391: ! 8392: * reload.c (find_reloads): Do not win in 's', 'i', or 'g' cases ! 8393: if the constant does not satisfy LEGITIMATE_PIC_OPERAND_P. ! 8394: ! 8395: * tm-m68k.h (LEGITIMATE_PIC_OPERAND_P): New macro. ! 8396: ! 8397: * out-m68k.c (symbolic_operand): New function. Copied from ! 8398: tm-sparc.h. ! 8399: ! 8400: * gcc.texinfo: Document LEGITIMATE_PIC_OPERAND_P. ! 8401: ! 8402: Sat Oct 26 07:51:40 1991 Michael Meissner (meissner at osf.org) ! 8403: ! 8404: * mips.md (movsi_usw): Remove invalid '&' constraint on a memory ! 8405: address. ! 8406: ! 8407: Sat Oct 26 07:16:15 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8408: ! 8409: * flow.c (find_basic_blocks): Build label_value_list as list of ! 8410: CODE_LABELs, not LABEL_REFs. ! 8411: ! 8412: * fold-const.c (optimize_bit_field_compare): Call fold on result ! 8413: of build1 call that converts integer to proper mode. ! 8414: ! 8415: * rtl.h (unsigned_condition, signed_condition): Add definition; ! 8416: functions were previously added to jump.c. ! 8417: * combine.c (simplify_comparison): Use unsigned_condition to simplify ! 8418: last change. ! 8419: ! 8420: Sat Oct 26 06:48:59 1991 Jeffrey A Law (law at b115.super.org) ! 8421: ! 8422: * tm-sun2.h, tm-sun3.h (ASM_SPEC): Pass "-k" to the assembler if ! 8423: -fpic or -fPIC. ! 8424: ! 8425: Fri Oct 25 20:43:54 1991 Michael Meissner (meissner at osf.org) ! 8426: ! 8427: * tm-mips.h (CC1_SPEC): Remove special rules for -g0, -g1, etc., now ! 8428: that GCC supports these directly. ! 8429: ! 8430: * configure (dec-mips-osf): DECstation running OSF/rose uses ! 8431: t-decrose, not t-mips. ! 8432: ! 8433: * x-decrose (COFF_CC, COFF_CFLAGS, WARNINGS): Delete. ! 8434: (libdir, bindir, mandir): Put GCC 2 in the /usr/ccs/gcc tree. ! 8435: ! 8436: * x-mips (comment): Delete a comment about cross compilers that is ! 8437: no longer true. ! 8438: ! 8439: * t-decrose (coff-obstack.o): Delete rule that is no longer used. ! 8440: ! 8441: Fri Oct 25 18:46:51 1991 Mark Eichin (eichin at cygnus.com) ! 8442: ! 8443: * cp-dem.c (cp-demangle): added support for templates, static ! 8444: data, and the new (correct) mangling for destructors. ! 8445: ! 8446: Fri Oct 25 16:18:18 1991 Mark Eichin (eichin at tweedledumber.cygnus.com) ! 8447: ! 8448: * cp-decl2.c: (grokclassfn): destructor names *should* contain ! 8449: the length; otherwise, we can't tell the difference between a ! 8450: destructor for a class whose name begins with 't' and a destructor ! 8451: for an instance of a template class. ! 8452: ! 8453: Fri Oct 25 02:15:12 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8454: ! 8455: * SYSCALLS.c, protoize.c: Changes from rfg. ! 8456: waiting for real changelog entries from rfg. ! 8457: ! 8458: * gcc.c (xmalloc, xrealloc): No longer static. ! 8459: ! 8460: Thu Oct 24 19:21:04 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8461: ! 8462: * fold-const.c (optimize_bit_field_compare): ! 8463: Use build1 rather than convert, to avoid warnings. ! 8464: ! 8465: * final.c (output_source_line): Fix if-scope for DBX fmt. ! 8466: ! 8467: Thu Oct 24 13:29:34 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8468: ! 8469: * gcc.c gen*.c: Don't make fancy_abort static. ! 8470: ! 8471: Thu Oct 24 12:07:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 8472: ! 8473: * combine.c (simplify_comparison): When narrowing a comparison ! 8474: and removing ANDs, make it unsigned. ! 8475: ! 8476: Thu Oct 24 08:02:04 1991 Ken Raeburn (raeburn at cygnus.com) ! 8477: ! 8478: * cp-decl.c (binding_levels_sane): New function, tests that stack ! 8479: of binding levels is consistent. Argument provides extra ! 8480: identification for call site, in case compiler optimizes too well. ! 8481: If PARANOID is not set, does nothing. ! 8482: (push_binding_level, pop_binding_level): Now functions, for easier ! 8483: debugging. Inlined under GNU C if not PARANOID. ! 8484: (PUSH_BINDING_LEVEL, POP_BINDING_LEVEL): Invoke functions. ! 8485: (push_to_top_level): Use type-shadowed slots to unwind ! 8486: IDENTIFIER_TYPE_VALUE back to top level. ! 8487: (start_decl): When processing a template decl, shouldn't need to ! 8488: check uses_template_parms. For methods, modify arg list to include ! 8489: `this'. Don't set context of template. Use perm_tree_cons when ! 8490: building members list for class template. ! 8491: (grokdeclarator): Check "friend" flag before calling ! 8492: globalize_nested_type. Build a method type for a function that has ! 8493: a context. ! 8494: ! 8495: * cp-pt.c (end_template_decl): If template has non-null context, ! 8496: chain it off of the containing class, rather than using pushdecl. ! 8497: (instantiate_class_template): Instantiate all the member templates ! 8498: hanging off the class template. Also, simplify some code in the ! 8499: case where setup_parse is 0. ! 8500: (tsubst): Check for several common values that won't be modified by ! 8501: substitutions. ! 8502: (tsubst, case FUNCTION_DECL): Don't return type passed if it has a ! 8503: non-null context that might need fixing. Process that context while ! 8504: building up the new decl node; use it to notify build_decl_overload ! 8505: that we've got a method rather than a function. ! 8506: (tsubst, case METHOD_TYPE): Handle like FUNCTION_TYPE; enhance that ! 8507: case to handle TYPE_METHOD_BASETYPE when set. ! 8508: (unify): Increment value pointed to by nsubsts, not the pointer ! 8509: itself. ! 8510: (do_pending_expansions): Method context is in DECL_CONTEXT, not ! 8511: DECL_CLASS_CONTEXT. ! 8512: ! 8513: * cp-lex.c (do_identifier): Don't try looking up fields in base ! 8514: classes of UNINSTANTIATED_P_TYPE. ! 8515: ! 8516: * cp-parse.y (primary): Call require_complete_type only for ! 8517: CALL_EXPR nodes of types other than void. ! 8518: (template_type): Don't call IDENTIFIER_TYPE_VALUE on ! 8519: error_mark_node. ! 8520: ! 8521: * cp-ptree.c (print_lang_decl): For UNINSTANTIATED_P_TYPE, show ! 8522: template as well as parameters. ! 8523: ! 8524: * cp-tree.h (DECL_TEMPLATE_*, UPT_*): New accessor macros for ! 8525: TEMPLATE_DECL and UNINSTANTIATED_P_TYPE nodes. All (most?) uses ! 8526: except for node creation changed to use these. ! 8527: * cp-tree.def: Updated comments for these node types. ! 8528: ! 8529: * cp-pt.c (uses_template_parms): Handle ADDR_EXPR. ! 8530: (end_template_decl): For function with non-null context, pop class ! 8531: binding level. ! 8532: ! 8533: Thu Oct 24 06:57:28 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8534: ! 8535: * a29k.md, romp.md, rs6000.md (movdi, movdf, movti): Handle case of ! 8536: reg-reg copy with overlapping registers correctly. ! 8537: ! 8538: * out-rs6000.c (ccr_bit, case NE): Fix typo in bit number. ! 8539: (output_epilog): Must restore stack using backchain if alloca called. ! 8540: ! 8541: * romp.md, rs6000.md (extendxxyy2, zero_extendxxyy2): Use DEFINE_EXPAND ! 8542: to force operand to register; DEFINE_INSN allows memory (better cse). ! 8543: ! 8544: * rs6000.md (ffssi2): New patterns. ! 8545: (maskir): Add patterns to use maskir instructions. ! 8546: ! 8547: * tm-a29kunix.h (TARGET_DEFAULT, CPP_SPEC): Default to 29050. ! 8548: ! 8549: * tm-rs6000.h (LINK_SPEC): Add -bnodelcsect. ! 8550: (HARD_REGNO_MODE_OK): Delete kludge that didn't allow DImode in reg 31 ! 8551: and TImode in 29-31; the bug was fixed elsewhere. ! 8552: ! 8553: Wed Oct 23 17:48:43 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8554: ! 8555: * combine.c (try_combine): If an insn doesn't match, check for case ! 8556: where first SET's result isn't used; previously only checked second. ! 8557: ! 8558: * combine.c (try_combine): When we substitute into a COMPARE, check ! 8559: SELECT_CC_MODE to see if we should try to change the mode of the ! 8560: COMPARE and its result. ! 8561: ! 8562: Wed Oct 23 16:38:26 1991 Torbjorn Granlund (tege at hal.gnu.ai.mit.edu) ! 8563: ! 8564: * gnulib2.c (__ashrdi3): Compute sign extension shift count from ! 8565: machine word size instead of using 31. ! 8566: ! 8567: Wed Oct 23 14:25:04 1991 Michael Meissner (meissner at osf.org) ! 8568: ! 8569: * tm-mips.h (PREFERRED_DEBUGGING_TYPE): Unless otherwise defined, ! 8570: set to SDB_DEBUG. ! 8571: ! 8572: * tm-decrose.h (PREFERRED_DEBUGGING_TYPE): Define to DBX_DEBUG. ! 8573: ! 8574: * out-mips.c (override_options): Don't override debugger choice now ! 8575: that PREFERRED_DEBUGGING_TYPE is provided. ! 8576: ! 8577: Wed Oct 23 07:25:32 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8578: ! 8579: * sdbout.c (sdbout_symbol/FUNCTION_DECL, sdbout_toplevel_data, ! 8580: sdbout_end_epilogue): Use DECL_ASSEMBLER_NAME to avoid link-time ! 8581: multiple definitions. ! 8582: ! 8583: Tue Oct 22 15:06:31 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8584: ! 8585: * reload1.c (reload): For now, we must always have a frame pointer ! 8586: if a function calls alloca and EXIT_IGNORE_STACK is non-zero. ! 8587: ! 8588: * cse.c (insert_regs): Don't make new quantity for the register in ! 8589: a SUBREG. ! 8590: (merge_equiv_classes): Don't invalidate the register inside a SUBREG. ! 8591: (canon_hash, case SUBREG): Remove code to treat SUBREGs like REGs. ! 8592: ! 8593: Tue Oct 22 10:25:29 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8594: ! 8595: * tm-m88kdgux.h (PREFERRED_DEBUGGING_TYPE): Use it. ! 8596: * tm-m88k.h (OVERRIDE_OPTIONS): Don't override write_symbols. ! 8597: ! 8598: * out-m88k.c (m88k_output_{prologue,epilogue}): Renamed. ! 8599: ! 8600: Tue Oct 22 00:51:48 1991 Richard Stallman ([email protected]) ! 8601: ! 8602: * c++: New shell script. ! 8603: ! 8604: * gcc.c (default_compilers): Treat .ii files as cpp'd C++. ! 8605: ! 8606: * varasm.c (make_function_rtl): Don't alter DECL_ASSEMBLER_NAME. ! 8607: ! 8608: * toplev.c (main): Use PREFERRED_DEBUGGING_TYPE if support ! 8609: more than one format. ! 8610: ! 8611: Mon Oct 21 23:08:02 1991 Richard Stallman ([email protected]) ! 8612: ! 8613: * c-decl.c (grokdeclarator): Fix error message for long float. ! 8614: ! 8615: Mon Oct 21 16:55:31 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8616: ! 8617: * optabs.c (add_equal_note): New function. ! 8618: (expand_binop): Delete some obsolete, turned-off code. ! 8619: Use GET_RTX_CLASS to see if operator is commutative. ! 8620: Call add_equal_note if we make a multi-insn sequence; if it fails, ! 8621: redo the operation without our target. ! 8622: In multi-word cases, don't allow TARGET to be the same as an input. ! 8623: (expand_unop): Allow operation to fail. ! 8624: Call add_equal_note and allow failure, like in expand_binop. ! 8625: In multi-word case, don't allow TARGET to be OP0. ! 8626: (emit_unop_insn): Use add_equal_note; ignore its failure here. ! 8627: ! 8628: * optabs.c (expand_float, expand_fix): In cases when we will jump, ! 8629: ensure we call emit_queue before protect_from_queue. ! 8630: Eliminate redundant calls to protect_from_queue and force_non_mem. ! 8631: ! 8632: * reorg.c (steal_delay_list_from_target): Don't take an insn from ! 8633: the fallthrough thread of an annulled branch insn. ! 8634: ! 8635: Mon Oct 21 16:55:08 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8636: ! 8637: * configure (m88k targets): Complete last change. ! 8638: ! 8639: Mon Oct 21 16:06:25 1991 Richard Stallman ([email protected]) ! 8640: ! 8641: * integrate.c (copy_rtx_and_substitute): When making copy of frame, ! 8642: round size to keep substituted frame pointer aligned. ! 8643: (CEIL_ROUND): New macro. ! 8644: ! 8645: Mon Oct 21 15:16:17 1991 Michael Meissner (meissner at osf.org) ! 8646: ! 8647: * tm-mips.h (GP_REG_OR_PSEUDO_NONSTRICT_P): New macro for ! 8648: REG_OK_FOR_{BASE,INDEX}_P in non strict mode. Fix typos in the ! 8649: previous change. ! 8650: (GP_REG_OR_PSEUDO_P): Rename to GP_REG_OR_PSEUDO_STRICT_P. ! 8651: (REG_OK_FOR_BASE_P): Use GP_REG_OR_PSEUDO_NONSTRICT_P if non strict. ! 8652: (REG_OK_FOR_INDEX_P): Use GP_REG_OR_PSEUDO_NONSTRICT_P if non strict. ! 8653: (GO_IF_LEGITIMATE_ADDRESS): Indicate if strict checking is being ! 8654: used if -mdebugb tracing. ! 8655: ! 8656: Mon Oct 21 15:08:15 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8657: ! 8658: * Makefile.in (*.o): Add insn-codes.h to all lists using expr.h. ! 8659: (dwarfout.o): Add dwarf.h, reload.h, output.h, and insn-config.h. ! 8660: ! 8661: * c-tree.h (TYPE_ACTUAL_ARG_TYPES): New macro for list of actual ! 8662: types. ! 8663: * c-decl.c (store_parm_decls): Compute TYPE_ACTUAL_ARG_TYPES if a ! 8664: prototype is not present. Delete old method. ! 8665: (duplicate_decls): Provide better diagnostics if a prototype ! 8666: follows a function definition. ! 8667: ! 8668: * m88k.md (gen_divsi3): Delete REG_EQUAL workaround. ! 8669: * t-m88k{,luna,sysv4}: Target makefile portion (from Mike Stump). ! 8670: * x-m88k{,dgux,luna,sysv4}: Corresponding deletions. ! 8671: * {tm,t,x}-m88ksysv4: Renamed from m88ksvr4. Deleted xm-m88ksvr4. ! 8672: * {tm,xm}-m88ksysv3: Renamed from v88r32. ! 8673: * configure: Corresponding changes. ! 8674: ! 8675: * tm-m88k.h (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Output to ! 8676: .ctors/.dtors sections. ! 8677: (TARGET_SWITCHES): Add -m88000, -m88100, and -m88110. Replace ! 8678: DG/UX MXDB options with SUBTARGET_SWITCHES macro. ! 8679: * tm-m88kdgux.h (SUBTARGET_SWITCHES, ASM_SPEC, ASM_FIRST_LINE): ! 8680: Put MXDB options here changing -mdwarf to -mstandard. ! 8681: ! 8682: Sun Oct 20 06:39:54 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8683: ! 8684: * combine.c (simplify_comparison, case PLUS): Only do simplification ! 8685: for equality comparison due to overflow problems. ! 8686: ! 8687: * gen*.c: Remove "void *" and uses of size_t added by recent change. ! 8688: ! 8689: * reload.c (find_reloads): If "&" given without any registers, ! 8690: turn off earlyclobber, in addition to giving error. ! 8691: ! 8692: * Makefile.in (STAGE_GCC): Deleted. ! 8693: (STAGESTUFF): Add gcc (from STAGE_GCC) and gcc-cross. ! 8694: ! 8695: Sun Oct 20 04:37:21 1991 Michael Tiemann (tiemann at cygnus.com) ! 8696: ! 8697: * cp-decl.c (grokfndecl): Use DECL_NAME, not DECLARATOR at end of ! 8698: function, since DECL_NAME may be different if it's an operator name. ! 8699: ! 8700: * cp-cvt.c (convert_pointer_to): Test if PARENT is TREE_VEC ! 8701: before testing IS_AGGR_TYPE. ! 8702: ! 8703: Sun Oct 20 00:40:47 1991 Richard Stallman ([email protected]) ! 8704: ! 8705: * gcc.c (link_command_spec): -collect converts to -c. ! 8706: ! 8707: * toplev.c (main): Support -gstabs and -gcoff. Fix args to strncmp. ! 8708: ! 8709: Sat Oct 19 21:51:03 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8710: ! 8711: * reorg.c: Use const_true_rtx instead of const1_rtx. ! 8712: (delete_scheduled_jump): Don't delete an insn that sets CC0 if it ! 8713: has a side-effect. ! 8714: (update_block): Add missing declaration for parameter WHERE. ! 8715: (fill_slots_from_thread): Stop search if we find an insn that we ! 8716: can't put into the delay slot unless we own the thread. ! 8717: ! 8718: Sat Oct 19 17:30:23 1991 Michael Meissner (meissner at osf.org) ! 8719: ! 8720: * tm-mips.h (GP_REG_OR_PSEUDO_P): New macro to make sure a reg or ! 8721: pseudo reg during reload will eventually be a GP register for use as ! 8722: a base or index register. This fixes a bug where a FP register ! 8723: could be used as a base or index register in some cases after ! 8724: convert from floating point to integer was done. ! 8725: (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P): Use GP_REG_OR_PSEUDO_P. ! 8726: (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): In the non strict version, ! 8727: don't allow hard FP registers ever. ! 8728: ! 8729: Sat Oct 19 11:59:55 1991 Richard Stallman ([email protected]) ! 8730: ! 8731: * tm-sun3.h, tm-sparc.h (WORD_SWITCH_TAKES_ARG): ! 8732: Check for Tdata as well as target. ! 8733: ! 8734: * c-decl.c (grokdeclarator): Don't warn for array of incomplete elt. ! 8735: ! 8736: * expr.c (expand_expr): For INDIRECT_REF, don't set unchanging bit. ! 8737: * c-typeck.c (build_indirect_ref): Do set TREE_UNCHANGING if nec. ! 8738: ! 8739: * reload.c (find_reloads): Warning or error for misuse of `&'. ! 8740: * toplev.c (warning_for_asm): New function. ! 8741: ! 8742: * t-i386sco: New file. ! 8743: * x-i386sco: Add -Di286 to CC, OLDCC. ! 8744: (LIMIT_H): Moved to t-i386sco. ! 8745: ! 8746: Sat Oct 19 09:08:11 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8747: ! 8748: * gcc.c: Add missing extern declarations deleted by last change. ! 8749: (xrealloc, xmalloc): Don't declare as void *; non-ANSI compilers ! 8750: can't handle it. ! 8751: ! 8752: Sat Oct 19 08:26:13 1991 Ron Guilmette (rfg at ncd.com) ! 8753: ! 8754: * tree.h: Fix spelling error in comment. ! 8755: ! 8756: * tree.def, cp-parse.y: Change comments that refer to LET_STMT nodes to ! 8757: refer to BLOCK nodes. ! 8758: ! 8759: * gcc.c, gen*.c: Declare as static objects that aren't referenced ! 8760: outside the file they are in. ! 8761: (xrealloc, xmalloc): Functions return char *, not int. ! 8762: (main): Add missing returns (in unreachable code) to avoid warnings ! 8763: when compiled with -Wreturn-type. ! 8764: * gcc.c (pexecute): Likewise. ! 8765: * genattrtab.c (operate_exp): Likewise. ! 8766: ! 8767: Fri Oct 18 16:58:12 1991 Eric Youngdale (youngdale at v6550c.nrl.navy.mil) ! 8768: ! 8769: * make-cc1.com: Finish changeover from cplus-* to cp-*. ! 8770: ! 8771: Fri Oct 18 16:57:37 1991 Ron Guilmette (rfg at ncd.com) ! 8772: ! 8773: * tm-svr4.h: Delete lines duplicated due to transmission problems. ! 8774: ! 8775: Fri Oct 18 16:55:53 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 8776: ! 8777: * jump.c (unsigned_condition, signed_condition): New functions. ! 8778: ! 8779: * configure (vax): Set tm_file to tm-vax.h so "configure vax-dec-bsd" ! 8780: works. ! 8781: ! 8782: * combine.c (subst, case PLUS, MINUS): Remove some simplifications ! 8783: from here. ! 8784: * cse.c (simplify_binary_operation, case PLUS, MINUS): Put these ! 8785: simplifications here. ! 8786: Strip off CONST when looking for some simplifications. ! 8787: Add code to simplify (a - (a - b)). ! 8788: ! 8789: * combine.c (expand_compound_operation): Correctly handle case where ! 8790: we have a ZERO_EXTRACT that extends beyond the bounds of the object. ! 8791: ! 8792: * global-alloc.c (mark_elimination): No longer have FORBIDDEN_REGS as ! 8793: argument. ! 8794: * reload1.c (reload): Don't pass FORBIDDEN_REGS to mark_elimination. ! 8795: ! 8796: * cse.c (simplify_{unary,binary,relational}_operation): Complete ! 8797: change that removes warnings from floating-point traps when constant ! 8798: folding (some cases had been omitted). ! 8799: ! 8800: Fri Oct 18 16:41:29 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 8801: ! 8802: * stmt.c (expand_anon_union_decl): When creating new mem, copy the ! 8803: RTX_UNCHANGING_P and MEM_IN_STRUCT_P bits from the old one. ! 8804: ! 8805: * sparc.md: Add new scc addx/subx patterns. ! 8806: ! 8807: Fri Oct 18 09:10:43 1991 Michael Tiemann (tiemann at cygnus.com) ! 8808: ! 8809: * cp-parse.y (stmts): Fix parsing rules to match C++ semantics ! 8810: better (and hence give the compiler better error recovery). ! 8811: ! 8812: Thu Oct 17 19:31:15 1991 Ken Raeburn (raeburn at cygnus.com) ! 8813: ! 8814: * cp-pt.c (tsubst): For NEGATE_EXPR, call build1, not build. ! 8815: Handle NOP_EXPR likewise. ! 8816: (unify, case TEMPLATE_CONST_PARM): Copy value to permanent obstack. ! 8817: ! 8818: * cp-method.c (PARM_CAN_BE_ARRAY_TYPE): If not already defined, ! 8819: define it to be 1. ! 8820: (build_overload_name): Test to see if it's nonzero, rather than ! 8821: whether it's defined; this permits compilation options to disable ! 8822: it, but leave it enabled by default. Add one to the array size, ! 8823: since the value retrieved appears to be the maximum index, not the ! 8824: true array size. ! 8825: ! 8826: Thu Oct 17 19:15:37 1991 Mark Eichin (eichin at tweedledumber.cygnus.com) ! 8827: ! 8828: * cp-pt.c (instantiate_class_template): has an argument to ! 8829: indicate whether to setup for parsing or not. (All existing cases ! 8830: did a feed input, but if we are trying to set up intermediate nodes ! 8831: while waiting for the parser to return to a template_instantiate ! 8832: site we need to suppress the parsing part of it, which will get ! 8833: redone later.) ! 8834: (tsubst): under case UNINSTANTIATED_P_TYPE, actually instantiate any ! 8835: class templates that are needed for function return values, and set ! 8836: them up as pending templates to be run later. ! 8837: ! 8838: * cp-parse.y (primary): since build_x_function_call doesn't ! 8839: require a complete type any more in certain cases, we instantiate ! 8840: any pending templates and then require_complete_type on the ! 8841: remainder. ! 8842: ! 8843: * cp-typeck.c (build_function_call_real): added an argument to ! 8844: optionally skip the require_complete_type... implicit template ! 8845: instantiation has to be postponed, so we won't get a complete type ! 8846: until the parser can grab it. ! 8847: ! 8848: * cp-call.c (build_overload_call_real): added an argument do ! 8849: allow choice of build_function_call_maybe or build_function_call ! 8850: based on whether we thought we would require a complete type out of ! 8851: build_function_call. ! 8852: ! 8853: Wed Oct 16 09:06:57 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8854: ! 8855: * c-decl.c (store_parm_decls): Fix and disable recording the arg ! 8856: type list for the function indicating the number of arguments. ! 8857: * c-typeck.c (self_promoting_args_p): Allow the arg type to be null. ! 8858: ! 8859: * expmed.c (store_bit_field, extract_bit_field): Add checks for ! 8860: MEM_IN_STRUCT_P if the structure reference is a MEM. ! 8861: ! 8862: Tue Oct 15 18:37:50 1991 Ken Raeburn (raeburn at cygnus.com) ! 8863: ! 8864: * cp-call.c (build_overload_call): If template match fails, still ! 8865: set function field of candidate structure, and set bad_arg field to ! 8866: new magic number -4 to indicate failed type unificiation. ! 8867: ! 8868: * cp-class.c (add_method): Call make_function_rtl only if not ! 8869: processing a template declaration. ! 8870: ! 8871: * cp-tree.def: New node type, UNINSTANTIATED_P_TYPE, for ! 8872: parameterized types that haven't had parameters filled in yet. ! 8873: Looks like a type node. ! 8874: ! 8875: * cp-decl.c (struct binding_level): New flag indicating any name ! 8876: should be accepted when looked up at this level. This is a kludge ! 8877: to try to deal with methods of parameterized types. ! 8878: (declare_uninstantiated_type_level): Set it. ! 8879: (uninstantiated_type_level_p): Return it. ! 8880: * cp-class.c (pushclass): If the "class" type is ! 8881: UNINSTANTIATED_P_TYPE, flag it in the new binding level. ! 8882: ! 8883: * cp-decl.c (push_overloaded_decl): New argument to indicate ! 8884: whether the decl should be forgotten when the current level is ! 8885: exited. Callers changed. ! 8886: (push_overloaded_decl_top_level): Ditto. ! 8887: (dont_forget_overload): Deleted. ! 8888: (push_overloaded_decl_1): New fn; like push_overloaded_decl, but ! 8889: never forgets. Intended only for use by auto_function macro. ! 8890: (auto_function): Use it. ! 8891: ! 8892: * cp-decl.c (print_binding_level): Print type-shadowed field at ! 8893: each level. Skip fields with no values. ! 8894: ! 8895: * cp-decl.c (adjust_type_value): Use SET_IDENTIFIER_TYPE_VALUE, ! 8896: not set_identifier_type_value. ! 8897: ! 8898: * cp-decl.c (pushdecl): Undo Oct 4 back-out of previous change. ! 8899: Set type value of name of passed decl, instead of name of type in ! 8900: passed decl. ! 8901: (pushdecl_top_level): Search type-shadowed fields of outer binding ! 8902: levels, munging outermost one if found to cause it to "restore" the ! 8903: new global value. ! 8904: ! 8905: * cp-decl.c (push_overloaded_decl): Don't punt second or later ! 8906: templates of a given name. ! 8907: ! 8908: * cp-decl.c (start_decl): Template-handling code moved up, to ! 8909: cope better with variable declarations. Don't check for incomplete ! 8910: type or constructor requirements when processing template. ! 8911: ! 8912: * cp-decl2.c (build_push_scope): If passed error mark node, just ! 8913: return it. ! 8914: (constructor_name): Handle UNINSTANTIATED_P_TYPE. ! 8915: ! 8916: * cp-lex.c (identifier_type): Don't return PTYPENAME for function ! 8917: template name. ! 8918: ! 8919: * cp-method.c (report_type_mismatch): New magic bad-arg value -4 ! 8920: indicates type unification failure. ! 8921: (build_overload_name, case UNINSTANTIATED_P_TYPE): Handle like other ! 8922: template-related types that shouldn't get visibility outside the ! 8923: compiler. ! 8924: ! 8925: * cp-parse.y (template_type): Use IDENTIFIER_TYPE_VALUE from ! 8926: name, if expansion doesn't happen. ! 8927: (tmpl.1, tmpl.2): Now type <ttype>. Value is null or return value ! 8928: from instantiate_class_template. ! 8929: (template_instantiation): Always put copy of decl in global scope. ! 8930: Use pushdecl_top_level instead of setting IDENTIFIER_GLOBAL_VALUE ! 8931: slot. ! 8932: (LC): If type has been or is being defined, push a new type with the ! 8933: same name, to avoid conflict. ! 8934: (try_for_typename): New type <itype>. Value is non-zero iff type to ! 8935: be pushed uses no template parms and isn't error_mark_node. ! 8936: (scoped_id): Return error_mark_node for template parameter uses, and ! 8937: leave error_mark_node alone. Only pop class if try_for_typename ! 8938: value is non-zero. ! 8939: (scoped_typename): Ditto. ! 8940: ! 8941: * cp-pt.c (end_template_decl): If template decl/class head arg is ! 8942: null, punt. For non-type templates that didn't come in as template ! 8943: decls, clear public flag. Such cases shouldn't arise any more; just ! 8944: put in abort call for now until we're sure. Comment out code for ! 8945: forcibly removing temporary values of template type parms; Michael ! 8946: broke the code and fixed the original problem. Handle error case ! 8947: where decl to be pushed might be null. ! 8948: (coerce_template_parms): Handle arg list as TREE_VEC as well as ! 8949: TREE_LIST. If arg list uses template parms, return ! 8950: UNINSTANTIATED_P_TYPE node. ! 8951: (uses_template_parms, case UNINSTANTIATED_P_TYPE): Return 1. ! 8952: (instantiate_class_template): Now returns tree -- error_mark_node or ! 8953: NULL_TREE or class type; callers and decls changed. Assign ! 8954: TYPE_NAME field when building new RECORD_TYPE and TYPE_DECL nodes. ! 8955: Don't need to do extra poplevel any more. ! 8956: (tsubst): Handle UNINSTANTIATED_P_TYPE, MINUS_EXPR, PLUS_EXPR, ! 8957: NEGATE_EXPR. ! 8958: (undo_template_name_overload): Don't need to explicitly clear type ! 8959: field any more. ! 8960: (overload_template_name): Push a TYPE_DECL, instead of explicitly ! 8961: setting type value field. ! 8962: (end_template_instantiation): Don't need to pop a level any more. ! 8963: (reinit_parse_for_template): Throw away saved block for null or ! 8964: error template node. ! 8965: (type_unification): Handle variadic functions, and functions with ! 8966: default values for arguments. ! 8967: (unify): Handle TREE_VEC and UNINSTANTIATED_P_TYPE. ! 8968: ! 8969: * cp-ptree.c (print_lang_type): Handle UNINSTANTIATED_P_TYPE. ! 8970: ! 8971: * cp-tree.h (push_overload_decl): Declare here, not in ! 8972: cp-decl.c. ! 8973: (TEMPLATE_TYPE_* macros): Delete unused (and now incorrect) ! 8974: versions. ! 8975: ! 8976: Mon Oct 14 14:30:32 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 8977: ! 8978: * integrate.c (expand_inline_function): Fix typo from last edit, ! 8979: where TYPE_MODE was applied to an argument, not the type of an ! 8980: argument. ! 8981: ! 8982: * cse.c (canon_hash, SUBREG case): Add cast which is needed by some ! 8983: compilers. ! 8984: ! 8985: Mon Oct 14 07:59:50 1991 Tom Wood (wood at dg-rtp.dg.com) ! 8986: ! 8987: * toplev.c (rest_of_compilation): Compute the function's name and ! 8988: pass it to assemble_{start,end}_function. ! 8989: * varasm.c (assemble_start_function): New parameter. ! 8990: (assemble_end_function): New function for ASM_DECLARE_FUNCTION_SIZE. ! 8991: * final.c, sdbout.c: Correct comments. ! 8992: * tm-svr4.h, tm-sysv4.h (ASM_DECLARE_FUNCTION_SIZE): Add and use a ! 8993: NAME parameter. ! 8994: * tm-m88k.h (ASM_DECLARE_FUNCTION_SIZE): Override svr4 definition. ! 8995: * out-m88k.c (output_prologue): Delete previous method. ! 8996: ! 8997: * m88k.md: Use trap_if. ! 8998: (divsi3): Store into output operand only once to aviod problems ! 8999: with REG_EQUAL note. ! 9000: * out-m88k.c (output_call): Accomodate assembler range ! 9001: restriction. ! 9002: * tm-m88kdgux.h (AS_BUG_IMMEDIATE_LABEL): Specify the restriction. ! 9003: (ASM_SPEC): Pass -KV3 to the assembler in some cases. ! 9004: * tm-m88k.h (CONDITIONAL_REGISTER_USAGE): Mark the addressing base ! 9005: register global. ! 9006: ! 9007: Sat Oct 12 00:30:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 9008: ! 9009: * Makefile.in (.SUFFIXES): Rule added. ! 9010: ! 9011: * dbxout.c (dbxout_block): Handle debug_info_level. ! 9012: * sdbout.c (sdbout_begin_block): Likewise. ! 9013: * toplev.c (compile_file): Likewise, when calling init_emit_once. ! 9014: * emit-rtl.c (init_emit_once): Cosmetic change. ! 9015: * Makefile.in (sdbout.o): Include flags.h. ! 9016: ! 9017: * configure: Default srcdir from dir in which configure is found. ! 9018: ! 9019: * i860.md (floatsidf2): Rewrite to be independant of host machine. ! 9020: (divdf3, divsf3): New patterns. ! 9021: ! 9022: * tm-i860.h (ASM_DECLARE_FUNCTION_NAME): Macro deleted. ! 9023: (ASM_OUTPUT_FUNCTION_PREFIX): Macro added. ! 9024: ! 9025: * stmt.c (pushcase, pushcase_range, expand_end_case): ! 9026: Don't give "unreachable code" warning for a USE. ! 9027: ! 9028: * tm-i386.h (HARD_REGNO_MODE_OK): Fp regs reject TFmode. ! 9029: ! 9030: Fri Oct 11 16:43:37 1991 Tom Wood (wood at dg-rtp.dg.com) ! 9031: ! 9032: * cse.c (find_comparison_args): Reject VOIDmode to avoid invalid ! 9033: shift. ! 9034: ! 9035: Fri Oct 11 14:30:31 1991 Richard Stallman ([email protected]) ! 9036: ! 9037: * c-typeck.c (function_types_compatible_p): ! 9038: NULL as arg type matches self-promoting type. ! 9039: (self_promoting_type_p): New function. ! 9040: (common_type): NULL for arg in one fcn type means use arg from other. ! 9041: * c-decl.c (store_parm_decls): Record arg type list for the fn, ! 9042: just to indicate how many args there are. ! 9043: ! 9044: * i860.md, out-i860.c, tm-i860.h: Merge many changes by rfg. ! 9045: * tm-i860bsd.h, xm-i860.h: Likewise. ! 9046: * tm-i860v3.h, tm-i860v4.h: New files. ! 9047: * xm-i860v3.h, xm-i860v4.h: New files. ! 9048: * tm-i860v3g.h: Renamed from tm-i860g.h. ! 9049: * configure (i860-sysv3*): Renamed from i860-sysv*. New filenames. ! 9050: (i860-sysv4*): New alternative. ! 9051: ! 9052: * print-rtl.c: New file, split from rtl.c. ! 9053: * Makefile.in (print-rtl.o): New target. ! 9054: (OBJS): Add that target. ! 9055: ! 9056: * toplev.c (DEFAULT_GDB_EXTENSIONS): Provide default definition. ! 9057: (main): Use that for -g with dbx format. ! 9058: Don't support -G. ! 9059: * gcc.c (default_compilers): Get rid of -G. ! 9060: ! 9061: Fri Oct 11 14:30:43 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 9062: ! 9063: * stmt.c (expand_anon_union_decl): Correctly handle anonymous ! 9064: unions, whether in memory or registers. ! 9065: ! 9066: These were written by Michael Tiemann. ! 9067: The following changes net a 16% speedup compiling some ! 9068: machine-generated CAD synthesis code. ! 9069: * c-decl.c (field_decl_cmp): New function, use as comparison ! 9070: function for qsort. ! 9071: (finish_struct): If there are more than 15 fields, allocate a ! 9072: LANG_TYPE for the FIELD_DECLs, and sort them according to ! 9073: `field_decl_cmp'. ! 9074: * c-tree.h (lang_type): Define a LANG_TYPE for RECORD_TYPEs. ! 9075: * c-typeck.c (build_component_ref): If LANG_TYPE set, then use ! 9076: binary search to find the field, otherwise use linear search as ! 9077: before. ! 9078: ! 9079: * tree.h: Declare savealloc. ! 9080: * c-common.c: Delete now unnecessary cast of savealloc result. ! 9081: ! 9082: Fri Oct 11 10:06:09 1991 Tom Wood (wood at dg-rtp.dg.com) ! 9083: ! 9084: * cse.c (simplify_binary_operation): Fix typo in last change. ! 9085: ! 9086: * cp-*, gcc.texinfo, make-cc1.com, tree.c, undocumented: Change ! 9087: cplus- to cp-. Rename cplus-parse.y to cp-parse.y. ! 9088: ! 9089: Fri Oct 11 07:48:40 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9090: ! 9091: * recog.c (find_single_use_1): Ignore appearances of DEST in ! 9092: contexts where it is being set, not referenced. ! 9093: (find_single_use): Use dead_or_set_p instead of looking for REG_DEAD ! 9094: notes. ! 9095: ! 9096: Fri Oct 11 07:29:33 1991 Ron Guilmette (rfg at ncd.com) ! 9097: ! 9098: * c-parse.y, cp-lex.c, objc-parse.y (check_newline): Use `pedwarn' ! 9099: instead of `error' when we see an #ident if -pedantic. ! 9100: * cccp.c (do_assert, do_unassert, check_assertion, do_sccs): Warn ! 9101: if -pedantic. ! 9102: ! 9103: Thu Oct 10 18:30:28 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 9104: ! 9105: * gcc.c (default_compilers): Correctly handle new debugging ! 9106: options, pass all -g* and -G* options. ! 9107: ! 9108: * Makefile.in, c-decl.c, cp-decl.c, final.c, flags.h, gcc.1, ! 9109: gcc.c, print-tree.c, toplev.c, tree.def, tree.h: Delete support ! 9110: for obsolete GDB_DEBUG format, -gg option, symout.c, etc. ! 9111: * gdbfiles.h, symseg.h, symout.c: Delete obsolete files. ! 9112: ! 9113: Thu Oct 10 17:56:16 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9114: ! 9115: * expr.c (convert_move): When widening FROM to multi-word, ensure that ! 9116: we only reference each piece of TO once so that emit_no_conflict_block ! 9117: can be safely used. ! 9118: ! 9119: * toplev.c (float_signal): Re-enable the signal after we catch it. ! 9120: ! 9121: * cse.c (simplify_binary_operation): Add missing fp error handler ! 9122: setup in DFmode case. ! 9123: ! 9124: * combine.c (subst, case XOR): Fix typo in checking for ! 9125: STORE_FLAG_VALUE equal to just the sign bit. ! 9126: (simplify_comparison): Fix typo in computing maximum signed number in ! 9127: a mode; also, use GET_MODE_MASK rather than trying to compute it. ! 9128: ! 9129: Thu Oct 10 17:52:44 1991 Richard Stallman ([email protected]) ! 9130: ! 9131: * c-decl.c (init_decl_processing): Turn off `alloca' for -ansi. ! 9132: (c_decode_option): Handle -fbuiltin, -fno-builtin. ! 9133: ! 9134: Thu Oct 10 17:42:03 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 9135: ! 9136: * caller-save.c (emit_mult_restore): Initialize MAYBE_TEMPREG. ! 9137: ! 9138: * function.c (assign_parms): Set MEM_IN_STRUCT_P when creating a ! 9139: MEM for a aggregate passed by reference. ! 9140: * expr.c (expand_expr, INDIRECT_REF case): Set MEM_IN_STRUCT_P ! 9141: when dereferencing an aggregate. ! 9142: ! 9143: * sched.c (sched_note_set): Add missing parens. ! 9144: ! 9145: * sparc.md: Delete unnecessary clobbers from all SCC patterns. ! 9146: ! 9147: * integrate.c (expand_inline_function): Correct handling of arguments ! 9148: passed by invisible reference. ! 9149: ! 9150: * cse.c (canon_hash): Compute hash code for SUBREG same as we do ! 9151: for REG. Otherwise, SUBREG hash codes can change when qty_const ! 9152: changes, which results in duplicate SUBREG entries, which can ! 9153: cause a crash. ! 9154: ! 9155: Wed Oct 9 15:55:42 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 9156: ! 9157: * cccp.c (main): Update MAX_INCLUDE_LEN if GCC_EXEC_PREFIX gets into ! 9158: the act. ! 9159: ! 9160: * xm-a29k.h: Change copyright message back to GPL version 2. ! 9161: * xm-a29k-ultra.h: Use GPL version 2 copyright. ! 9162: ! 9163: * reload1.c (reload): Put array size in cast, to prevent compiler ! 9164: warning. ! 9165: ! 9166: * dwarfout.c (type_attribute): Check for ERROR_MARK nodes. ! 9167: ! 9168: Wed Oct 9 13:59:22 1991 Richard Stallman ([email protected]) ! 9169: ! 9170: * toplev.c (float_signal): Reenable handler. ! 9171: ! 9172: * configure: Comment out various options not yet updated. ! 9173: ! 9174: * cp-*.c, cp-*.h: Renamed from cplus-*.[ch]. ! 9175: * Makefile.in: Renaming here also. ! 9176: ! 9177: * x-*: Renamed from make-*. ! 9178: * Makefile.in (tmake_file, xmake_file): New vars. ! 9179: (Makefile): Depend on them. ! 9180: * configure: Replace host_make_var_file with host_xmake_file. ! 9181: Handle tmake_file also, for target machine. ! 9182: Form file names from x- and t-. ! 9183: Rearrange use of temporary files during editing of Makefile. ! 9184: ! 9185: * t-mips: Most of x-mips moved here. ! 9186: * t-decrose: Likewise from x-decrose. ! 9187: ! 9188: * xm-a29k-ult.h: Renamed from xm-a29k-ultra.h. ! 9189: ! 9190: * Makefile. in (install-common): Don't handle `collect' specially. ! 9191: It should be in EXTRA_PASSES if it is needed. ! 9192: ! 9193: * cse.c (simplify_binary_expression): Use float handler for DF like SF. ! 9194: Don't warn about traps; leave them for run time. ! 9195: ! 9196: * tm-hp9k320.h (SIZE_TYPE): New definition. ! 9197: Note: this affects tm-3b1.h by inheritance. Not sure that's right. ! 9198: ! 9199: Wed Oct 9 12:15:40 1991 Tom Wood (wood at dg-rtp.dg.com) ! 9200: ! 9201: * rtl.def (TRAP_IF): Make TRAP into a conditional trap. ! 9202: * rtl.h (TRAP_CONDITION): Define. ! 9203: * rtlanal.c (reg_referenced_p may_trap_p): Deal with TRAP_IF properly. ! 9204: (volatile_refs_p side_effects_p): Not currently true for TRAP_IF. ! 9205: ! 9206: Wed Oct 9 03:55:21 1991 Richard Stallman ([email protected]) ! 9207: ! 9208: * make-mips (BISONFLAGS): Assignment deleted. ! 9209: ! 9210: * real.h (REAL_VALUE_MINUS_ZERO): New macro. ! 9211: * fold-const.c (target_minus_zero): New function. ! 9212: * tm-sun2os4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_FLOAT_OPERAND): ! 9213: (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_DOUBLE_OPERAND): ! 9214: Use REAL_VALUE_ISINF, REAL_VALUE_MINUS_ZERO. ! 9215: ! 9216: Tue Oct 8 17:56:13 1991 Richard Stallman ([email protected]) ! 9217: ! 9218: * c-decl.c (duplicate_decls): If redeclaring builtin as static, ! 9219: replace the old decl. ! 9220: ! 9221: * tm-seq386.h (HARD_REGNO_MODE_OK): Copy usual def into override def. ! 9222: ! 9223: * tm-news.h (CPP_PREDEFINES): Get rid of invalid conditionals. ! 9224: * tm-tower.h: Likewise. ! 9225: ! 9226: * tm-gmicro.h (MODES_TIEABLE_P): Fix typo. ! 9227: ! 9228: * ns32k.md (rotrsi3): Fix typo `NEGATE' for `NEG'. ! 9229: ! 9230: * c-typeck.c (mark_addressable): Handle CONSTRUCTOR. ! 9231: * expr.c (expand_expr): Handle addressable contructors. ! 9232: ! 9233: Tue Oct 8 14:42:56 1991 Tom Wood (wood at dg-rtp.dg.com) ! 9234: ! 9235: * expmed.c (lshift_value): Ensure the shift amount is in range. ! 9236: ! 9237: Mon Oct 7 20:45:35 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 9238: ! 9239: * integrate.c (function_cannot_inline_p, save_for_inline_copying, ! 9240: save_for_inline_nocopy, expand_inline_function, ! 9241: output_inline_function): Use GET_RTX_CLASS. ! 9242: ! 9243: * listing: Remove RCS Author and Log fields. ! 9244: ! 9245: * cse.c (exp_equiv_p): Fix typos in comments/spacing. ! 9246: * emit-rtl.c: Likewise. ! 9247: * expmed.c (store_fixed_bit_field): Likewise. ! 9248: * integrate.c (subst_constants): Likewise. ! 9249: ! 9250: * longlong.h: Again fix same typo previously fixed Sept 5. ! 9251: ! 9252: Mon Oct 7 17:28:23 1991 Michael Meissner (meissner at osf.org) ! 9253: ! 9254: * xm-mips.h (MIPS): Define MIPS to 1 instead of nothing, so ! 9255: mips-tfile will compile once again. ! 9256: ! 9257: Mon Oct 7 17:10:32 1991 Richard Stallman ([email protected]) ! 9258: ! 9259: * cccp.c (main): Pedantically warn if no newline at end of file. ! 9260: (finclude): Likewise. ! 9261: ! 9262: * c-decl.c (grokdeclarator): funcdef_flag overrides parm level. ! 9263: ! 9264: Sun Oct 6 16:37:31 1991 Richard Stallman ([email protected]) ! 9265: ! 9266: * sparc.md (peephole for lo-sum and load df): Use output_move_double. ! 9267: ! 9268: * tree.h (DECL_BUILT_IN_NONANSI): New flag. ! 9269: * c-decl.c (init_decl_processing): Set flag for `alloca'. ! 9270: ! 9271: * c-decl.c (duplicate_decls): Rearranged to reduce conditionals. ! 9272: Allow redefining built-in functions as static even if new decl ! 9273: is not a function. Also allow if built-in is not ANSI. ! 9274: ! 9275: * out-sparc.c (output_move_double): Fix typo in test for using ldd. ! 9276: ! 9277: Sun Oct 6 12:56:19 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9278: ! 9279: * expr.c (expand_expr, case COND_EXPR): Rename var added in last ! 9280: change; some C compilers don't like "optab optab;". ! 9281: ! 9282: Sun Oct 6 09:26:55 1991 Michael Tiemann (tiemann at cygnus.com) ! 9283: ! 9284: * cplus-method.c (build_overload_name): When walking up contexts, if ! 9285: CONTEXT becomes a _TYPE node, point it at the _DECL node for the ! 9286: type. ! 9287: ! 9288: * cplus-decl2.c (grokclassfn): Paremeter COMPLAIN deleted. No ! 9289: longer performs sanity check by itself. ! 9290: (check_classfn): New function. Performs sanity check that ! 9291: `grokclassfn' used to do. All callers changed. ! 9292: ! 9293: * tree.h (struct tree_decl): Add new ignored_flag; delete ! 9294: lang_flag_8 to make room. ! 9295: (DECL_IGNORED_P): New macro. ! 9296: (DECL_LANG_FLAG_8): Deleted. ! 9297: * cplus-dbxout.c (dbxout_type): Use this macro instead of ! 9298: ANON_AGGRNAME_P. ! 9299: * cplus-decl.c (pushtag): Set DECL_IGNORED_P when appropriate. ! 9300: * cplus-decl.c (duplicate_decls): Ensure DECL_IGNORED_P remains ! 9301: consistent. ! 9302: ! 9303: * cplus-decl.c (grokfndecl): If we have an overloaded operator, set ! 9304: the DECL_NAME to something that dbxout.c can handle. ! 9305: * cplus-method.c (hack_operator): Change this function to handle ! 9306: this new behavior. ! 9307: * cplus-init.c (do_friend): Ditto. ! 9308: ! 9309: Sat Oct 5 14:32:01 1991 Richard Stallman ([email protected]) ! 9310: ! 9311: * expmed.c (expand_mult): Avoid fetching memory more than once. ! 9312: ! 9313: * tm-ultrix.h (DOLLARS_IN_IDENTIFIERS): Define as 1. ! 9314: ! 9315: * expr.c (expand_builtin): Clarify error message for BUILT_IN_NEXT_ARG. ! 9316: ! 9317: Sat Oct 5 08:42:02 1991 Michael Tiemann (tiemann at cygnus.com) ! 9318: ! 9319: * cplus-decl.c (clear_anon_tags): New function. ! 9320: (make_anon_name): Moved here from cplus-method.c. ! 9321: * cplus-lex.c (check_for_missing_semicolon, note_list_got_semicolon): ! 9322: call `clear_anon_tags' when done. ! 9323: * cplus-dbxout.c (dbxout_type): No longer test ANON_AGGRNAME_P for ! 9324: TYPE_NAMEs that are IDENTIFIER_NODES. They no longer appear in GNU ! 9325: C++. Also, we can rely on the fact that there are no anon aggrnames ! 9326: in tag lists. ! 9327: ! 9328: * cplus-decl.c (xref_tag): Set TREE_VEC_LENGTH (BINFOS) to the ! 9329: number of basetypes that were actually accepted. ! 9330: ! 9331: * cplus-parse.y (datadef, fndef): Accept `extern "C"' as a storage ! 9332: class specifier. ! 9333: ! 9334: * cplus-init.c (build_new): Handle allocating types whose TRUE_TYPEs ! 9335: start off as ARRAY_TYPEs. ! 9336: ! 9337: * cplus-typeck.c (build_unary_op): We don't need to wrap ! 9338: CURRENT_CLASS_DECL in a NON_LVALUE_EXPR when taking the address of ! 9339: C_C_D. ! 9340: ! 9341: * cplus-init.c (resolve_offset_ref): Fix error message for ! 9342: non-static member references. Also, don't crash if EXP is not a ! 9343: TREE_LIST or an OFFSET_REF. ! 9344: ! 9345: * cplus-expr.c (cplus_expand_expr): Handle OFFSET_REFs. ! 9346: ! 9347: * cplus-typeck.c (build_binary_op_nodefault): If PEDANTIC, don't ! 9348: permit comparisons between pointers and integers. ! 9349: ! 9350: * cplus-decl2.c (explicit_warn_return_type): New variable. ! 9351: * cplus-decl.c (grokdeclarator): Test `explicit_warn_return_type' ! 9352: instead of `warn_return_type'. ! 9353: ! 9354: * cplus-decl.c (grokdeclarator): Fix criterium for deciding whether ! 9355: to turn a FUNCTION_TYPE declaration into a METHOD_TYPE declaration ! 9356: based on FRIENDP and STATICP. ! 9357: (implicitly_declare): If PEDANTIC, treat this as an error. ! 9358: ! 9359: * cplus-cvt.c (convert_to_integer): Make anachronisms errors if ! 9360: PEDANTIC is nonzero. ! 9361: ! 9362: * cplus-typeck.c (convert_for_assignment): If PEDANTIC, don't let ! 9363: void * convert to non-void* types. Similarly, don't let const* ! 9364: pointers be assigned to non-const* pointers. Similarly for signed ! 9365: vs. unsigned pointers. ! 9366: (warn_for_assignment): Add new parameter SEVERE. ! 9367: ! 9368: * cplus-decl.c (push_overloaded_decl): If PEDANTIC, give error when ! 9369: functions overload variables. ! 9370: ! 9371: * cplus-decl2.c (grokfield): If PEDANTIC, don't let fields have ! 9372: initializers (conditionalized on PEDANTIC). ! 9373: * cplus-class.c (finish_struct): Set TYPE_GETS_{ASSIGNMENT,INIT_REF} ! 9374: for UNION_TYPE. ! 9375: ! 9376: Sat Oct 5 06:52:29 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9377: ! 9378: * expr.c (expand_expr, case COND_EXPR): Case for X ? A + 1 : A can ! 9379: also handle MINUS_EXPR and BIT_*_EXPR. ! 9380: ! 9381: * rtl.h (copy_rtx_if_shared): Declare here. ! 9382: * emit-rtl.c (unshare_copies): Delete unused variable. ! 9383: (copy_rtx_if_shared): No longer static. ! 9384: (reset_used_flags): New function. ! 9385: * combine.c (copy_substitutions): Deleted. ! 9386: (try_combine): When making new insns, ensure that we do not have any ! 9387: improper sharing by using copy_rtx_if_shared; no longer call ! 9388: copy_substitutions. ! 9389: ! 9390: * combine.c (try_combine): If an insn that is a PARALLEL of two sets ! 9391: isn't recognized and the result of the second SET is unused, ignore it. ! 9392: ! 9393: Fri Oct 4 15:25:33 1991 Michael Tiemann (tiemann at cygnus.com) ! 9394: ! 9395: * cplus-decl.c (set_identifier_type_value): New function. Change ! 9396: all callers of macro SET_IDENTIFIER_TYPE_VALUE to call this function ! 9397: instead. ! 9398: ! 9399: * cplus-decl.c (pushdecl): Back out Sep 26 change. ??? This problem ! 9400: really has to be solved in a more global fashion. ! 9401: (struct binding_level): New field `type_shadowed' for typenames that ! 9402: get shadowed. All pop* routines that restore from shadowed lists ! 9403: now restore IDENTIFIER_TYPE_VALUE from the `type_shadowed' field. ! 9404: ! 9405: Fri Oct 4 14:47:52 1991 Michael Meissner (meissner at osf.org) ! 9406: ! 9407: * sdbout.c (include of syms.h): Don't include <syms.h> on MIPS ! 9408: systems, since the system does not provide the file, rather use ! 9409: "gsyms.h". This is a problem for Silicon Graphics, and the System V ! 9410: varient on RISC-OS, both of which define the USG macro. Patch from ! 9411: [email protected]. ! 9412: ! 9413: Fri Oct 4 13:37:11 1991 Tom Wood (wood at dg-rtp.dg.com) ! 9414: ! 9415: * stor-layout.c (get_best_mode): Add a volatilep parameter ! 9416: indicating that the smallest mode is desired. ! 9417: * expmed.c, fold-const.c: All callers changed. ! 9418: (optimize_bit_field_compare): Initialize {l,r}volatilep now that ! 9419: they are used. ! 9420: ! 9421: Thu Oct 3 22:08:45 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 9422: ! 9423: * objc-actions.h (CLASS_SUPER_NAME): Change type.basetypes to ! 9424: type.binfo so that it will compile. ! 9425: ! 9426: Thu Oct 3 06:46:38 1991 Niklas Hallqvist (niklas at appli.se) ! 9427: ! 9428: * cplus-tree.h (PARANOID): Don't define if already defined. ! 9429: ({SET,CLEAR}_CLASSTYPE_MARKED*): New macros needed to get through ! 9430: C compilers who don't allow comma expressions as lvalues. ! 9431: ({SET,CLEAR}_BINFO_*): Ditto. ! 9432: ! 9433: * cplus-init.c: Use new SET/CLEAR macros. ! 9434: ! 9435: * cplus-search.c: Ditto. ! 9436: ! 9437: * cplus-decl.c: Ditto. ! 9438: (lookup_tag): Accept *_DECLs as nodes in the context chain. ! 9439: (lookup_nested_type): Accept FUNCTION_DECLs not only as head of ! 9440: the context chain, but at any place in it. ! 9441: ! 9442: Thu Oct 3 06:42:08 1991 Michael Meissner (meissner at osf.org) ! 9443: ! 9444: * c-decl.c (c_decode_option): Add new switch -Wparentheses and ! 9445: -Wnoparentheses to control whether GCC warns about adding extra ()'s ! 9446: around a subexpression. Make -Wparentheses default behavior. ! 9447: (warn_parentheses): New global variable. ! 9448: ! 9449: * c-tree.h (warn_parentheses): New variable. ! 9450: ! 9451: * c-typeck.c (parser_build_binary_op): Check for warn_parentheses ! 9452: before emitting warnings about adding (). ! 9453: ! 9454: Wed Oct 2 20:51:04 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 9455: ! 9456: * gcc.texinfo: Correct documentation for CONSTANT_ADDRESS_P, ! 9457: CONSTANT_P, and HIGH. ! 9458: ! 9459: Wed Oct 2 15:08:32 1991 Michael Tiemann (tiemann at cygnus.com) ! 9460: ! 9461: * cplus-class.c (modify_vtable_entries): Fix error in computing ! 9462: offsets to use for virtual functions from virtual baseclasses. ! 9463: * cplus-except.c (lookup_exception_type): Change local variable name ! 9464: `binfo' to `link'. ! 9465: * cplus-lex.c (yylex): Cast shorts to (long) when building longlong. ! 9466: ! 9467: Wed Oct 2 11:32:35 1991 Michael Meissner (meissner at osf.org) ! 9468: ! 9469: * tm-encrose.h (new file): New configuration file for Encore ! 9470: Multimax running OSF/1, and using the OSF/rose object formats. ! 9471: ! 9472: Wed Oct 2 08:33:08 1991 Tom Wood (wood at dg-rtp.dg.com) ! 9473: ! 9474: * tree.h (TYPE_UID): Add this field to TYPE nodes. ! 9475: * tree.c (make_node): Initialize it. ! 9476: * dwarfout.c (TYPE_NAME_FMT): Use TYPE_UID rather than TREE_UID. ! 9477: (equate_type_number_to_die_number): Discard type qualifiers. ! 9478: (output_typedef_die): Don't use equate_type_number_to_die_number. ! 9479: ! 9480: Wed Oct 2 08:04:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9481: ! 9482: * cse.c (cse_process_notes): Fix typo; missing arg in return. ! 9483: ! 9484: Wed Oct 2 06:56:13 1991 Ron Guilmette (rfg at ncd.com) ! 9485: ! 9486: * Makefile.in (ENQUIRE_CFLAGS): Remove duplicate use of GCC_CFLAGS. ! 9487: ! 9488: * Makefile.in (cplus-tab.c): Adjust number of expected conflicts. ! 9489: ! 9490: * Makefile.in (mostlyclean): Remove collect and collect2. ! 9491: ! 9492: * tm-svr4.h: Add new file; prototype for System V, Release 4. ! 9493: ! 9494: Tue Oct 1 23:00:13 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9495: ! 9496: * reload.c (find_reloads_address): Fix error in previous change; ! 9497: clean up REG case so it is easier to read. ! 9498: ! 9499: Tue Oct 1 14:05:46 1991 Michael Tiemann (tiemann at cygnus.com) ! 9500: ! 9501: * cplus-decl.c (finish_{decl,function}): Use new function ! 9502: `note_debug_info_needed' instead of setting CLASSTYPE_ASM_WRITTEN. ! 9503: * cplus-search.c (note_debug_info_needed): New function. ! 9504: Recursively set CLASSTYPE_ASM_WRITTEN in a hierarchy when called. ! 9505: ! 9506: * cplus-class.c (finish_struct): If DECL_NAME of the BASE_FNDECL is ! 9507: NULL_TREE, we know we're looking at a virtual destructor. ! 9508: ! 9509: Tue Oct 1 09:47:25 1991 Michael Meissner (meissner at osf.org) ! 9510: ! 9511: * tm-mips.h (OPTIMIZATION_OPTIONS): Enable scheduling insns now for ! 9512: -O2 optimization. ! 9513: ! 9514: * Makefile.in (STAGESTUFF): Add $(EXTRA_PASSES), to allow moving any ! 9515: extra passes into the stage[1234] directories, and to remove the ! 9516: extra stuff when doing make clean. ! 9517: ! 9518: Tue Oct 1 08:35:11 1991 Tom Wood (wood at dg-rtp.dg.com) ! 9519: ! 9520: * dwarfout.c (FUNC_END_LABEL_FMT, TYPE_NAME_FMT): Undo this change. ! 9521: ! 9522: * c-decl.c (grokdeclarator): When making an unsigned bitfield ! 9523: type from a typedef, preserve the size. A typedef of an ! 9524: explicitly signed typedef is explicitly signed. ! 9525: ! 9526: Mon Sep 30 22:51:07 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 9527: ! 9528: * out-sparc.c: Fix misc typos and indentation problems. ! 9529: Delete all unnecessary extern declarations. ! 9530: Include "recog.h". ! 9531: Consistently use Pmode instead of SImode for addresses. ! 9532: Use macros defined in tm-sparc.h instead of magic numbers. ! 9533: (reg_or_0_operand): Accept CONST_DOUBLE zero. ! 9534: (symbolic_operand): Accept CONST_DOUBLE. ! 9535: (move_operand): Accept arith_double_operand ('H'), SMALL_INT ! 9536: ('I'), and sethi operands ('K'). ! 9537: (move_pic_label): Renamed from move_reg_or_immed_operand. If ! 9538: flag_pic is true, accept a LABEL_REF, otherwise fail. ! 9539: (arith_double_operand): Accept SMALL_INT ('I') CONST_INTs. Correct ! 9540: computation of when a CONST_DOUBLE is a SMALL_INT ('H'). ! 9541: (eligible_for_epilogue_delay): Accept arith_double_operands. ! 9542: (emit_move_sequence): Handle arith_double_operands. Handle ! 9543: loading of labels for pic, need to add a clobber of %o7 (reg 15). ! 9544: (find_addr_reg): Don't return FRAME_POINTER_REGNUM. It is not ! 9545: safe to play around with the frame pointer. ! 9546: (hard_regno_mode_ok): Change from short to int array. ! 9547: (output_pic_sequence, output_pic_sequence_2, fp_zero_hook): Delete ! 9548: long obsolete routines. ! 9549: (print_operand): Delete support for obsolete 'S' and 'H' cases. ! 9550: (output_double_int): New function. Outputs assembler code for 64 ! 9551: bit (DImode) values. ! 9552: ! 9553: * sparc.md: Fix misc typos and indentation problems. ! 9554: Delete unnecessary (set_attr "type" "binary") lines. ! 9555: Consistently use %a1 in sethi and ori output templates. ! 9556: Consistently use Pmode not SImode for addresses. ! 9557: Consistently use the same predicate for both operand 1 and ! 9558: operand 2 in commutative patterns. Don't use same predicate in ! 9559: non-commutative patterns. ! 9560: Consistently use \; to separate multiple instuctions. ! 9561: Change "r%" to "%r". ! 9562: (define_attr length): Handle arith_double_operand predicate. ! 9563: (movsi): Combine two movsi patterns into one, except for loading ! 9564: of pic labels. New pattern to load pic labels, which clobbers %o7. ! 9565: (movhi): Combine two movhi patterns into one. ! 9566: (movqi): Combine two movqi patterns into one. ! 9567: (movdi): Discourage the Q/f constraint option so that DImode ! 9568: variables won't end up in floating pointer registers. ! 9569: (floatsisf2, floatsidf2): Delete patterns accepting a const_int ! 9570: operand. These should never be matched. In remaining patterns, ! 9571: accept nonimmediate_operand instead of general_operand. ! 9572: (adddi3, subdi3, anddi3, iordi3, xordi3, xnordi3, one_cmpldi2): ! 9573: Accept arith_double_operand predicates and "HI" constraints. ! 9574: (last peephole): Reg 0 should be CCmode not SImode. ! 9575: ! 9576: * tm-sparc.h: Fix misc typos. ! 9577: (WORDS_BIG_ENDIAN): Indicate why it must be true. ! 9578: (hard_regno_mode_ok): Change from short to int array. ! 9579: (CONST_DOUBLE_OK_FOR_LETTER_P): Add new 'H' constraint, for DImode ! 9580: constants that can fit in an immediate field. ! 9581: (CONSTANT_ADDRESS_P): Accept any CONSTANT_P, including ! 9582: CONST_DOUBLEs. ! 9583: (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs if match 'H' ! 9584: constaint. ! 9585: (RTX_COSTS): Define cost for FLOAT to be more expensive than ! 9586: CONST_DOUBLEs, so that cse will prefer the latter. ! 9587: (ASM_OUTPUT_DOUBLE_INT): New macro to output DImode constants. ! 9588: ! 9589: * sched.c (schedule_block): When calculating register lifetime ! 9590: info, handle CLOBBERs and USEs. The code that adds REG_DEAD notes ! 9591: already handles them. ! 9592: (update_n_sets): New function, subroutine of update_links. ! 9593: Given a SET or CLOBBER, updates reg_n_sets as appropriate, ! 9594: depending on whether this is in a deleted or a new insn. ! 9595: (update_links): Call update_n_sets to subtract info for split ! 9596: insn, and add info for insns resulting from the split. ! 9597: ! 9598: Mon Sep 30 19:06:50 1991 Michael Meissner (meissner at osf.org) ! 9599: ! 9600: * ecoff-cmp (TMP): Fix typo, from [email protected]. ! 9601: ! 9602: * mips-tfile.c (toplevel): Don't declare _flsbuf under Silicon ! 9603: Graphics, from [email protected]. ! 9604: ! 9605: Mon Sep 30 15:54:02 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9606: ! 9607: * cse.c (cse_process_notes): New function. ! 9608: (cse_basic_block): Call it for each insn. ! 9609: (count_reg_usage): Count usage in a REG_EQUAL note. ! 9610: (delete_dead_from_cse): Call count_reg_usage with insn, not pattern. ! 9611: * loop.c (scan_loop): Replace a register used in a REG_EQUAL note. ! 9612: (find_single_use_in_loop): Two uses in single insn doesn't disqualify. ! 9613: Allow argument to be REG_NOTES. ! 9614: (count_loop_regs_set): Call find_single_us_in_loop on REG_NOTES. ! 9615: ! 9616: Mon Sep 30 15:47:03 1991 Michael Tiemann (tiemann at cygnus.com) ! 9617: ! 9618: * cplus-call.c (ideal_candidate): Return 0 if the top two candidates ! 9619: have identical rankings but incompatible types. ! 9620: ! 9621: * cplus-lex.c (cons_up_default_function): Set DECL_NAME (FN) to ! 9622: NULL_TREE in order to mark the function as being generated by the ! 9623: compiler. ! 9624: * cplus-init.c (emit_base_init): Change to use this interface. ! 9625: * cplus-decl.c (duplicate_decls, redeclaration_error_message): Ditto. ! 9626: (store_parm_decls): Ditto. ! 9627: * cplus-decl2.c (grokclassfn): Ditto. ! 9628: * cplus-dbxout.c (dbxout_type_methods): Ditto. ! 9629: * cplus-class.c (finish_struct_methods): Ditto. ! 9630: * cplus-method.c (fndecl_as_string): Ditto. ! 9631: * cplus-search.c (lookup_fnfields_1): Ditto. ! 9632: (compute_visibility): Ditto. ! 9633: * cplus-typekc.c (build_function_call): Ditto. ! 9634: * cplus-tree.c (lang_printable_name): Ditto. Also use ! 9635: DECL_ASSEMBLER_NAME instead of DECL_NAME in DESTRUCTOR_NAME_P test. ! 9636: * calls.c (expand_call): Change also needed here. ! 9637: ! 9638: Mon Sep 30 15:31:53 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 9639: ! 9640: * dbxout.c: Include <param.h> before config.h, because it may define ! 9641: MIN and MAX. ! 9642: ! 9643: * fold-const.c (const_binop): Delete incorrect short cut for ! 9644: (0 - const). ! 9645: ! 9646: * expr.c (do_tablejump): Pass GET_MODE (index) instead of Pmode to ! 9647: emit_cmp_insn, because the latter fails when integers and pointers ! 9648: are different sizes. ! 9649: ! 9650: * combine.c (subst): When checking to see if associating helps ! 9651: simplify rtl, make sure we pass the constant operand if any as the ! 9652: second one if this is a commutative operation. ! 9653: ! 9654: * cccp.c (rescan): Save obufp_before_macroname as an offset from ! 9655: the start of op->buf instead of as a pointer into the middle, in ! 9656: case op->buf gets realloced. ! 9657: ! 9658: Mon Sep 30 14:07:20 1991 Tom Wood (wood at dg-rtp.dg.com) ! 9659: ! 9660: * dwarfout.c (FUNC_END_LABEL_FMT, TYPE_NAME_FMT): TREE_UID is ! 9661: unique only if the node is TREE_PERMANENT. Augment the spelling ! 9662: of labels using TREE_UID with the TREE_UID of the current function. ! 9663: ! 9664: Changes from Ron Guilmette: ! 9665: * dwarfout.c (output_symbol): Deal with formal parameters with an ! 9666: incomplete tagged type. ! 9667: (output_bound_representation): Fix for arrays with dynamic bounds. ! 9668: ! 9669: Changes from Jim Wilson: ! 9670: * dwarfout.c: Define strrchr to rindex for non USG systems. ! 9671: Use DECL_BIT_FIELD_TYPE not DECL_BIT_FIELD to test for bitfields. ! 9672: ! 9673: Sun Sep 29 16:29:08 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9674: ! 9675: * reload.h (indirect_symref_ok): New variable. ! 9676: * reload.c (find_reloads_address): Remove shadowing decls of `tem'. ! 9677: Only allow certain forms addresses as indirect; check ! 9678: indirect_symref_ok to see if (mem (symbol_ref ...)) is a valid ! 9679: address; if not that form or simple, not valid indirect address. ! 9680: * reload1.c (indirect_symref_ok): Define here. ! 9681: (init_reload): Initialize vars used to determine which addrs are valid. ! 9682: (reload): Don't do it here. ! 9683: Update comment to relect what `alter_regs' currently does. ! 9684: ! 9685: * tree.h (struct tree_decl): Add new from_inline_flag; delete ! 9686: lang_flag_9 to make room. ! 9687: (DECL_FROM_INLINE): New macro. ! 9688: (DECL_LANG_FLAG_9): Deleted. ! 9689: * c-decl.c, cplus-decl.c (pushdecl): Use DECL_FROM_INLINE instead of ! 9690: TREE_INLINE where appropriate. ! 9691: * cplus-decl.c (finish_decl): Likewise. ! 9692: * integrate.c (integrate_parm_decls, integrate_decl_tree): Set ! 9693: DECL_FROM_INLINE instead of TREE_INLINE. ! 9694: * print-tree (print_node): Print DECL_FROM_INLINE. ! 9695: Delete reference to DECL_LANG_FLAG_9. ! 9696: ! 9697: Sun Sep 29 12:49:47 1991 Michael Tiemann (tiemann at cygnus.com) ! 9698: ! 9699: * c-decl.c, c-typeck.c, cplus-decl.c, toplev.c: ! 9700: Set/test TREE_ADDRESSABLE of DECL_ASSEMBLER_NAME, not DECL_NAME for ! 9701: function decls. ! 9702: ! 9703: * cplus-class.c: Export `current_lang_stack' and ! 9704: `current_lang_base'. ! 9705: cplus-decl.c (push_overloaded_decl): Allow redeclaration of a ! 9706: function that was previously given a linkage specification at ! 9707: top-level (i.e., not in an explicit linkage arena). ! 9708: ! 9709: * cplus-typeck.c (convert_arguments): Strip the `&' from an ! 9710: overloaded function passed as an argument into an ellipses. ! 9711: ! 9712: Sat Sep 28 15:37:26 1991 Michael Tiemann (tiemann at cygnus.com) ! 9713: ! 9714: * cplus-typeck.c (build_x_binary_op): We have to special-case the ! 9715: failure of MEMBER_REF to be overloaded as an operator. ! 9716: ! 9717: Sat Sep 28 10:44:36 1991 Richard Kenner ([email protected]) ! 9718: ! 9719: * reload1.c (reload): If we find at some point that we need ! 9720: caller-saves, disable elimination of the frame pointer. ! 9721: ! 9722: * reload.c (subst_reloads): Re-enable code to prevent making ! 9723: a SUBREG inside a SUBREG. ! 9724: ! 9725: Sat Sep 28 00:40:51 1991 Ken Raeburn ([email protected]) ! 9726: ! 9727: * cplus-pt.c (do_pending_expansions): Adjust "DECIDE" macro to avoid ! 9728: compiler warning from Sun cc. ! 9729: ! 9730: Fri Sep 27 17:30:39 1991 Per Bothner (bothner at cygnus.com) ! 9731: ! 9732: * configure[.in]: Move most of the target_vendor switch ! 9733: entries (e.g. next, sun, sony) from the m88k architecture to m68k, ! 9734: where they belong. ! 9735: ! 9736: Fri Sep 27 16:21:04 1991 Michael Tiemann (tiemann at cygnus.com) ! 9737: ! 9738: * cplus-search.c (recursive_bounded_basetype_p): Add new parameter ! 9739: UPDATE_CHAIN so that function now behaves as comment prescribes. ! 9740: * cplus-search.c (compute_visibility): Fix error in conversion of ! 9741: data structures from list-based to binfo-based nodes. ! 9742: ! 9743: Fri Sep 27 07:05:57 1991 Richard Kenner ([email protected]) ! 9744: ! 9745: * c-decl.c (pushdecl): Fix typo: TREE_EXTERNAL misspelled. ! 9746: ! 9747: Thu Sep 26 17:36:14 1991 Michael Meissner (meissner at osf.org) ! 9748: ! 9749: * tm-mips.h (ASM_FINAL_SPEC): Handle gcc -c -o foo bar.c. ! 9750: ! 9751: * tm-decrose.h (ASM_FINAL_SPEC): Handle gcc -c -o foo bar.c. ! 9752: ! 9753: * make-decrose (cplus-lex rule): Remove hacks in compiling ! 9754: cplus-lex, since bug in 1.39 inlining was fixed to allow us to ! 9755: compile the module normally. ! 9756: ! 9757: Thu Sep 26 11:53:49 1991 Ken Raeburn ([email protected]) ! 9758: ! 9759: * cplus-tree.h (TEMPLATE_TYPE_*): Use slower versions that uses tree ! 9760: structures more properly, so accessor macros don't lose. ! 9761: ! 9762: * cplus-pt.c (end_template_parm_list): For type parameters, make the ! 9763: new decl be the name of the "type". ! 9764: ! 9765: * Makefile.in (cplus-tab.{c,h}): There are now 30 s/r conflicts. ! 9766: ! 9767: * cplus-class.c (resolves_to_fixed_type_p, case CALL_EXPR): Deleted ! 9768: duplicate code. ! 9769: ! 9770: * cplus-decl.c (poplevel): Deleted duplicate code saving info on ! 9771: accesses to external via non-global decls. ! 9772: (pushdecl): For typedef of unnamed type, don't store new name for ! 9773: type if not at global binding scope. Also, don't need to test for ! 9774: TYPE_DECL when previous conditional guarantees it. ! 9775: (start_decl): Clear TREE_PUBLIC flag of templates. ! 9776: (finish_decl): For variables in static storage with constructors, ! 9777: force it into data section (out of common storage) only if the name ! 9778: is externally visible. ! 9779: ! 9780: * cplus-gc.c (type_needs_gc_entry): If the type has no base types, ! 9781: don't check to see whether they need gc entries. ! 9782: ! 9783: * cplus-parse.y (yyprint): Handle SCSPEC and AGGR. ! 9784: ! 9785: * cplus-pt.c (end_template_decl): Clear IDENTIFIER_TYPE_VALUE slots ! 9786: for type parameters, then call adjust_type_value. ! 9787: (instantiate_class_template): Do nothing if classname is ! 9788: error_mark_node. ! 9789: (mangle_class_name_for_template): Make buf a static array, since ! 9790: its address gets returned. ! 9791: ! 9792: * reload1.c (reload): Provide array size in cast, to avoid compiler ! 9793: warnings. ! 9794: ! 9795: From Niklas Hallqvist: ! 9796: * cplus-tree.h (struct template_info): Added new field "aggr", which ! 9797: will be class_type_node or struct_type_node for class or struct ! 9798: templates. ! 9799: * cplus-parse.y (template_def): Pass current_aggr to ! 9800: end_template_decl. ! 9801: (template_instantiation): Use aggr field. ! 9802: * cplus-pt.c (end_template_decl): Argument IS_CLASS is now a tree, ! 9803: used to set the aggr field. ! 9804: (overload_template_name): Use aggr field. ! 9805: ! 9806: Suggested by John Carr: ! 9807: * cplus-dbxout.c (dbxout_tags): Don't omit argument to ! 9808: dbxout_finish_symbol. ! 9809: (dbxout_continue): Omit declaration and definition if ! 9810: DBX_CONTIN_LENGTH is not greater than zero, like its calls. ! 9811: (print_int_cst_octal): Ditto, based on defined(WINNING_GDB). ! 9812: * cplus-decl.c (GNU_end_scope): Never used; deleted. ! 9813: (pushdecl): Vars nglobals, len are used only in code under "#if 0"; ! 9814: comment out decls as well. ! 9815: * cplus-gc.c (expand_gc_prologue_and_epilogue): Variable "head" was ! 9816: unused; deleted. ! 9817: * cplus-init.c (expand_aggr_vbase_init_1): All args are type tree. ! 9818: (expand_vec_init): Don't return without a value when "initializer ! 9819: ends prematurely". ! 9820: * cplus-method.c (build_overload_nested_name): Pass all necessary ! 9821: arguments in recursive call. ! 9822: * cplus-search.c (pop_type_level): Cast argument to pop_stack_level ! 9823: to proper type. ! 9824: (push_memoized_context): Ditto for push_type_level. ! 9825: (my_copy_node): Unused; deleted. ! 9826: (lookup_fnfields): Add missing arg to get_binfo. ! 9827: (lookup_field): Ditto. ! 9828: ! 9829: From Niklas Hallqvist: ! 9830: * cplus-decl.c (push_to_top_level): Handle case of function with ! 9831: unnamed parms. ! 9832: (pop_from_top_level): Ditto. ! 9833: ! 9834: Thu Sep 26 07:46:08 1991 Richard Kenner ([email protected]) ! 9835: ! 9836: * loop.c (scan_loop): Don't eliminate register that is set by ! 9837: consecutive insns. ! 9838: ! 9839: Wed Sep 25 18:53:52 1991 Richard Stallman ([email protected]) ! 9840: ! 9841: * c-decl.c (pushdecl): Suppress warnings about mismatch of ! 9842: extern decl when it comes from inlining a function. ! 9843: ! 9844: * emit-rtl.c (set_new_first_and_last_label_number): New function. ! 9845: (max_label_num): Use last_label_num if valid. ! 9846: * integrate.c (output_inline_function): Call set_new_... ! 9847: ! 9848: Wed Sep 25 18:37:36 1991 Richard Kenner ([email protected]) ! 9849: ! 9850: * flow.c (find_auto_inc): Set BLOCK_NUM of new insns emitted while ! 9851: making an auto-inc. ! 9852: ! 9853: * Makefile.in (getopt*.o): Each file depends on its .c file and on ! 9854: the compiler executable files. ! 9855: ! 9856: Wed Sep 25 18:18:46 1991 Richard Stallman ([email protected]) ! 9857: ! 9858: * toplev.c (debug_info_level): New variable. ! 9859: * flags.h (debug_info_level, enum debug_info_level): New declarations. ! 9860: * toplev.c (main): Rewrite handling of -g* and -G* options. ! 9861: Now -G indicates use of GDB extensions. -g0 removed. ! 9862: ! 9863: Tue Sep 24 03:20:07 1991 Richard Stallman ([email protected]) ! 9864: ! 9865: * alloca.c: Test __STDC__, not X3J11. ! 9866: Do nothing if alloca is defined as a macro. ! 9867: ! 9868: Tue Sep 24 09:15:17 1991 Richard Kenner ([email protected]) ! 9869: ! 9870: * global-alloc.c (eliminable_regset): New variable. ! 9871: (global_alloc): Compute it and use to turn off conflicts. ! 9872: Refine computation of no_global_alloc_regs when ELIMINABLE_REGS is ! 9873: defined. ! 9874: (mark_elimination): Don't do anything with allocnos and don't do ! 9875: any allocation. ! 9876: ! 9877: * reload1.c (eliminate_regs_in_insn): Try to re-recognize insn if ! 9878: we replaced a (set X (plus Y Z)). ! 9879: ! 9880: Tue Sep 24 06:34:04 1991 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu) ! 9881: ! 9882: * cplus-tree.c (virtual_member): Change TREE_VALUE accessor macro to ! 9883: BINFO_TYPE. ! 9884: * tree.h (BINFO_TYPE): New name for BINFO_VALUE. ! 9885: * All cplus-* files: Changed to reflect new name. ! 9886: ! 9887: Mon Sep 23 12:56:11 1991 Michael Meissner (meissner at osf.org) ! 9888: ! 9889: * tm-mips.h (ASM_SPEC): Fix typo, and close {}'s properly. ! 9890: ! 9891: Mon Sep 23 10:30:51 1991 Michael Tiemann (tiemann at cygnus.com) ! 9892: ! 9893: * cplus-tree.c (propagate_assoc_offsets): Keep relative offsets of ! 9894: child_child correct when copying children. ! 9895: ! 9896: * cplus-class.c Use `BINFO_VALUE' instead of `TREE_VALUE' when ! 9897: accessing the type value of a binfo node. ! 9898: * cplus-decl.c (finish_function): Ditto. ! 9899: * cplus-init.c (build_vbase_delete): Ditto. ! 9900: ! 9901: Mon Sep 23 06:11:56 1991 Richard Kenner ([email protected]) ! 9902: ! 9903: * flow.c (reg_n_refs): Use int, not short. Short can overflow ! 9904: if we have very deep loop nesting. ! 9905: (allocate_for_life_analysis): Allocate reg_n_refs as int. ! 9906: * regs.h (reg_n_refs): Now int. ! 9907: * sched.c: Delete duplicate definitions of objects defined in regs.h. ! 9908: ! 9909: * combine.c (try_combine): Correctly check for independent insns ! 9910: in a PARALLEL. ! 9911: ! 9912: * combine.c (distribute_note, case REG_DEAD): If we discover a register ! 9913: is never used, see if we can delete the insn that set it. ! 9914: ! 9915: Sun Sep 22 19:24:52 1991 Michael Tiemann (tiemann at cygnus.com) ! 9916: ! 9917: * cplus-type2.c (build_functional_cast): Don't forget a valid ! 9918: function call if we found one (and nothing more). ! 9919: ! 9920: Sun Sep 22 07:48:18 1991 Richard Kenner ([email protected]) ! 9921: ! 9922: * rtlanal.c (rtx_varies_p, case REG): Correct typo; sense of comparison ! 9923: was backwards. ! 9924: ! 9925: * global-alloc.c (mark_elimination): Don't use HARD_REG_SET macros ! 9926: to access basic_block_live_at_start. ! 9927: ! 9928: * reload1.c (set_label_offsets): New function. ! 9929: (offsets_known_at, offsets_at): New variables. ! 9930: (reload): Allocate and initialize them. ! 9931: Set each label in FORCED_LABELS to be at initial offsets. ! 9932: Call set_label_offset on all insns that might involve labels. ! 9933: Use GET_RTX_CLASS when appropriate. ! 9934: (eliminate_regs, mark_not_eliminable): Ignore sets of FP when looking ! 9935: for sets of a "to" register. ! 9936: (eliminate_regs_in_insn): No longer suppress elimination for any ! 9937: pair not at its initial offet at a jump. ! 9938: ! 9939: * combine.c (distribute_links): Correctly find the place to put a ! 9940: link. Handle the case when we eliminate all uses of something that ! 9941: we used to use; in that case, we must seach forward. ! 9942: No longer need I3, I2, or ALL_ADJACENT arguments. ! 9943: (try_combine): Change calls to distribute_links. ! 9944: ! 9945: * reload.c (find_equiv_reg): Use GET_RTX_CLASS when appropriate. ! 9946: If GOAL is a MEM whose address varies, check whether registers ! 9947: that are SET appear in the address rather than assuming they do. ! 9948: Ensure REG_INC note is a REG; ignore it if not. ! 9949: ! 9950: * rtlanal.c (rtx_varies_p): Rework to use switch statement. ! 9951: Check for {frame,arg}_pointer_rtx, not just register number. ! 9952: (rtx_addr_can_trap_p): New function. ! 9953: (may_trap_p): Use rtx_addr_can_trap_p instead of rtx_varies_p. ! 9954: * genattrtab.c: Define {frame,arg,stack}_pointer_rtx for rtlanal.c. ! 9955: ! 9956: * combine.c (make_extraction): Make a ZERO_EXTRACT for something with ! 9957: pos == 0 if it will be placed in a SET_DEST. ! 9958: ! 9959: * expmed.c (expand_shift): Rotate case was missing return statement. ! 9960: extzv case had wrong arg to delete_insns_since. ! 9961: Remove unneeded calls to delete_insns_since. ! 9962: Allow BITS_BIG_ENDIAN to vary at run-time. ! 9963: Use variable TEMP in a consistent manner. ! 9964: Other miscellaneous changes and cleanups were made. ! 9965: ! 9966: * flow.c (max_uid_for_flow): New variable. ! 9967: (flow_analysis): Compute maximum uid into max_uid_for_flow; if ! 9968: we might have auto-inc, leave some space. ! 9969: (find_auto_inc): Verify that the uid's of the insns we make are ! 9970: within the allocated space of our per-insn tables. ! 9971: Use get_insns instead of gen_sequence. ! 9972: ! 9973: * global-alloc.c (retry_global_alloc): When we allocate a register, ! 9974: update regno_reg_rtx and mark the allocated register live. ! 9975: (mark_elimination): New function. ! 9976: * reload1.c (reload): Call mark_elimination for every elimination ! 9977: we have been able to do. ! 9978: (spill_hard_reg): No longer need to call mark_home_live. ! 9979: ! 9980: Sun Sep 22 02:07:55 1991 Richard Stallman ([email protected]) ! 9981: ! 9982: * fixincludes: Redirect cmp output to /dev/null; don't close it. ! 9983: ! 9984: * varasm.c (assemble_function): Handle ASM_OUTPUT_FUNCTION_PREFIX. ! 9985: ! 9986: * final.c (final_scan_insn): No need to goto text section ! 9987: for label on jump table. We're normally in the text section. ! 9988: ! 9989: Sat Sep 21 14:59:32 1991 (Eric Youngdale at [email protected]) ! 9990: ! 9991: * make-cc1.com: Fix typo in code that decides if bison needs to be ! 9992: run. Also, display a message when building the compiler that informs ! 9993: the user about the need to update the assembler. ! 9994: ! 9995: Sat Sep 21 17:23:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 9996: ! 9997: * loop.c (struct movable): Add field DEPENDENCIES. ! 9998: (scan_loop): Remove mechanism based on REG_TO_FORCE and ! 9999: MOVABLE_TO_FORCE. Replace with use of new field. ! 10000: Optionally allocate and initialize reg_single_usage and pass it to ! 10001: count_loop_regs_set. ! 10002: If an invariant register is used exactly once and this is a loop ! 10003: that has a CALL_INSN, try to substitute the definition of the register ! 10004: into its use. ! 10005: (record_excess_regs): Fix typo in sense of checking in NOT_IN_THIS; ! 10006: only check pseudo-regs. ! 10007: (libcall_other_reg): Always return the list of registers used, ! 10008: no matter how many there are. ! 10009: (combine_movable): Only combine two movables if they have the same ! 10010: dependencies. ! 10011: (move_movables): Can only move something if its dependencies have ! 10012: already been moved. ! 10013: (find_single_use_in_loop): New function. ! 10014: (count_loop_regs_set): Delete code that prevents moving a reg that ! 10015: is used as a function address. ! 10016: Call find_single_use_in_loop when required. ! 10017: ! 10018: Sat Sep 21 16:28:34 1991 Richard Stallman ([email protected]) ! 10019: ! 10020: * c-typeck.c (build_unary_op): ! 10021: Handle const and volatile lvalues correctly in ADDR_EXPR. ! 10022: ! 10023: * output.h (current_function_contains_functions): ! 10024: Just declare it, don't define it. ! 10025: ! 10026: * cse.c (exp_equiv_p): New arg EQUAL_VALUES. All callers changed. ! 10027: ! 10028: Sat Sep 21 12:59:15 1991 Michael Tiemann (tiemann at cygnus.com) ! 10029: ! 10030: * cplus-parse.y (object_star): New rule. ! 10031: (POINTSAT_STAR): New token. ! 10032: * cplus-lex.c (init_lex): Define entry for MEMBER_REF. ! 10033: GNU C++ now overloads `operator->*' according to ARM semantics. It ! 10034: no longer attempts to implement operator->* as two distinct ! 10035: operations. ! 10036: ! 10037: Fri Sep 20 18:08:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10038: ! 10039: * combine.c (subst): Don't replace a CC0 or a PC in a SET_DEST if ! 10040: FROM is the same thing. ! 10041: ! 10042: * combine.c (simplify_shift_const): Compute SHIFT_MODE at start of ! 10043: loop and use its width, rather than width of RESULT_MODE, when checking ! 10044: shift count. ! 10045: ! 10046: Fri Sep 20 10:55:55 1991 Michael Tiemann (tiemann at cygnus.com) ! 10047: ! 10048: * cplus-pt.c (uses_template_parms): Handle COMPONENT_REF case. ! 10049: ! 10050: Fri Sep 20 00:27:43 1991 Richard Stallman ([email protected]) ! 10051: ! 10052: * c-typeck.c (build_modify_expr): When assigning to a cast, ! 10053: convert value first to the type being cast to. ! 10054: (build_unary_expr): Disallow adress of a cast. ! 10055: ! 10056: * explow.c (allocate_dynamic_stack_space): ! 10057: Handle SETJMP_VIA_SAVE_AREA before rounding to STACK_BOUNDARY. ! 10058: ! 10059: Thu Sep 19 21:13:17 1991 Richard Stallman ([email protected]) ! 10060: ! 10061: * Makefile.in (dist, gcc-*.tar, gcc-*.tar.Z): New targets. ! 10062: ! 10063: * jump.c (jump_optimize): In handling `if (...) x = a; else x = b;', ! 10064: don't crash if scan reaches start of insns. ! 10065: ! 10066: * Makefile.in (protoize): Link with getopt.o and getopt1.o. ! 10067: (unprotoize): Likewise. ! 10068: (protoize.o): Depend on getopt.h. Pass -D options for include dirs. ! 10069: (unprotoize.o): Likewise. ! 10070: (getopt.o, getopt1.o): New targets. ! 10071: ! 10072: * protoize.c: Major rewrite by RFG and RMS. ! 10073: ! 10074: Thu Sep 19 09:58:25 1991 Tom Wood (wood at dg-rtp.dg.com) ! 10075: ! 10076: Changes from Ron Guilmette: ! 10077: * dwarfout.c: Keep track of next_block_number correctly. ! 10078: * final.c (final_scan_insn): Don't invoke dwarfout_{begin,end}_block ! 10079: for the outermost block of a function. ! 10080: ! 10081: Thu Sep 19 06:16:34 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10082: ! 10083: * reload.c (copy_replacements): New function. ! 10084: * optabs.c (gen_move_insn): Don't call gen_lowpart while reloading ! 10085: is in progress; it calls change_address, which wants to make pseudos. ! 10086: ! 10087: * combine.c (subst, case SET): Fix typo in last change. ! 10088: ! 10089: * combine.c (distribute_notes): When searching back for a place that ! 10090: uses a register marked REG_DEAD, check for set and reference separately ! 10091: since reg_overlap_mentioned_p doesn't check SET_DEST. ! 10092: ! 10093: * combine.c (simplify_shift_const): Correct handling of shift counts ! 10094: that become out-of-range. ! 10095: ! 10096: * combine.c (expand_field_assignment): Don't allow sharing the RTL ! 10097: for the inner object. ! 10098: ! 10099: * combine.c (can_combine_p, try_combine, record_value_for_reg): Use ! 10100: reg_overlap_mentioned_p instead in reg_mentioned_p in most places. ! 10101: (distribute_notes, distribute_links): Likewise. ! 10102: (combinable_i3pat): New function, from try_combine. ! 10103: (try_combine): Default I1DEST and I1SRC to zero. ! 10104: New var I1_FEEDS_I3. ! 10105: Delete code to validate I3's pattern from here; call combinable_i3pat ! 10106: instead. ! 10107: If a substitution returns a (clobber (const_int 0)), stop immediately. ! 10108: Don't abort if substitution made new regs; just don't do combine. ! 10109: (subst): If IN_DEST, don't replace a matching object. ! 10110: Don't look at a REG as a SET_DEST. ! 10111: If substitution inside a PARALLEL fails, give up immediately. ! 10112: Return (clobber (const_int 0)) even for a SET whose operand fails. ! 10113: (subst, case SET): Correctly test for low-order SUBREG. ! 10114: Don't use gen_lowpart_for_combine; make SUBREG explicitly since it ! 10115: can't handle modes larger than a word. ! 10116: ! 10117: * combine.c (subst, case NOT): Code for (not (ashiftx ..)) was too ! 10118: general; only handle (not (ashift 1 X)). ! 10119: (subst, case NEG): Handle (neg (ashift ...)). ! 10120: (merge_outer_ops): Support NEG. ! 10121: (simplify_shift_const, case NEG): Handle (ashift (neg ...)). ! 10122: ! 10123: * cse.c (simplify_binary_operation, case ROTATE, ROTATERT): ! 10124: Rotating all one bits is just all ones. ! 10125: ! 10126: Thu Sep 19 01:08:14 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10127: ! 10128: * cplus-parse.h, cplus-decl.h: Remove trailing comma after the last ! 10129: enum value in enum declarations. ! 10130: ! 10131: * cplus-type2.c (digest_init): Set TREE_PURPOSE of union initializer ! 10132: when initializing a union by the first field. ! 10133: ! 10134: * cplus-method.c (fndecl_as_string): Test whether DECL_CLASS_CONTEXT ! 10135: is NULL before using it. ! 10136: (dump_aggr_type): New function. Print aggr type's context when ! 10137: appropriate. ! 10138: (dump_type{_prefix}): Use `dump_aggr_type' to print ENUMERAL_TYPE, ! 10139: UNION_TYPE, and STRUCT_TYPE types. ! 10140: ! 10141: * cplus-decl.c (start_decl): Don't use DECL_CLASS_CONTEXT if DECL ! 10142: has no DECL_LANG_SPECIFIC. ! 10143: ! 10144: Wed Sep 18 21:46:32 1991 Michael Meissner (meissner at osf.org) ! 10145: ! 10146: * mips-tfile.c (cur_proc_value): New static to remember the starting ! 10147: location of the current function. ! 10148: (add_procedure): Save current procedure location. ! 10149: (parse_begin, parse_bend): Subtract cur_proc_value from location. ! 10150: (parse_bend): Correct error messages. ! 10151: The above changes are from [email protected]. ! 10152: ! 10153: * tm-mips.h (ASM_FINAL_SPEC): Use -mno-mips-tfile to suppress ! 10154: invoking mips-tfile, instead of using -g0. If -save-temps, preserve ! 10155: the original .o file before mips-tfile is called. Pass the correct ! 10156: name for the assembler file. ! 10157: (MASK_MIPS_TFILE): New mask for -mmips-tfile, -mno-mips-tfile, set ! 10158: to 0, since that switch is handled entirely in ASM_FINAL_SPEC. ! 10159: (TARGET_FLAGS): Add -mmips-tfile, -mno-mips-tfile switches. ! 10160: (MUST_SAVE_REGISTER): Allow $30 to be saved, even if not being used ! 10161: as the frame pointer. ! 10162: ! 10163: * tm-decrose.h (ASM_FINAL_SPEC): Use -mno-mips-tfile to suppress ! 10164: invoking mips-tfile, instead of using -g0. If -save-temps, preserve ! 10165: the original .o file before mips-tfile is called. Pass the correct ! 10166: name for the assembler file. ! 10167: ! 10168: Wed Sep 18 18:54:15 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10169: ! 10170: * cplus-*.c: Use DECL_CLASS_CONTEXT to figure out where a (static or ! 10171: non-static) member function is declared, rather than trying to ! 10172: divine the info from TYPE_METHOD_BASETYPE of the function's type. ! 10173: ! 10174: Wed Sep 18 15:38:52 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10175: ! 10176: * c-decl.c (grokdeclarator): Error if nested function is extern. ! 10177: ! 10178: Wed Sep 18 02:41:08 1991 Per Bothner (bothner at cygnus.com) ! 10179: ! 10180: * cplus-typeck.c (convert_arguments): Don't crash if the ! 10181: formal parameter type is unknown (type==NULL) and the ! 10182: actual is a function. Do the default instead. ! 10183: ! 10184: Tue Sep 17 22:33:30 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10185: ! 10186: * c-typeck.c (check_format): ! 10187: No warning if types match except for signedness. ! 10188: ! 10189: Tue Sep 17 10:56:46 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10190: ! 10191: * cplus-decl.c (pushtag): When creating a TYPE_DECL that's in class ! 10192: scope, allocate the space needed for DECL_CLASS_CONTEXT. ! 10193: ! 10194: * cplus-search.c (get_abstract_virtuals): If the BASE is not on the ! 10195: main spine, look at the virtuals that come from the most derived ! 10196: class that has BASE on its main spine. ! 10197: * cplus-tree.h (VF_*): New macros for dealing with VFIELDS. ! 10198: ! 10199: Mon Aug 16 12:09:32 1991 (Eric Youngdale at [email protected]) ! 10200: ! 10201: * make.com: Fix typo. ! 10202: ! 10203: Tue Sep 17 15:13:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10204: ! 10205: * c-common.c (shorten_compare): Always compute args with side effects. ! 10206: ! 10207: * varasm.c (decode_addr_const): Use SYMBOL_REF unchanged in 1st switch. ! 10208: ! 10209: * varasm.c (output_addressed_constants): Handle a CONSTRUCTOR in ! 10210: an ADDR_EXPR correctly. ! 10211: ! 10212: * cccp.c (rescan): For unterm string, mention lineno of first newline. ! 10213: ! 10214: * fold-const.c (fold): Call optimize_bit_field_compare in constant case ! 10215: even if not optimizing. ! 10216: ! 10217: * c-decl.c (finish_function): Don't clear DECL_INITIAL if nested. ! 10218: (pop_c_function_context): Do it here instead. ! 10219: ! 10220: Tue Sep 17 11:30:32 1991 Michael Meissner (meissner at osf.org) ! 10221: ! 10222: * collect-osf.c (scan_prog_file): Recognize alternate forms for the ! 10223: constructor and destructor names. ! 10224: ! 10225: * osf-main.c (_entry): Provide an alternative function (_entry) to ! 10226: start up the static constructors/destructors. ! 10227: ! 10228: Mon Sep 16 05:35:21 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10229: ! 10230: * combine.c (simplify_shift_const): Correct errors involving modes ! 10231: to use for shift. ! 10232: ! 10233: Sun Sep 15 19:13:58 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10234: ! 10235: * reload1.c (reload_as_needed): Remove code that deletes insns that ! 10236: create equivalences. ! 10237: (reload): Put it here so it is executed even if reload_as_needed ! 10238: isn't called. ! 10239: ! 10240: Sun Sep 15 17:13:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10241: ! 10242: * Makefile.in (GNULIB2_CFLAGS): Include GCC_CFLAGS. ! 10243: (ENQUIRE_CFLAGS): Likewise (in place of plain CFLAGS). ! 10244: ! 10245: * genattrtab.c (main): Don't index by id->insn_code if negative. ! 10246: ! 10247: * genrecog.c (write_tree_1): Avoid pos[depth-1] if depth is 0. ! 10248: ! 10249: Sun Sep 15 15:19:16 1991 (Eric Youngdale at [email protected]) ! 10250: ! 10251: * make.com: Modify to allow direct submission to a batch queue. ! 10252: Also, add instructions to build GNU C++ as well as GNU CC. ! 10253: ! 10254: * cccp.c (hack_vms_include_specification): If [000000] is present in ! 10255: (implying a physical device or a rooted logical) try to open it. ! 10256: If the open fails, then remove the [000000] (making the name suitable ! 10257: for use with a non-rooted logical name) and return that. ! 10258: ! 10259: Sun Sep 15 15:12:41 1991 Michael Meissner (meissner at osf.org) ! 10260: ! 10261: * make-mips (Makefile): Remove rule building Makefile, since ! 10262: Makefile.in now has one. ! 10263: ! 10264: * make-decrose (Makefile): Remove rule building Makefile, since ! 10265: Makefile.in now has one. ! 10266: ! 10267: Sun Sep 15 14:12:47 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10268: ! 10269: * Makeflags (SYSCALLS.c.X): Use CPPFLAGS and INCLUDES. ! 10270: ! 10271: Sun Sep 15 12:03:35 1991 Michael Tiemann (tiemann at cygnus.com) ! 10272: ! 10273: * cplus-decl.c (poplevel): Match change made to c-decl.c on Oct 3, ! 10274: 1989. ! 10275: ! 10276: Sun Sep 15 06:52:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10277: ! 10278: * caller-save.c (save_call_clobbered_regs): Deaden registers mentioned ! 10279: in REG_UNUSED notes. ! 10280: (clear_reg_live): Verify that note refers to a REG. ! 10281: (choose_hard_reg_mode): Rewrite to not use specific modes and to ! 10282: handle the case where separate CCmode registers exist. ! 10283: ! 10284: Sat Sep 14 13:03:29 1991 Michael Tiemann (tiemann at cygnus.com) ! 10285: ! 10286: * all cplus-* files: Change {ASSOC,assoc} to {BINFO,binfo} where ! 10287: appropriate. ! 10288: cplus-tree.h, tree.h: Change name of CLASSTYPE_ASSOC to TYPE_BINFO. ! 10289: Change names of CLASS_ASSOC_* to TYPE_BINFO_*. ! 10290: all cplus-* files: FUNCTION_DECLs that are class methods now have ! 10291: their DECL_VCONTEXT stored in the DECL_CONTEXT. ! 10292: (lang_decl): The VCONTEXT field is now gone. ! 10293: (lang_decl): _DECL nodes in class scope now record the class as a ! 10294: context in the DECL_CLASS_CONTEXT field. ! 10295: tree.h (TYPE_BINFO): Renamed TYPE_BASETYPES to this. ! 10296: dbxout.c (dbxout_type): User of TYPE_BASETYPES changed. ! 10297: (BINFO_{VALUE,OFFSET,VTABLE,VIRTUALS,BASETYPE{S}}): New macros ! 10298: inherited from GNU C++. ! 10299: (DECL_{VINDEX,FCONTEXT}): Ditto. ! 10300: (TREE_VIA_{PUBLIC,VIRTUAL}): Ditto. ! 10301: ! 10302: Sat Sep 14 09:14:26 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10303: ! 10304: * rtlanal.c (reg_set_p): Remove abort for MEM; reg_overlap_mentioned_p ! 10305: now handles that case correctly. ! 10306: REG is set if it is really a MEM and this is a CALL_INSN. ! 10307: ! 10308: Sat Sep 14 01:34:39 1991 Richard Stallman ([email protected]) ! 10309: ! 10310: * configure (vax-ultrix*): New alternative. ! 10311: ! 10312: * reload1.c (choose_reload_regs): Always ignore cancelled reloads. ! 10313: ! 10314: * real.h (atof): Alternate declaration on MIPS. ! 10315: ! 10316: Thu Sep 12 18:55:06 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) ! 10317: ! 10318: * optabs.c (expand_binop): Fix carry propagation code for multiple ! 10319: words. ! 10320: ! 10321: * tm-*.h: Fix systematic typo in comment. ! 10322: ! 10323: Thu Sep 12 18:23:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10324: ! 10325: * gvarargs.h, va-mips.h, va-sparc.h (_va___list): Was __va_list. ! 10326: ! 10327: Thu Sep 12 12:53:36 1991 Roland H. Pesch (pesch at cygint.cygnus.com) ! 10328: ! 10329: * cpp.texinfo: (titlepage) use @title/@subtitle/@author ! 10330: (copyright page) add note re future C manual; add 1991 to copyrights ! 10331: (general) prepare for easy @smallbook formatting; clarification on ! 10332: strings; less passive; add AMD29K predefined macros; update -d refs, ! 10333: add -dM; add examples; add -pedantic-errors; add -MD, -MMD, -H; fix ! 10334: minor typos. ! 10335: ! 10336: Thu Sep 12 07:58:11 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) ! 10337: ! 10338: * m68k.md (umulsidi3, mulsidi3): New DEFINE_EXPANDs and DEFINE_INSN ! 10339: recognizers. ! 10340: ! 10341: Wed Sep 11 22:11:17 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10342: ! 10343: * a29k.md, romp.md: Update calling sequence to emit_no_conflict_block. ! 10344: ! 10345: Wed Sep 11 21:06:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10346: ! 10347: * fold-const.c (const_binop): Fix last change for ceil and round. ! 10348: ! 10349: * gvarargs.h, va-mips.h, va-sparc.h (va_list): Now a macro again. ! 10350: (__va_list): This is the typedef. ! 10351: ! 10352: Wed Sep 11 16:52:20 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 10353: ! 10354: * c-typeck.c (build_binary_op_nodefault, RSHIFT_EXPR): Change ! 10355: "shift count" warnings changed to errors back to warnings. ! 10356: ! 10357: * cse.c (canon_hash): Also do not record global_regs if ! 10358: SMALL_REGISTER_CLASSES. Makes the code match the comment. ! 10359: ! 10360: * cexp.y (yylex): Add sprintf call to create error message, ! 10361: because yyerror does not call *printf itself. ! 10362: ! 10363: * gcc.c (default_compilers): Support new option -traditional-cpp, ! 10364: which passes traditional to cpp, but not to cc1. ! 10365: * gcc.texinfo: Document it. ! 10366: ! 10367: * sched.c (INSN_LUID): New variable. Give instructions logical ! 10368: numbers, which can be used when sorting, to make the scheduling ! 10369: algorithm more stable. ! 10370: (sched_analyze): Initialize it. ! 10371: (rank_for_schedule): Sort on it. ! 10372: (schedule_insns): Alloca(te) it and (b)zero it. ! 10373: (priority): New priority algorithm. Don't include latency of ! 10374: current insn, and subtract one from total priority calculated. ! 10375: Makes the scheduling algorithm more stable, and doesn't hurt ! 10376: performance. ! 10377: ! 10378: * sched.c (swap_sort): Must pass &insn to rank_for_schedule, not a ! 10379: pointer into the array being sorted. ! 10380: ! 10381: * cplus-lex.c (do_identifier): Put function return type on ! 10382: preceeding line. ! 10383: ! 10384: Wed Sep 11 05:51:00 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10385: ! 10386: * cplus-typeck.c (build_binary_op_nodefault): If OP0 or OP1 is a ! 10387: zero pointer, canonicalize it to NULL_POINTER_NODE. ! 10388: ! 10389: * expr.c (preexpand_calls): Don't preexpand calls inside a ! 10390: WITH_CLEANUP_EXPR. The gestalt of a WITH_CLEANUP_EXPRs must be ! 10391: understood at the top level. ! 10392: ! 10393: * cplus-tree.c (build_cplus_new): When building cleanup, make ! 10394: the call to the cleanup nonvirtual. ! 10395: ! 10396: Tue Sep 10 20:28:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10397: ! 10398: * fold-const.c (const_binop): Shortcut for dividing single-word ! 10399: sizes ! 10400: ! 10401: * Makefile.in (varasm.o): Depend on insn-codes.h. ! 10402: ! 10403: Tue Sep 10 19:29:26 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10404: ! 10405: * optabs.c (expand_binop): Try to open-code muldi3 if we have mulsi3 ! 10406: and mulsidi3. Idea due to [email protected]. ! 10407: ! 10408: * cse.c (fold_rtx, case MEM): Don't call find_best_addr when insn == 0. ! 10409: Pass 0 to recursive call that tries to fold the address. ! 10410: ! 10411: Tue Sep 10 18:16:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10412: ! 10413: * m68k.md (fix_trunc*): Call CC_STATUS_INIT, since these patterns ! 10414: do not leave the condition codes in the expected state. ! 10415: ! 10416: * tm-ultrix.h (CPP_PREDEFINES): Add __vax. ! 10417: ! 10418: Tue Sep 10 04:12:53 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10419: ! 10420: * cplus-decl.c (finish_decl): Fix bug where the conversion from ! 10421: WITH_CLEANUP_EXPR -> init/cleanup pair was not setting bits of ! 10422: CURRENT_BINDING_LEVEL. ! 10423: (init_decl_processing): Set FLAGS_THIS_IS_VARIABLE before calling ! 10424: `init_exception_processing'. ! 10425: ! 10426: Mon Sep 9 22:09:27 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10427: ! 10428: * cplus-tree.h (prev_class_type): Delete this bogus definition. ! 10429: ! 10430: * cplus-class.c (instantiate_type): Don't complain about no static ! 10431: member functions being found until we have been through all the ! 10432: baselinks. ! 10433: ! 10434: * cplus-dbxout.c (dbxout_type_methods): Don't write symbol ! 10435: information about methods that were generated by the compiler. ! 10436: (??? Is this really the right thing to do?) ! 10437: ! 10438: * cplus-decl2.c (lang_decode_option): Turn on warn_uninitialized if ! 10439: -Wall is the argument. ! 10440: ! 10441: Mon Sep 9 19:05:01 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 10442: ! 10443: * gcc.c (default_compilers): For .S files, pass -traditional not ! 10444: -ftraditional to cpp. ! 10445: ! 10446: Mon Sep 9 15:01:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10447: ! 10448: * fold-const.c (optimize_bit_field_compare): Distinguish NE from EQ. ! 10449: ! 10450: * explow.c (allocate_dynamic_stack_space): ! 10451: Handle SETJMP_VIA_SAVE_AREA by allocating extra space. ! 10452: ! 10453: * cplus-parse.y (empty_parms): Change inline to __inline. ! 10454: ! 10455: Mon Sep 9 15:16:24 1991 Torbjorn Granlund (tege at zevs) ! 10456: ! 10457: * longlong.h (m68000 umul_ppmm): Clobber one register less by ! 10458: slightly rearranging the code. ! 10459: ! 10460: Sun Sep 8 16:47:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10461: ! 10462: * cccp.c (main, fatal): Delete the deps output file if error. ! 10463: (deps_file): New variable. ! 10464: ! 10465: * expr.c (convert_move): Update call to emit_no_conflict_block. ! 10466: ! 10467: * expmed.c (CEIL): New macro. ! 10468: ! 10469: * optabs.c (expand_binop): Don't do add by words for more than 2 words. ! 10470: ! 10471: * c-typeck.c (build_modify_expr): Test TREE_READONLY of lhs. ! 10472: ! 10473: Sun Sep 8 01:17:47 1991 Torbjorn Granlund (tege at zevs) ! 10474: ! 10475: * sparc.md (sgtu, sleu): Test for SUBREG as well as REG. ! 10476: ! 10477: Sun Sep 8 07:04:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10478: ! 10479: * optabs.c (emit_no_conflict_block, emit_libcall_block): Rework to ! 10480: accept a list of insns rather than a SEQUENCE. ! 10481: (expand_binop, expand_unop, expand_float, expand_fix): Change calls to ! 10482: above functions. ! 10483: * emit-rtl.c (add_insn): No longer static. ! 10484: * calls.c (expand_call): Change call to emit_libcall_block. ! 10485: ! 10486: * cse.c (fold_rtx): Fix typo with parens in associative operation case. ! 10487: ! 10488: Sat Sep 7 21:49:46 1991 Jim Wilson (wilson at cygint.cygnus.com) ! 10489: ! 10490: * expmed.c (store_bit_field): In the code handling bitfields ! 10491: larger than the word size: set fieldmode to size large enough ! 10492: to hold bitfield; new variable orig_bitsize; don't let ! 10493: bit_offset calculation for WORDS_BIG_ENDIAN hosts go negative. ! 10494: (extract_bit_field): Likewise. ! 10495: (store_split_bit_field): For second word, strip of SUBREG if any ! 10496: before calling operand_subword. Offset for second word if in ! 10497: memory is the next UNITS_PER_WORD aligned address. ! 10498: (extract_split_bit_field): Likewise. ! 10499: ! 10500: * expr.c (emit_move_insn): When emitting multiple move insns in ! 10501: the loop, remember last insn emitted so that it can be returned. ! 10502: ! 10503: * tree.c (enum tree_node_kind): Add new entry vec_kind to ! 10504: represent TREE_VECs. ! 10505: (tree_node_kind_names): Add name "vecs" for it. ! 10506: (make_node): Handle TREE_VECs in the 'x' case. ! 10507: (make_tree_vec): Use vec_kind instead of x_kind. ! 10508: ! 10509: Sat Sep 7 16:25:50 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10510: ! 10511: * cplus-call.c (ideal_candidate): Prefer non-const member functions ! 10512: to const member functions when there is a choice. ! 10513: * cplus-tree.c (propagate_assoc_offsets): Moved here from ! 10514: cplus-class.c ! 10515: (copy_nonvirtual_children): Deleted. ! 10516: ! 10517: * cplus-class.c, cplus-tree.c (layout_{v}basetypes, ! 10518: propagate_assoc_offsets, finish_base_struct): New offset ! 10519: computation/hierarchy implementation. Now the lattice contains ! 10520: vbasetypes with zero-based offsets (and children from these types ! 10521: assume they are zero-based). The CLASSTYPE_VBASETYPE list contains ! 10522: vbasetypes with hierarchy-dependent offsets (and children from these ! 10523: types have hierarchy-dependent offsets). Note that now, virtual ! 10524: baseclasses are fully shared in the hierarchy. The still are not ! 10525: shared at all in the CLASSTYPE_VBASETYPE list. ! 10526: * cplus-decl.c (xref_tag): Share vbasetypes in the lattice. ! 10527: * cplus-tree.h (lang_type): Add CLASSTYPE_VASSOC field so we can ! 10528: share virtual basetypes in inheritance lattices. ! 10529: ! 10530: Sat Sep 7 13:07:12 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10531: ! 10532: * c-parse.y (cast_expr): Supply OFWHAT arg to digest_init. ! 10533: * c-typeck.c (error_init, pedwarn_init): New functions. ! 10534: (digest_init, process_init_constructor): Use them. ! 10535: ! 10536: * out-m68k.c (output_function_prologue): Add a negative constant ! 10537: to sp rather than adding a positive one, since this is faster. ! 10538: ! 10539: * out-m68k.c (output_function_prologue, output_function_epilogue): ! 10540: Use word sized immediates when possible. ! 10541: ! 10542: * Makefile.in (install-dir): Don't die if can't create mandir. ! 10543: (install-man): Don't put . in front of manext. ! 10544: (manext): Add . to the value. ! 10545: (mandir): Don't use manext. ! 10546: ! 10547: * genextract.c (main): Don't use __builtin_memcpy in GCC 1. ! 10548: ! 10549: Fri Sep 6 19:29:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10550: ! 10551: * caller-save.c (emit_mult_save, emit_mult_restore): Copy constant to ! 10552: TEMPREG and add integer, instead of the opposite order, which might ! 10553: not work on some machines. ! 10554: ! 10555: * fold-const.c (fold): Ensure we always return an object of the ! 10556: desired type. ! 10557: ! 10558: * reload1.c (reload, reload_as_needed): reload_in_progress must be ! 10559: set during caller-save processing. ! 10560: ! 10561: Fri Sep 6 18:36:55 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 10562: ! 10563: * out-sparc.c (leaf_reg_{remap,backmap}): Define mapping for ! 10564: %o7/%i7, since user-defined registers might reference these. ! 10565: (legitimize_pic_address): Set CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE ! 10566: if ORIG is a LABEL_REF. For CONST_INT case, don't call force_reg ! 10567: during reload, use REG if available otherwise abort. ! 10568: ! 10569: Fri Sep 6 17:16:05 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10570: ! 10571: * configure: Default $cpu_type properly. ! 10572: ! 10573: Fri Sep 6 05:50:58 1991 Ken Raeburn (raeburn at watch.com) ! 10574: ! 10575: * genextract.c: Generate one large function with a switch, instead ! 10576: of a table of small functions to call. Use __builtin_memcpy under ! 10577: GNU C. ! 10578: ! 10579: * genoutput.c: For "@" constructs, now generates a lookup table per ! 10580: insn, instead of a switch. ! 10581: ! 10582: Fri Sep 6 15:40:54 1991 Tom Wood (wood at dg-rtp.dg.com) ! 10583: ! 10584: * cccp.c (skip_if_group): Deal with invalid directives the same ! 10585: way handle_directive does. ! 10586: ! 10587: Fri Sep 6 16:37:04 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 10588: ! 10589: * tm-sparc.h (RTX_COSTS): Define costs for MULT and various divides. ! 10590: ! 10591: * loop.c (move_movables): Call `gen_lowpart_common' instead of ! 10592: building SUBREG manually. ! 10593: ! 10594: * local-alloc.c (block_alloc): When convert scratch to a reg, must ! 10595: set regs_ever_live for all hard registers used by the new reg, not ! 10596: just the first. ! 10597: ! 10598: Fri Sep 6 07:15:44 1991 Torbjorn Granlund (tege at mole.gnu.ai.mit.edu) ! 10599: ! 10600: * gnulib2.c (__negdi2): Change it to work like __subdi3. ! 10601: * gnulib2.c (_udivmoddi4): Make faster special case for CPUs with ! 10602: a udiv_qrnnd that can handle unnormalized (i.e. with less than ! 10603: LONG_TYPE_SIZE significant bit) divisors. ! 10604: ! 10605: * gnulib2.c (__muldi3): Cast operands to unsigned. ! 10606: ! 10607: * gnulib2.c (__Xcmpdi): Use `long' for all variables for ! 10608: consistency. ! 10609: ! 10610: * gnulib2.c (__udivmoddi4): New function with code from __udivdi3, ! 10611: extended to give remaider. ! 10612: * gnulib2.c (__divdi3, __moddi3, __udivdi3, __umoddi3): Use ! 10613: __udivmoddi4. ! 10614: * gnulib2.c: (__moddi3): Result sign is only dependent on U, not V. ! 10615: ! 10616: Fri Sep 6 05:44:07 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10617: ! 10618: * cse.c (cse_insn): Accept new arg IN_LIBCALL_BLOCK. ! 10619: If in libcall block, don't record destinations in hash table. ! 10620: Remove explicit use of SFmode and DFmode when checking -ffloat-store. ! 10621: (cse_basic_block): Pass new arg to cse_insn to indicate when we ! 10622: are processing an insn surrounded with REG_LIBCALL/REG_RETVAL notes. ! 10623: ! 10624: * optabs.c (emit_libcall_block): New function. ! 10625: (expand_binop, expand_unop): Remove kludge of referencing library ! 10626: function SYMBOL_REF before libcall block. ! 10627: Use emit_libcall_block. ! 10628: (expand_float, expand_fix): Rework library calls to use ! 10629: emit_libcall_block. ! 10630: * calls.c (struct arg_data): Add new field, initial_value. ! 10631: (expand_call): Don't make libcall block for calls that return ! 10632: aggregates. ! 10633: Remove kludge of referencing function SYMBOL_REF outside of block. ! 10634: For constant calls, save RTL for arg in args[i].initial_value and ! 10635: start a sequence. ! 10636: When making REG_EQUAL note, use INITIAL_VALUE instead of VALUE. ! 10637: Use emit_libcall_block for constant calls. ! 10638: * expr.h (emit_libcall_block): Define it. ! 10639: ! 10640: Fri Sep 6 15:58:52 1991 Torbjorn Granlund (tege at zevs) ! 10641: ! 10642: * longlong.h (68020, i386): Don't define machine-dependent ! 10643: __umulsidi3 (so the default definition is used). ! 10644: * longlong.h (all machines): Cast all operands, sources and ! 10645: destinations, to `unsigned long int'. ! 10646: * longlong.h: Add gmicro support. ! 10647: ! 10648: Fri Sep 6 01:42:09 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10649: ! 10650: * jump.c (jump_optimize): Delete duplicate line number notes. ! 10651: ! 10652: Thu Sep 5 19:23:24 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10653: ! 10654: * configure (romp): Fix typo in name of xm_file. ! 10655: ! 10656: * rtlanal.c (dead_or_set_p): If INSN has a CLOBBER for X, X is ! 10657: dead. ! 10658: ! 10659: * gnulib1.c (cmpdf2, cmpsf2): Delete unused functions. ! 10660: * gnulib2.c (anddi3, iordi3, xordi3, one_cmpldi2, adddi3, subdi3): ! 10661: Likewise. ! 10662: * optabs.c (emit_cmp_insn): Clean up code now that integer and ! 10663: float comparisons are done differently. ! 10664: (init_optabs): Remove references to unused functions listed above. ! 10665: * Makefile.in (LIB1FUNCS, LIB2FUNCS): Likewise. ! 10666: ! 10667: Thu Sep 5 18:32:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10668: ! 10669: * m68k.md (zero_extend*): Don't allow memory-memory due to aliasing. ! 10670: ! 10671: * expr.c (do_jump): Don't lose if only 1 insn precedes new jump. ! 10672: ! 10673: * sparc.md (ashldi3): Fix dumb bug detecting constant 1. ! 10674: ! 10675: * out-sparc.c (output_move_double): Use split_double for constant. ! 10676: Properly decrement addreg1. ! 10677: ! 10678: Thu Sep 5 15:20:25 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 10679: ! 10680: * out-sparc.c: Include expr.h and delete extern declarations. ! 10681: ! 10682: * rtlanal.c (rtx_equal_p): Correct typo in comment or spacing. ! 10683: * reload1.c (reload): Likewise. ! 10684: * protoize.c: Likewise. ! 10685: * longlong.h: Likewise. ! 10686: * local-alloc.c (block_alloc): Likewise. ! 10687: * jump.c: Likewise. ! 10688: ! 10689: * unroll.c (iteration_info): Don't calculate loop iterations based ! 10690: on a giv iterator, since the current code often gives the wrong ! 10691: result. This case is rare, so it does not seem worth handling at all. ! 10692: ! 10693: * sched.c (schedule_insns): When the only sched pass is after ! 10694: reload, must clear unused_insn_list and unused_expr_list then, ! 10695: instead of during the nonexistant pass before reload. ! 10696: ! 10697: * sched.c (schedule_block): When calculating estimated IPC, avoid ! 10698: divide by zero. ! 10699: ! 10700: * sparc.md: Correct two define_splits for seq/sne patterns of the ! 10701: form `x + (i == 0)', and add a missing `addx' pattern used by ! 10702: these define_splits. ! 10703: ! 10704: * toplev.c (fatal_insn_not_found): Correct typo in error message. ! 10705: (main): Include "gsdb" and "gdbx" in warning message when -g is not ! 10706: supported. ! 10707: ! 10708: * expr.h (enum expand_modifier): Delete last vestige of ! 10709: EXPAND_INTO_STACK. ! 10710: ! 10711: Thu Sep 5 13:50:21 1991 John Gilmore (gnu at cygint.cygnus.com) ! 10712: ! 10713: * c-typeck.c (digest_init, process_init_constructor): Include the ! 10714: variable name, member name, and/or array indices in error messages. ! 10715: This makes it tolerable to debug large data structure initializers. ! 10716: Reword some messages to work with the name and/or function call ! 10717: argument included. New arg OFWHAT. All callers changed except ! 10718: one digest_init call in each of c-parse.y and objc-parse.y. ! 10719: (warn_for_assignment): Reduce to a single message argument, ! 10720: automatically handling formatting for function call arguments. ! 10721: All callers changed. ! 10722: (convert_for_assignment): If ERRTYPE is a null string, this is ! 10723: parameter passing for a function, so output different error messages. ! 10724: (convert_arguments): Pass null string to convert_for_assignment to ! 10725: indicate parameter passing. ! 10726: ! 10727: Thu Sep 5 13:44:19 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 10728: ! 10729: * sched.c: Correct typos in comments. ! 10730: (sched_note_set): Don't try to calculate live info for global ! 10731: register variables. ! 10732: (attach_deaths): Don't add REG_DEAD notes for global register ! 10733: variables. ! 10734: ! 10735: * tm-sparc.h (SELECT_SECTION): Can't put a variable in text section ! 10736: if flag_pic and RELOC are both true, same test that varasm.c does. ! 10737: ! 10738: Thu Sep 5 13:15:43 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10739: ! 10740: * rtlanal.c (reg_referenced_p): Handle USE and CALL. ! 10741: Use switch instead of if-then-else. ! 10742: ! 10743: Thu Sep 5 08:03:58 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10744: ! 10745: * cplus-class.c (propagate_assoc_offsets): Don't fail to ! 10746: propagate the offset to the rightmost basetype. ! 10747: ! 10748: * cplus-decl.c (xref_tag): Allocate nodes for basetype info on ! 10749: permanent obstack, not temporary obstack. ! 10750: ! 10751: Wed Sep 4 18:53:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10752: ! 10753: * fixincludes : Change `m68k' to `__m68k__' in all #if's. ! 10754: ! 10755: * Makefile.in (ALLOCA_FLAGS): Add -Demacs. ! 10756: (ALLOCA_FINISH): Put option before input file name. ! 10757: (alloca.o): Supply $(INCLUDES). ! 10758: ! 10759: * Makefile.in (GCC_CFLAGS): New parameter. ! 10760: (protoize, protoize.o, unprotoize, unprotoize.o): Use GCC_CFLAGS. ! 10761: (enquire, enquire.o, collect2, collect2.o, SYSCALLS.c.X): Likewise. ! 10762: ! 10763: Wed Sep 4 18:13:56 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10764: ! 10765: * combine.c (make_extraction): When picking up low-order part, ! 10766: ensure that we don't create a non-aligned object if alignment ! 10767: is required. ! 10768: ! 10769: * expr.c (emit_push_insn): Ensure we only call force_const_mem on a ! 10770: constant. ! 10771: ! 10772: * config.subr: Set `os' to be the last `-' and everything following it. ! 10773: `romp' is the basic machine name for the rtpc. ! 10774: `aos' is IBM's name for BSD. ! 10775: * configure: Default `cpu_type' to the first field before an ! 10776: optional `-'. ! 10777: Add a29k, a29k-ultra, romp, and rs6000. ! 10778: * xm-a29k-ultra.h: New file. ! 10779: ! 10780: Wed Sep 4 15:46:50 1991 Tom Wood (wood at dg-rtp.dg.com) ! 10781: ! 10782: Changes from Ron Guilmette: ! 10783: * dwarfout.c (output_symbol): Move tests for omitting declarations ! 10784: to dwarfout_file_scope_symbol. No need for `local' parameter. ! 10785: Use TREE_PUBLIC and TREE_EXTERNAL to determine whether a variable ! 10786: or function is global. ! 10787: (finalizing, dwarfout_file_scope_delayed_symbol): Delete. ! 10788: ! 10789: * toplev.c (compile_file): Delete use of dwarfout_file_scope_symbol ! 10790: for initialized VAR_DECLs. All global declarations are passed to ! 10791: dwarfout_file_scope_symbol (except function definitions and types). ! 10792: ! 10793: (compile_file, rest_of_decl_compilation): Attribute time in ! 10794: {dbxout,sdbout,dwarfout} functions to symout_time. ! 10795: ! 10796: * varasm.c (assemble_variable): Check and update TREE_ASM_WRITTEN ! 10797: for a global register variable. ! 10798: Delete use of dwarfout_file_scope_symbol for VAR_DECLs. ! 10799: ! 10800: Tue Sep 3 23:34:57 1991 Torbjorn Granlund (tege at zevs) ! 10801: ! 10802: * sparc.md (ashldi3 expander & recognizer): Make shift count have ! 10803: SImode. Used to have DImode. ! 10804: ! 10805: * expmed.c (emit_store_flag): Declare arg UNSIGNEDP. ! 10806: ! 10807: * vax.md (adddi3): Make operands 2 and 3 commutative. ! 10808: ! 10809: * sparc.md (subtract constant then return): Peephole deleted. ! 10810: ! 10811: Tue Sep 3 22:23:52 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10812: ! 10813: * Makefile.in (mostlyclean, clean, realclean): Some files were missing. ! 10814: ! 10815: * gvarargs.h (va_list): Make it typedef, not macro. ! 10816: * va-mips.h, va-pyr.h: Likewise. ! 10817: ! 10818: Tue Sep 3 22:07:04 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10819: ! 10820: * cplus-init.c (build_vec_delete): Fix off-by-one error for arrays ! 10821: of length 1. ! 10822: ! 10823: Tue Sep 3 19:30:45 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10824: ! 10825: * combine.c (try_combine): Don't pass a STRICT_LOW_PART to ! 10826: reg_overlap_mentioned_p. ! 10827: ! 10828: * cse.c (fold_rtx): If INSN is zero, copy X before we change ! 10829: anything inside it. ! 10830: When looking for associative operation, pass zero as missing arg to ! 10831: recursive call. ! 10832: (find_comparison_args): Add zero for missing arg to fold_rtx calls. ! 10833: ! 10834: * reload.c (find_reloads): Correct code that prevents replacing ! 10835: a SET_DEST with a constant so that it correctly looks for an ! 10836: operand being a SET_DEST. ! 10837: ! 10838: Tue Sep 3 19:17:34 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 10839: ! 10840: * out-i386.c (split_di): Call split_double for CONSTANT_P. ! 10841: (fix_op): Delete. ! 10842: (float_op): Don't examine the mode of the FLOAT operand. ! 10843: (output_float_compare): Don't make new %ax RTX: use scratch ! 10844: operand from insn. ! 10845: ! 10846: * i386.md (float mode tstM,cmpM,fixuns_truncMN2,fix_truncMN2): Use ! 10847: match_scratch. ! 10848: (float mode tstM,fixuns_truncMN2,fix_truncMN2): Don't gen temp RTX: ! 10849: use scratch operand. ! 10850: (fix_truncMN2,floatMN2): Split pattern into a separate DFmode and ! 10851: SFmode patterns so that operands[1] has a mode. ! 10852: (sCOND patterns): Don't set cc_status to previous status. ! 10853: (cmpstrsi): Don't explicitly reference reg 2. ! 10854: ! 10855: Tue Sep 3 16:28:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10856: ! 10857: * optabs.c (expand_binop): Fix carry calculation. ! 10858: ! 10859: * varasm.c (decode_addr_const): Given a LABEL_DECL, Make a LABEL_REF. ! 10860: (const_hash): Handle a LABEL_REF. ! 10861: * expr.c (expand_expr): Use FUNCTION_MODE for memref to a LABEL_REF. ! 10862: ! 10863: * configure: Fix typo in last change. ! 10864: ! 10865: * cccp.c (handle_directive): Normally no error for line with `###'. ! 10866: ! 10867: Tue Sep 3 10:53:12 1991 Tom Wood (wood at dg-rtp.dg.com) ! 10868: ! 10869: * out-m88k.c, tm-m88k.h: Delete remnants of the fancy abort. ! 10870: * tm-m88kdgux.h: No longer identify as version DG-*. ! 10871: * m88k files: Update copyright dates. ! 10872: ! 10873: Tue Sep 3 03:18:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10874: ! 10875: * expr.c (expand_expr): Get rid of EXPAND_INTO_STACK. ! 10876: ! 10877: Mon Sep 2 14:07:54 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10878: ! 10879: * gcc.c (do_spec_1): In %X, terminate the arg after each option. ! 10880: ! 10881: * config.subr: If argument contains `local', always accept it. ! 10882: * configure: If machine type contains `local', ! 10883: construct file names from that machine type name. ! 10884: ! 10885: * configure: Make config.status a shellscript to redo the configure. ! 10886: No need now to change / to - when storing $(target) in Makefile. ! 10887: Store $(host_make_var_file) in Makefile also. ! 10888: Set host_make_var_file to ../Makefile.in after creating Makefile ! 10889: if no make-... file actually exists for this host. ! 10890: * Makefile.in (host_make_var_file): Dummy definition to be filled in. ! 10891: (Makefile): New rule to rerun `configure' ! 10892: ! 10893: * tm-sysv4.h (ASM_DECLARE_FUNCTION_SIZE): New macro. ! 10894: ! 10895: * tm-mips.h, tm-m88k.h (abort): Macro definition deleted. It is ! 10896: not right for any machines description to specify use of fancy_abort. ! 10897: ! 10898: * protoize.c [v.4]: Include fcntl.h. ! 10899: (execvp): Correct type for second arg. ! 10900: (compile_params): Remove `const'; that loses when calling execvp. ! 10901: ! 10902: * cccp.c (directive_table): Typo in entry for do_ident. ! 10903: ! 10904: * xm-m68k.h (alloca): Define macro with arg. ! 10905: ! 10906: * emit-rtl.c (reorder_insns_with_line_notes): New function. ! 10907: (find_line_note, emit_line_note_after): New functions. ! 10908: ! 10909: * jump.c (jump_optimize): When moving else clause before test, ! 10910: only move the insn as far as needed, and use new function ! 10911: reorder_insns_with_line_notes. ! 10912: ! 10913: Mon Sep 2 03:30:35 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 10914: ! 10915: * Makefile.in (collect2): Compile with gcc. ! 10916: ! 10917: Sun Sep 1 9:03:46 1991 (Eric Youngdale at [email protected]) ! 10918: ! 10919: Define two macros to eliminate the need for a seperate collect pass. ! 10920: ! 10921: * tm-vms.h (ASSEMBLE_OUTPUT_CONSTRUCTOR): Define. ! 10922: (ASSEMBLE_OUTPUT_DESTRUCTOR): Define. ! 10923: ! 10924: Sun Sep 1 08:14:22 1991 Michael Meissner (meissner at osf.org) ! 10925: ! 10926: * collect-osf.c (main): Print version number if -v. Also ignore all ! 10927: arguments beginning with -c rather than just '-c'. ! 10928: ! 10929: * make-decrose (collect): Add version.o to link. ! 10930: ! 10931: Sat Aug 31 17:03:23 1991 Michael Meissner (meissner at osf.org) ! 10932: ! 10933: * cplus-input.c (inline macro definition): If inline is already ! 10934: defined, don't redefine it. ! 10935: ! 10936: * collect-osf.c (main): Look for gld and gas instead of ld and as, ! 10937: so collect-osf can be installed as ld. Use a default path of ! 10938: /usr/ccs/gcc to find the linker and assember. Ignore the -c switch, ! 10939: which GCC uses to say that collect is needed. ! 10940: ! 10941: * osf-main.c (__finis): Don't call descructors already called if one ! 10942: of the destructors calls exit (which in turn calls __finis). ! 10943: ! 10944: * tm-mips.h (DBX_REGISTER_NUMBER): Use mips_dbx_regno to map ! 10945: register number to debug register number. ! 10946: (GP_DBX_FIRST, FP_DBX_FIRST): New macros, giving the first debug ! 10947: register numbers for gp registers and fp registers. ! 10948: ! 10949: * out-mips.c (mips_dbx_regno): New global array to map GCC register ! 10950: number to debug register number, to fix problem with OSF/1 stabs ! 10951: using 38 for the first fp registers, rather than 32. ! 10952: (override_options): Set up OSF/1 SIGINFO signal handler to notmake ! 10953: the interruptable system calls read, write, and wait not return ! 10954: error condition. Also initialize mips_dbx_regno. ! 10955: ! 10956: * make-decrose (CFLAGS): Add $(MSTATS) variable to set -mstats. ! 10957: (CFLAGS_NODEBUG): Like CFLAGS, except no debugging or inlining. ! 10958: (DEB_OPT): Define in terms of DEBUG, OPT, and PROFILE. ! 10959: (cplus-lex rule): Build cplus-lex with no debug or inlinings. ! 10960: ! 10961: Sat Aug 31 12:52:17 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 10962: ! 10963: * cccp.c (handle_directive): Be more fussy detecting `# LINE' case. ! 10964: ! 10965: * cccp.c (directive_table): Pass through and ignore #ident. ! 10966: (do_ident): New function. ! 10967: (skip_if_group): Error if unrecognized directive seen. ! 10968: ! 10969: * jump.c (jump_optimize): In converting x=a; if (...) x=b; to ! 10970: store flag, insert all the new code in just one line. ! 10971: ! 10972: * gcc.c (do_spec_1): Use xmalloc to make linker_options the first time. ! 10973: ! 10974: * expr.c (expand_expr): Make EXPAND_SUM and EXPAND_INITIALIZER ! 10975: imply EXPAND_CONST_ADDRESS in all cases. ! 10976: ! 10977: * c-decl.c (c_decode_option): -Wall sets warn_uninitialized. ! 10978: * flags.h (warn_uninitialized): Declared. ! 10979: * toplev.c (warn_uninitialized): No longer static. ! 10980: ! 10981: * cccp.c (main): Make no assumptions about include_defaults ! 10982: in calculation of max_include_len. Add fudge space if VMS. ! 10983: ! 10984: * reload.c (find_reloads_toplev): New arg IS_SET_DEST. ! 10985: Don't replace reg with constant in destination of a SET. ! 10986: (find_reloads): Pass that arg. Also don't replace here. ! 10987: ! 10988: * cplus-xref.c: Finish installing changes from Youngdale. ! 10989: ! 10990: Sat Aug 31 09:02:25 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 10991: ! 10992: * cplus-decl2.c (finish_file): Call varasm routines to assemble ctor ! 10993: and dtor lists. ! 10994: ! 10995: * cplus-dbxout.c (dbxout_type_methods): Fix error in printing symbol ! 10996: info for classes that only define a destructor. ! 10997: ! 10998: Sat Aug 31 08:32:12 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 10999: ! 11000: * cse.c (cse_end_of_basic_block): Correctly handle the case of a basic ! 11001: block where a conditional branch out of the block becomes unconditional ! 11002: and a conditional branch to the end of the block becomes a noop. ! 11003: ! 11004: * combine.c (try_combine): In case where we have a PARALLEL ! 11005: involving a load and sign extend, use reg_overlap_mentioned_p ! 11006: instead of reg_mentioned_p. ! 11007: If we have a PARALLEL of two independent SETs, try to split them ! 11008: up into separate insns. ! 11009: ! 11010: * combine.c (move_deaths): Instead of placing the REG_DEAD notes ! 11011: on TO_INSN, add them to a list whose address is given as an ! 11012: operand. ! 11013: (distribute_notes): Allow for the case when the death of an object ! 11014: is between I2 and I3. ! 11015: Set reg_last_death to corrspond to the location of the REG_DEAD ! 11016: note being placed. ! 11017: (try_combine): Call move_deaths in new way and pass returned list ! 11018: to distribute_notes if it is non-empty. ! 11019: ! 11020: * local-alloc.c (requires_inout_p): Don't have cases for '[Q-U]' unless ! 11021: EXTRA_CONSTRAINT is defined.. ! 11022: ! 11023: * local-alloc (block_alloc): Don't allocate SCRATCH on machines with ! 11024: SMALL_REGISTER_CLASSES defined. ! 11025: ! 11026: * regclass.c (reg_class_record): Add missing case for 'V'. ! 11027: ! 11028: Fri Aug 30 04:42:19 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 11029: ! 11030: * tm-i386.h (OUTPUT_JUMP): Use cc_prev_status. ! 11031: ! 11032: Fri Aug 30 17:08:52 1991 (Eric Youngdale at [email protected]) ! 11033: ! 11034: * xm-vms.h (LOCATE_START_OF_FILE_NAME): Remove. ! 11035: (FILE_NAME_NONDIRECTORY): Fix typo. ! 11036: (XREF_FILE_NAME): Use FILE_NAME_NONDIRECTORY instead of ! 11037: LOCATE_START_OF_FILE_NAME, and omit the leading underscore in the ! 11038: generated file name. ! 11039: (FILE_NAME_ABSOLUTE_P): Define to use hook in cplus-xref.c. ! 11040: (FILE_NAME_JOINER): Define to use hook in cplus-xref.c. ! 11041: ! 11042: * cplus-xref.c: Fix bug in default definition of FILE_NAME_ABSOLUTE_P. ! 11043: (GNU_xref_open): Fix bug - wrong argument to XREF_FILE_NAME. ! 11044: (FILE_NAME_JOINER): New macro. ! 11045: (GNU_xref_file): Use it. ! 11046: ! 11047: Fri Aug 30 17:30:15 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11048: ! 11049: * cplus-xref.c: Reinstall Aug 25 changes discarded by Tiemann. ! 11050: ! 11051: * expr.c (expand_expr): New modifier option EXPAND_INITIALIZER. ! 11052: * varasm.c (output_constant): Use that. ! 11053: * jump.c (forced_labels): New var records labels not to delete. ! 11054: (jump_optimize): Don't delete those labels. ! 11055: * flow.c (find_basic_blocks): Any computed goto goes to those labels. ! 11056: * varasm.c (decode_addr_const): Deal with LABEL_DECL. ! 11057: ! 11058: Fri Aug 30 15:41:03 1991 Michael Meissner (meissner at osf.org) ! 11059: ! 11060: * mips.md (copyleft): Use separate copyright years. ! 11061: (mov*): Use nonimmediate_operand instead of general_operand. ! 11062: ! 11063: * tm-mips.h (copyleft): Use separate copyright years. ! 11064: ! 11065: * xm-mips.h (copyleft): Use separate copyright years. ! 11066: ! 11067: * xm-umips.h (copyleft): Use separate copyright years. ! 11068: ! 11069: Fri Aug 30 08:47:30 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 11070: ! 11071: * cplus-typeck.c (build_x_*): Try first calling `build_opfncall' ! 11072: with FLAGS==0. If that succeeds, check protection. ! 11073: (build_conditional_expr): `fold' does not preserve the type of it's ! 11074: expressions, which is a problem for C++ when trying to keep ints and ! 11075: enums distinct. ! 11076: ! 11077: * cplus-decl.c (lookup_name): When there is a choice between seeing ! 11078: a name as a type and seeing as a decl, call `arbitrate_lookup' to ! 11079: make the decision. ! 11080: * cplus-lex.c (arbitrate_lookup): New function. Uses minute amounts ! 11081: of syntactic context to decide whether to see a name as a type or ! 11082: something else. ! 11083: ! 11084: Fri Aug 30 07:40:49 1991 Tom Wood (wood at dg-rtp.dg.com) ! 11085: ! 11086: * jump.c (delete_jump): When checking REG_DEAD notes, make sure they ! 11087: have a legal value. ! 11088: ! 11089: Fri Aug 30 00:57:05 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 11090: ! 11091: * local-alloc.c (alloc_qty_for_scratch): Treat Q - U as reg class if ! 11092: EXTRA_CONSTRAINT is not defined. ! 11093: * regclass.c (reg_class_record): Likewise. ! 11094: ! 11095: Thu Aug 29 21:39:07 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11096: ! 11097: * c-typeck.c (build_binary_op_nodefault): Fix last change. ! 11098: ! 11099: Thu Aug 29 19:11:05 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 11100: ! 11101: * recog.c (general_operand, const_double_operand): Similar to ! 11102: immediate_operand, don't accept a VOIDmode operand if the ! 11103: caller wants floating. ! 11104: * out-pyr.c (nonindexed_operand): Likewise. ! 11105: ! 11106: Thu Aug 29 09:53:27 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 11107: ! 11108: * cplus-tree.h ({SET,CLEAR}_ASSOC_*): New macros needed because not ! 11109: all C compilers support conditional expressions as lvalues. ! 11110: (lang_type): Change type of MEMOIZED_TABLE_ENTRY and SEARCH_SLOT ! 11111: from `void *' to `char *', to make braindead compilers at less of a ! 11112: disadvantage. ! 11113: ! 11114: Thu Aug 29 08:07:40 1991 Tom Wood (wood at dg-rtp.dg.com) ! 11115: ! 11116: * m88k.md (define_function_unit): Update latencies. ! 11117: ! 11118: * out-m88k.c (output_function_profiler): Correct offsets for ! 11119: register saves. ! 11120: * tm-m88ksvr4.h (FUNCTION_PROFILER): Use the name _mcount and do ! 11121: register saves. ! 11122: ! 11123: * tm-m88k.h (ASM_DWARF_POP_SECTION): Specify "previous". ! 11124: ! 11125: Changes from Ron Guilmette: ! 11126: * dwarfout.c (lookup_filename): Only increment valid_ft_entries ! 11127: once when adding a filename to the table. ! 11128: (output_symbol): Do output DIEs for a global VAR_DECL definition. ! 11129: ! 11130: Thu Aug 29 06:15:32 1991 Michael Tiemann (tiemann at rtl.cygnus.com) ! 11131: ! 11132: * cplus-type2.c (build_functional_cast): If we have a valid value in ! 11133: `expr_as_conversion' return that before returning error_mark_node. ! 11134: ! 11135: * cplus-init.c (expand_recursive_init): Fix typo is testing ! 11136: TYPE_USES_VIRTUAL_BASECLASSES. ! 11137: ! 11138: Wed Aug 28 23:12:35 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11139: ! 11140: * c-typeck.c (build_binary_op_nodefault): For shift and rotate ops, ! 11141: if traditional, use the common type of the operands. ! 11142: ! 11143: Wed Aug 28 07:31:33 1991 Tom Wood (wood at dg-rtp.dg.com) ! 11144: ! 11145: * dwarfout.c, dwarf.h, README.DWARF: Replacement files from Ron ! 11146: Guilmette that bring the dwarf implementation up to that defined by ! 11147: draft 4 of the dwarf specification (dated 7/31/91). ! 11148: ! 11149: Wed Aug 28 06:24:30 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 11150: ! 11151: * all *.md files except a29k.md and romp.md: Don't allow CONST_INT ! 11152: as operand for RTL operations that need a mode to be well-defined, ! 11153: e.g., SIGN_EXTEND, ZERO_EXTEND, TRUNCATE, FLOAT. Similarly, don't ! 11154: allow CONST_INT as first operand of a COMPARE. ! 11155: ! 11156: * machmode.h (MIN, MAX): Undefine these before our definition. ! 11157: ! 11158: Tue Aug 27 21:33:04 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 11159: ! 11160: * version.c: Now 1.95. ! 11161: ! 11162: Tue Aug 27 18:05:25 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11163: ! 11164: * reload1.c (possible_group_p): Use earliest class that needs a group. ! 11165: ! 11166: * gcc.c (do_spec_1): Handle %x and %X. ! 11167: (link_command_spec): Use %X. If given -collect, pass -c. ! 11168: (default_compilers c++): Use %x to pass -c to linker. ! 11169: ! 11170: * cse.c (find_comparison_code): Don't call fold_rtx, ! 11171: because we don't know which insn to pass for its second argument. ! 11172: ! 11173: * cse.c (fold_rtx): Don't fold what we get from lookup_as_function. ! 11174: ! 11175: Tue Aug 27 17:46:59 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 11176: ! 11177: * cse.c (rtx_cost): A USE is free; it is likely being used as a marker. ! 11178: ! 11179: * cse.c (cse_insn): If we decided not to make a reg-reg copy between ! 11180: equivalent regs into a no-op, see if there is an equivalent constant ! 11181: that is cheaper than the register we decided to use. ! 11182: ! 11183: * cse.c (cse_insn): Fix arg in insert_regs call when making a ! 11184: secondary equivalence due to a SUBREG; we are not modifying the ! 11185: register. ! 11186: ! 11187: * cse.c (delete_dead_from_cse): Treat a SET that copies a register ! 11188: to itself as if it were setting a dead register. ! 11189: ! 11190: * cse.c (find_comparison_args): Call fold_rtx on the args that we ! 11191: are about to return. ! 11192: (fold_rtx, case SUBREG): Copy code from equiv_constant that looks up ! 11193: a SUBREG in the hash table. ! 11194: If our our folded operand is equivalent to a constant, use that when ! 11195: seeing if we can get a part of a constant. ! 11196: (fold_rtx): Don't short-circuit recursive call for an operand that ! 11197: is a SUBREG; add comment in REG case that we are doing equiv_constant. ! 11198: When looking for associative operation, call fold_rtx on potential ! 11199: constant as well as equiv_constant. ! 11200: (equiv_constant): Just look up a constant quantity for a register; ! 11201: fold_rtx will do the SUBREG operations. ! 11202: ! 11203: * fold-const.c ({neg,mul,lshift,rshift,lrotate,rrotate}_double): ! 11204: No longer static. ! 11205: * cse.c (simplify_{unary,binary}_operation): Fold some DImode ! 11206: operations. ! 11207: ! 11208: * fold-const.c (fold, case EQ_EXPR, NE_EXPR, ...): Add code to handle ! 11209: cases where we are comparing the result of a comparison. ! 11210: ! 11211: Tue Aug 27 14:35:59 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11212: ! 11213: * flow.c (mark_used_regs): Set regs_ever_live for all hard regs. ! 11214: Warning: this might break FUNCTION_PROLOGUE and FUNCTION_EPILOGUE ! 11215: in some ports. But I've checked all the installed ones. ! 11216: * tm-gmicro.h (FUNCTION_PROLOGUE): ! 11217: Clear bit for fp reg if used as such. ! 11218: * tm-mips.h (MUST_SAVE_REGISTER): Only frame_pointer_needed affects fp. ! 11219: ! 11220: * c-decl.c (store_parm_decls): No error if arglist contains type tag. ! 11221: ! 11222: * optabs.c (expand_fix): Really call emit_cmp_insn right. ! 11223: ! 11224: * floatlib.c: New file. ! 11225: ! 11226: * gnulib2.c (__clz_tab): Moved to _udivdi3. ! 11227: ! 11228: Tue Aug 27 06:44:12 1991 Michael Tiemann (tiemann at rtl.cygnus.com) ! 11229: ! 11230: * cplus-typeck.c (c_expand_return): Don't use the cleanup generated ! 11231: by `build_functional_cast'. ! 11232: ! 11233: * cplus-class.c (resolves_to_fixed_type_p): Handle WITH_CLEANUP_EXPR. ! 11234: ! 11235: Mon Aug 26 20:55:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11236: ! 11237: * c-parse.y (yylex): Cast shorts[n] to long before shifting. ! 11238: * fold-const.c (decode): Likewise. ! 11239: ! 11240: * Makefile.in (INSTALL_DATA): Renamed from INSTALL_FILE. ! 11241: ! 11242: * cse.c (canon_hash): Don't crash if subexpression is 0. ! 11243: ! 11244: * cplus-lex.c (interface_strcmp): Put back variable s1. ! 11245: ! 11246: Mon Aug 26 18:14:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 11247: ! 11248: * function.c (instantiate_virtual_regs_1): Complete previous change; ! 11249: had omitted arg on two returns. ! 11250: ! 11251: Mon Aug 26 15:16:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11252: ! 11253: * optabs.c (expand_float, expand_fix): Pass new arg to emit_cmp_insn. ! 11254: ! 11255: * out-m68k.c (singlemove_string): Fix last change. ! 11256: ! 11257: Mon Aug 26 11:20:51 1991 Tom Wood (wood at dg-rtp.dg.com) ! 11258: ! 11259: * m88k.md (cmpsi insn): Don't provide an insn that compares two ! 11260: constants. ! 11261: ! 11262: Mon Aug 26 08:34:48 1991 Michael Meissner (meissner at osf.org) ! 11263: ! 11264: * collect-osf.c (toplevel, read_file, end_file): Don't use mmap, ! 11265: unless all defines needed are defined. ! 11266: (various): If -debug turn on debugging code. Change all occurances ! 11267: of #ifdef DEBUG sections to if (debug). ! 11268: (main, add_to_list): Correctly cast xcalloc calls. ! 11269: (scan_prog_file): Correct xcalloc to allocate enough space ! 11270: (scan_prog_file): If -debug, don't dump entire symbol table, just ! 11271: dump the constructors and destructors. ! 11272: ! 11273: * make-decrose (CFLAGS): Use DEB_OPT for default debug and optimize ! 11274: options, use SHLIB for default shared library versions. ! 11275: (DEB_OPT): Define to be -g -O2. ! 11276: (SHLIB): Define to be -L${BUILD}/usr/ccs/lib, which forces static ! 11277: libraries with both old and new 1.39 compilers. ! 11278: (COFF_CFLAGS): Define to be -O2 -g0. ! 11279: (collect): Add LIBDEPS dependency. ! 11280: ! 11281: Mon Aug 26 07:22:21 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 11282: ! 11283: * machmode.h (MIN, MAX): Define here. ! 11284: * c-decl.c, calls.c, cplus-class.c, cplus-decl.c, cplus-tree.c: ! 11285: Don't define here. ! 11286: * expr.c, fold-const.c, function.c, integrate.c, recog.c: Likewise. ! 11287: * rtl.c, sdbout.c, stmt.c, stor-layout.c, varasm.c: Likewise. ! 11288: * c-typek.c, combine.c, cse.c, emit-rtl.c, expmed.c, final.c: ! 11289: Delete definitions of "min" and "max"; use MIN and MAX now defined ! 11290: in machmode.h. ! 11291: * genemit.c, regclass.c, reload.c, reload1.c: Likewise. ! 11292: * cccp.c (MIN, MAX): Define instead of min and max for consistency. ! 11293: ! 11294: * tm-rs6000.h (HARD_REGNO_MODE_OK): Don't put DImode in reg 31; ! 11295: similarly for TImode. ! 11296: ! 11297: * cse.c (cse_skip_to_next_block): Variable deleted. ! 11298: (cse_insn): Don't set it anymore. ! 11299: (cse_basic_block): Don't use cse_skip_to_next_block; instead, look ! 11300: for unconditional jumps explicitly; correctly handle unconditional ! 11301: jumps to the end of the basic block by extending the basic block in ! 11302: that case. ! 11303: ! 11304: * reload1.c (alter_reg): Ensure that stack slot is always the correct ! 11305: mode. ! 11306: ! 11307: Mon Aug 26 06:20:43 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 11308: ! 11309: * cplus-type2.c (build_functional_cast): Treat constructor casts as ! 11310: having cleanups in this function. ! 11311: * cplus-decl.c (finish_decl): Use cleanups created by functinal ! 11312: casts used as initializers. ! 11313: ! 11314: * cplus-init.c (expand_member_init): Call error with ! 11315: IDENTIFIER_POINTER, not DECL_NAME, of NAME. ! 11316: ! 11317: * cplus-method.c (fndecl_as_string): Don't skip `in_charge' ! 11318: parameter twice. ! 11319: ! 11320: * cplus-init.c (build_new): Delete code which short-circuited ! 11321: multiple indirections in ABSDCL and made everything look like just a ! 11322: single level of indirection. ! 11323: ! 11324: * cplus-typeck.c (warn_for_assignment): Now takes a FUNCTION_DECL ! 11325: instead of an IDENTIFIER_NODE as an argument. Also, print ! 11326: reasonable message when ARGNUM < 0. ! 11327: ! 11328: * cplus-typeck.c (type_unknown_p): If TREE_CODE (EXP) == TREE_LIST, ! 11329: it's type is unknown. ! 11330: ! 11331: * cplus-typeck.c (commonparms): Don't insert default parmeter values ! 11332: into existing arg lists. Instead, unify them into new ones only. ! 11333: ! 11334: * cplus-typeck.c (convert_for_{initialization,assignment}): Pass ! 11335: FNDECL instead of function name. Use `lang_printable_name' to pass ! 11336: printable name to `warn_for_assignment'. ! 11337: ! 11338: * cplus-typeck.c (convert_arguments): Don't forcibly convert ptrs to ! 11339: other things into ptrs to functions just to satisfy the conversion ! 11340: of virtual functions. ! 11341: ! 11342: Sun Aug 25 22:44:57 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 11343: ! 11344: * cplus-typeck.c (compparms): Deal with STRICT == 3. ! 11345: * cplus-search.c (get_first_matching_virtual): Call `compparms' with ! 11346: STRICT == 3. ! 11347: ! 11348: * cplus-lex.c (operator_name_string): Don't abort if we cannot find ! 11349: a operator name for NAME. Instead, return identifier for ! 11350: <invalid operator>. ! 11351: ! 11352: Sun Aug 25 15:42:59 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11353: ! 11354: * cplus-xref.c (FILE_NAME_ABSOLUTE_P): New macro. ! 11355: (GNU_xref_file): Use it. ! 11356: (open_xref_file): Use new macro XREF_FILE_NAME if defined. ! 11357: * cplus-lex.c (FILE_NAME_NONDIRECTORY): New macro. ! 11358: Used frequently instead of strrchr. ! 11359: * xm-vms.h: Define those three macros. ! 11360: ! 11361: * optabs.c (expand_binop): Use word mode for force_reg on op1 of shift. ! 11362: ! 11363: * out-m68k.c (singlemove_string): Use moveq when appropriate. ! 11364: ! 11365: * final.c (split_double): Handle all integer constants. ! 11366: * out-m68k.c (output_move_double): Use split_double for all constants. ! 11367: * ??? Most out-*.c need changing. ! 11368: ! 11369: * c-decl.c (finish_enum): Make some local vars unsigned. ! 11370: * c-common.c (type_for_size): ! 11371: * c-convert.c (convert_to_integer): ! 11372: * tm-i860.h (ASM_OUTPUT_ASCII): ! 11373: * c-parse.y (yylex): ! 11374: * expr.c (get_pointer_alignment): ! 11375: * stor-layout.c (layout_union, layout_record): ! 11376: * tree.c (get_unwidened, get_narrower): ! 11377: ! 11378: * expr.c (emit_library_call): Don't declare va_list as register. ! 11379: * final.c (asm_fprintf): Likewise. ! 11380: * tree.c (build, build_nt, build_parse_node): Likewise. ! 11381: ! 11382: * expr.c (do_jump_for_compare): Don't assume the compare survives ! 11383: when the branch is emitted. ! 11384: ! 11385: * expr.c (convert_move): Fix typo in prev change. ! 11386: ! 11387: * emit-rtl.c (fconst2_rtx, dconst2_rtx): New vars. ! 11388: (init_emit_once): Initialize them. ! 11389: ! 11390: * expmed.c (extract_bit_field, store_bit_field): ! 11391: For multi-word field, do words from least significant first. ! 11392: ! 11393: (extract_split_bit_field): OP0 is only the first word of the ! 11394: source, so if this is a SUBREG, must call operand_subword on ! 11395: SUBREG_REG (OP0) instead of OP0. ! 11396: ! 11397: * varasm.c (output_constructor): Correctly output constants for ! 11398: bitfields which are greater than HOST_BITS_PER_INT. Use ! 11399: TREE_INT_CST_HIGH for the high bits. ! 11400: ! 11401: * Makefile.in (ENQUIRE_CFLAGS, ENQUIRE_LDFLAGS): New parameters. ! 11402: (enquire, enquire.o): Use them. ! 11403: ! 11404: * tm-sysv4.h: New file, cut out from tm-m88k.h. ! 11405: * tm-m88k.h: Include that. ! 11406: ! 11407: * vax.md (sltu, sgeu): New patterns. ! 11408: ! 11409: Sat Aug 24 11:19:43 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 11410: ! 11411: * cplus-init.c (build_offset_ref): Pass a TYPE_DECL node, not a ! 11412: RECORD_TYPE node, to `build_component_type_expr'. ! 11413: ! 11414: * cplus-cvt.c (convert_to_integer): Warn about conversion from ! 11415: integral type to enumeral type if FLAG_INT_ENUM_EQUIVALENCE is zero. ! 11416: (convert_force): Set FLAG_INT_ENUM_EQUIVALENCE non-zero when calling ! 11417: `convert'. ! 11418: ! 11419: * cplus-typeck.c (build_x_*_op): Don't try using built-in operators ! 11420: if user-defined ones are not accessible. ! 11421: ! 11422: * cplus-init.c (expand_aggr_init_1): Use `expand_expr' to set the ! 11423: DECL_RTL of the TARGET_EXPR. This is a generalization of code that ! 11424: used to require that EXP be some sort of _DECL. ! 11425: ! 11426: * cplus-init.c (init_init_processing): Link global runtime functions ! 11427: __builtin_new and __builtin_delete to their canonical operator ! 11428: names (i.e., op$nw and op$dl). ! 11429: ! 11430: * cplus-lex.c (init_lex): Don't see `dynamic' as a reserved word if ! 11431: SOS is not defined. ! 11432: * cplus-decl2.c (flag_dynamic): Delete unused variable. ! 11433: ! 11434: * cplus-decl.c (define_case_label): Give error when case label cuts ! 11435: into a binding contour with cleanups. ! 11436: * stmt.c (last_cleanup_this_contour): Changed name from ! 11437: `this_contour_has_cleanups_p'. Now returns last cleanup, if there ! 11438: was one. ! 11439: * tree.h: Declare `last_cleanup_this_contour'. ! 11440: ! 11441: * cplus-decl.c (grokdeclarator): Don't let member functions have ! 11442: static linkage. ! 11443: ! 11444: * cplus-tree.c (layout_basetypes): Copy non-virtual basetypes of ! 11445: virtual basetypes so that search routines can find ambiguities ! 11446: arising in lattices where the same type appears as a non-virtual ! 11447: basetype of different types in the lattice. ! 11448: (copy_nonvirtual_children): Implement a recursive deep-copy of ! 11449: nonvirtual types in an inheritance lattice. ! 11450: ! 11451: * cplus-search.c (lookup_fnfields): Correctly catch case where there ! 11452: are multiple functions in an MI lattice. ! 11453: * cplus-call.c (ideal_candidate): If we find a requested function is ! 11454: ambiguous in an MI lattice, set CP->EVIL to 1. ! 11455: (build_method_call): If CP->EVIL is set on return from ! 11456: `ideal_candidate', return error_mark_node. ! 11457: ! 11458: * cplus-decl.c (lookup_name): Prefer finding typenames to overloaded ! 11459: functions where there's a collision. ! 11460: (pushdecl): Don't override the declaration of global functions with ! 11461: a TYPE_DECL that has the same name. `lookup_name' now knows how to ! 11462: find both. ! 11463: (globalize_nested_type): Changed to look in IDENTIFIER_TYPE_VALUE ! 11464: slot for global definitions that are not in IDENTIFIER_GLOBAL_VAL. ! 11465: * cplus-type2.c (build_functional_cast): Deal with more ambiguities ! 11466: and more cases where the syntactic form `NAME ( PARMS )' can have ! 11467: meaning. ! 11468: ! 11469: Sat Aug 24 01:33:00 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11470: ! 11471: * expr.c (convert_move): Make integer extension general. ! 11472: ! 11473: * optabs.c (init_extends, gen_extend_insn): Finish and turn on. ! 11474: ! 11475: * reload1.c (possible_group_p): Insist on regs in needed class. ! 11476: ! 11477: * SYSCALLS.c (alloca): Declare arg as size_t. ! 11478: ! 11479: * expr.c (store_constructor): Handle union constructor. ! 11480: ! 11481: * final.c (split_double): long long CONST_DOUBLE now has VOIDmode. ! 11482: ! 11483: * optabs.c (expand_binop): Fix carry propagation bugs. ! 11484: Handle carry propagation for big-endian case. ! 11485: ! 11486: Fri Aug 23 21:29:46 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 11487: ! 11488: * cplus-decl.c (finish_decl): More PIC fixes. Also, don't assign ! 11489: any storage for static member variables except when they are being ! 11490: defined. ! 11491: ! 11492: * cplus-init.c (build_virtual_init): Change interface to take ! 11493: MAIN_ASSOC instead of FOR_TYPE. ! 11494: (expand_aggr_init_1): Ditto. ! 11495: (expand_recursive_init_1): Ditto. ! 11496: (expand_aggr_vbase_init{_1}): Change interface to take an assoc ! 11497: instead of a type. ! 11498: (expand_recursive_init): Ditto. ! 11499: ! 11500: * cplus-pt.c (uses_template_parms): Handle PARM_DECL nodes. ! 11501: ! 11502: * cplus-search.c (get_base_assoc): Use ASSOC_MARKED instead of ! 11503: ASSOC_BASETYPE_MARKED to mark visited nodes. ! 11504: (lookup_field, loopup_fnfields): Use ASSOC_FIELDS_MARKED instead of ! 11505: ASSOC_VBASE_MARKED when searching. ! 11506: ({bfs_,un,bfs_un}marked2p): Deleted, unused. ! 11507: (dfs_{un}mark2): Deleted, unused. ! 11508: (dfs_unmark12): Deleted, unused. ! 11509: (build_vbase_vtables_init): Change interface to take MAIN_ASSOC ! 11510: instead of FOR_TYPE. ! 11511: ! 11512: Fri Aug 23 18:31:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11513: ! 11514: * expr.c (do_store_flag): Give up if can't directly compare args. ! 11515: ! 11516: Fri Aug 23 18:00:58 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 11517: ! 11518: * function.c (instantiate_virtual_regs_1): Add new arg and now returns ! 11519: int instead of void. ! 11520: All callers changed. ! 11521: ! 11522: * expr.c (compare_constants): Deleted. ! 11523: (compare_from_rtx): Use simplify_relational_operation instead of ! 11524: compare_constants; abort is not needed since ! 11525: simplify_relational_operation will return 0 if given VOIDmode. ! 11526: ! 11527: * cse.c (fold_rtx): Correctly compute mode of operands being ! 11528: compared. ! 11529: ! 11530: Fri Aug 23 17:16:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11531: ! 11532: * stmt.c (expand_end_case): ! 11533: Avoid special cases for modes when widening. ! 11534: Realize __builtin_classify_type reduces to int constant. ! 11535: ! 11536: * optabs.c (emit_cmp_insn): New arg, MODE. All callers changed. ! 11537: If both args are const_int, copy one to a reg. ! 11538: ! 11539: Fri Aug 23 15:54:21 1991 (Eric Youngdale at [email protected]) ! 11540: ! 11541: * make-cc1.com: Fix bug where cplus-parse.y was always being passed ! 11542: through bison, whether it needed it or not. ! 11543: ! 11544: Fri Aug 23 15:20:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11545: ! 11546: * stmt.c (expand_end_case): Remove Aug 12 change. ! 11547: Convert index to nominal_type for subtraction. ! 11548: ! 11549: Thu Aug 22 14:34:21 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11550: ! 11551: * configure, config.gcc: Switch to all-dashes config names. ! 11552: ! 11553: * gnulib2.c [U_udivdi3, L_muldi3]: Define __clz_tab for longlong.h. ! 11554: ! 11555: Thu Aug 22 00:28:29 1991 Torbjorn Granlund (tege at zevs) ! 11556: ! 11557: * longlong.h: Rename BITS_PER_LONG to LONG_TYPE_SIZE. ! 11558: * longlong.h (__ibm032__): Define count_leading_zeros and umul_ppmm. ! 11559: * longlong.h: Define UMUL_TIME and UDIV_TIME for some CPUs. ! 11560: * longlong.h (__sparc__ umul_ppmm): Move two insn from end to the ! 11561: nops. (Saves two insn.) ! 11562: * longlong.h (__sparc__ umul_ppmm): Rewrite in order to avoid ! 11563: branch, and to permit input/output register overlap. ! 11564: * longlong.h (__29k__): Remove duplicated udiv_qrnnd definition. ! 11565: * longlong.h (__29k__ umul_ppmm): Split asm instructions into two ! 11566: asm statements (gives better code if either the upper or lower ! 11567: part of the product is unused. ! 11568: * longlong.h: Mention UDIV_NEEDS_NORMALIZATION in description of ! 11569: udiv_qrnnd. ! 11570: * longlong.h (IBMR2): Add udiv_qrnnd. ! 11571: * longlong.h (add_ssaaaa, sub_ddmmss [C default versions]): Make __x ! 11572: `unsigned long int'. ! 11573: * longlong.h: Add `int' after `unsigned' and `long' everywhere. ! 11574: * longlong.h: Add ARM, i860 support. ! 11575: * longlong.h (sparc umul_ppmm): Use __asm__, not asm. ! 11576: * longlong.h (IBMR2 umul_ppmm): Refer to __m0 and __m1, not to m0 ! 11577: and m1 (overlap between output and input operands did not work). ! 11578: * longlong.h: Add VAX, ROMP and HP-PA support. ! 11579: * longlong.h: Sort the machine dependent code in alphabetical order ! 11580: on the CPU name. ! 11581: * longlong.h: Hack comments. ! 11582: * longlong.h: Define BITS_PER_LONG to 32 if it's not already ! 11583: defined. ! 11584: * Define __BITS4 to BITS_PER_LONG / 4. ! 11585: * Don't assume 32 bit word size in "count_leading_zeros" C macro. ! 11586: Use __BITS4 and BITS_PER_LONG instead. ! 11587: * longlong.h (68k): Define add_ssaaaa sub_ddmmss, and umul_ppmm ! 11588: even for plain mc68000. ! 11589: * longlong.h: Clean up comments. ! 11590: * longlong.h: Don't use #elif. ! 11591: * longlong.h: Use __asm__ instead of asm. ! 11592: * longlong.h (sparc udiv_qrnnd): Make it to one string over several ! 11593: lines. ! 11594: * longlong.h: Preend __ll_ to B, highpart, and lowpart. ! 11595: * longlong.h: Move array t in count_leading_zeros to gnulib2.c ! 11596: Rename the array __clz_tab. ! 11597: * longlong.h (umul_ppmm [C variant]): Make __ul...__vh ! 11598: `unsigned int', and cast the multiplications. This way ! 11599: compilers more easily can choose cheaper multiplication ! 11600: instructions. ! 11601: ! 11602: Thu Aug 22 07:36:40 1991 Tom Wood (wood at dg-rtp.dg.com) ! 11603: ! 11604: * rtl.h: Declare simplify_relational_operation. ! 11605: ! 11606: * out-m88k.c (output_file_start): Put the `gcc2_compiled.' symbol ! 11607: in the data section. Eliminates symbol translation problems with ! 11608: debuggers. ! 11609: ! 11610: Changes from Ron Guilmette: ! 11611: * toplev.c (compile_file): Use dwarfout_finish when done. ! 11612: * final.c (output_source_line): Use dwarfout_line. ! 11613: * dwarfout.c (dwarfout_finish): Rename from dwarfout_finalize. ! 11614: * tm-m88k.h (ASM_OUTPUT_DWARF_LINE, ASM_FILE_END): No need for ! 11615: dwarf specific actions. ! 11616: ! 11617: Thu Aug 22 05:29:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 11618: ! 11619: * combine.c (can_combine_p): Don't combine if INSN has REG_RETVAL note. ! 11620: (try_combine): Similarly, don't combine if I3 has REG_LIBCALL note. ! 11621: ! 11622: * flow.c (propagate_block): Don't use variable PREV in ! 11623: nested blocks that shadows PREV at function level. ! 11624: If we handle this insn normally, arrange to scan any insns that ! 11625: were inserted in front of it for making auto-inc addressing. ! 11626: ! 11627: * integrate.c (save_for_inline_copying): Clear CONST_DOUBLE ! 11628: memory chain. ! 11629: ! 11630: * toplev.c (fatal_insn_not_found): Now that it is called in final.c ! 11631: when an insn doesn't match constraints, write different error ! 11632: message in that case. ! 11633: * genattrtab.c (write_attr_case): Call fatal_insn_not_found instead ! 11634: of abort when constrain_operands fails. ! 11635: ! 11636: Thu Aug 22 05:29:09 1991 Matthew Self (mself at next.com) ! 11637: ! 11638: * rtl.c (add_dependence): Uses of RTX_UNCHANGING_P should now be ! 11639: SCHED_GROUP_P. ! 11640: ! 11641: Thu Aug 22 00:34:20 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11642: ! 11643: * recog.c (offsettable_address_p): Always pass QImode to addressp. ! 11644: ! 11645: Wed Aug 21 09:20:09 1991 Michael Meissner (meissner at osf.org) ! 11646: ! 11647: * tm-decrose.h (LINK_SPEC): Allow -pic-none, -glue, -noshrlib ! 11648: switches. ! 11649: (LIB_SPEC): Add -L/usr/ccs/lib to get new 1.1 linker to use static ! 11650: libraries instead of shared libraries, since the shared library ! 11651: support has not yet been added. ! 11652: ! 11653: Wed Aug 21 06:18:12 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 11654: ! 11655: * out-rs6000.c (print_operand, case 'Y', 'Z'): Fix typo in ! 11656: auto-inc case. ! 11657: * rs6000.md (movti): Add missing %U in memory cases. ! 11658: ! 11659: * tm-rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Indexed addresses are not ! 11660: valid for DImode and TImode. ! 11661: * out-rs6000.c (indexed_mem_operand): Deleted. ! 11662: (print_operand, case 'X'): Don't use indexed_mem_operand; check ! 11663: ourselves instead. ! 11664: * rs6000.md (movdi, movti): Don't check for indexed memory operands. ! 11665: ! 11666: Tue Aug 20 16:02:41 1991 Tom Wood (wood at dg-rtp.dg.com) ! 11667: ! 11668: * sdbout.c (sdbout_parms): Handle parm passed in reg and living in ! 11669: pseudo that was optimized away. ! 11670: ! 11671: Mon Aug 19 19:10:42 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 11672: ! 11673: * combine.c (simplify_comparision, case NEG): Can only convert ! 11674: (-a) < C to a > C if C is zero. ! 11675: ! 11676: * expmed.c (store_bit_field, extract_bit_field): Use WORD_MODE for ! 11677: mode of BITS_PER_WORD to avoid conflict with other use of variable ! 11678: named MODE. ! 11679: ! 11680: * cse.c (cse_insn): Don't make a REG_EQUAL note whose contents ! 11681: are a REG; the REG might have been eliminated. ! 11682: ! 11683: * reload1.c (reload_as_needed): Pass any CLOBBERs made when reloading ! 11684: an insn to `forget_old_reloads_1'. ! 11685: ! 11686: Mon Aug 19 12:47:46 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11687: ! 11688: * configure (m88k-luna): Rename alternative appropriately. ! 11689: ! 11690: * cse.c (simplify_relational_operation): Split out from ..._binary_... ! 11691: (fold_rtx): Use that function for relationsals. ! 11692: (simplify_binary_operation): Don't allow relationals. ! 11693: * combine.c (subst, gen_binary): Use simplify_relation_operation. ! 11694: * integrate.c (subst_constants): Likewise. ! 11695: * jump.c (jump_optimize): Likewise. ! 11696: ! 11697: * c-common.c (shorten_compare): Warn about unsigned >= 0. ! 11698: ! 11699: Sun Aug 18 17:29:16 1991 (Eric Youngdale at [email protected]) ! 11700: ! 11701: * tm-vms.h (ASM_OUTPUT_EXTERNAL): Remove code to round the storage ! 11702: size up to a multiple of 4 bytes. ! 11703: ! 11704: Sun Aug 18 15:35:27 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11705: ! 11706: * dbxout.c (dbxout_parms): ! 11707: Handle parm passed in reg and living in pseudo that was optimized away. ! 11708: ! 11709: * function.c (init_function_start): Give decl_printable_name both args. ! 11710: ! 11711: * expr.c (compare_from_rtx): ! 11712: Don't change to unsigned if too wide for host int. ! 11713: * cse.c (fold_rtx): Use mode_arg0 to simplify comparison ops. ! 11714: Update mode_arg0 when we look at value of cc0. ! 11715: ! 11716: * cse.c (cse_insn): Really don't record bitfield destinations ! 11717: unless source is constant which fits. ! 11718: But pre-truncate other constants. ! 11719: ! 11720: * config.subr: Allow $os to be empty. ! 11721: ! 11722: * function.c (lookup_static_chain): Check for 0 before inline function. ! 11723: ! 11724: * config.subr (pc532, minix): New alternatives. ! 11725: ! 11726: * configure (editing Makefile): Use cross-make. ! 11727: * Makefile.in (install-cross): Change dep to install-gnulib. ! 11728: ! 11729: Sat Aug 17 17:18:05 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 11730: ! 11731: * All cplus-* files: Change the representation of the C++ ! 11732: inheritance lattice for types. There is no longer such a thing as a ! 11733: classtype_variant. Instead, types all have their own lattices ! 11734: accessed via their CLASSTYPE_ASSOC field. ! 11735: ! 11736: * cplus-tree.h (lang_type): Delete fields OFFSET, ! 11737: MAIN_CLASS_VARIANT, NEXT_CLASS_VARIANT, VIA_PUB_OR_VIRT. ! 11738: Rename field AS_ID_LIST to ID_AS_LIST, since it's a list. ! 11739: (CLASSTYPE_AS_ID_LIST): Renamed to CLASSTYPE_ID_AS_LIST. ! 11740: Add field ASSOC_AS_LIST, which is a TREE_LIST whose TREE_VALUE is ! 11741: the assoc for the type. ! 11742: (CLASSTYPE_VIA_*, SET_CLASSTYPE_VIAS): Deleted. ! 11743: (CLASSTYPE_OFFSET*): Deleted. ! 11744: (CLASSTYPE_N_BASECLASSES): Now uses type's assoc. TYPE_BASETYPES ! 11745: field is unused. Next change will make TYPE_BASETYPES hold the ! 11746: assoc field. ! 11747: (CLASSTYPE_VBASE_SIZE): Use slot in TYPE_LANG_SPECIFIC instead of ! 11748: sneaking it into the TREE_TYPE field of the basetypes. ! 11749: ! 11750: (ASSOC_TYPE): Deleted. Now use ASSOC_VALUE everywhere. ! 11751: (ASSOC_{BASETYPE,BASETYPES}): New macros. Both are operations on ! 11752: assocs and return assocs. ! 11753: (CLASS_ASSOC_BASETYPE): New macro. This performs roughly the same ! 11754: function that CLASSTYPE_BASECLASS used to, but it retains no assoc ! 11755: info in the type it returns. ! 11756: (ASSOC_NEXT_ASSOC): New macro used for traversing assoc chains built ! 11757: up by search routines. ! 11758: (ASSOC_VIA_{PUBLIC,VIRTUAL}): New macros for accessing inheritance ! 11759: information. CLASSTYPE_VIA_{PUBLIC,VIRTUAL} no longer used. ! 11760: (ASSOC_CID): New macro. ! 11761: ! 11762: (DECL_ANON_UNION_ELEM): Deleted. Now anonymous union decls are ! 11763: distinguished as FIELD_DECLs with NULL DECL_NAMEs and UNION_TYPE ! 11764: types. ! 11765: ! 11766: (DERIVED_FROM_P): New macro. Change calls that testing inheritance ! 11767: relationships (get_base_type and get_base_distance) to use this macro. ! 11768: ! 11769: * cplus-type2.c (basetype_or_else): Change interface to use/return an ! 11770: assoc instead of a type. Change name to base_assoc_or_else. ! 11771: ! 11772: * cplus-tree.c (build_classtype_variant): Deleted. ! 11773: (copy_type_lang_specific): Deleted. ! 11774: * all cplus-* files: Everything that used to use CLASSTYPE_OFFSET on ! 11775: types now uses ASSOC_OFFSET on assocs. ! 11776: ! 11777: * cplus-class.c (propagate_basetype_offsets): Change interface to use ! 11778: assocs instead of types. Change name to propagate_assoc_offsets. ! 11779: * cplus-search.c (get_base_type): Ditto; name changed to ! 11780: get_base_assoc. ! 11781: ! 11782: * cplus-cvt.c (convert_pointer_to): Change interface to use an assoc ! 11783: instead of a type. ! 11784: (convert_pointer_to_vbase): Ditto. ! 11785: * cplus-call.c (build_field_call): Ditto. ! 11786: * cplus-class.c (get_vfield_offset): Ditto. ! 11787: (build_method_call): Ditto. ! 11788: (maybe_fixup_vptrs): Ditto. ! 11789: * cplus-search.c (get_first_matching_virtual): Ditto. ! 11790: (get_virtuals_named_this): Ditto. ! 11791: (tree_needs_constructor_p): Ditto. ! 11792: (get_virtual_destructor): Ditto. ! 11793: (tree_has_any_destructor_p): Ditto. ! 11794: (get_baselinks): Ditto. ! 11795: (lookup_{field,fnfields}): Ditto. Also, use ASSOC_VBASE_MARKED ! 11796: instead of CLASSTYPE_MARKED2 to mark virtual basetypes that have ! 11797: been visited. ! 11798: (build_vbase_vtables_init): Ditto. ! 11799: ({build,free}_mi_matrix): Ditto. ! 11800: * cplus-init.c (expand_aggr_init_1): Ditto. ! 11801: (expand_aggr_vbase_init_1): Ditto. ! 11802: (build_virtual_init): Ditto. ! 11803: * cplus-class.c (build_class_init_list): Rewritten to build list with ! 11804: assoc entries instead of types. Also, use new macro ! 11805: ASSOC_BASEINIT_MARKED instead of CLASSTYPE_MARKED6. ! 11806: (finish_base_struct): New argument ASSOCS is the list of assocs that ! 11807: describe the basetypes of T. ! 11808: ! 11809: * cplus-tree.c (make_lang_type): Always initialize ! 11810: CLASSTYPE_VBASE_SIZE to integer_zero_node. To test if a class has ! 11811: virtual baseclasses, test CLASSTYPE_VBASECLASSES, not ! 11812: CLASSTYPE_VBASE_SIZE. ! 11813: ! 11814: * cplus-class.c (finish_struct): Rewritten to use assocs instead of ! 11815: types where appropriate. ! 11816: ! 11817: * cplus-search.c (get_base_distance): Change interface to use assocs ! 11818: or types. Also, PATH_PTR argument is now an assoc chain, not a ! 11819: TREE_LIST. Algorithm to find leftmost path is now more efficient. ! 11820: (compute_visibility): Uses assoc chain instead of TREE_LIST of ! 11821: types. ! 11822: (recursive_bounded_basetype_p): New function. ! 11823: (dfs_walk, dfs_* functions): Change to be called with assocs instead ! 11824: of types. ! 11825: (breadth_first_search, all bfs_*): Ditto. ! 11826: cplus-tree.c (reverse_path): New function. Like nreverse, but works ! 11827: on assoc chains. ! 11828: ! 11829: * cplus-class.c (build_vtable, prepare_fresh_vtable, ! 11830: modify_vtable_{entries,entry},): Change interfaces to use assocs ! 11831: instead of types. Use macro ASSOC_VTABLE_PATH_MARKED on the assocs ! 11832: instead of CLASSTYPE_MARKED3. Use macro ASSOC_NEW_VTABLE_MARKED on ! 11833: the assocs instead of CLASSTYPE_MARKED4. ! 11834: ! 11835: * cplus-dbxout.c: Now needs to know more about assocs. When assocs ! 11836: are put in the TYPE_BASETYPEs field, it should not need to know ! 11837: about lang_type. ! 11838: ! 11839: * cplus-decl.c (xref_tag): Rewritten to build proper assoc lists. No ! 11840: longer builds basetype lists. ! 11841: (finish_function): Make `flag_no_inline' really take effect. ! 11842: ! 11843: * cplus-tree.c (make_assoc): Changed for new assoc structure. The ! 11844: fields in assocs are now: VALUE (pointer to TYPE that this assoc is ! 11845: for), OFFSET (the byte offset of this basetype in the whole object), ! 11846: VTABLE (the virtual function table that should be used to initialize ! 11847: objects controlled by this assoc), VIRTUALS (the virtual functions ! 11848: to use for initializing VTABLE), BASETYPES (a TREE_VEC of basetypes ! 11849: that this assoc has, or NULL_TREE if none), NEXT_ASSOC (a temporary ! 11850: slot used to point to the next assoc in an assoc chain), ! 11851: VIA_{PUBLIC,VIRTUAL} bits saying whether this assoc is a basetype of ! 11852: its parent via public or virtual inheritance. ! 11853: ! 11854: * cplus-ptree.c (print_lang_type): Modified as necessary to cope with ! 11855: new inheritance structure. ! 11856: ! 11857: * cplus-search.c (get_base_type_1): This function was unused and ! 11858: wrong. Deleted. ! 11859: ! 11860: * cplus-tree.c (layout_basetypes): Take new arg ASSOCS. Layout the ! 11861: basetypes my modifying the assocs, not the types. ! 11862: (layout_vbasetypes): Ditto. ! 11863: ! 11864: * all cplus-* files: Removed dead code, unused variables, and change ! 11865: asserts where appropriate. ! 11866: ! 11867: * all cplus-* files: DECL_VIRTUAL_P is no longer used as a truth test ! 11868: for whether or not a function is virtual. Use a test for non-NULL ! 11869: DECL_VINDEX instead. ! 11870: ! 11871: Sat Aug 17 15:16:40 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11872: ! 11873: * function.h (inline_function_decl): Declare it. ! 11874: * integrate.c: Include function.h; don't declare var here. ! 11875: ! 11876: * rtl.h (regno_reg_rtx): Declare it. ! 11877: ! 11878: * stmt.c (expand_end_case): ! 11879: When filling labelvec from case range, avoid overflow in i. ! 11880: ! 11881: Fri Aug 16 23:06:37 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11882: ! 11883: * c-typeck.c (build_binary_op_nodefault): ! 11884: Take out warning added by recent changes. ! 11885: ! 11886: Fri Aug 16 22:00:09 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 11887: ! 11888: * function.c (inline_function_decl): New var. ! 11889: (lookup_static_chain): Decl is local if context is function being ! 11890: inlined. ! 11891: * integrate.c: Remove partially-completed previous change. ! 11892: (expand_inline_function): Set inline_function_decl. ! 11893: ! 11894: Fri Aug 16 21:41:10 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 11895: ! 11896: * a29k.md (insv,extv): Changed POS / SIZE to POS / 8, since high ! 11897: order bit of BP selects half-word position for half-word ops. ! 11898: ! 11899: Fri Aug 16 18:52:35 1991 Jim Wilson (wilson at sphagnum.cygnus.com) ! 11900: ! 11901: * combine.c (distribute_links): Only put link on new insn if the ! 11902: insn uses the register. If first find an insn that sets the ! 11903: register but does not otherwise use it, then drop the link. ! 11904: ! 11905: * combine.c (distribute_links): Strip off SUBREG, ZERO_EXTRACT, ! 11906: etc. from the destination of the set before passing it to ! 11907: reg_mentioned_p and reg_referenced_p. ! 11908: ! 11909: Sat Aug 16 17:02:53 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 11910: ! 11911: * cplus-pt.c (uses_template_parms): Run loop over _EXPR nodes from ! 11912: TREE_CODE_LENGTH-1 to 0, not from TREE_CODE_LENGTH. ! 11913: ! 11914: * cplus-decl.c (grokfndecl): Change `==' to `=' in assignment to ! 11915: `raises' ! 11916: (finish_decl): If FLAG_PIC is nonzero, leave initialized data in ! 11917: common space. ! 11918: ! 11919: Fri Aug 16 13:13:11 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 11920: ! 11921: * reg-stack.c (current_function_returns_real): New variable. ! 11922: (reg_to_stack): Set it. ! 11923: (stack_reg_life_analysis): Use it. ! 11924: (emit_pop_insn): Return the new insn. ! 11925: (convert_regs): Pop any stack regs live at the end of the last basic ! 11926: block. ! 11927: ! 11928: Fri Aug 16 16:16:45 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 11929: ! 11930: * tm-sparc.h (SELECT_SECTION): Don't put relocatable values into ! 11931: text space if generating position-independent code. ! 11932: ! 11933: Fri Aug 16 16:00:30 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11934: ! 11935: * protoize.c (__flsbuf): Decl deleted; no need. ! 11936: [ultrix]: Include string.h, not strings.h. ! 11937: ! 11938: * function.c (instantiate_virtual_regs_1): Bug adding NEW to addr of X. ! 11939: ! 11940: Fri Aug 16 08:51:25 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 11941: ! 11942: * expr.c (expand_expr, case ABS_EXPR, MIN_EXPR, MAX_EXPR): Don't ! 11943: allow TARGET to be a hard reg because evaluating the comparison ! 11944: might clobber it. ! 11945: ! 11946: Thu Aug 15 23:38:04 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11947: ! 11948: * tm-m68k.h (PRINT_OPERAND): Use asm_fprintf to print immed prefix. ! 11949: ! 11950: Thu Aug 15 23:36:12 1991 Micheal Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 11951: ! 11952: * cplus-decl.c (finish_enum): Remove last traces of Wood's mistaken ! 11953: changes for tag handling in C++. ! 11954: * cplus-class.c (finish_struct): Ditto. ! 11955: ! 11956: Tue Aug 13 06:12:18 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 11957: ! 11958: * jump.c (find_cross_jump): When avoiding CALL_INSNs, don't ! 11959: return a CODE_LABEL as a cross-jump point; use next_real_insn instead ! 11960: of next_nonnote_insn. ! 11961: ! 11962: * fold-const.c (optimize_bit_field_compare, merge_component_reference): ! 11963: Use mode_for_size to get mode for word; don't use SImode. ! 11964: * tree.c (build_index_type, build_index_2_type): Don't use SImode; ! 11965: get mode of SIZETYPE instead. ! 11966: ! 11967: * optabs.c (emit_cmp_insn): Use type of int instead of SImode for ! 11968: return from memcmp and bcmp. ! 11969: ! 11970: Mon Aug 12 17:54:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11971: ! 11972: * stmt.c: Include recog.h. ! 11973: * stmt.c (expand_end_bindings): Expect abort to return void. ! 11974: (expand_end_case): Give tablejump whatever mode it wants. ! 11975: ! 11976: * integrate.c (integrate_type): New function. ! 11977: * c-typeck.c (build_binary_op_nodefault): Rewrite last change. ! 11978: ! 11979: * Makefile.in (install): Indirect through INSTALL_TARGET. ! 11980: (install-native): New name for old install target. ! 11981: (INSTALL_TARGET): New variable. ! 11982: * cross-make (INSTALL_TARGET): Override it. ! 11983: ! 11984: Mon Aug 12 17:25:48 1991 Michael Meissner (meissner at osf.org) ! 11985: ! 11986: * out-mips.c (toplevel, override_options, siginfo): If the OSF/1 ! 11987: SIGINFO signal is provided, invoke siginfo handler, which prints ! 11988: which file is being compiled, and runs ps on the compiler and it's ! 11989: parent. ! 11990: ! 11991: * make-decrose (CC, OLDCC): Define CC and OLDCC to be the same, so ! 11992: that tests within Makefile.in work as expected. ! 11993: (LIB2FUNCS_EXTRA): Put osf-main in the gnulib2 portion of the ! 11994: library, instead of the gnulib1 portion. ! 11995: ! 11996: Mon Aug 12 16:31:47 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 11997: ! 11998: * explow.c (expr_size): Fix typo. ! 11999: ! 12000: Mon Aug 12 14:27:31 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 12001: ! 12002: * expr.c (expand_expr, case COND_EXPR): Fix typo in comment. ! 12003: In the singleton code, don't accept a hard register as a target if ! 12004: we are going to store into it before testing the condition because ! 12005: that evaluation may involve a subroutine call which might clobber it. ! 12006: ! 12007: * rtl.h (SCHED_GROUP_P): Fix typo in definition. ! 12008: ! 12009: Mon Aug 12 08:01:01 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12010: ! 12011: * jump.c (find_cross_jump): Look at REG_EQUIV notes in addition to ! 12012: REG_EQUAL notes. ! 12013: (do_cross_jump): Remove REG_EQUAL or REG_EQUIV notes present on only ! 12014: one branch of the cross-jump so we don't get confused by them if we ! 12015: cross-jump again. ! 12016: ! 12017: Mon Aug 12 01:44:26 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 12018: ! 12019: * unroll.c (unroll_loop): When naively unrolling loops, if the last ! 12020: jump insn is an unconditional jump, and it does not jump to the loop ! 12021: top, then it must be copied with the rest of the loop body. ! 12022: ! 12023: * rtl.h: Clean up documentation for uses of volatil and in_struct ! 12024: fields of an rtx. ! 12025: * gcc.texinfo: Document macros CONST_CALL_P, LABEL_PRESERVE_P, and ! 12026: SCHED_GROUP_P. Clean up documentation for uses of used, in_struct, ! 12027: and unchanging fields of an rtx. ! 12028: ! 12029: * final.c (final_scan_insn): In the ASM_OUTPUT_LOOP_ALIGN code, ! 12030: must verify that next exists before checking whether it is a label. ! 12031: ! 12032: Sun Aug 11 16:46:17 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 12033: ! 12034: * i386.md (cmpstrsi): Enable it. Now uses REG as output, not cc0. ! 12035: Old cc0-output pattern remains for combining cmpstrsi & test pairs. ! 12036: ! 12037: Sun Aug 11 15:52:33 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12038: ! 12039: * dbxout.c (dbxout_symbol): Handle var-length array with reference. ! 12040: ! 12041: * c-decl.c (xref_tag): Copy default mode from unsigned_type_node. ! 12042: * explow.c (expr_size): Get it from size_type. ! 12043: * reload1.c (allocate_reload_reg): No need to validate mode of ! 12044: reload_in if that value is a const_int. ! 12045: ! 12046: * expr.c (expand_builtin): Get value mode properly, for memcmp. ! 12047: ! 12048: Sun Aug 11 15:52:33 1991 Jim Wilson (wilson at cygint.cygnus.com) ! 12049: ! 12050: * dbxout.c (dbxout_symbol): DECL_ASSEMBLER_NAME is a tree, not a ! 12051: character string, so call IDENTIFIER_POINTER before printing it. ! 12052: ! 12053: * fold-const.c (fold): When converting foo++ == CONST to ++foo == ! 12054: CONST + INCR, the plus must have the same TREE_TYPE as the ! 12055: postincrement, not the comparison. ! 12056: ! 12057: Sat Aug 10 22:58:01 1991 Michael Meissner (meissner at osf.org) ! 12058: ! 12059: * mips.md (extendqihi2 define_split): Use SImode on shifts rather ! 12060: than HImode, and turn result register into SImode as well. ! 12061: ! 12062: Sat Aug 10 21:00:59 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 12063: ! 12064: * calls.c (emit_call_1): New argument is_const. Set CONST_CALL_P ! 12065: true for the call_insn if is_const is true. ! 12066: (expand_call): Pass is_const to emit_call_1. ! 12067: * expr.c (emit_library_call): Pass no_queue to emit_call_1. ! 12068: Document that no_queue means that the function call is const. ! 12069: * local-alloc.c (validate_equiv_mem): Don't invalidate memory for ! 12070: const calls. ! 12071: * rtl.h: Update comments describing uses of rtl unchanging and ! 12072: in_struct bits. ! 12073: (CONST_CALL_P): New macro. True for a call_insn if it is calling ! 12074: a const function. Uses the unchanging bit. ! 12075: (SCHED_GROUP_P): New macro. True for an insn if it must be ! 12076: scheduled together with the previous insn. Uses the in_struct bit. ! 12077: * sched.c: Rewrite to use new SCHED_GROUP_P macro insead of ! 12078: RTX_UNCHANGING_P. ! 12079: (sched_analyze): Rewrite to use new CONST_CALL_P macro. ! 12080: ! 12081: * sched.c (schedule_block): Don't schedule a block with a volatile ! 12082: or traditional asm insn. There is currently no code to correctly ! 12083: handle dependencies for them. ! 12084: ! 12085: * combine.c (distribute_links): Fix typo in comment. ! 12086: ! 12087: Sat Aug 10 18:42:22 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12088: ! 12089: * emit-rtl.c (operand_subword): Replace explicit SImode references ! 12090: with mode for BITS_PER_WORD bits. ! 12091: ! 12092: Sat Aug 10 14:17:08 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12093: ! 12094: * calls.c (expand_call): Handle ARGS_GROW_DOWNWARD. ! 12095: ! 12096: * ns32k.md (call_value): Consistently realize function is operand 1. ! 12097: ! 12098: * cccp.c (do_include): Get current dir from nominal_fname. ! 12099: ! 12100: * expr.c (expand_builtin): Give cmpstr* a target in the mode it wants. ! 12101: * optabs.c (expand_cmp_insn): Likewise. ! 12102: ! 12103: Fri Aug 9 09:59:27 1991 Tom Wood (wood at dg-rtp.dg.com) ! 12104: ! 12105: * dwarfout.c (output_symbols_for_block): Fix typo in iterating over ! 12106: subblocks. ! 12107: ! 12108: * make-m88k{,dgux,luna}: Eliminate m88k-trace.asm. ! 12109: * tm-m88k.h, out-m88k.c: Make -mbig-pic a synonym for -fPIC. ! 12110: Delete -mtrace-function. ! 12111: ! 12112: * Makefile.in (CROSS_TOOLS): New variable. ! 12113: (gnulib1.null, gnulib2.ready): Depend on CROSS_TOOLS. ! 12114: (gnulib1.null): Use $(AR) $(AR_FLAGS). ! 12115: * cross-make (CROSS_TOOLS): Define as install-cross-tools. ! 12116: ! 12117: Fri Aug 9 15:21:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12118: ! 12119: * optabs.c (emit_cmp_insn): Expect cmpstr* to have result operand. ! 12120: Test the sign of the result we get. ! 12121: i386.md needs to be changed. ! 12122: ! 12123: Fri Aug 9 11:09:22 1991 (Eric Youngdale at [email protected]) ! 12124: ! 12125: * make-cc1.com: Fix bug where the wrong program was being run to ! 12126: generate insn-attrtab.c, and, add DEBUG option, so that images can be ! 12127: linked to run under the debugger. ! 12128: ! 12129: Fri Aug 9 06:42:15 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12130: ! 12131: * genemit.c (gen_split): Add "_fail:" label here too. ! 12132: ! 12133: * tree.h (STRIP_NOPS): Define macro here; add CONVERT_EXPR to list ! 12134: of operations to possibly ignore. ! 12135: * fold-const.c (STRIP_NOPS): Not here. ! 12136: * expr.c (strip_nops): Delete function. ! 12137: (string_constant): Use STRIP_NOPS macro instead of strip_nops function. ! 12138: ! 12139: * global-alloc.c (expand_preferences): New function. ! 12140: (global_alloc): Call it. ! 12141: ! 12142: Fri Aug 9 01:19:26 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 12143: ! 12144: * optabs.c (emit_cmp_insn): Correct typo in spacing. ! 12145: ! 12146: * unroll.c: Correct typo in comment. Document that unrolling a ! 12147: loop by a multiple of the number of memory accesses is a win. ! 12148: (unroll_loop): New variable last_loop_insn, points to the last ! 12149: real insn in the loop, which will either be a jump or a barrier. ! 12150: Use last_loop_insn instead of assuming that PREV_INSN (loop_end) ! 12151: is that last real insn in the loop. ! 12152: Standardize comments printed to loop dump file when we can't ! 12153: unroll a loop, so that they all start with "Unrolling failure". ! 12154: No longer assumes that the insn before the backward jump is a ! 12155: compare unless HAVE_cc0. If not HAVE_cc0, then must copy this ! 12156: insn, and for loop_iterations == 1 case, can not delete this insn. ! 12157: If last_loop_insn is not a JUMP_INSN or BARRIER, then do not ! 12158: unroll the loop. ! 12159: (precondition_loop_p): Fail if loop_iteration_var is not live ! 12160: before loop_start. ! 12161: (copy_loop_body): Rewrite obsolete and misleading comment ! 12162: concerning the splitting of address givs. ! 12163: (back_branch_in_range_p): Correct typo in comment. No longer ! 12164: assumes that PREV_INSN (loop_end) is the backward branch at the ! 12165: end of the loop. ! 12166: (fold_rtx_mult_add): Rewrite to use simplify_binary_operation. ! 12167: (iteration_info): Fail if iteration variable is larger than ! 12168: HOST_BITS_PER_LONG, or if it does not have an integer mode. ! 12169: (find_splittable_givs): If an address giv was combined with ! 12170: another address giv, then we can only split the first giv if the ! 12171: second was actually reduced. ! 12172: (loop_iterations): New variable last_loop_insn, use instead of ! 12173: assuming that the last jump insn if PREV_INSN (loop_end). ! 12174: Correct typo in comment. ! 12175: ! 12176: Thu Aug 8 17:57:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12177: ! 12178: * Makefile.in (gnulib1.null): Use *_FOR_TARGET variables. ! 12179: (TARGET_TOOLPREFIX): New variable. ! 12180: (AR_FOR_TARGET, AR_FOR_TARGET_FLAGS): New variables. ! 12181: (RANLIB_FOR_TARGET, RANLIB_TEST_FOR_TARGET): New variables. ! 12182: * cross-make: New file. ! 12183: * configure: Insert cross-make into Makefile. ! 12184: ! 12185: * tm-m68k.h (LEGITIMIZE_ADDRESS): Copy address before changing it. ! 12186: (COPY_ONCE): New macro, subroutine for LEGITIMIZE_ADDRESS. ! 12187: ! 12188: * toplev.c (main): Accept -g with warning if not supported. ! 12189: ! 12190: * Makefile.in (install-cross-tools): Do nothing unless have gcc-cross. ! 12191: (gnulib2.ready): Depend on install-cross-tools. ! 12192: ! 12193: Thu Aug 8 14:34:53 1991 Ken Raeburn (raeburn at watch.com) ! 12194: ! 12195: * expr.c (c_strlen): New function; determines strlen of string const. ! 12196: (expand_builtin, cases BUILT_IN_STRCMP, BUILT_IN_STRCPY): Call it ! 12197: instead of relying on TREE_STRING_LENGTH. For strcmp, optimize ! 12198: cases where two lengths are available, if at least one of them is ! 12199: constant. ! 12200: (expand_builtin, case BUILT_IN_MEMCMP): If alignment test fails, and ! 12201: function was really BUILT_IN_STRCMP, delete length parameter before ! 12202: expanding call. ! 12203: ! 12204: * tree.h (enum built_in_function): Added BUILT_IN_STRLEN. ! 12205: * c-decl.c (sizet_ftype_string): New variable, for strlen prototype. ! 12206: (init_decl_processing): Set it, and declare strlen and ! 12207: __builtin_strlen as built-in functions. Deleted variable `decl' ! 12208: since it was only assigned to, never read. ! 12209: * expr.c (expand_builtin, case BUILT_IN_STRLEN): Implement it. ! 12210: ! 12211: * cplus-decl.c (sizet_ftype_string, init_decl_processing): Copy ! 12212: changes from c-decl.c. Also initialize const_string_type_node. ! 12213: ! 12214: Thu Aug 8 14:34:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12215: ! 12216: * c-decl.c (pushdecl): Just warn if trad. extern type is temporary. ! 12217: ! 12218: Wed Aug 7 15:16:55 1991 Jim Wilson (wilson at sphagnum.cygnus.com) ! 12219: ! 12220: * local-alloc.c (block_alloc): When converting a SCRATCH rtx to a ! 12221: REG rtx, must clear the `used' bit. ! 12222: ! 12223: Tue Aug 6 14:17:09 1991 Jim Wilson (wilson at wombat.gnu.ai.mit.edu) ! 12224: ! 12225: * stmt.c (expand_start_bindings): Fix typo in comment or spacing. ! 12226: * rtlanal.c (reg_referenced_between_p): Likewise. ! 12227: (reg_set_last): Likewise. ! 12228: * loop.c (make_loop_jump): Likewise. ! 12229: * longlong.h (UDIV_NEEDS_NORMALIZATION): Likewise. ! 12230: * local-alloc.c (update_equiv_regs): Likewise. ! 12231: * global-alloc.c (hard_reg_copy_preferences): Likewise. ! 12232: * fixcpp: Likewise. ! 12233: * tm-m68k.h (CONDITIONAL_REGISTER_USAGE): Likewise. ! 12234: * combine.c (reg_significant): Likewise. ! 12235: * calls.c (expand_call): Likewise. ! 12236: * cplus-tree.c (build_cplus_new): Likewise. ! 12237: ! 12238: * function.c (fixup_var_refs_insns): When emitting a move insn, ! 12239: don't put it between a CALL_INSN and its USE insns as this will ! 12240: break sched and reorg. Instead, put it before the USE insns. ! 12241: ! 12242: * combine.c (subst): Convert (ior (ashift A CX) (lshift A CY)) where ! 12243: CX+CY equals the mode size to (rotate A CX). ! 12244: ! 12245: * out-sparc.c (emit_move_sequence): For DImode constants, can not ! 12246: create a temporary register to hold the high part. ! 12247: (output_scc_insn): When in a delay slot, verify that NEXT_INSN (insn) ! 12248: really is the next insn. ! 12249: ! 12250: * sparc.md: Fix support for DImode constants. Two new patterns ! 12251: added, one for high:DI operators and one for lo_sum:DI operators. ! 12252: (*extend*): Rework these patterns. Don't accept memory input ! 12253: operands in the define_expands, as this gives better code. ! 12254: Delete patterns for combining two loads into a load and move; ! 12255: these are obsoleted by combiner improvements. ! 12256: Delete define_splits for splitting these obsolete patterns. ! 12257: (one_cmplsi2): Can not accept general_operand destinations, only ! 12258: register destinations. ! 12259: ! 12260: * tm-sparc.h (STACK_POINTER_OFFSET): Explain how value is derived, ! 12261: and compute in terms of another macro. ! 12262: (STRUCT_VALUE_OFFSET): Explain how value is derived. ! 12263: (FIRST_PARM_OFFSET): Fix typo in comment. ! 12264: ! 12265: * expr.c (MOVE_RATIO): Check for HAVE_movstrdi. ! 12266: (emit_block_move): Add code to use HAVE_movstrdi if present. ! 12267: (emit_push_insn): Likewise. ! 12268: ! 12269: * final.c (final_scan_insn): When insn fails constraint check, ! 12270: call fatal_insn_not_found instead of just aborting to make ! 12271: debugging easier. ! 12272: ! 12273: * tree.c (integer_all_onesp): Rewrite code to avoid shift by ! 12274: HOST_BITS_PER_INT which is undefined according to ANSI. Also, ! 12275: abort for precision values not handled, i.e. those greater than ! 12276: twice times HOST_BITS_PER_INT. ! 12277: ! 12278: Tue Aug 6 14:05:42 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 12279: ! 12280: * i386.md (seq,sne): Use setb/setnb mnemonics instead of setc/setnc: ! 12281: GAS doesn't understand the latter yet. ! 12282: ! 12283: Tue Aug 6 13:01:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12284: ! 12285: * Makefile.in (install-common): Use -d, not -f, for tooldir/bin. ! 12286: ! 12287: Tue Aug 6 10:37:02 1991 (Eric Youngdale at [email protected]) ! 12288: ! 12289: * make-cc1.com: Replacement file. This new version can build cc1plus ! 12290: and cc1obj in addition to cc1 (known on VMS systems as gcc-cc1plus.exe, ! 12291: gcc-cc1obj.exe and gcc-cc1.exe respectively). ! 12292: ! 12293: Tue Aug 6 06:30:09 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12294: ! 12295: * cse.c (canon_hash): If a REG in an operand is equivalent to a ! 12296: constant, hash as if we had the constant. ! 12297: (exp_equiv_p): See if a REG and constant are equivalent. ! 12298: ! 12299: Tue Aug 6 03:59:16 1991 Ken Raeburn (raeburn at watch.com) ! 12300: ! 12301: * cplus-tree.c (make_deep_copy): Handle PARM_DECLs. ! 12302: ! 12303: * cplus-init.c (build_offset_ref): Use DECL_CHAIN, not TREE_CHAIN ! 12304: when trying to determine if a function is unique. ! 12305: ! 12306: * cplus-decl.c (start_decl): When constructing a decl tree for a ! 12307: function template, copy last_function_parms to permanent storage, ! 12308: and save it as the function argument list. Call build_lang_decl ! 12309: instead of build_decl, instead of duplicating the extra work it does. ! 12310: Set `overloaded' flag to 1. Call dont_forget_overload, so the ! 12311: template decl won't get discarded. ! 12312: Also deleted some commented-out code. ! 12313: ! 12314: * cplus-pt.c (uses_template_parms, cases VAR_DECL, FUNCTION_DECL): ! 12315: Give a warning if template parms are only used in places where they ! 12316: can't be resolved (e.g., return types or global or fixed-class ! 12317: variable types). ! 12318: (tsubst): Preserve storage qualifiers on type field, and pass it to ! 12319: layout_type if it has changed. ! 12320: (tsubst, case TEMPLATE_TYPE_PARM): Preserve storage qualifiers. ! 12321: (tsubst, case INTEGER_TYPE): Process min and max fields, if needed. ! 12322: (tsubst, case FUNCTION_DECL): Process arguments and result fields. ! 12323: (tsubst, case PARM_DECL): New branch. Handle parm list for ! 12324: FUNCTION_DECL nodes. ! 12325: (tsubst, case TREE_LIST): Copy TREE_PARMLIST flag from source. ! 12326: Don't bother processing TREE_CHAIN field if it is void_type_node. ! 12327: (tsubst, cases POINTER_TYPE, REFERENCE_TYPE): Preserve storage ! 12328: qualifiers. ! 12329: (tsubst, case FUNCTION_TYPE): Eliminate recursion for simple common ! 12330: cases for values and context fields. Preserve storage qualifiers. ! 12331: (tsubst, default case): Print node type of correct variable in error ! 12332: message. ! 12333: (instantiate_template): Set function_maybepermanent_obstack to ! 12334: permanent, along with the others, and restore old value after tsubst ! 12335: call. This permits the PARM_DECL case to work. ! 12336: ! 12337: Mon Aug 5 22:44:51 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 12338: ! 12339: * cplus-tree.h (struct pending_inline): Add new field `deja_vu' to ! 12340: mark if this pending_inline has already been seen. ! 12341: * cplus-lex.c (do_pending_inlines): Set DEJA_VU when seen. ! 12342: * cplus-lex.c (reinit_parse_for_method, cons_up_default_function): ! 12343: Initialize DEJA_VU to 0. ! 12344: * cplus-decl2.c (mark_inline_for_output): Don't add DECL to ! 12345: PENDING_INLINES if it's already been seen. ! 12346: * cplus-pt.c (instantiate_template): Initialize DEJA_VU to 0. ! 12347: ! 12348: * cplus-method.c (do_inline_function_hair): Change some assignments ! 12349: to asserts, since they seem to be copying values that are already ! 12350: there. ! 12351: ! 12352: Mon Aug 5 22:23:34 1991 Michael Meissner (meissner at osf.org) ! 12353: ! 12354: * genemit.c (gen_expand, main): Change FAIL macro to be a simple ! 12355: goto _fail, and initialize the return value to 0 in the prologue. ! 12356: This avoids a useless warning message that the MIPS C compiler ! 12357: gives if a return is encountered inside of a do { ... } while (0). ! 12358: ! 12359: Mon Aug 5 21:28:06 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12360: ! 12361: * cplus-xref.c (GNU_xref_file): Treat VMS like USG. ! 12362: ! 12363: * optabs.c (expand_binop): In libcall, use actual mode of op1. ! 12364: ! 12365: * c-typeck.c (build_binary_op_nodefault): ! 12366: In signed versus unsigned compare warning, note promotions of unsigned. ! 12367: ! 12368: * c-parse.y (simple_if): Allow error instead of lineno_labeled_stmt. ! 12369: (if_prefix): New subroutine of simple_if. ! 12370: ! 12371: * gnulib2.c (__ashldi3, __ashrdi3, __lshldi3, __lshrdi3): ! 12372: Accept second arg as int, not long long. ! 12373: ! 12374: Sun Aug 4 22:31:53 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 12375: ! 12376: * cplus-except.c (cplus_expand_start_except): Set up variables ! 12377: `current_exception_name_as_rtx' and `current_exception_parms_as_rtx'. ! 12378: These variables are used to factor out calls to `expand_assignment' ! 12379: and allow instead calls to `emit_move_insn', which takes about 1/2x ! 12380: the compilation time when called directly. ! 12381: (various places): Use `store_expr' instead of `expand_assignment' ! 12382: when reasonable. ! 12383: (cplus_expand_reraise): Take advantage of above changes. ! 12384: (setup_exception_throw_decl): This is where *_as_rtx variables are ! 12385: initialized. ! 12386: ! 12387: * cplus-input.c (getch): Rewritten slightly to help GNU C optimizer. ! 12388: * cplus-lex.c (yylex): In IDENTIFIER case, pre-test condition that ! 12389: `getch' tests, and call `getc' directly when possible. This cuts ! 12390: calls to `getch' by a factor of 4 for typical C++. ! 12391: ! 12392: * cplus-class.c (add_virtual_function): Memoize the first 256 ! 12393: virtual function table index nodes (0x80000001, 0x80000002, etc.). ! 12394: (finish_struct): Use `size_int' instead of `build_int_2' when we ! 12395: know the int will not be changed in place (such as the size value of ! 12396: virtual function tables). ! 12397: * cplus-decl2.c (finish_table): Same change as for `finish_struct'. ! 12398: * cplus-tree.c (layout_basetypes): Same change. ! 12399: * cplus-decl.c (init_decl_processing): Use `size_int' to initialize ! 12400: `size_zero_node' and `size_one_node'. ! 12401: ! 12402: * cplus-tree.h (TREE_OVERLOADS_ARROW): Define this. ! 12403: * cplus-parse.y (operator_name): Set TREE_OVERLOADS_ARROW where ! 12404: appropriate. ! 12405: * cplus-type2.c (build_x_arrow): Use TREE_OVERLOADS_ARROW and ! 12406: reorganize the logic for better speed. ! 12407: * cplus-ptree.c (print_lang_type): Print when TREE_OVERLOADS_ARROW. ! 12408: ! 12409: Sun Aug 4 16:44:54 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12410: ! 12411: * rtlanal.c (reg_referenced_p): Properly handle ASM_OPERANDS. ! 12412: ! 12413: * cse.c (cse_insn): When recording this_insn_cc0, build a COMPARE ! 12414: rtl if SRC is a floating-point value. ! 12415: ! 12416: Sun Aug 4 16:16:11 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12417: ! 12418: * fold-const.c (fold): Don't compute shift with negative count. ! 12419: * cse.c (simplify_binary_operation): Likewise. ! 12420: ! 12421: Sat Aug 3 15:57:55 1991 (Eric Youngdale at [email protected]) ! 12422: ! 12423: * tm-vms.h (ASM_OUTPUT_EXTERNAL): Modify to always write the ! 12424: correct size of the data object, if it is known. ! 12425: (ASM_OUTPUT_COMMON): Modify to select the const or the data section ! 12426: as appropriate. This definition shadows a definition in tm-vax.h ! 12427: (const_section): Change data type to void. ! 12428: ! 12429: Sat Aug 3 15:02:40 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12430: ! 12431: * integrate.c (save_for_inline_copying): Clear constant pool after ! 12432: saving constants into the insns. ! 12433: ! 12434: * expr.c (expand_builtin, case BUILT_IN_MEMCPY): Ensure items ! 12435: passed to emit_block_move are valid MEMs. ! 12436: ! 12437: * recog.c (offsettable_address_p): Don't change INTVAL of a CONST_INT ! 12438: within an address; that CONST_INT is likely shared and may be used ! 12439: elsewhere in the address. ! 12440: ! 12441: * stmt.c (expand_end_stmt_expr): Don't try to copy result to ! 12442: REG; it might be BLKmode. ! 12443: ! 12444: * reload.c (MATCHES): Don't consider two things equal if they have ! 12445: side effects. ! 12446: ! 12447: * combine.c (try_combine): When replacing SET_DEST inside a PARALLEL, ! 12448: don't replace it with something that has a side effect. ! 12449: ! 12450: Sat Aug 3 13:17:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12451: ! 12452: * c-decl.c (init_decl_processing): ! 12453: If traditional, omit builtins with names that don't start with _. ! 12454: Also omit if not optimizing. ! 12455: ! 12456: * Makefile.in (combine.o, emit-rtl.o, expr.o, final.o, tree.o): ! 12457: Depend on gvarargs.h. ! 12458: ! 12459: Fri Aug 2 11:00:10 1991 (Eric Youngdale at [email protected]) ! 12460: ! 12461: Merge some VMS changes from 1.39 that did not make it to 2.0. ! 12462: These changes will prohibit GCC from addressing external symbols with ! 12463: indirect addressing modes, to be compatible with sharable ! 12464: image libraries under VMS. ! 12465: ! 12466: * tm-vms.h: Define NO_EXTERNAL_INDIRECT_ADDRESS, define ! 12467: ENCODE_SEGMENT_INFO to make use of hook in varasm.c ! 12468: ! 12469: * tm-vax.h: Provide alternative definitions of INDIRECTABLE_CONSTANT_P, ! 12470: INDIRECTABLE_CONSTANT_ADDRESS_P, and INDIRECTABLE_ADDRESS_P, which ! 12471: are used when NO_EXTERNAL_INDIRECT_ADDRESS is defined. Also, define ! 12472: INDIRECTABLE_CONSTANT_ADDRESS_P. Modify definitions of ! 12473: GO_IF_NONINDEXED_ADDRESS, and GO_IF_LEGITIMATE_ADDRESS to work with ! 12474: either alternative. ! 12475: ! 12476: Fri Aug 2 21:54:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12477: ! 12478: * loop.c (check_dbra_loop): Fix typo in arg to single_set. ! 12479: ! 12480: * reload1.c (choose_reload_regs): Verify that all registers in a ! 12481: group still contain the desired value. ! 12482: (emit_reload_insns): Set reg_reloaded_contents and reg_reloaded_insn ! 12483: for all registers in a group. ! 12484: ! 12485: * combine.c (set_significant): Handle a complex SET_DEST correctly. ! 12486: ! 12487: Fri Aug 2 17:12:24 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12488: ! 12489: * tree.c (build_array_type): Make pointer type before array type. ! 12490: ! 12491: * Makefile.in (install-common): Never install gcc if gcc-cross exists. ! 12492: ! 12493: Fri Aug 2 14:58:42 1991 Michael Meissner (meissner at osf.org) ! 12494: ! 12495: * make-mips (CC, OLDCC): Comment why we need to define CC and OLDCC ! 12496: to get around fixed size table complaints in the MIPS compiler. ! 12497: ! 12498: Fri Aug 2 14:08:01 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12499: ! 12500: * configure (writing VPATH definition): Avoid temp file. ! 12501: ! 12502: * tm-i860.h (MAX_PARM_BOUNDARY): Defined. ! 12503: (GO_IF_LEGITIMATE_ADDRESS): Add parens around & operator. ! 12504: (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Use sp, not r3 (that's fp). ! 12505: * i860.md (movsf): Don't reload high address part if already loaded. ! 12506: (cmplesf, cmpledf, cmpgesf, cmpgedf): Set CC_NEGATED; swap operands. ! 12507: * out-i860.c (strict_single_insn_op_p): ! 12508: Fix criterion for loading high half. ! 12509: (output_load_address): #if 0 since not used. ! 12510: ! 12511: Fri Aug 2 01:46:39 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 12512: ! 12513: * i386.md (swapdf): Don't condition on TARGET_387. ! 12514: (bit set/complement/clear insns): Don't use if -m486. ! 12515: (bit test insns): Don't allow a MEM operand. ! 12516: ! 12517: Thu Aug 1 19:05:31 1991 Matthew Self (mself at next.com) ! 12518: ! 12519: * local-alloc.c (block_alloc): Record regs_live_at for last insn ! 12520: in basic block too. Otherwise REG_UNUSED regs may overlap hard ! 12521: regs set in the last insn of the basic block. ! 12522: ! 12523: Thu Aug 1 19:02:57 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12524: ! 12525: * emit-rtl.c (gen_rtx): Don't return frame_pointer_rtx (e.g.) if ! 12526: mode is not Pmode. ! 12527: ! 12528: * emit-rtl.c (operand_subword): Don't write explicit divide by 0; ! 12529: some (broken) compilers give errors for it. ! 12530: ! 12531: * m68k.md (udivhi3): One pattern had constraint of "d" with ! 12532: const_int_operand. ! 12533: (FPA insns): Operand 1's constraints allow memory and constants, but ! 12534: the predicate is register_operand; change to general_operand. ! 12535: ! 12536: Thu Aug 1 13:41:47 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 12537: ! 12538: * cplus-lex.c (do_pending_inlines, process_next_inline): Zero out ! 12539: the DECL_PENDING_INLINE_INFO field after processing it. ! 12540: (store_pending_inline): Don't delay processing a virtual function, ! 12541: since it needs to be processed in case the virtual function table is ! 12542: needed. ! 12543: ! 12544: * cplus-decl2.c (mark_inline_for_output): If DECL has pending inline ! 12545: info, cause it to be processed. ! 12546: ! 12547: * cplus-pt.c: Removed extraneous declaration of `permanent_obstack'. ! 12548: Also, added comment for `reinit_parse_for_template'. ! 12549: ! 12550: * cplus-typeck.c (mark_addressable): For FUNCTION_DECL case, also ! 12551: test DECL_PENDING_INLINE_INFO. ! 12552: ! 12553: Thu Aug 1 13:26:12 1991 Michael Meissner (meissner at osf.org) ! 12554: ! 12555: * mips-tfile.c (main): If input file is not specified, use the same ! 12556: file for both input and output. If renaming output file and rename ! 12557: fails, copy the file. ! 12558: (free_multiple_pages): New function. ! 12559: ! 12560: * tm-decrose.h (ASM_FINAL_SPEC): Add this to call mips-tfile if ! 12561: using the MIPS assembler. ! 12562: ! 12563: * tm-mips.h (ASM_FINAL_SPEC): Add this to call mips-tfile unless ! 12564: using gas. ! 12565: (TARGET_VERSION): Do not put __DATE__ in the output. ! 12566: ! 12567: * make-mips (BISONFLAGS): Add -l to bison flags because the MIPS ! 12568: based compilers have problems with #line. ! 12569: (CC): Define in terms of $(OLDCC) so the USE_HOST macros work. ! 12570: (EXTRA_PASSES): Build mips-tfile and mips-tdump. ! 12571: (Makefile): Explicitly use sh to invoke configure. ! 12572: ! 12573: * make-decrose (EXTRA_PASSES): Build collect. ! 12574: (Makefile): Explicitly use sh to invoke configure. ! 12575: ! 12576: Thu Aug 1 12:22:17 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12577: ! 12578: * cccp.c (directive_table, node_type): Add #include_next. ! 12579: (do_include): Support #include_next. ! 12580: (finclude): New arg DIRPTR. All callers changed. ! 12581: ! 12582: * reload1.c (reload_as_needed): Check live_known before accessing ! 12583: basic_block_head. ! 12584: ! 12585: Thu Aug 1 11:47:37 1991 Michael Meissner (meissner at osf.org) ! 12586: ! 12587: * gcc.c (compilers): Add new spec %A, which expands ASM_FINAL_SPEC. ! 12588: This option is added after all other arguments to the assembler. It ! 12589: is for the MIPS port to run a cleanup program after the assembler ! 12590: finishes, by having ASM_FINAL_SPEC be "\n mips-tfile args..." ! 12591: (set_spec): If name is 'asm_final', set the asm_final_spec. ! 12592: (process_command): print out asm_final_spec for -dumpspecs. ! 12593: (do_spec_1): Expand %A to be ASM_FINAL_SPEC. ! 12594: (validate_all_switches): look at any switches handled in ! 12595: ASM_FINAL_SPEC. ! 12596: ! 12597: Thu Aug 1 07:42:37 1991 Tom Wood (wood at dg-rtp.dg.com) ! 12598: ! 12599: * dwarfout.c (element_list_attribute): AT_element_list is a BLOCK4. ! 12600: ! 12601: Wed Jul 31 17:42:40 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12602: ! 12603: * jump.c (jump_optimize): In "if (...) x = 1; else {...} if (x) ...": ! 12604: Don't assume that SYMBOL_REFs are always non-zero. ! 12605: Handle operations other than EQ and NE. ! 12606: Handle conditional RETURN properly. ! 12607: ! 12608: * out-a29k.c (print_operand, case 'e'): When writing LXn, use number ! 12609: of last label in function. ! 12610: (output_prolog): Fix missing arg in ADD in a29k_first_epilogue_insn. ! 12611: ! 12612: Wed Jul 31 13:41:37 1991 Tom Wood (wood at dg-rtp.dg.com) ! 12613: ! 12614: * sdbout.c (sdbout_parms): Don't crash if MEM address is a MEM. ! 12615: ! 12616: Wed Jul 31 12:36:37 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12617: ! 12618: * fixincludes: New variable INCLUDES specifies input dir. ! 12619: ! 12620: * Makefile.in (install-common): Add dummy elt to EXTRA_PASSES. ! 12621: Fix typo in test. ! 12622: ! 12623: * Makefile.in (install-cross-tools): Use /. in args to test -d. ! 12624: (cccp.o, dbxout.o, c-plus-*): Added missing dependencies. ! 12625: ! 12626: * c-common.c: Don't include rtl.h--that was unmodular. ! 12627: ! 12628: * make-i386v (INSTALL): Define this. ! 12629: ! 12630: Wed Jul 31 07:38:12 1991 Tom Wood (wood at dg-rtp.dg.com) ! 12631: ! 12632: * Makefile.in (LIB2FUNCS_EXTRA): Extra C and assembler files for ! 12633: gnulib2. ! 12634: * make-m88k*: Put the assembler files in gnulib2 and eliminate use ! 12635: of gnulib1. ! 12636: ! 12637: Tue Jul 30 20:21:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12638: ! 12639: * stddef.h (WCHAR_T): ! 12640: Test _WCHAR_T_, __WCHAR_T, _T_WCHAR_ and ___int_wchar_t_h. ! 12641: ! 12642: * tm-i386isc.h (RETURN_POPS_ARGS): Caller pops the struct value addr. ! 12643: ! 12644: * cccp.c (default_include): Search local dir, system, then standard. ! 12645: ! 12646: * Makefile.in (USE_HOST_MALLOC, USE_HOST_OBSTACK): ! 12647: Don't depend on which C compiler is in use. ! 12648: ! 12649: * reload1.c (reload): Use pseudoreg to compute spill_indirect_levels. ! 12650: ! 12651: * c-decl.c (start_function): Don't take arg types from builtin. ! 12652: (duplicate_decls): Cancel builtin function if new arg types differ. ! 12653: Don't take arg types from buiiltin. ! 12654: ! 12655: Tue Jul 30 18:45:39 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12656: ! 12657: * reload.c (decompose): Don't blow up for constants; they are safe. ! 12658: ! 12659: Tue Jul 30 15:49:34 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12660: ! 12661: * dbxout.c (dbxout_parms): Don't crash if MEM address is a MEM. ! 12662: ! 12663: * Makefile.in (install-common): Don't lose if EXTRA_PASSES is empty. ! 12664: Don't install gcc if gcc-cross exists. ! 12665: (install-cross-tools): Fix typos. ! 12666: Avoid doing cd -- use absolute file names. ! 12667: (gcc-cross.o): Rule deleted. ! 12668: (gcc-cross): Build gcc, then copy it. ! 12669: ! 12670: Tue Jul 30 15:37:25 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 12671: ! 12672: * cplus-init.c (build_vec_delete): Use `size_binop' when building up ! 12673: the array end boundary. ! 12674: ! 12675: Tue Jul 30 10:03:54 1991 Michael Meissner (meissner at osf.org) ! 12676: ! 12677: * tm-mips.h (DOLLARS_IN_IDENTIFIERS): Define to be 1. ! 12678: ! 12679: Mon Jul 29 18:56:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12680: ! 12681: * reload.c (refers_to_regno_for_reload_p): New function. ! 12682: (push_reload, find_dummy_reload, immune_p): Use ! 12683: refers_to_regno_for_reload_p instead of refers_to_regno_p. ! 12684: ! 12685: * cse.c (fold_rtx): Don't make shifts wider than object. ! 12686: ! 12687: Mon Jul 29 17:17:55 1991 Michael Collison (collison at osf.org) ! 12688: ! 12689: * configure: Added entry for mmax-osfrose (Multimax with ns32k ! 12690: running OSF/1). ! 12691: ! 12692: Mon Jul 29 14:51:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12693: ! 12694: * Makefile.in (SYMLINK): New variable. ! 12695: (install-cross-tools): Make symlinks if possible. ! 12696: Otherwise, for executables, indirect to tooldir with a shell script. ! 12697: (install-native): Install gcc-cross as bin/gcc under tooldir. ! 12698: ! 12699: * Makefile.in (USE_HOST_ALLOCA): ! 12700: Generate nothing if don't need separate alloca. ! 12701: (USE_HOST_OBSTACK, USE_HOST_MALLOC): New variables. ! 12702: (HOST_LIBS): Use them. ! 12703: (HOST_PREFIX_1): Make a dummy file with this name, ! 12704: for cross-compiling for a machine that needs no separate alloca, etc. ! 12705: ! 12706: * c-parse.y (stmts): Accept either labels or unlabeled statements. ! 12707: (lineno_labeled_stmt): New nonterminals. ! 12708: (stmt_or_label, lineno_stmt_or_label): New nonterminals. ! 12709: (stmts): Use lineno_stmt_or_label. ! 12710: (stmt): Don't allow labels at this level. ! 12711: Use lineno_labeled_stmt in place of lineno_stmt. ! 12712: ! 12713: * cccp.c (default_include): Get rid of extra #endif. ! 12714: Use CROSS_COMPILE, not CROSS. ! 12715: ! 12716: * make-i386mach: New file. ! 12717: * configure (i386-mach): Use that file. ! 12718: ! 12719: Mon Jul 29 09:10:13 1991 Tom Wood (wood at dg-rtp.dg.com) ! 12720: ! 12721: * tm-m88kluna.h (SYSTEM_INCLUDE_DIR): Define (also MACH). ! 12722: ! 12723: Sun Jul 28 16:15:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12724: ! 12725: * cccp.c (default_include): Use SYSTEM_INCLUDE_DIR. ! 12726: Delete special cases for MACH, UNOS. ! 12727: * tm-i386mach.h, tm-sun3mach.h, tm-crds.h (SYSTEM_INCLUDE_DIR): Define. ! 12728: ! 12729: * cccp.c (default_include): Use CROSS_INCLUDE_DIR if cross-compiler. ! 12730: * Makefile.in (cccp.o): Pass a definition for CROSS_INCLUDE_DIR. ! 12731: ! 12732: * Makefile.in (gnulib1.null): New target. ! 12733: (install-common, install-common-headers, install-cross-tools): ! 12734: (install-cross-rest, install-float-h-cross): New targets. ! 12735: (install-float-h): New target. ! 12736: (install-cross, install-headers): Use them. ! 12737: (tooldir): New variable. ! 12738: (EXTRA_PASSES): New variable. ! 12739: ! 12740: * sdbout.c (plain_type_1): Don't record the size in sdb_type_size ! 12741: unless a tag is output. ! 12742: ! 12743: * Makefile.in (install-cross): Install specs by copying. ! 12744: Install either gcc or gcc-cross, whichever exists. ! 12745: (native): Remove gcc from deps. ! 12746: (start.encap): Add gcc to deps. ! 12747: (all.cross): Add gcc-cross to deps. ! 12748: (gcc-cross): Like gcc rule except different output file name. ! 12749: (gcc-cross.o): Likewise. ! 12750: ! 12751: * Makefile.in (EXTRA_PASSES): New variable. ! 12752: Used for machines which have extra passes to run. ! 12753: (install-cross): Install those programs. ! 12754: (native): Compile them. ! 12755: ! 12756: * c-parse.y: Support `foo:' before a close brace. ! 12757: (label): New nonterminal. ! 12758: (stmt): Use that. Treat a label as a statement in itself. ! 12759: ! 12760: * Makefile.in (gnulib*.portable): Rules deleted. ! 12761: (GNULIB1, GNULIB2): Point directly at gnulib1, gnulib2. ! 12762: (gnulib): Use GNULIB1, GNULIB2 directly both as deps ! 12763: and to specify the input files. ! 12764: (gnulib1.conv): Renamed from gnulib1.convert; no longer phony. ! 12765: (gnulib*.target): Rules deleted. ! 12766: make-hp9k320 (GNULIB1): Use gnulib1.conv. ! 12767: (LIBCONVERT): Override. ! 12768: ! 12769: * move-if-change: Use -f with rm and mv. ! 12770: ! 12771: * Makefile.in (gnulib2.ready): No longer phony. ! 12772: ! 12773: Sat Jul 27 13:03:50 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12774: ! 12775: * combine.c (can_combine_p): Don't use NEXT_INSN, in previous change. ! 12776: ! 12777: * Makefile.in (class-c, objective-c): New targets. ! 12778: ! 12779: * tm-i386.h (ASM_OUTPUT_ALIGN_CODE): Define it. ! 12780: (ASM_OUTPUT_LOOP_ALIGN): Use ASM_OUTPUT_ALIGN_CODE. ! 12781: * tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_ALIGN_CODE): Override it. ! 12782: (ASM_OUTPUT_LOOP_ALIGN): Definition deleted. ! 12783: ! 12784: * fixincludes (memvar.h): Make two defs of CAT, one ANSI and one trad. ! 12785: ! 12786: * expmed.c (emit_store_flag): Set ICODE only after CODE is right. ! 12787: ! 12788: Sat Jul 27 06:45:32 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12789: ! 12790: * flow.c (insn_dead_p): Don't clobber NEEDED while ensuring that we ! 12791: don't delete insns that set the frame or arg pointer. ! 12792: ! 12793: * flow.c (flow_analysis, find_basic_blocks, propagate_block): ! 12794: Use GET_RTX_CLASS. ! 12795: ! 12796: Fri Jul 26 08:18:08 1991 Tom Wood (wood at dg-rtp.dg.com) ! 12797: ! 12798: * sdbout.c: Use <syms.h> for USG and provide a definition of ! 12799: T_VOID if none existed. Use ./gsyms.h for non-USG systems. ! 12800: * gsyms.h: Renamed from syms.h. ! 12801: ! 12802: Fri Jul 26 22:47:53 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12803: ! 12804: * cccp.c (macroexpand): Fix error message syntax. ! 12805: ! 12806: * Makefile.in (gnulib2.target): Add semicolon. ! 12807: ! 12808: Fri Jul 26 18:17:36 1991 Michael Meissner (meissner at pogo.gnu.ai.mit.edu) ! 12809: ! 12810: * make-mips (CC): Bump -Wf,-XNg option to 1500 to allow the MIPS ! 12811: compiler to compile cc1plus. ! 12812: ! 12813: Fri Jul 26 14:42:35 1991 Tom Wood (wood at dg-rtp.dg.com) ! 12814: ! 12815: * c-parse.y (yylex): Don't use mbtowc to translate L'\0'. ! 12816: ! 12817: * tm-m88ksvr4.h (CPP_SPEC): Specify SVR4 pre-assertions. ! 12818: ! 12819: Fri Jul 26 09:53:53 1991 Michael Meissner (meissner at pogo.gnu.ai.mit.edu) ! 12820: ! 12821: * Makefile.in (cplus_expr.o): Add missing dependencies, so cc1plus ! 12822: can be built without first building cc1. ! 12823: ! 12824: Fri Jul 26 07:30:51 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12825: ! 12826: * combine.c (can_combine_p): Can't combine if DEST is used in an ! 12827: insn in the range (succ, i3). ! 12828: ! 12829: * expmed.c (store_bit_field): Don't use insv if the mode of its ! 12830: input is narrower than the width of the field. ! 12831: (store_fixed_bit_field): Handle value with MODE_FLOAT mode. ! 12832: (extract_bit_field): Don't use extzv/extv if its output mode is ! 12833: narrower that width of field. ! 12834: (extract_bit_field): Handle returning MODE_FLOAT mode. ! 12835: ! 12836: * reorg.c (steal_delay_list_from_target): Add new arg PNEW_THREAD. ! 12837: Instead of redirecting jump, return its target in *PNEW_THREAD. ! 12838: (fill_slots_from_thread): Pass &NEW_THREAD to ! 12839: steal_delay_list_from_target. ! 12840: ! 12841: Thu Jul 25 21:57:42 1991 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) ! 12842: ! 12843: * sched.c: Correct tiemann's email address. ! 12844: (schedule_block): Note that the values of leftover REG_DEAD notes ! 12845: are meaningless. ! 12846: (new_insn_dead_notes): If find an instruction that both uses and ! 12847: sets dest, then no new REG_DEAD note is needed. ! 12848: (update_links): When handling dest of last insn, no new REG_DEAD ! 12849: note is needed if the last insn also uses its dest. ! 12850: ! 12851: Thu Jul 25 18:15:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 12852: ! 12853: * flow.c (regno_clobbered_at_setjmp): Don't blow up if no basic blocks. ! 12854: ! 12855: Thu Jul 25 16:55:57 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12856: ! 12857: * cse.c (invalidate, cse_insn): Don't use HASHREG directly. ! 12858: (HASH): Substitute HASHREG in. ! 12859: (HASHREG): Deleted. ! 12860: ! 12861: * tm-i386mach.h: New file. ! 12862: * configure (i386-mach): Use that. ! 12863: ! 12864: * tm-i386isc.h: New file, copied from 1.40. ! 12865: ! 12866: * i386.md (jump, indirect_jump, tablejump, return): ! 12867: Use ASM_OUTPUT_ALIGN_CODE. ! 12868: * tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_LOOP_ALIGN): ! 12869: Override the usual definition. ! 12870: ! 12871: * rtl.h (FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE): Fix typo. ! 12872: ! 12873: Thu Jul 25 16:25:52 1991 Tom Wood (wood at dg-rtp.dg.com) ! 12874: ! 12875: * out-m88k.c (legitimize_address): Note use of addressing base. ! 12876: (m88k_layout_frame): Establish PIC addressing base as needed. ! 12877: ! 12878: * tm-m88kdgux.h (GPLUSPLUS_INCLUDE_DIR): Specify. ! 12879: ! 12880: Thu Jul 25 07:54:36 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 12881: ! 12882: * rtl.h (FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE): Defined. ! 12883: ! 12884: * integrate.c (expand_inline_function): Propagate the value of ! 12885: FUNCTION_FLAGS_USES_PIC_OFFSET_TABLE. ! 12886: ! 12887: * function.h (struct function): Add new field USES_PIC_OFFSET_TABLE ! 12888: to structure. Leave it to md files to initialize this field. ! 12889: * expr.h (current_function_uses_pic_offset_table): New declaration. ! 12890: * function.c ({save,restore}_tree_status): Save and restore ! 12891: CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE to/from this slot. ! 12892: * out-sparc.c (legitimize_pic_address): Set ! 12893: CURRENT_FUNCTION_USES_PIC_OFFSET_TABLE when appropriate. ! 12894: (finalize_pic): If the current function does not use the PIC offset ! 12895: table, there's no need to emit the PIC prologue. ! 12896: ! 12897: Wed Jul 24 13:54:41 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12898: ! 12899: * tm-m68k.h (NOTICE_UPDATE_CC): ! 12900: Calls clear status even if value in address reg. ! 12901: ! 12902: * tm-i386gas.h, tm-i386vgas.h (ASM_OUTPUT_ALIGN_CODE): Align with NOPs. ! 12903: ! 12904: * i386.md (andsi3): Don't use movzbl if op1 can't support it. ! 12905: ! 12906: Wed Jul 24 07:47:59 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 12907: ! 12908: * cplus-decl.c (finish_decl): Don't build a cleanup for an variable ! 12909: that is TREE_EXTERNAL. ! 12910: ! 12911: Tue Jul 23 20:48:23 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 12912: ! 12913: * make-mips: Delete rules for saber C. ! 12914: * Makefile.in (STAGESTUFF, gnulib2.ready): Undo last change. ! 12915: ! 12916: * tm-vax.h (LIB_SPEC): Supply missing close braces. ! 12917: ! 12918: Tue Jul 23 14:03:10 1991 Michael Meissner (meissner at osf.org) ! 12919: ! 12920: * protoize.c (toplevel): If FULL_PROTOTYPES is defined, assume that ! 12921: the system provides full prototypes, and include stdlib.h and ! 12922: unistd.h. ! 12923: (toplevel): If _POSIX_SOURCE is defined, wait takes a pointer to an ! 12924: int, even if the system is otherwise BSD. ! 12925: (toplevel): If NO_CONST_IN_SYSCALL and __STDC__ is defined, assume ! 12926: the system takes char *'s instead of const char *'s. ! 12927: (process_aux_info_file, edit_file): Always pass 3 arguments to open, ! 12928: to allow the NO_CONST_IN_SYSCALL macro to properly cast the ! 12929: arguments. ! 12930: ! 12931: * make-decrose (ALL): Make sure Makefile is rebuilt if either ! 12932: Makefile.in or make-decrose changes. ! 12933: (BUILD, SYSTEM_INCLUDES, LDFLAGS): Add BUILD variable to retarget ! 12934: which build is used. ! 12935: (CPP_ABORT): Don't define abort=fancy_abort here, do it in ! 12936: tm-mips.h. ! 12937: (INSTALL): Use installbsd program, since install uses System V ! 12938: semantics on OSF/1. ! 12939: (LANGUAGES): Rename collect-osf to collect. ! 12940: (CFLAGS, XCFLAGS): Make CFLAGS use standard args and use XCFLAGS to ! 12941: add additional arguments. ! 12942: (libdir, bindir, mandir): Define to current install values. ! 12943: (cplus-lex.o): Work around problems with 1.39 bootstrap compiler ! 12944: producing bad stabs for certain inlines. ! 12945: (osf-main.c): Add a simple G++ constructor/destructor to gnulib. ! 12946: ! 12947: * make-mips (ALL): Make Makefile depend on Makefile.in and ! 12948: make-mips. ! 12949: (CFLAGS, XCFLAGS): Make CFLAGS use standard args and use XCFLAGS to ! 12950: add additional arguments. ! 12951: (CC): Add -Wf,-XNg500 switch to compile with due to the MIPS ! 12952: compiler having fixed size tables. ! 12953: (SABER_*): Add rules to run saber-C. ! 12954: ! 12955: * mips.md (movsi_ulw): Allow unaligned register->register moves, ! 12956: which is caused by the optimizer, and generate the normal reg move ! 12957: code. Also, turn loads from the stack into normal moves. ! 12958: (movsi_usw): Turn stores into the stack into normal moves. ! 12959: (call, call_value): Turn into a define_expand which takes three ! 12960: arguments, to make Saber happier. ! 12961: ! 12962: * tm-mips.h (abort macro): Define abort to be saber_stop if running ! 12963: under Saber C. ! 12964: (__PTR_TO_INT, __INT_TO_PTR): Define as casts if running on a MIPS ! 12965: machine instead of with subtraction, in an attempt to quiet Saber C. ! 12966: (ASM_MODIFY_SPEC): Run mips-tfile after the assembler, needs ! 12967: corresponding gcc.c change to enable. ! 12968: ! 12969: * tm-decrose.h (ASM_SPEC): Pass -v switch to gas as well as mips ! 12970: assembler. ! 12971: (ASM_MODIFY_SPEC): Run mips-tfile if -mmips-as. ! 12972: (LINK_SPEC): Pass -v switch to linker. ! 12973: (LIB_SPEC): Redefine as just -lc. ! 12974: (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Undefine, use standard ! 12975: libdir, bindir, and mandir in Makefile now. ! 12976: (FULL_PROTOTYPES, NO_CONST_IN_SYSCALL): Define to get protoize ! 12977: to compile cleanly. ! 12978: ! 12979: * osf-main.c (new file): Provide simple constructor, destructor ! 12980: capability to be linked into gnulib. ! 12981: ! 12982: * collect-osf.c (various): General rewrite to improve speed and ! 12983: portability. ! 12984: ! 12985: * Makefile.in (CPLUS_OBJS): If CPLUS_INPUT is defined to be ! 12986: cplus-input.o, compile it separately to work around problems with ! 12987: bootstraping when it is included in cplus-lex.c. ! 12988: (STAGESTUFF): Use $(LANGUAGES) instead of hard coded list of ! 12989: languages, so make-xxx file can override, and provide others. ! 12990: (gnulib2.ready): Make gnulib2 depend on all LANGUAGES targets, so ! 12991: that if a target needs something else built, such as mips-tfile, it ! 12992: will be. ! 12993: (mostlyclean): Add missing -f to rm. ! 12994: (install-dir): Use test to see if the directory exists before trying ! 12995: to create it, and fail if the mkdir fails. ! 12996: (install-headers): ditto. ! 12997: (stage?, risky-stage?): ditto. ! 12998: (install-cross): Install collect and mips-tfile if they are present. ! 12999: ! 13000: * mips-tfile.c (toplevel, main): Add -I file option, which renames ! 13001: the original output file to the given file. ! 13002: ! 13003: * cplus-lex.c (toplevel): Include <assert.h> instead of "assert.h" ! 13004: in order to avoid problems when including cplus-input.c, which also ! 13005: uses <assert.h>. ! 13006: ! 13007: * cplus-pt.c (toplevel): Move include of config.h before obstack.h ! 13008: in case config.h defines some macros obstack.h uses such as ! 13009: __PTR_TO_INT. ! 13010: ! 13011: Tue Jul 23 13:15:43 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 13012: ! 13013: * xm-i386.h, xm-i860.h, xm-spur.h, xm-tahoe.h: Use __builtin_alloca. ! 13014: ! 13015: Tue Jul 23 12:26:01 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 13016: ! 13017: * function.c (instantiate_virtual_regs_1): Change dubious code that ! 13018: used to assign NEW to XEXP (x, 1) regardless of whether ! 13019: validate_change accepted it to instead set XEXP (x, 0) back to OLD. ! 13020: I.e., if the rtx is out of range and OBJECT is NULL, don't make any ! 13021: change at all. ! 13022: ! 13023: * out-sparc.c (compute_frame_size): If a function has any ! 13024: stack-local objects, it's frame size is non-zero and space must be ! 13025: reserved for the register window. ! 13026: ! 13027: * loop.c (loop_optimize): Use get_max_uid to compute max_uid_for_loop. ! 13028: ! 13029: * fold-const.c (size_int): Extend SIZE_TABLE's range from ! 13030: 0..HOST_BITS_PER_INT-1 to 0..2*HOST_BITS_PER_INT. ! 13031: ! 13032: * integrate.c (expand_inline_function): Add minor efficiency ! 13033: hack to not free all the temp slots as parameters are passed ! 13034: from "caller" to "callee". ! 13035: ! 13036: * integrate.c (expand_inline_function): If the inline function ! 13037: returns its value via a structure_value_addr, we must prepare for ! 13038: this to take place, even if the value is ignored by the caller. ! 13039: ! 13040: * tm-decstatn.h (SIZE_TYPE): Define this to be "unsigned int". ! 13041: ! 13042: * emit-rtl.c (try_split): If `split_insns' actually returns a SEQ ! 13043: which is isomorphic to PAT, return TRIAL. ! 13044: ! 13045: * out-sparc.c (eligible_for_epilogue_delay): FP register moves are ! 13046: only eligible for leaf-function epilogue delay slots. ! 13047: ! 13048: Tue Jul 23 11:52:50 1991 Michael Meissner (meissner at geech.gnu.ai.mit.edu) ! 13049: ! 13050: * dbxout.c (dbxout_symbol): Correct typo in getting static member ! 13051: names. The problem is DECL_ASSEMBLER_NAME returns a tree, and not a ! 13052: char *. ! 13053: ! 13054: Tue Jul 23 07:10:41 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 13055: ! 13056: * varasm.c (immed_double_const): Use CONST_INT if MODE fits within ! 13057: HOST_BITS_PER_INT, not BITS_PER_WORD. ! 13058: ! 13059: Mon Jul 22 21:37:03 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 13060: ! 13061: * fold-const.c (fold): Always preserve type after using const_binop. ! 13062: ! 13063: Mon Jul 22 18:34:55 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 13064: ! 13065: * reload1.c (reload): Fix typo in condition for reg_equiv_address ! 13066: being set from reg_equiv_memory_loc; had X instead of XEXP (X, 0). ! 13067: ! 13068: Mon Jul 22 15:25:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 13069: ! 13070: * gcc.c (process_command): -xnone turns off any -x option. ! 13071: ! 13072: * tree.c (copy_chain): Deleted. ! 13073: * integrate.c (copy_decl_tree): Use copy_list and copy_node. ! 13074: ! 13075: Mon Jul 22 11:35:47 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 13076: ! 13077: * tree.c, tree.h: Fix typos in Jul 22 merge. ! 13078: ! 13079: Mon Jul 22 08:51:47 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 13080: ! 13081: * jump.c (thread_jumps): Don't set CHANGED if the jump's label isn't ! 13082: changing. ! 13083: ! 13084: Mon Jul 22 02:37:23 1991 Michael Tiemann (tiemann at pogo.gnu.ai.mit.edu) ! 13085: ! 13086: * version.c: Bumped to 1.94 because of significant changes to ! 13087: cplus-* files. ! 13088: ! 13089: Sun Jul 21 18:45:57 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 13090: ! 13091: * toplev.c (rest_of_compilation): ! 13092: Save and restore DECL_INITIAL if we use save_for_inline_copying. ! 13093: * integrate.c (save_for_inline_copying): Really copy DECL_INITIAL. ! 13094: Calling integrate_decl_tree doesn't do it; deleted that call. ! 13095: (copy_decl_tree): New function. ! 13096: ! 13097: * integrate.c (integrate_decl_tree): Renamed from copy_decl_tree. ! 13098: (integrate_parm_decls): Renamed from copy_parm_decls. ! 13099: ! 13100: * tree.c (copy_chain): New function. ! 13101: ! 13102: Sun Jul 21 06:43:23 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 13103: ! 13104: * i386.md (tstsi): Add comment noting potential -m486 enhancement. ! 13105: (SImode push): With -m486, don't push from MEM. ! 13106: (addsi3): Don't use lea for three operand add if -m486. ! 13107: (ashlsi3): Don't use lea for shift of 1 if -m486. ! 13108: (zero_extendhisi2,zero_extendqihi2,zero_extendqisi2): If dest is ! 13109: %eax, or if -m486, AND is faster than MOVZX. ! 13110: ! 13111: Sun Jul 21 06:27:33 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) ! 13112: ! 13113: * expmed.c (store_fixed_bit_field): Pass actual bit position (including ! 13114: offset) to get_best_mode; also limit mode size to BITS_PER_WORD. ! 13115: Use failure of get_best_mode to indicate that field spans word ! 13116: boundary. ! 13117: Pass actual bit position to store_split_bit_field. ! 13118: (store_split_bit_field): Accept actual bit position, hence handing ! 13119: bitpos > BITS_PER_WORD. ! 13120: Abort if BITPOS and BITSIZE don't cross exactly one word boundary. ! 13121: Pass offset to store_fixed_bit_field; if register, use operand_subword; ! 13122: else adjust offset for second word. ! 13123: (extract_{fixed,split}_bit_field): Likewise. ! 13124: ! 13125: Sun Jul 21 06:11:55 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 13126: ! 13127: * All cplus-* files: DECL_VIRTUAL_P is no longer applied to ! 13128: FUNCTION_DECLs. Instead, to test if a function is virtual or not, ! 13129: it suffices to test whether its DECL_VINDEX is non-NULL. We use ! 13130: ERROR_MARK_NODE as the placeholder for a FUNCTION_DECL we know will ! 13131: be virtual, but for which we don't yet know the actual index. ! 13132: ! 13133: * cplus-decl.c (define_function): Don't set up DECL_ASSEMBLER_NAME ! 13134: until after having the chance to call through PFN. Since `pushdecl' ! 13135: now keys off of DECL_ASSEMBLER_NAME, we don't want to create ! 13136: inadvertent aliases between builtin and library functions. ! 13137: ! 13138: * cplus-typeck.c (build_modify_expr): We don't need to build a ! 13139: SAVE_EXPR for a WITH_CLEANUP_EXPR. ! 13140: (unary_complex_lvalue): For good measure, know how to deal with a ! 13141: WITH_CLEANUP_EXPR inside a SAVE_EXPR. ! 13142: ! 13143: * cplus-pt.c (uses_template_parms): Add handler for ARRAY_TYPE. ! 13144: ! 13145: * cplus-method.c (do_inline_function_hair): Use TYPE_METHODS instead ! 13146: of CLASSTYPE_METHOD_VEC for traversing all methods when looking for ! 13147: inline functions. ! 13148: ! 13149: * cplus-class.c (finish_struct_methods): Fix fencepost error if ! 13150: there were no member functions except for ctors/dtors. ! 13151: ! 13152: Sun Jul 21 06:19:01 1991 James Van Artsdalen (james at bigtex.cactus.org) ! 13153: ! 13154: * tree.h, output.h (current_function_calls_longjmp): New variable. ! 13155: * function.c (top level): Define it. ! 13156: (push_function_context): Save it. ! 13157: (pop_function_context): Restore it. ! 13158: (init_function_start): Initialize it. ! 13159: ! 13160: * calls.c (expand_call): Set current_function_calls_longjmp if ! 13161: this call is to `longjmp'. ! 13162: ! 13163: * flow.c, global-alloc.c: Include output.h so that ! 13164: FRAME_POINTER_REQUIRED can use current_function_calls_*. ! 13165: * Makefile.in (flow.o,global-alloc.o): Includes output.h. ! 13166: ! 13167: * rtl.h (FUNCTION_FLAGS_CALLS_LONGJMP): New macro. ! 13168: ! 13169: * integrate.c (initialize_for_inline): Record ! 13170: current_function_calls_lonjmp in `function_flags'. ! 13171: (output_inline_function): Set current_function_calls_longjmp if ! 13172: the inline code calls longjmp. ! 13173: ! 13174: * function.h (struct function): New field `calls_longjmp'. ! 13175: ! 13176: * out-i386.c (simple_386_epilogue): Add function description. ! 13177: Return 0 if NON_SAVING_SETJMP && `setjmp' is called in function. ! 13178: ! 13179: * tm-i386v.h (NON_SAVING_SETJMP): New macro. ! 13180: (FRAME_POINTER_REQUIRED): New macro. ! 13181: ! 13182: Sat Jul 20 12:25:56 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) ! 13183: ! 13184: * tm-m88k.h (OPTIMIZATION_OPTIONS): Don't change flag_signed_bitfields. ! 13185: ! 13186: * cccp.c (include_defaults) Use LOCAL_INCLUDE_DIR macro instead ! 13187: of "/usr/local/include". Provide default definition. ! 13188: ! 13189: * cccp.c (include_defaults) Added INCLUDE_DEFAULTS macro to ! 13190: provide complete control over default include directories. ! 13191: Delete the special case for VMS. ! 13192: * xm-vms.h (INCLUDE_DEFAULTS): Defined. ! 13193: ! 13194: * proto-man: Renamed from proto-unproto.1. ! 13195: ! 13196: * final.c (final_scan_insn): Do ASM_OUTPUT_LOOP_ALIGN only for real loop. ! 13197: ! 13198: Sat Jul 20 05:34:13 1991 Michael Tiemann (tiemann at cygint.cygnus.com) ! 13199: ! 13200: * tree.h (tree_type): Use the MAXVAL slot for TYPE_METHODS. ! 13201: * cplus-class.c (finish_struct): Methods are now chained with ! 13202: TREE_CHAIN and placed in the TYPE_METHODS of their _TYPE node. ! 13203: * cplus-dbxout.c (dbxout_type_methods): Use this fact, instead of ! 13204: using more C++-specific knowledge. ! 13205: ! 13206: * cplus-decl.c (init_decl_processing): Variable ! 13207: `const_ptr_type_node' was not being initialized. Same with ! 13208: `const_string_type_node'. ! 13209: ! 13210: * tree.h (DECL_PRINT_NAME): Marked for death. ! 13211: (DECL_ASSEMBLER_NAME): Changed from a char* to a tree node. ! 13212: All front-end files changed as necessary. ! 13213: ! 13214: * cplus-tree.h (DECL_ORIGINAL_NAME): Deleted. Now we use ! 13215: DECL_NAME. ! 13216: (DECL_NAME): No longer means the mangled name. Now we use ! 13217: DECL_ASSEMBLER_NAME for that purpose. ! 13218: All cplus-* files changed as necessary. ! 13219: ! 13220: * cplus-tree.c (lang_printable_name): Use a ring-buffer to hold ! 13221: printable names instead of DECL_PRINT_NAME slot of a _DECL node. ! 13222: ! 13223: * collect2.c: #define COLLECT, and let config.h provide definition ! 13224: of macros. ! 13225: ! 13226: See file ChangeLog.3. ! 13227: ! 13228: Local Variables: ! 13229: mode: indented-text ! 13230: left-margin: 8 ! 13231: fill-column: 76 ! 13232: version-control: never ! 13233: End:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.