|
|
1.1.1.18! root 1: Sun Dec 16 18:10:20 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 2: ! 3: * tm-i386vgas.h (ASM_OUTPUT_LABELREF): Do prepend `_' again. ! 4: ! 5: * tm-sun3.h (ASM_OUTPUT_FLOAT*, ASM_OUTPUT_DOUBLE*): ! 6: Use double_is_minus_zero to test for -0.0. ! 7: * out-m68k.c (double_is_minus_zero): New function. ! 8: ! 9: Fri Dec 14 00:57:30 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 10: ! 11: * tm-sun3.h (ASM_OUTPUT_FLOAT*, ASM_OUTPUT_DOUBLE*): ! 12: Use `iszero' and `signbit' to check for -0.0. ! 13: ! 14: * recog.c (offsettable_address_p): Use OFFSETTABLE_ADDRESS_P. ! 15: * tm-i860.h (OFFSETTABLE_ADDRESS_P): Define this. ! 16: ! 17: Wed Dec 12 16:11:05 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 18: ! 19: * gvarargs.h: Avoid duplicate inclusion using _VARARGS_H. ! 20: ! 21: * c-decl.c (grokdeclarator): Always promote short even if -mshort. ! 22: ! 23: Tue Dec 11 23:12:51 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 24: ! 25: * expr.c (convert_move): Do compare before slt. ! 26: Handle destination not valid in slt. ! 27: ! 28: Mon Dec 10 00:27:04 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 29: ! 30: * out-sparc.c (output_fp_move_double): Bugs in last change: ! 31: Use adj_offsettable_operand when possible. ! 32: Choose a reg other than fp to increment. ! 33: ! 34: Sun Dec 9 23:21:05 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 35: ! 36: * cccp.c (collect_expansion): Don't check for /* */ concat here. ! 37: (macroexpand): Always use raw arg if traditional. ! 38: ! 39: Wed Dec 5 13:52:16 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 40: ! 41: * optabs.c (expand_binop): Handle insn_before == 0. ! 42: ! 43: * Makefile (includes): Export LIB. ! 44: ! 45: Tue Dec 4 21:27:00 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 46: ! 47: * loop.c (consec_sets_giv): Give proper type to force, force2. ! 48: ! 49: Mon Dec 3 15:57:19 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 50: ! 51: * cccp.c (special_symbol): Use time_t as type of t. ! 52: ! 53: Sun Dec 2 16:43:31 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 54: ! 55: * config.gcc (tower): New alternative. ! 56: * tm-tower.h, tm-tower-as.h, xm-tower.h: New files. ! 57: ! 58: * stddef.h (ptrdiff_t): Prevent redefinition, as with size_t. ! 59: (size_t): Define all the macros used to prevent redefinition. ! 60: ! 61: Fri Nov 30 14:25:49 1990 Michael Meissner (meissner at osf.org) ! 62: ! 63: * out-mips.c (init_cumulative_args, function_arg_advance, ! 64: function_arg, function_arg_partial_nregs): Type CUMULATIVE_ARGS is ! 65: now a pointer to a structure instead of a structure. New field ! 66: arg_words tracks number of words consumed so far and arg_number just ! 67: tracks physical numbers of arguments. Make four single precision ! 68: floating point arguments passed via prototypes use $f12, $f14, $6, ! 69: and $7, just like mips cc. ! 70: ! 71: * tm-mips.h (INIT_CUMULATIVE_ARGS, FUNCTION_ARG_ADVANCE, ! 72: FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS): Type CUMULATIVE_ARGS is ! 73: now a pointer to a structure instead of a structure, and storage is ! 74: allocated via alloca. ! 75: ! 76: Thu Nov 29 22:03:57 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 77: ! 78: * tm-vax.h (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): New macros. ! 79: ! 80: Tue Nov 27 12:03:36 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 81: ! 82: * tm-hp9k320.h (STANDARD_STARTFILE_PREFIX): Don't alter if already set. ! 83: ! 84: Tue Nov 27 12:28:45 1990 Michael Meissner (meissner at osf.org) ! 85: ! 86: * out-mips.c (function_arg, function_arg_advance): Pass single ! 87: precision floating point numbers to prototyped functions by assuming ! 88: only one word is passed rather than two unless the argument is ! 89: passed in a floating point register. This behavior matches the MIPS ! 90: C compiler. ! 91: ! 92: * tm-mips.h (CPP_SPEC): Add -D_MIPSEB -D_SYSTYPE_SYSV -D_LANGUAGE_C ! 93: to SGI's CPP_SPEC. ! 94: (MIPS_DEBUGGING_INFO): New macro. ! 95: (PUT_SDB_*): Write debug information to the temporary file that ! 96: buffers the text section, instead of using the current output file. ! 97: ! 98: * tm-iris.h (CPP_PREDEFINES): Move -D_LANGUAGE_C from CPP_PREDEFINES ! 99: to CPP_SPEC since it's in the compiler name space, -ansi should not ! 100: disable it. ! 101: ! 102: Mon Nov 26 18:37:39 1990 Michael Meissner (meissner at osf.org) ! 103: ! 104: * mips.md (stack compressor peephole): Remove check against ! 105: stack_args_preallocated, since nobody sets it. ! 106: (anonymous add/subtract patterns): Explicitly use the assembler ! 107: temporary register if adding/subtracting a constant that won't fit ! 108: in 16 bits -- Silicon Graphics asm complains. ! 109: (fix_truncdfsi2, fix_truncsfsi2) Rewrite so that optimization of ! 110: repeated conversions of the same number do not generate an insn not ! 111: found error message (the generated insn was optimized to a gp->gp ! 112: register move inside of a parallel with a clobber of a hard fp ! 113: register). The new insns describe the machine more faithfully, and ! 114: allow things like clobbering the fp register containing the value, ! 115: if it is the last use rather than using a specific hard register. ! 116: (fixuns_truncsfsi2, fixuns_truncdfsi2): New patterns to ! 117: automatically convert {single,double} precision to unsigned. ! 118: (anonymous move df/sf patterns): Put the operands to mfc1 in the ! 119: order the assembler likes them (always put gp reg first, even if ! 120: moving from gp register to fp register). ! 121: (wild_insn): Remove bogus insn which is commented out. ! 122: (jump): Remove TARGET_PIC code for now. ! 123: ! 124: * out-mips.c (toplevel, function_epilogue, mips_asm_file_end, ! 125: mips_output_external): If optimizing for the global pointer, emit ! 126: all code after processing the entire program, rather than emitting ! 127: the code at the end of the function. Also, properly sized .extern's ! 128: are emitted for variables that are not defined in the current ! 129: module. This is because the MIPS assembler uses single pass ! 130: semantics, and will emit a 2 instruction sequence for externals it ! 131: doesn't know anything about, and GCC emits data definitions at the ! 132: end of the program. You can't just emit a properly sized .extern ! 133: either, because the assembler will complain if it sees an .extern ! 134: followed by a definition. The ADDRESSABLE bit in the identifier ! 135: node for the external name is used to indicate whether a definition ! 136: for the name exists or not. This replaces code which told the ! 137: assembler to preprocess the source, and include the same source ! 138: twice. ! 139: (sym_lineno): Add a new variable to keep trace of labels emitted ! 140: after each .loc for Silicon Graphics. ! 141: (function_prologue, function_epilogue, toplevel): Explicitly use ! 142: temporary registers for stack frames > 32K, since the Silicon ! 143: Graphics system doesn't automatically use $at if the value overflows, ! 144: also save an instruction or two for large stack frames. ! 145: (init_cumulative_args): Fix to work with the method types G++ ! 146: produces as well as normal function types. ! 147: (compare_collect): In debug code, print the mode symbolically. ! 148: (trace): Take two additional arguments which are passed to fprintf. ! 149: (override_options): Remove unsupported -mpic code. ! 150: ! 151: * tm-decstatn.h (toplevel): Add a GNU copyright. ! 152: ! 153: * tm-iris.h (toplevel): Add a GNU copyright. ! 154: (CPP_SPEC): If -ansi, define __EXTENSIONS__. ! 155: (SGI_TARGET): Define this for other mips files. ! 156: (LABEL_AFTER_LOC): New macro to put a label after .loc. ! 157: (SET_FILE_NUMBER): New macro to force .file/.loc file # to be 1. ! 158: (ADJUST_STACK_SIZE): Don't deal with variable arguments. ! 159: ! 160: * tm-mips.h (*_SPEC): Add #ifdef's so other files can define their ! 161: own, without #undef. ! 162: (LINK_SPEC, ASM_SPEC): Pass -EB/-EL to assembler, linker so cross ! 163: compilers can be made from little endian mips to big endian mips and ! 164: vica versa. Generate an error message if the wrong flag is used. ! 165: Do not pass -EB/-EL to Silicon Graphics assembler/linker. ! 166: (CPP_SPEC, MACHINE_NAME): Add Silicon Graphics defaults. ! 167: (MIPS_TEMP?_REGNUM): New macros for temporary registers used in the ! 168: prologue and epilogue if the stack frame is > 32K. ! 169: (ASM_OUTPUT_LABEL): If optimizing the global pointer, set the ! 170: addressable bit in the indentifier node, so that mips_asm_file_end ! 171: and mips_output_external can figure out if a particular identifier ! 172: really is external to the compiliation unit. ! 173: (ASM_OUTPUT_COMMON): Same change as ASM_OUTPUT_LABEL. ! 174: (ASM_OUTPUT_LOCAL): Same change as ASM_OUTPUT_LABEL. ! 175: (MACHINE_TYPE): Key off of OSF_OS and SGI_TARGET macros. ! 176: (TARGET_DEFAULT): For OSF/1 make -mgas and -G 0 default. ! 177: (STACK_POINTER_OFFSET): Define as 0. ! 178: (external variables): Declare flag_omit_frame_pointer, ! 179: sdb_label_count, mips_section_threshold, and sym_lineno. ! 180: (STACK_ARGS_ADJUST): Protect with an #ifndef. ! 181: (FUNCTION_PROFILER): Talk to the MIPS profiling routines the same ! 182: way the MIPS compiler does. ! 183: (INDIRECTABLE_ADDRESS_P): Allow disp+reg in addition to reg+disp. ! 184: (ASM_FILE_START): If optimizing for the global pointer, create a ! 185: temporay stream to hold text until program ends. Put gcc_compiled. ! 186: in the data section. ! 187: (ASM_DECLARE_FUNCTION_NAME): Switch file streams used to the text ! 188: stream if optimizing for the global pointer. ! 189: (ASM_FILE_END): New macro to invoke mips_asm_file_end function. ! 190: (ASM_OUTPUT_SOURCE_LINE): Invoke macro LABEL_AFTER_LOC after .loc, ! 191: so that Silicon Graphics can put out a label after each .loc. ! 192: (ASM_OUTPUT_SOURCE_FILENAME): Invoke macro SET_FILE_NUMBER to set ! 193: the file number, so Silicon Graphics can hardwire this to 1. ! 194: (LABEL_AFTER_LOC, SET_FILE_NUMBER): Provide defaults if not Silicon ! 195: Graphics. ! 196: (ASM_OUTPUT_ASCII): Assign parameter to local variable, and remove ! 197: special \a, \v support. ! 198: (ASM_OUTPUT_IDENT): Dump #ident directives into .data. ! 199: ! 200: Mon Nov 26 16:50:57 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 201: ! 202: * cccp.c (main): Handle -w. ! 203: (warning): Do nothing if -w. ! 204: * gcc.c (compilers): Pass -w to cpp. ! 205: ! 206: Sun Nov 25 16:37:10 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 207: ! 208: * expr.c (emit_push_insn): Don't pad at all if space already allocated ! 209: and padding is upward. ! 210: ! 211: * gcc.c (do_spec_1): Handle %W{...}. ! 212: (compilers): Use %W{...} when passing -o option. ! 213: ! 214: Sat Nov 24 16:50:11 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 215: ! 216: * va-mips.h (va_list): Don't typedef if _VA_LIST_ is defined. ! 217: ! 218: Wed Nov 21 15:57:48 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 219: ! 220: * expr.c (expand_expr, expand_assignment): ! 221: Check for TREE_THIS_VOLATILE in ARRAY_REF. ! 222: expand_assignment failed to handle volstruct at all. ! 223: ! 224: Tue Nov 20 17:47:22 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 225: ! 226: * out-sparc.c (output_fp_move_double): Handle reg+reg address ! 227: when moving each word separately. ! 228: ! 229: * ns32k.md (addsi3): Don't use `addr' for very large displacements. ! 230: ! 231: * recog.c (address_operand): Don't allow volatile mem as indirect. ! 232: ! 233: Mon Nov 19 14:55:44 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 234: ! 235: * out-sparc.c (output_fp_move_double): Don't assume arrays are aligned. ! 236: ! 237: Sun Nov 18 19:21:10 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 238: ! 239: * expr.c (emit_push_insn): set extra to 0 once the padding is done, ! 240: to avoid padding twice. ! 241: ! 242: Thu Nov 15 21:56:07 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 243: ! 244: * math-68881.h (HUGE_VAL): Add extra braces on Sun. ! 245: ! 246: Wed Nov 14 14:30:29 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 247: ! 248: * c-decl.c (grokdeclarator): Don't ignore prototype if -traditional. ! 249: ! 250: Tue Nov 13 18:16:47 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 251: ! 252: * out-i860.c (output_block_move): Move .Lm%3 down one insn. ! 253: ! 254: Wed Nov 7 00:01:18 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 255: ! 256: * c-parse.y (component_decl_list): Allow missing semi at end. ! 257: ! 258: Tue Nov 6 20:49:57 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 259: ! 260: * expr.c (expand_builtin): For ffs, use mode of operand. ! 261: ! 262: * xm-iris.h (alloca): Don't define it. ! 263: * tm-iris.h (CPP_SPEC): Define variant symbols starting with _. ! 264: Define __EXTENSIONS__. ! 265: ! 266: * config.gcc (editing .gdbinit): Search current dir, not just srcdir. ! 267: ! 268: Sun Nov 4 12:55:03 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 269: ! 270: * i386.md (extend*): Take out last change. ! 271: Unix assembler rejects movsx... ! 272: ! 273: * expr.c (expand_expr): Special case for ignored volatile ! 274: failed to return. ! 275: ! 276: Fri Nov 2 15:30:48 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 277: ! 278: * va-i860.h (_VA_LIST): New macro avoids duplicate typedefs. ! 279: ! 280: * gnulib2.c (__builtin_saveregs): Add version for i860. ! 281: ! 282: * out-i860.c (output_block_move): Rearrange the copy loop. ! 283: Now uses two labels and a more complicated lead-in. ! 284: ! 285: Thu Nov 1 18:15:11 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 286: ! 287: * config.gcc (sun3, etc.): Assume os4 as default for Sun 3 and Sun 4. ! 288: ! 289: * math-68881.h (HUGE_VAL): Alternate definition for Suns. ! 290: ! 291: * tm-i386v.h (STARTFILE_SPEC, LIB_SPEC): Handle -posix. ! 292: (CPP_SPEC): New macro. ! 293: (LIB_SPEC): Handle -shlib. ! 294: ! 295: Wed Oct 31 22:12:33 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 296: ! 297: * config.gcc (ultrix): New alternative. ! 298: ! 299: * i386.md (extend*): Change opcode to movsx. Was movs. ! 300: ! 301: Tue Oct 30 17:03:46 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 302: ! 303: * tm-aix386.h (ASM_FILE_START): Don't do .noopt or .optim. ! 304: ! 305: * cccp.c (make_definition): Convert newline to newline-newline. ! 306: ! 307: Mon Oct 29 11:43:46 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 308: ! 309: * fixincludes: Fix missing semi in rusers.h. ! 310: ! 311: Sun Oct 28 17:23:50 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 312: ! 313: * cccp.c (macarg1): Don't skip the char after */. ! 314: ! 315: * Makefile: Put an `else' in every shell `if'. ! 316: ! 317: * m68k.md (zero-extend QI): Use gen_rtx, not change_address. ! 318: ! 319: * Makefile (USER_H): List va-*.h explicitly. ! 320: (toplev.o): Depend on RTL_H. ! 321: (expr.o): Depend on typeclass.h. ! 322: (stamp-*): Depend on move-if-change. ! 323: (install): Depend on various header files and gcc.1. ! 324: (gcc.o): Depend on gvarargs.h and obstack.h. ! 325: ! 326: * i860.md (movsf): Handle moving CONST_DOUBLE to cpu reg. ! 327: ! 328: Fri Oct 26 11:16:03 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 329: ! 330: * Makefile (libg): Add else to the if. ! 331: ! 332: Thu Oct 25 21:17:05 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 333: ! 334: * integrate.c (access_parm_map): Handle refs to all words of DF reg. ! 335: ! 336: Wed Oct 24 13:50:13 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 337: ! 338: * c-typeck.c (build_array_ref): Use main variant for value type. ! 339: ! 340: * expr.c (expand_expr): For ARRAY_REF, preserve const and volatile. ! 341: ! 342: * cccp.c (macarg1): Skip the */ that ends a comment. ! 343: ! 344: * cccp.c (rescan): Use newline_fix testing for comments before #. ! 345: (handle_directive): Likewise, in comments before directive name. ! 346: (rescan): Process macro when terminated by comment. ! 347: Ignore backslash-newline in C++ comment. ! 348: ! 349: Tue Oct 23 20:35:13 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 350: ! 351: * cccp.c (collect_expansion): Remove newline from error message. ! 352: Error for ## at beginning or end of definition. ! 353: ! 354: * m68k.md (zero-extend QI): When pushing, store value at 1(sp). ! 355: ! 356: Mon Oct 22 13:07:31 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 357: ! 358: * cccp.c (rescan): In the loop that handles numbers, discard \newline. ! 359: ! 360: * cccp.c (S_ISREG): Fix typo: do use the argument. ! 361: ! 362: * xm-sparc.h (alloca.h): Don't include if alloca already defined. ! 363: ! 364: Sun Oct 21 16:28:04 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 365: ! 366: * reload.c (find_equiv_regs): Reject reg that overlaps goal. ! 367: ! 368: * expmed.c (extract_bit_field): For big fields, make sure ! 369: value really goes in the target. ! 370: ! 371: Fri Oct 19 13:21:25 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 372: ! 373: * fold-const.c (split_tree): Use NEGATE_EXPR to negate *conp. ! 374: ! 375: * expr.c (emit_push_insn): Allow const0_rtx for multi-word constant. ! 376: ! 377: Thu Oct 18 17:38:17 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 378: ! 379: * reload1.c (choose_reload_regs): Cast reg class used as index. ! 380: ! 381: Wed Oct 17 00:21:25 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 382: ! 383: * stmt.c (push_structure_value, pop_structure_value): New fns. ! 384: * expr.c (expand_call): Use them if structure value needed. ! 385: ! 386: * gcc.c (do_spec_1): Null-terminate error message. ! 387: ! 388: * sdbout.c (sdbout_symbol): Handle subreg as DECL_RTL. ! 389: This happens for vars from the parms of inline functions. ! 390: * dbxout.c (dbxout_symbol): Likewise. ! 391: ! 392: Tue Oct 16 13:22:05 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 393: ! 394: * expmed.c (extract_bit_field, store_bit_field): ! 395: Handle fields wider than a word. ! 396: Restrict special case for word-sized field to aligned words. ! 397: ! 398: * stddef.h (size_t): Also inhibit if _SIZE_T_. ! 399: ! 400: * cccp.c (macarg1): If traditional, let backslash quote always. ! 401: ! 402: * fixincludes (CTRL): Don't put quotes around a quote. ! 403: ! 404: Sun Oct 14 21:28:32 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 405: ! 406: * flow.c (life_analysis): No hard regs for any pseudos live at setjmp. ! 407: ! 408: * c-decl.c (duplicate_decls): Don't suppress warning for fn defn ! 409: after implicit declaration, if fn has already been defined. ! 410: ! 411: Thu Oct 11 13:15:36 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 412: ! 413: * expr.c (saveregs_value): New variable. ! 414: (init_expr): Init the variable. ! 415: (expand_builtin): Don't call __builtin_saveregs twice in one function. ! 416: ! 417: * va-*.h: Rename all structure fields to start with __. ! 418: * va-pyr.h: Rename variables also. ! 419: (va_start): Delete the unmatched {. ! 420: (va_end): Now a nop. ! 421: ! 422: Wed Oct 10 22:01:59 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 423: ! 424: * va-sparc.h (__va_ctl): Rename fields to start with __. ! 425: ! 426: Tue Oct 9 14:47:53 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 427: ! 428: * flow.c (propagate_block): Include NOTE at end of block in scan. ! 429: ! 430: * fixincludes: Fix missing semicolon in rstat.h. ! 431: ! 432: Mon Oct 8 13:09:40 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 433: ! 434: * loop.c (eliminate_biv): Handle mult_val < 0 by reversing compare. ! 435: ! 436: * cccp.c (main): Handle .S when removing suffix for deps output. ! 437: ! 438: Sun Oct 7 23:33:24 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 439: ! 440: * tm-i386v.h (STARTFILE_SPEC): Handle -p here. ! 441: (LIB_SPEC): Not here. ! 442: ! 443: Sun Sep 30 21:35:52 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 444: ! 445: * print-tree.c (print_node_brief): Declare i for printing REAL_CST. ! 446: ! 447: Sat Sep 29 18:40:08 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 448: ! 449: * fixincludes: For link pointing outside /usr/include, ! 450: use $x rather than $dest. ! 451: ! 452: Wed Sep 26 12:44:54 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 453: ! 454: * tm-mips-news.h: New file. ! 455: ! 456: * out-i860.c (output_size_for_block_move): Don't decrement. ! 457: (output_block_move): Decrement initial storing address instead. ! 458: ! 459: * c-parse.y (yylex): Always try unsigned int if `u' is written. ! 460: ! 461: * tm-seq386.h (LINK_SPEC): Define it. ! 462: ! 463: * c-typeck.c (build_unary_op): Don't let &* make an lvalue. ! 464: ! 465: Sun Sep 23 14:59:21 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 466: ! 467: * cccp.c (S_ISREG): Define it unless overridden. ! 468: (main, finclude): Use that. ! 469: ! 470: * reload1.c (reload): If insn after a function call uses the ! 471: function value, and that reg is spilled, and the insn might ! 472: use it for reloading, add an extra need. ! 473: (reload_as_need): Detect such insns for new arg to choose_reload_regs. ! 474: (choose_reload_regs): In that case, don't choose function value reg. ! 475: ! 476: * tm-convex1.h, tm-convex2.h (CPP_SPEC): Define __NO_INLINE_MATH. ! 477: ! 478: Sat Sep 22 14:01:00 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 479: ! 480: * tree.c (build_index_type): Don't hash variable-bound type. ! 481: ! 482: * tm-aix386.h (LIB_SPEC): Different library name for -p. Always -lc. ! 483: (LINK_SPEC): Don't pass -lg or -g. ! 484: (CPP_PREDEFINES): Define _I386 and _AIX; don't define unix. ! 485: (SDB_DEBUGGING_INFO): Define it. ! 486: (DBX_DEBUGGING_INFO): Undefine it. ! 487: (ASM_FILE_START): Output .noopt if not optimizing. ! 488: (PCC_BITFIELD_TYPE_MATTERS): Define it. ! 489: (FUNCTION_PROFILER): Add definition. ! 490: ! 491: Thu Sep 20 13:16:39 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 492: ! 493: * tm-hp9k320.h (PROFILE_BEFORE_PROLOGUE): Define it. ! 494: (FUNCTION_PROFILER): Don't redefine if not HPUX_ASM. ! 495: ! 496: Tue Sep 18 22:46:02 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 497: ! 498: * sdbout.c (sdbout_one_type): Don't output undefined structs, etc. ! 499: ! 500: Mon Sep 17 13:35:45 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 501: ! 502: * mips.md (movdf): Move words in opposite order if overlap. ! 503: ! 504: Sun Sep 16 16:27:29 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 505: ! 506: * toplev.c (rest_of_decl_compilation): Output TYPE_DECL here for sdb ! 507: only if top_level. ! 508: ! 509: * expr.c (expand_builtin): Error for __builtin_nextarg ! 510: if function definition doesn't have `...'. ! 511: ! 512: * c-typeck.c (build_conditional_expr): Don't skip arg promotion. ! 513: ! 514: Fri Sep 14 17:26:59 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 515: ! 516: * sdbout.c (plain_type_1): Save up array dims on the way out ! 517: in the reverse order. ! 518: (plain_type): Print the innermost ones, reversing them. ! 519: ! 520: Thu Sep 13 16:00:05 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 521: ! 522: * gstdarg.h: New name for stdarg.h. ! 523: * Makefile (install): Rename gstdarg.h while installing it. ! 524: ! 525: * fixincludes: Discard `.' from value of `files'. ! 526: ! 527: * sdbout.c (PUT_SDB_LAST_DIM): Get rid of SDB_DELIM. ! 528: (plain_type): Output accumulated array dims and size. ! 529: (plain_type_1): Eliminate arg NOSIZE. Save up dims and size. ! 530: Call self rather than plain_type for pointers and functions. ! 531: (sdbout_array_type, sdbout_array_depth): Functions deleted. ! 532: ! 533: Wed Sep 12 18:47:30 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 534: ! 535: * expmed.c (expand_divmod): Use divmod insn for divide if appro. ! 536: ! 537: Tue Sep 11 13:24:58 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 538: ! 539: * gnulib.c (_bb_init_func): Library member now named _bb. ! 540: ! 541: Mon Sep 10 13:07:39 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 542: ! 543: * sdbout.c (plain_type_1): New argument NOSIZE. Inhibits size output. ! 544: (sdbout_array_type): Call plain_type_1 directly; set NOSIZE. ! 545: ! 546: * sdbout.c (sdbout_array_type): New argument DEPTH. ! 547: Don't output more than SDB_MAX_DIM dimensions. ! 548: (sdbout_array_depth): New function. ! 549: (plain_type_1): Start DEPTH by calling sdbout_array_depth. ! 550: ! 551: Sun Sep 9 18:05:56 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 552: ! 553: * tm-mips.h (CPP_SPEC): Error for -EL and -EB. ! 554: ! 555: * sdbout.c (plain_type_1): Test KNOWN_TYPE_TAG with TREE_ASM_WRITTEN. ! 556: (sdbout_symbol): Call sdbout_one_type before the switch. ! 557: (sdbout_field_types): Look at targets of pointers. ! 558: (sdbout_one_type): Call sdbout_field_types. ! 559: ! 560: * stor-layout.c (layout_record): Update size_unit adding var to var. ! 561: ! 562: * tm-i386v4.h: New file. ! 563: ! 564: Fri Sep 7 13:10:24 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 565: ! 566: * cccp.c (STDC_VALUE): New macro, defaulting to 1. ! 567: (intialize_builtins): Use that. ! 568: ! 569: * print-tree.c (print_node): Correct first_rtl for SAVE_EXPR. ! 570: ! 571: * m68k.md (movqi): `st' does not set cc's. ! 572: ! 573: Wed Sep 5 16:18:04 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 574: ! 575: * Makefile (includes): Use proper directory. ! 576: ! 577: Tue Sep 4 13:01:37 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 578: ! 579: * c-decl.c (store_parm_decls): Let extra_warnings control ! 580: warnings about parms not declared. ! 581: ! 582: * local-alloc.c (block_alloc): Don't try to lower qty_birth ! 583: if reg_qty is negative. ! 584: ! 585: * flow.c (life_analysis): Move code to detect stack-adjust insns. ! 586: It was unreachable. ! 587: ! 588: * reload1.c (reload): Don't complete group with explicitly used reg. ! 589: ! 590: Mon Sep 3 14:37:41 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 591: ! 592: * Makefile (RANLIB): Don't specify the directory. ! 593: ! 594: * local-alloc.c (reg_classes_overlap_p): Cast enums to ints. ! 595: ! 596: Fri Aug 31 17:09:38 1990 Michael Meissner (meissner at osf.org) ! 597: ! 598: * mips.md (anonymous add insn before addsi3): Allow offsets from the ! 599: frame pointer to be >16 bits, just like the stack pointer. This is ! 600: to prevent insn's not found generated when optimizing programs that ! 601: have stack frames more than 32K, and the optimizer wants to load the ! 602: address of an array into a register, it does so by generating a PLUS ! 603: insn with the appropriate offset. This PLUS insn is never checked ! 604: to see if the machine can handle the offset. ! 605: (anonymous subtract insn before subsi3): same change as above. ! 606: (addsi3): Don't accept large constants with a !n constraint. Just ! 607: reject any large constants, the anonymous add pattern before addsi ! 608: will catch references to the stack and frame pointers. ! 609: (subsi3): Same change as addsi3. ! 610: ! 611: Sat Sep 1 16:14:31 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 612: ! 613: * expr.c (convert_move): Don't forget to set `target'. ! 614: ! 615: Fri Aug 31 14:37:36 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 616: ! 617: * sdbout.c (sdbout_begin_block): Delete excess arg to sdbout_block. ! 618: ! 619: Wed Aug 29 17:01:55 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 620: ! 621: * local-alloc.c (combine_regs): Don't combine regs if classes ! 622: fail to overlap usefully, if either reg says preferred or nothing. ! 623: (reg_classes_overlap_p): New function. ! 624: ! 625: Tue Aug 28 21:28:54 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 626: ! 627: * sdbout.c (plain_type_1): Output .dim X,Y...; for multi-dim array. ! 628: (sdbout_array_dim): New recursive subroutine. ! 629: (PUT_SDB_DIM): Macro eliminated. ! 630: (PUT_SDB_START_DIM, PUT_SDB_NEXT_DIM, PUT_SDB_LAST_DIM): New macros. ! 631: * tm-3b1.h: Override PUT_SDB_START_DIM. ! 632: ! 633: Sun Aug 26 21:28:20 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 634: ! 635: * cccp.c (make_definition): Eliminate any backslash-newline. ! 636: ! 637: Sat Aug 25 17:20:47 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 638: ! 639: * tm-att386.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): New macros. ! 640: (BSS_SECTION_ASM_OP): New macro. ! 641: (ASM_OUTPUT_LOCAL): Call bss_section, don't just print .bss. ! 642: ! 643: Fri Aug 24 17:16:28 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 644: ! 645: * cse.c (rtx_cost): Cost of MEM depends on number of words. ! 646: ! 647: * i860.md (movsf, movdf): Allow moving G to m in constraints. ! 648: * tm-i860.h (CONST_COSTS): Make SFmode constant cheaper. ! 649: ! 650: Thu Aug 23 14:19:20 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 651: ! 652: * c-typeck.c (digest_initializer): No pedantic warning for string ! 653: and array of unsigned char. ! 654: ! 655: * tree.c (get_identifier): Do id_clash_len stuff if length equals that. ! 656: ! 657: Wed Aug 22 15:06:11 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 658: ! 659: * loop.c (scan_loop): Don't use REG_EQUAL notes as invariants ! 660: unless they come with REG_RETVAL notes. ! 661: ! 662: Tue Aug 21 20:03:51 1990 Michael Meissner (meissner at osf.org) ! 663: ! 664: * Makefile (install): Add code to build libg.a if it doesn't exist ! 665: when installing GCC. ! 666: ! 667: * out-mips.c (toplevel): add external declaration for asm_out_file, ! 668: and 2 new FILE *'s (asm_out_data_file, asm_out_text_file) so we can ! 669: switch between two files when optimizing for the global pointer. ! 670: Also add a structure type to hold the linked list of externs that ! 671: GCC wishes to emit. ! 672: ! 673: Everything between the function prologue and epilogue are written to ! 674: a temporary file, which is written to the normal output file after ! 675: the entire program is processed. This is needed because the MIPS ! 676: assembler assumes that all externals should be referenced with a 2 ! 677: instruction sequence instead of the faster 1 instruction sequence ! 678: off of the GP, unless a proper .extern proceeds any use. We can't ! 679: emit the .extern because the assembler will complain if later there ! 680: is a definition for the variable, such as GCC puts out at the end of ! 681: the program. ! 682: ! 683: (compare_collect): print mode symbolically in debug code. ! 684: ! 685: (mips_output_external): Remove code which used the preprocessor to ! 686: handle the global pointer, and remember all externs in a linked list ! 687: for use at the end of the program. ! 688: ! 689: (mips_asm_file_end): If optimizing the global pointer, emit all ! 690: externals which don't have definitions as the appropriate sized ! 691: .extern, and then emit the code for functions that was written to a ! 692: temporary file, so that the code comes after the appropriate ! 693: definition or declaration. ! 694: ! 695: (function_epilogue): If optimizing for the global pointer, switch ! 696: the current output file to the data file after all of the epilogue ! 697: is written out. ! 698: ! 699: * tm-mips.h (ASM_SPEC): Duplicate ASM_SPEC into 2 #ifdef sections (one ! 700: for the little endian DECstation, and the other for everybody else ! 701: who uses the MIPS in a big endian mode), and pass the appropriate ! 702: -EL and -EB switches to the assembler. This allows building a cross ! 703: compiler for a different endian MIPS. ! 704: ! 705: (LINK_SPEC): Pass -EL and -EB to linker, just like ASM_SPEC. ! 706: ! 707: (MACHINE_TYPE): For DECstation, specify "Ultrix Dec Mips" instead of ! 708: just "Dec Mips". ! 709: ! 710: (FUNCTION_PROFILER): Call _mcount in the appropriate MIPS fashion. ! 711: ! 712: (ASM_FILE_START): If optimizing for the global pointer, open a ! 713: temporary file to write the code to (see out-mips.c above). ! 714: ! 715: (ASM_DECLARE_FUNCTION_NAME): If optimizing for the global pointer, ! 716: switch the current output file to asm_out_text_file. ! 717: ! 718: (ASM_OUTPUT_COMMON): Remove the old code which used the preprocessor ! 719: to optimize for the global pointer. ! 720: ! 721: Tue Aug 21 17:44:49 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 722: ! 723: * make-cc1.com: Compile and link version.c. ! 724: ! 725: * expr.c (convert_move): Handle expand_unop retval not same as target. ! 726: ! 727: * reload.c (find_reloads): For register letters, don't win if BLK. ! 728: ! 729: * flow.c (mark_set_1, mark_used_regs): Update reg_first_use. ! 730: (allocate_for_life_analysis): Allocate and clear it. ! 731: * local-alloc.c (block_alloc): Calculate INSN_MAP. ! 732: Get first use of each reg from reg_first_use. ! 733: ! 734: * tm-vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Distinguish C from C++. ! 735: (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Add a const data section. ! 736: (ASM_OUTPUT_EXTERNAL): Use that section. ! 737: (SELECT_SECTION): Go to that section when appropriate. ! 738: ! 739: Mon Aug 20 13:00:53 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 740: ! 741: * gcc.c (process_command): Split -oFOO into two arguments. ! 742: ! 743: * out-mips.c, tm-mips.h: Changes by Meissner. ! 744: ! 745: * stmt.c (expand_asm_operands): Handle COMPONENT_REF and ! 746: ARRAY_REF directly as output operands. Avoids crash if BLKmode. ! 747: ! 748: * tm-i386vgas.h: New file, copied from tm-i386gas.h. ! 749: (ASM_OUTPUT_LABELREF): Eliminate leading underscores. ! 750: (STARTFILE_SPEC, LIB_SPEC): Define as in tm-i386v.h. ! 751: (PCC_BITFIELD_TYPE_MATTERS): Likewise. ! 752: * config.gcc (i386-sysv-gas): Use the new file. ! 753: ! 754: * tm-i860.h (PRINT_OPERAND): Convert double to float ! 755: for SFmode operand. ! 756: (PRINT_OPERAND_EXTRACT_FLOAT): New macro. ! 757: ! 758: Sun Aug 19 17:23:10 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 759: ! 760: * c-parse.y (lineno): Delete definition--it's in toplev. ! 761: ! 762: * output.h: Make all variables extern. ! 763: ! 764: * tm-hp9k320bsd.h (CPP_SPEC): Def __HAVE_68881__ like __HAVE_FPU__. ! 765: ! 766: * fixincludes: Handle uses of _IO* followed by spaces. ! 767: Change redirections for cd when testing that directory exists. ! 768: ! 769: Thu Aug 16 22:44:35 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 770: ! 771: * out-sparc.c (output_scc_insn): Clear CC_IN_FCCR after ! 772: operation since setting a register to the result of a ! 773: floating-point comparision affects the INTEGER condition code ! 774: register. ! 775: ! 776: * stmt.c: fixup_gotos must ignore blocks started after the goto. ! 777: (block_start_count): New variable, and slot in some structures. ! 778: (expand_function_start): Initialize it. ! 779: (expand_start_bindings): Increment it and store in struct nesting. ! 780: (expand_goto): Store it in struct goto_fixup. ! 781: (fixup_gotos): Compare fixup's count with block's count. ! 782: ! 783: Wed Aug 15 16:46:04 1990 Richard Stallman (rms at mole.ai.mit.edu) ! 784: ! 785: * out-i860.c (output_size_for_block_move): Do subtract ALIGN. ! 786: ! 787: Mon Aug 13 17:45:13 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 788: ! 789: * tm-i860.h (GO_IF_LEGITIMATE_ADDRESS): Typo testing offset alignment. ! 790: ! 791: * config.gcc (sun3-mach): New alternative. ! 792: * tm-sun3mach.h: New file. ! 793: ! 794: * m68k.md (bfextu patterns): Set CC_NOT_NEGATIVE. ! 795: ! 796: Sun Aug 12 14:25:23 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 797: ! 798: * tree.h (enum built_in_function): Delete comma after last name. ! 799: * c-parse.h (enum rid): Likewise. ! 800: * expr.h (enum optab_methods): Likewise. ! 801: ! 802: * config.gcc (genix): Set target_machine. ! 803: * tm-genix.h (ASM_OUTPUT_DOUBLE): New overriding definition. ! 804: ! 805: Thu Aug 9 15:19:17 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 806: ! 807: * tm-hp9k320.h (CPP_SPEC): Define _HPUX_SOURCE if not ANSI. ! 808: (CPP_PREDEFINES): Don't define it here. ! 809: Do define alternatives with __ prepended. ! 810: ! 811: * tm-mips.h (CPP_SPEC): Don't do -I if -nostdinc. ! 812: ! 813: Wed Aug 8 13:35:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 814: ! 815: * cccp.c (do_define, do_undef): Warn if macro name is `defined'. ! 816: ! 817: * tm-mips.h (ASM_INT_OP): Add missing space. ! 818: ! 819: * tm-sun386i.h (ASM_IDENTIFY_GCC): If profiling, put a NOP after ! 820: gcc_compiled. ! 821: ! 822: Tue Aug 7 12:19:46 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 823: ! 824: * out-mips.c (need_ent_after_loc): Variable deleted. ! 825: (function_prologue): Output initial .ent and initial label. ! 826: * tm-mips.h: Add extern declarations. ! 827: (ASM_SPEC): No -nocpp if optimizing. ! 828: (STACK_ARGS_ADJUST): Round size up to 16. Nothing else. ! 829: (PRINT_OPERAND_ADDRESS): Eliminate irrelevant things ! 830: such as scaled indexing. ! 831: (ASM_OUTPUT_SOURCE_FILENAME): Simplify code. ! 832: (ASM_OUTPUT_SOURCE_LINE): Flush code to handle need_ent_after_loc. ! 833: (ASM_DECLARE_FUNCTION_NAME): Likewise. ! 834: (*_SECTION_ASM_OP): Delete the \n. ! 835: ! 836: * pyr.md (extendsfdf2, truncsfdf2, float*, fix*): Use `&'. ! 837: ! 838: Mon Aug 6 12:46:07 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 839: ! 840: * c-decl.c (grokdeclarator): Don't warn if initialized fcn is extern. ! 841: (start_decl): Don't warn at all for initialized extern. ! 842: ! 843: * final.c (final_start_function): Handle PROFILE_BEFORE_PROLOGUE. ! 844: (profile_function): New subroutine. ! 845: ! 846: * tm-i386sco.h: New file. ! 847: * config.gcc (i386-sco): New alternative. ! 848: ! 849: Sun Aug 5 12:36:46 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 850: ! 851: * stor-layout.c (layout_record, layout_union): Test value of ! 852: PCC_BITFIELD_TYPE_MATTERS for being nonzero, if it is defined. ! 853: * tm-*.h: Define with value 1. ! 854: * tm-vax.h (PCC_BITFIELD_TYPE_MATTERS): Depends on -mvaxc-alignment. ! 855: ! 856: * proto.h: New file. ! 857: * Makefile.in (USER_H): Add that file. ! 858: ! 859: * loop.c (other_reg_use_p): Change && to || in test at beginning. ! 860: ! 861: Fri Aug 3 00:18:35 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 862: ! 863: * gcc.c (ENDFILE_SPEC): New macro. ! 864: (do_spec_1): Handle %E. ! 865: (link_spec): Use %E. ! 866: ! 867: * xm-i386.h (alloca): Define without arg. ! 868: ! 869: * Makefile (RANLIB): New var, used in various places. ! 870: ! 871: * gnulib2.c (__bb_init_func): Add dummy function to prevent warning. ! 872: ! 873: * Makefile (install): Look for ranlib in both places. ! 874: (stage1, ...): Likewise. And run ranlib even after ln. ! 875: ! 876: Tue Jul 31 23:59:45 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 877: ! 878: * tm-encore.h (FUNCTION_PROFILER): Override, putting `.' in label. ! 879: ! 880: Mon Jul 30 13:52:45 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 881: ! 882: * gnulib2.c (__floatdidf): Fix typo. ! 883: ! 884: Sun Jul 29 16:05:27 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 885: ! 886: * tm-vms.h (ASM_OUTPUT_EXTERNAL): Check TREE_READONLY. ! 887: ! 888: * xm-vms.h (alloca): Use built-in alloca. ! 889: ! 890: Fri Jul 27 15:07:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 891: ! 892: * combine.c (subst): Handle (ASHIFT 1 x) in (EQ (AND ... y) 0) ! 893: only if little-endian. ! 894: ! 895: Thu Jul 26 17:22:56 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 896: ! 897: * tm-mips.h (ASM_OUTPUT_SOURCE_LINE): Delete pic stuff (was for v2). ! 898: ! 899: * fold-const.c (rshift_double): Reset carry after each shift of ! 900: one bit. ! 901: ! 902: Wed Jul 25 16:21:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 903: ! 904: * tm-vms.h (ASM_OUTPUT_EXTERNAL): Use assemble_name. ! 905: ! 906: Tue Jul 24 15:35:04 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 907: ! 908: * c-typeck.c (build_binary_op_nodefault): Allow compare of any ! 909: pointer with const void *, etc. ! 910: ! 911: * reload1.c (reload): Don't use fixed reg or frame pointer in group. ! 912: ! 913: * c-decl.c (grokdeclarator): Error for initialized parm. ! 914: ! 915: Mon Jul 23 14:33:53 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 916: ! 917: * Makefile (install): chmod only the header files. ! 918: ! 919: Sat Jul 21 13:58:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 920: ! 921: * cccp.c (O_RDONLY): Define it if not defined. ! 922: ! 923: * c-decl.c (finish_decl): No error for nonstatic incomplete array. ! 924: ! 925: Sat Jul 14 14:59:33 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 926: ! 927: * gcc.c (compilers): Pass -P to cpp. ! 928: ! 929: * tm-mips.h (ASM_OUTPUT_SOURCE_LINE): Handle TARGET_GAS, TARGET_PIC. ! 930: ! 931: Thu Jul 12 12:28:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 932: ! 933: * stor-layout.c (layout_record): Handle BITFIELD_NBYTES_LIMITED. ! 934: ! 935: * stmt.c (group_case_nodes): Don't group across an overflow. ! 936: ! 937: * combine.c (subst, case LSHIFT): Use gen_lowpart_for_combine. ! 938: ! 939: Wed Jul 11 15:17:32 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 940: ! 941: * combine.c (subst, case LSHIFT): ! 942: Fix condition for (lshift ... (sign_extend ...)). ! 943: ! 944: Tue Jul 10 17:02:54 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 945: ! 946: * c-decl.c (pushdecl): No shadow warning if TREE_INLINE is set. ! 947: * integrate.c (copy_parm_decls): Set TREE_INLINE in the copies. ! 948: (copy_decl_tree): Likewise. ! 949: ! 950: * c-parse.y (yylex): Terminate token_buf after integer. ! 951: ! 952: Mon Jul 9 16:56:55 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 953: ! 954: * expr.c (expand_call): Don't check args[i].partial when bumping ! 955: negative args_size up to 0. ! 956: ! 957: * sparc.md (call recognizers): Don't allow address arithmetic. ! 958: ! 959: Sun Jul 8 14:22:22 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 960: ! 961: * c-typeck.c (build_c_cast): Reinsert missing default_conversion call. ! 962: ! 963: * gnulib.c (__bb_init_func): Ensure this defines >=1 symbol. ! 964: ! 965: Fri Jul 6 12:28:44 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 966: ! 967: * c-typeck.c (build_indirect_ref): ! 968: No error if result is incomplete array. ! 969: ! 970: * m68k.md (casesi2 recognizer): Handle new ASM_RETURN_CASE_JUMP macro. ! 971: ! 972: * expmed.c (store_bit_field, extract_bit_field): New arg TOTAL_SIZE. ! 973: Don't extract a bigger unit from memory than this. ! 974: * expr.c: Callers changed. ! 975: (store_field): New arg TOTAL_SIZE; callers changed. ! 976: ! 977: * xm-ns32k.h: Use built in alloca. ! 978: * ns32k.md (movsf): Output float constants only if GAS_SYNTAX. ! 979: (call, call_value): Support JSR_ALWAYS. ! 980: Change handling of bsr for GAS_SYNTAX. ! 981: ! 982: Thu Jul 5 15:05:19 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 983: ! 984: * mips.md (divdf3): Fix spacing in output. ! 985: (movdf): Fix bad output storing CPU regs into memory. ! 986: * out-mips.c (function_prologue): Bug testing fmask. ! 987: (function_epilogue): Bug in spacing in output. ! 988: ! 989: * c-typeck.c (build_conditional_expr): Handle ((void *) 0). ! 990: Allow 0 versus function pointer. ! 991: ! 992: Tue Jul 3 21:43:40 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 993: ! 994: * c-decl.c (finish_struct): Lay out any array typedefs now completed. ! 995: (layout_array_type): New function. ! 996: (grokdeclarator): Don't warn for incomplete array in typedef. ! 997: ! 998: * tm-*.h (ASM_OUTPUT_COMMON): Use %u, not %d. ! 999: (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise. ! 1000: ! 1001: Mon Jul 2 12:07:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1002: ! 1003: * i386.md (tstsf): Clobber reg 0 in SImode. ! 1004: ! 1005: Sun Jul 1 14:28:58 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1006: ! 1007: * stddef.h: Check __SIZE_T also. ! 1008: ! 1009: * toplev.c: Include types.h first. ! 1010: ! 1011: * i386.md (trunc*2): Don't allow moving symbolic constant to memory. ! 1012: Use wider move only for symbolic constant. ! 1013: ! 1014: * tm-convex.h (LINK_SPEC): Posix link flags. ! 1015: * tm-convex.h (STARTFILE_SPEC): Posix start files. ! 1016: * tm-convex[12].h (CPP_SPEC): Posix defines. ! 1017: * tm-convex[12].h (LIB_SPEC): Posix libraries. ! 1018: * tm-conv[12]os7.h: New files. ! 1019: * config.gcc: use tm-conv*os7 if /usr/include/stdlib.h isn't there. ! 1020: ! 1021: * xm-convex.h (S_IFMT, S_IFREG): make visible if hidden for posix. ! 1022: * xm-convex.h (_PROTO): define to keep 8.0 includes from screwing up. ! 1023: ! 1024: * tm-convex.h (ASM_OUTPUT_{FLOAT,DOUBLE}, PRINT_OPERAND): ! 1025: use %e instead of %#g, which is broken or non-posix. ! 1026: ! 1027: * tm-convex.h (current_section_is_text): make extern. ! 1028: * out-convex.c (current_section_is_text): define here. ! 1029: * tm-convex.h (OVERRIDE_OPTIONS), out-convex.c (override_options): ! 1030: useless; remove. ! 1031: * tm-convex.h (CPP_PREDEFINES): remove parsec, long gone from ! 1032: system includes. ! 1033: ! 1034: Fri Jun 29 12:42:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1035: ! 1036: * tm-vax.h (LEGITIMATE_CONSTANT_P): Fix typo. ! 1037: ! 1038: * out-mips.c (function_arg_partial_nregs): Round size up to words. ! 1039: ! 1040: Thu Jun 28 12:50:44 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1041: ! 1042: * cse.c (cse_insn): Replace src only with general_operand ! 1043: unless moving to a register. ! 1044: ! 1045: * expr.c (expand_expr): Use assign_stack_local for constructors. ! 1046: ! 1047: * Makefile (STAGESTUFF): Change names of stamp files. ! 1048: ! 1049: * pyr.md (tstqi): Change comma to semicolon. ! 1050: ! 1051: * out-mips.c (init_cumulative_args): Fix name of debug_tree. ! 1052: ! 1053: * vax.md (movsi special case): Fix assembler syntax. ! 1054: * tm-vax.h (LEGITIMATE_CONSTANT_P): Add missing backslashes. ! 1055: * tm-ultrix.h (DOLLARS_IN_IDENTIFIERS): Define as 1. ! 1056: ! 1057: Wed Jun 27 14:04:51 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1058: ! 1059: * expr.c (emit_move_insn): Force constants to mem only if predicate ! 1060: fails. ! 1061: * out-vax.c (supergeneral_operand): New function. ! 1062: * vax.md (movsi): Use that predicate. ! 1063: ! 1064: * out-mips.c (function_prologue): Don't use sp_str in .frame. ! 1065: Use sw rather than sd in cases 5 and 7. ! 1066: ! 1067: Tue Jun 26 14:21:36 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1068: ! 1069: * rtl.h (EXTERNAL_SYMBOL_P): New macro. ! 1070: * varasm.c (make_decl_rtl): Set it if variable is external. ! 1071: * tm-vms.h (NO_EXTERNAL_INDIRECT_ADDRESS): Define this. ! 1072: * tm-vax.h (INDIRECTABLE_CONSTANT_ADDRESS_P): New macro. ! 1073: Value depends on NO_EXTERNAL_INDIRECT_ADDRESS. ! 1074: (INDIRECTABLE_ADDRESS_P, LEGITIMATE_CONSTANT_P): Value depends... ! 1075: (NONINDIRECT_ADDRESS_P): New macro. ! 1076: (GO_IF_NONINDEXED_ADDRESS): Use NONINDIRECT_ADDRESS_P sometimes. ! 1077: * vax.md (movsi special case): New pattern for loading ! 1078: illegitimate constants. ! 1079: * out-vax.c (print_operand_address): Handle reg+(reg+const). ! 1080: ! 1081: * tm-sparc.h (LINK_SPEC): Delete spurious `-'. ! 1082: * tm-sun386i.h (LINK_SPEC): Define it, handling -Bstatic and aliases. ! 1083: * tm-sun3.h (ASM_OUTPUT_FLOAT_OPERAND): Delete spurious `\n'. ! 1084: (ASM_OUTPUT_DOUBLE_OPERAND): Likewise. ! 1085: ! 1086: Mon Jun 25 18:45:51 1990 Michael Meissner (meissner at osf.org) ! 1087: ! 1088: * sdbout.c: If not on a COFF system, define COFF symbols by hand. ! 1089: ! 1090: * out-mips.c (legitimize_constant_expr): Delete unused function. ! 1091: (output_load_immediate, addr_compensate): Delete unused functions. ! 1092: (compare_restore): Redo code based on eliminating peepholes. ! 1093: (function_prologue): New function, emit correct entry sequence. ! 1094: (function_epilogue): New function, emit correct exit sequence. ! 1095: Also output .ent, .frame, .mask, .fmask, and .end, for back tracing. ! 1096: (mips_fix_frame_pointer): New function to eliminate frame. ! 1097: (function_arg_partial_nregs, function_arg, function_arg_advance): ! 1098: (init_cumulative_args): New funtions. ! 1099: ! 1100: * stdarg.h (va_arg): Alternate definition for mips. ! 1101: * va-mips.h: Total rewrite. ! 1102: These changes in tm-mips.h have not yet been done. ! 1103: * tm-mips.h (ASM_OUTPUT_DOUBLE): Put floating point out in hex. ! 1104: (ASM_OUTPUT_FLOAT): Put floating point out in hex. ! 1105: (PRINT_OPERAND): Add 'D', 'L', and 'M' codes. ! 1106: (STRUCTURE_SIZE_BOUNDARY): Set this to 8 for MIPS cc compatibility. ! 1107: (CC1_SPEC): Add -O1 which is same as -O. ! 1108: (CC1_SPEC): Add -O3 which is -O2 + -finline-functions. ! 1109: (TARGET_SWITCHES): Use hex for options. ! 1110: (TARGET_SWITCHES): Rename -munix to -mmips-as. ! 1111: (TARGET_SWITCHES): Add -mgas as oppisite of -mmips-as. ! 1112: (TARGET_SWITCHES): Add -mpic, -mpic-large-object (but no code yet). ! 1113: (TARGET_SWITCHES): Make -mdebug* comments match reality. ! 1114: (PROMOTE_PROTOTYPES): Define this macro. ! 1115: (FIXED_REGISTERS): Allow $f0, $f2, and $f14 to be allocated. ! 1116: (NO_LIBG): Define this macro. ! 1117: (TARGET_VERSION): Be more specific about which vendors MIPS system. ! 1118: (ASM_FILE_START): Call ASM_OUTPUT_SOURCE_FILENAME, print_options. ! 1119: (ASM_OUTPUT_SOURCE_FILENAME): Emit correct .file directive. ! 1120: (ASM_OUTPUT_SOURCE_LINE): Emit correct .loc directive. ! 1121: (EXTRA_SECTIONS): Add rdata_section. ! 1122: (SELECT_SECTION, SELECT_SECTION_MODE): Use .rdata if feasible. ! 1123: (SDB_DEBUGGING): Define this, but only line #'s supported now. ! 1124: (FRAME_POINTER_REQUIRED): Allow no frame ptr in leaf procedures. ! 1125: (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+70000 as address. ! 1126: (various): Use MIPS profiling (no _mcount). ! 1127: (various): Add new macros to classify registers. ! 1128: (NO_UNDERSCORES): Define this for G++. ! 1129: ! 1130: * mips.md (peepholes): Merge 4 peepholes, delete 24 unneeded ones. ! 1131: Replaced with an anonymous pattern for a test insn. ! 1132: (call_value): Change to a define_insn. ! 1133: (movsi, movhi, movqi): Don't fall through at end, to avoid a warning. ! 1134: (movsf special case for immediate args): Pattern deleted. ! 1135: (movdf special case for immediate args): Pattern deleted. ! 1136: (movsf, movdf): Use new macros to distinguish fp regs. ! 1137: Add letter `y' to constraints. ! 1138: (cmpsi): Allow arith_operand for second operand. ! 1139: (hi and qi tests): Patterns deleted. ! 1140: (jump): Handle TARGET_PIC. ! 1141: (tablejump): Pattern moved. ! 1142: (conditional branches): Align the comments that are output. ! 1143: (call, call_value): Make predicates more specific. ! 1144: Don't output any comments. ! 1145: ! 1146: * out-mips.c: Include flags.h. Include tree.h at beginning. ! 1147: Define numerous variables counting things used in this compilation. ! 1148: (my_print_rtx): Deleted. Callers use debug_rtx. ! 1149: (output_load_immediate): Simply output an li instruction. ! 1150: (print_options): Body rewritten. Now always defined, but body ! 1151: is in an #if 0. ! 1152: (abort_show_logged, my_print_insncode): Functions deleted. ! 1153: (abort_with_insn): Now use `error' to print the message. ! 1154: (mips_section_get): Function deleted. ! 1155: (override_options): Update mips_section_threshold, once and for all. ! 1156: ! 1157: Mon Jun 25 16:54:13 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1158: ! 1159: * integrate.c (output_inline_function): Pass dummies for new args ! 1160: to init_function_start. ! 1161: ! 1162: * stddef.h: Check _T_SIZE as well as _SIZE_T. ! 1163: ! 1164: Sun Jun 24 17:15:34 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1165: ! 1166: * stmt.c (init_function_start): New args give file/line for first note. ! 1167: * c-decl.c (store_parm_decls): Pass them. ! 1168: * final.c (final_start_function): For sdb, don't output a line number, ! 1169: just set last_linenum. ! 1170: ! 1171: * tm-att386.h (ASM_OUTPUT_LOCAL): Put it in .bss section. ! 1172: ! 1173: Fri Jun 22 12:40:07 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1174: ! 1175: * cccp.c (handle_directive): Always ignore empty directive. ! 1176: ! 1177: * tree.h (BUILT_IN_NEXT_ARG): Define it. ! 1178: * c-decl.c (init_decl_processing): Declare __builtin_next_arg. ! 1179: * expr.h (current_function_arg_offset_rtx): Declare it. ! 1180: * stmt.c (assign_parms): Set that variable at end. ! 1181: * expr.c (expand_builtin): Implement __builtin_next_arg. ! 1182: * stdarg.h (va_start): Use __builtin_next_arg. ! 1183: * function.c (push_function_context, pop_function_context): ! 1184: Save and restore current_function_arg_offset_rtx. ! 1185: * function.h (struct function): New field for this. ! 1186: ! 1187: Wed Jun 20 15:26:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1188: ! 1189: * tm-apollo68.h (FUNCTION_ARG_PADDING): Never pad. ! 1190: (STACK_BOUNDARY): Make it 32. ! 1191: (CPP_SPEC): Add spaces. Define _APOLLO_SOURCE if not -ansi. ! 1192: ! 1193: * expr.c (expand_call): If have STACK_BOUNDARY and push insns, ! 1194: compute stack_align when size is rounded, and use later ! 1195: to push the space for the rounding. ! 1196: ! 1197: Tue Jun 19 15:41:53 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1198: ! 1199: * genextract.c (gen_peephole): Use sizeof (rtx), not UNITS_PER_WORD. ! 1200: ! 1201: * reload1.c (reload_inheritance_insn): New variable. ! 1202: (reg_reloaded_insn): New variable. ! 1203: (choose_reload_regs): Update those variables. ! 1204: (emit_reload_insns): Use them to remove deaths from insns ! 1205: that used input reloads. ! 1206: (reload_as_needed): Clear reg_reloaded_insn when necessary. ! 1207: ! 1208: Mon Jun 18 13:25:59 1990 Michael Meissner (meissner at osf.org) ! 1209: ! 1210: * mips.md (probe): Make a single insn, just a memref. ! 1211: ! 1212: * mips.md (ashlqi3, ashlhi3, one_cmplqi2, one_cmplhi2): Deleted. ! 1213: (ashlsi3, ashrsi3, lshrsi3, neg*, one_cmplsi2): Simplified. ! 1214: Don't output comments. Use more specific predicates. ! 1215: ! 1216: * mips.md (movsf, movdf): Use L, M codes to avoid #ifdef's. ! 1217: Also simplify and don't output comments. ! 1218: (anonymous patterns for those insns): Deleted. ! 1219: (loading floating constant): New patterns added. ! 1220: (move qi to si pattern): Deleted; ridiculous. ! 1221: (movdi, movsi, movhi, movqi): No need to check for moving reg to self. ! 1222: ! 1223: * mips.md (nop): Use .set noreorder to placate assembler. ! 1224: ! 1225: Sun Jun 17 01:19:26 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1226: ! 1227: * Makefile (stamp-*.c, stamp-*.h): Remove .c or .h from names. ! 1228: ! 1229: * tm-i860.h (GO_IF_LEGITIMATE_ADDRESS): Displacement must be multiple ! 1230: of the alignment of the operand. ! 1231: ! 1232: * i860.md (signed bit field recognizers): Don't shift by >31 bits. ! 1233: ! 1234: * out-i860.c (output_delayed_branch): Pass register properly to ! 1235: load_opcode. ! 1236: ! 1237: * sdbout.c (sdbout_symbol): Get right regno for var-length object. ! 1238: ! 1239: * c-decl.c (duplicate_decls): Types don't "match" if one is error. ! 1240: ! 1241: * cexp.y (yylex): Ignore carriage return. ! 1242: * cccp.c (initialize_char_syntax): Likewise. ! 1243: ! 1244: Sun Jun 17 01:19:26 1990 Michael Meissner (meissner at osf.org) ! 1245: ! 1246: * mips.md (general/fp reg move patterns): Use codes L, M, D. ! 1247: (movdi): Likewise. And don't output useless comments. ! 1248: Use the assembler temp reg for non-offsettable address. ! 1249: (movsi, movhi, movqi): Output nothing for move from reg to itself. ! 1250: Output li to load a constant. Use `move' instead of `add'. ! 1251: Don't output useless comments. ! 1252: (load-address pattern): Deleted; handled by addsi3 pattern. ! 1253: ! 1254: * mips.md (addsi3, mulsi3): Make both input predicates arith_operand ! 1255: since they are commutative. ! 1256: (andsi3, iorsi3, xorsi3): Likewise. ! 1257: ! 1258: * tm-mips.h (MOST_SIGNIFICANT_WORD, LEAST_SIGNIFICANT_WORD): New. ! 1259: ! 1260: * tm-mips.h (PRINT_OPERAND): New codes D, L, M. ! 1261: * mips.md (anddi3, iordi3, xordi3): Use earlyclobber to stop overlap. ! 1262: Use new print code D. ! 1263: ! 1264: * mips.md (andsi3, iorsi3, xorsi3): Make predicates more specific. ! 1265: (andhi3, ..., andqi3, ...): Patterns deleted. ! 1266: (patterns for nor): New anonymous patterns. ! 1267: * out-mips.c (uns_arith_operand): New function. ! 1268: ! 1269: * mips.md (trunc*, zero_extend*, extend*, fix_trunc*, float*): ! 1270: Use more specific predicates. ! 1271: ! 1272: * mips.md (addhi3, ..., addqi3, ...): Patterns deleted. ! 1273: (addsi3, subsi3, mulsi3, divsi3): Make predicates more specific. ! 1274: Delete useless comments from assembler code. ! 1275: Use more generic op codes rather than special cases such as addiu. ! 1276: (divmodsi4, udivmodsi4, udivsi3, modsi3, umodsi3): New patterns. ! 1277: (abssf2, absdf2): New patterns. ! 1278: ! 1279: Sat Jun 16 22:52:44 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1280: ! 1281: * c-typeck.c (process_init_constructor): Handle unions. ! 1282: (digest_init): Use that for union inits. ! 1283: ! 1284: Wed Jun 6 19:20:20 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1285: ! 1286: * loop.c (move_movables): In insn-deleting loop, check p != 0. ! 1287: ! 1288: Sun Jun 3 22:44:12 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1289: ! 1290: * c-decl.c (grokdeclarator): Warn about extern with initializer. ! 1291: ! 1292: Sat Jun 2 14:46:18 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1293: ! 1294: * c-decl.c (grokdeclarator): Handle const and volatile with parm ! 1295: specified as function type. ! 1296: ! 1297: * varasm.c (immed_real_const_1): Don't confuse -0.0 with 0.0. ! 1298: ! 1299: * tm-sun3.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE): Handle -0.0. ! 1300: (ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND): Likewise. ! 1301: Note: Sun 4 (under SunOS 4) seems to work okay without this change. ! 1302: Perhaps printf works better in that version. ! 1303: ! 1304: Fri Jun 1 13:38:41 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1305: ! 1306: * expr.c (expand_call): For const function, pop stack before and aft. ! 1307: ! 1308: Thu May 31 12:59:28 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1309: ! 1310: * expr.c (expand_call): Don't round stack block if size negative. ! 1311: ! 1312: * fold-const.c (fold): Preserve sign on constant when other terms ! 1313: cancel (after call to split_tree). ! 1314: ! 1315: Wed May 30 20:49:10 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1316: ! 1317: * c-parse.y (primary, fndef): Use YYFAIL, since YYERROR was changed. ! 1318: ! 1319: * out-m68k.c (output_move_double): Don't test HOST_WORDS_BIG_ENDIAN ! 1320: since that only exists in version 2. ! 1321: * tm-m68k.h (PRINT_OPERAND_EXTRACT_FLOAT): New macro wasn't mentioned. ! 1322: Don't test HOST_WORDS_BIG_ENDIAN. ! 1323: (PRINT_OPERAND_PRINT_FLOAT): New macro wasn't mentioned before. ! 1324: (PRINT_OPERAND): Use them. ! 1325: ! 1326: Tue May 29 21:35:23 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1327: ! 1328: * optabs.c (expand_float): Don't use hard reg for intermediate result. ! 1329: ! 1330: * c-parse.y (yylex): Fix typo in handling of ERANGE. ! 1331: ! 1332: * sparc.md (tstdf, tstsf): Use a CLOBBER, not a USE, on f0. ! 1333: ! 1334: * sparc.md (eager branch peepholes): Fix typos. ! 1335: * tm-sparc.h (OUTPUT_JUMP): Define this. ! 1336: ! 1337: * print-tree.c (print_lang_identifier): New function. ! 1338: ! 1339: Sat May 26 13:42:04 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1340: ! 1341: * sdbout.c (sdb_begin_function_line): Now -1 if not in use. ! 1342: (sdbout_end_function): Set it to -1. ! 1343: ! 1344: Fri May 25 00:18:29 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1345: ! 1346: * print-tree.c: Total rewrite. ! 1347: ! 1348: Thu May 24 21:26:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1349: ! 1350: * cccp.c (macarg): When popping frame, free via free_ptr, not buf. ! 1351: ! 1352: Tue May 22 21:41:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1353: ! 1354: * c-decl.c (finish_decl): Discard any variable sizes in the decl. ! 1355: ! 1356: * pyr.md (mulsi3, adddi3, ...): Use symmetrical predicates in ! 1357: commutative patterns. ! 1358: (tsthi, tstqi): Set CC_NO_OVERFLOW ! 1359: * out-pyr.c (notice_update_cc): Don't do that here for ! 1360: explicit cc-setting insns. ! 1361: ! 1362: Sat May 19 12:41:44 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1363: ! 1364: * tm-i386gas.h (ASM_OUTPUT_ALIGN): Use log as arg to .align. ! 1365: (ASM_OUTPUT_ALIGN_CODE): Likewise. ! 1366: ! 1367: Wed May 16 16:09:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1368: ! 1369: * tm-pyr.h (FIXED_REGISTERS, CALL_USED_REGISTERS): ! 1370: Reserve register lr15 as fixed, for test instructions. ! 1371: * pyr.md (tsthi, tstqi): Use cvtXw into lr15 rather than test. ! 1372: ! 1373: * expr.c (expand_expr): Make sure a volatile value is referenced ! 1374: even if value is ignored. ! 1375: ! 1376: * c-typeck.c (truthvalue_conversion): Result COND_EXPR gets type int. ! 1377: (invert_truthvalue): Simplify COND_EXPR. ! 1378: ! 1379: Tue May 15 16:51:41 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1380: ! 1381: * c-decl.c (complete_array_type): Compensate for wide string constants. ! 1382: ! 1383: Mon May 14 15:31:07 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1384: ! 1385: * c-parse.y (combine_strings): Fix errors computing wide string length. ! 1386: ! 1387: Sat May 12 15:17:37 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1388: ! 1389: * i386.md (trunc**): Use long move if source is constant. ! 1390: * out-i386.c (PRINT_REG): Handle CODE == 'k'. ! 1391: ! 1392: * ns32k.md (signed bitfield extract): Don't output assembler comment. ! 1393: ! 1394: Fri May 11 14:45:06 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1395: ! 1396: * tm-i860.h (ASM_OUTPUT_CASE_LABEL): Align to multiple of 4. ! 1397: ! 1398: Thu May 10 23:43:31 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1399: ! 1400: * out-i860.c (single_insn_src_p, strict_single_insn_src_p): ! 1401: Correct conditions for needing multiple instructions. ! 1402: (output_delayed_branch): Likewise. ! 1403: ! 1404: Tue May 8 13:54:37 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1405: ! 1406: * tm-ultrix.h: New file. ! 1407: ! 1408: Mon May 7 18:47:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1409: ! 1410: * i386.md (test... recognizers): Output symbolic constant first. ! 1411: ! 1412: Sat May 5 12:18:05 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1413: ! 1414: * rtlanal.c (dead_or_set_p): Compare register numbers, not addresses. ! 1415: ! 1416: Thu May 3 16:56:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1417: ! 1418: * expmed.c (store_bit_field): Maximum size for loading mem struct ! 1419: into reg comes from the mode of the value to be stored. ! 1420: Alignment is no restriction if it matches BIGGEST_ALIGNMENT. ! 1421: Always do the real work in SImode if couldn't use MEM. ! 1422: (extract_bit_field): Likewise. ! 1423: ! 1424: * tm-sparc.h (PRINT_OPERAND): Handle new codes I and U. ! 1425: * sparc.md (delay slot peepholes): Use them to handle CC_NO_OVERFLOW. ! 1426: (negated jump recognizer): Likewise. ! 1427: * sparc.md (addcc and subcc recognizers): Test for validity of ! 1428: ignoring overflow with ignore_overflow_conditional_p. ! 1429: * out-sparc.c (ignore_overflow_conditional_p): New function. ! 1430: ! 1431: * pyr.md (bitw recognizer): Set CC_NO_OVERFLOW. ! 1432: ! 1433: Mon Apr 30 01:39:14 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1434: ! 1435: * stor-layout.c (build_int): Make arg unsigned. ! 1436: ! 1437: * cccp.c (macarg1): `\' not special outside strings. ! 1438: ! 1439: * c-typeck.c (build_unary_op): In increment ops, ! 1440: typo checking for ptr to void/function. ! 1441: Check original type for this and for amount of increment. ! 1442: ! 1443: Sat Apr 28 16:43:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1444: ! 1445: * c-typeck.c (build_indirect_ref): Error if target is incomplete type. ! 1446: ! 1447: Fri Apr 27 13:02:10 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1448: ! 1449: * reload1.c (order_regs_for_reload): Count multi-word pseudos right. ! 1450: ! 1451: * flow.c (mark_set_1): Handle nested SUBREG, SIGN_EXTRACT, ! 1452: STRICT_LOW_PART, etc. Also, always set subreg_p when setting ! 1453: a bit field, even if modes are same. ! 1454: ! 1455: Thu Apr 26 17:52:17 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1456: ! 1457: * cccp.c (handle_directive): Don't pass directive through if no_output. ! 1458: ! 1459: Tue Apr 24 13:40:25 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1460: ! 1461: * pyr.md (addsi3): Use general_operand for both inputs. ! 1462: ! 1463: * i860.md: Add missing = in some output constraints. ! 1464: ! 1465: Mon Apr 23 16:37:21 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1466: ! 1467: * combine.c (subst): When checking reg_last_set, verify nonzero. ! 1468: ! 1469: * ns32k.md (ashlhi3): Avoid using %1. ! 1470: ! 1471: Sat Apr 21 21:05:51 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1472: ! 1473: * stmt.c (assign_parms): Don't make entry_parm and stack_parm valid. ! 1474: Leave them explicit stack slots. ! 1475: (validize_mem): Copy it, don't alter it. ! 1476: ! 1477: Thu Apr 19 15:23:51 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1478: ! 1479: * out-sparc.c (find_addr_reg): Avoid using frame pointer. ! 1480: ! 1481: Sun Apr 15 13:42:24 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1482: ! 1483: * expr.c (emit_library_call): Precompute reg and partial of all parms, ! 1484: to do it in proper order. ! 1485: ! 1486: * integrate.c (save_for_inline): Copy reg notes after all insns. ! 1487: ! 1488: * final.c (final_scan_insn): No block profiling before jump table. ! 1489: ! 1490: Sat Apr 14 00:19:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1491: ! 1492: * i386.md (tstdf): Clobber reg in SImode, like cmpdf. ! 1493: (blt, ble): New define_expands. RTL like before except, ! 1494: for floats, reverse prev compare or test and do bgt/bge. ! 1495: ! 1496: Thu Apr 12 21:27:18 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1497: ! 1498: * expr.c (expand_call): New variable argpos counts args in the ! 1499: order written. For comparison with n_named_args. ! 1500: ! 1501: * c-decl.c (duplicate_decls): Preserve DECL_INITIAL from old ! 1502: function def to new one. ! 1503: ! 1504: * cccp.c (macroexpand): Count Newline Space as part of whitespace ! 1505: sequence when stringifying. ! 1506: ! 1507: Tue Apr 10 21:08:06 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1508: ! 1509: * cccp.c (do_line): No error if string follows number without space. ! 1510: ! 1511: Mon Apr 9 15:37:11 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1512: ! 1513: * Makefile (install): Turn off x bit on headers and man page. ! 1514: ! 1515: * i860.md (cmpeqsf, etc.): Change opcode name to pfeq.ss, etc. ! 1516: ! 1517: * tm-m68k.h (PRINT_OPERAND_PRINT_FLOAT): Delete spurious backslash. ! 1518: ! 1519: * c-decl.c (store_parm_decls): Don't do storedecls in prototype case. ! 1520: That was discarding the enumerators already pushdecl'd. ! 1521: ! 1522: * tm-m68k.h (NOTICE_UPDATE_CC): Undo last change. ! 1523: ! 1524: Sun Apr 8 19:00:09 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1525: ! 1526: * out-m68k.c (output_move_double, standard_68881_constant_p): ! 1527: Do word-swap when cross-compiling from little-endian machine. ! 1528: ! 1529: Sat Apr 7 00:45:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1530: ! 1531: * sparc.md (addcc and subcc patterns): Set CC_NO_OVERFLOW. ! 1532: ! 1533: * out-mips.c (output_load_immediate): Fix bug for values ! 1534: between -2**15 and -2**16; don't use addi. ! 1535: ! 1536: Thu Apr 5 14:00:41 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1537: ! 1538: * stdarg.h (va_start): Round initial pointer value down ! 1539: to double boundary. This is to eliminate big-endian adjustment. ! 1540: ! 1541: * c-typeck.c (build_c_cast): Reject array types for result. ! 1542: ! 1543: * fixincludes: Don't ignore errors when making dirs. ! 1544: But check whether dir already exists. ! 1545: ! 1546: Wed Apr 4 01:59:03 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1547: ! 1548: * c-decl.c (grokdeclarator): Complain if fn defn has `typedef' etc. ! 1549: ! 1550: Tue Apr 3 22:09:12 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1551: ! 1552: * expmed.c (store_bit_field): Don't do big-endian adjust twice. ! 1553: Do this by changing the mode whenever it is done. ! 1554: Some places must now cope with subregs. ! 1555: (extract_bit_field): Likewise. ! 1556: ! 1557: Fri Mar 30 15:54:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1558: ! 1559: * c-decl.c (c_build_type_variant): New function. ! 1560: (grokdeclarator): Call that, for ARRAY_TYPE only, in fields and vars. ! 1561: * c-decl.c, c-typeck.c: All calls to build_type_variant use that now. ! 1562: ! 1563: Wed May 2 16:34:25 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1564: ! 1565: * tm-sun3.h (CC1_SPEC): Ignore -target. ! 1566: (WORD_SWITCH_TAKES_ARG): Define it. ! 1567: * tm-sparc.h (CC1_SPEC): Ignore -target and -dalign. ! 1568: (WORD_SWITCH_TAKES_ARG): Define it. ! 1569: ! 1570: Thu Mar 29 15:34:53 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1571: ! 1572: * final.c (end_final): For basic block profiling, don't output ! 1573: source file name. Instead, append ".d", and remove ".c". ! 1574: * gnulib.c (__bb_init_func): New name for __bb_init_function. ! 1575: Conditionalize on mc68000, not m68k. ! 1576: Fix other typos. ! 1577: * Makefile (LIBFUNCS): Add _bb_init_func. ! 1578: ! 1579: * xm-sun386i.h (LINK_SPEC): Handle -static. ! 1580: ! 1581: Wed Mar 28 16:21:53 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1582: ! 1583: * c-decl.c (duplicate_decls): Preserve DECL_FRAME_SIZE from definition ! 1584: past subsequent declarations. ! 1585: ! 1586: * c-decl.c (xref_tag): If global_binding_level, make nodes permanent. ! 1587: ! 1588: * expr.c (expand_call): Handle STACK_BOUNDARY when using push insns. ! 1589: ! 1590: * stmt.c (assign_parms): Note how PUSH_ROUNDING affects stack ! 1591: parm size. ! 1592: ! 1593: * tm-mips.h (STRUCTURE_SIZE_BOUNDARY): Changed from 16 to 8. ! 1594: ! 1595: Tue Mar 27 14:24:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1596: ! 1597: * m68k.md (movsi, movhi, movstricthi, movqi, movstrictqi): ! 1598: Avoid both clr and st on volatile mem, but only on 68000. ! 1599: (SImode store 0 recognizer): Likewise. ! 1600: ! 1601: Mon Mar 26 15:01:02 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1602: ! 1603: * m68k.md (movqi): Don't use `st' insn on volatile memory. ! 1604: ! 1605: * tm-m68k.h (NOTICE_UPDATE_CC): addq and subq do update cc's ! 1606: even if destination is an address register. ! 1607: ! 1608: * cccp.c (discard_comments): Handle backslash-newline. ! 1609: ! 1610: Sun Mar 25 20:21:58 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1611: ! 1612: * cccp.c (handle_directive): Discard backslash-newline within <...>. ! 1613: ! 1614: Fri Mar 23 00:52:34 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1615: ! 1616: * c-decl.c (grokdeclarator): Warn if array element is incomplete. ! 1617: ! 1618: * xm-hp9k320.h (USE_C_ALLOCA): Define if not compiling with GCC. ! 1619: ! 1620: * expr.c (emit_call_1): Pass FUNTYPE directly to RETURN_POPS_ARGS. ! 1621: ! 1622: Thu Mar 22 22:33:36 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1623: ! 1624: * c-decl.c (get_parm_info): Void parm is special only if no name. ! 1625: ! 1626: * loop.c (may_not_optimize): Static var replaces local `may_not_move'. ! 1627: (strength_reduce): Don't accept those regs as givs. ! 1628: ! 1629: Wed Mar 21 17:14:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1630: ! 1631: * ns32k.md (stack adjust insn): Don't use cmpd or cmpqd on Sequent. ! 1632: * tm-sequent.h (SEQUENT_ADJUST_STACK): Define this. ! 1633: ! 1634: * Makefile (gnulib): Use OLDAR, not AR. ! 1635: (OLDAR): New variable. ! 1636: ! 1637: * expr.c (expand_call): Don't reuse pending_stack_adjust for argblock ! 1638: if inhibit_defer_pop. ! 1639: ! 1640: Tue Mar 20 02:41:15 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1641: ! 1642: * va-sparc.h: New file, handles changed calling convention. ! 1643: ! 1644: * expr.c (push_block): New argument EXTRA. All callers changed. ! 1645: (emit_push_insn): Use that for the padding when using push_block. ! 1646: ! 1647: * ns32k.md (ashlsi3): `return' was missing. ! 1648: ! 1649: * tm-sparc.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): ! 1650: Only word-aligned BLKmodes can go in registers. ! 1651: (FUNCTION_ARG_PARTIAL_NREGS): Likewise. ! 1652: * tm-spur.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Likewise. ! 1653: * expr.c (expand_call): If encounter a stack parm before offset ! 1654: gets up to zero, make it zero. ! 1655: * stmt.c (assign_parms): Likewise. ! 1656: ! 1657: Mon Mar 19 00:06:35 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1658: ! 1659: * assert.h (__assert) [not __GNUC__]: Rename arg to avoid stringify. ! 1660: ! 1661: * gcc.c (main): Handle SIGPIPE. ! 1662: ! 1663: Sat Mar 17 14:13:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1664: ! 1665: * loop.c (general_induction_var): When adding sub-giv to ARG, ! 1666: don't produce an add_val that can't be the source of an add insn. ! 1667: ! 1668: Fri Mar 16 15:26:41 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1669: ! 1670: * tm-vms.h (NO_DOLLAR_IN_LABEL): Define this. ! 1671: ! 1672: * sparc.md (andncc, orncc, xorncc patterns): Delete `%' in constraint. ! 1673: ! 1674: Thu Mar 15 22:02:02 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1675: ! 1676: * expmed.c (extract_bit_field, store_bit_field): ! 1677: When changing mode of a reg to SImode, also do big-endian correction. ! 1678: Consistently use BYTES_BIG_ENDIAN to decide how bits are numbered. ! 1679: Fix stray ref to CODE_FOR_extzv in case for extv. ! 1680: ! 1681: * c-typeck.c (build_unary_op): Allow function type args to `!', ! 1682: since they convert to pointers. ! 1683: ! 1684: * stmt.c (init_function_start): Set max_structure_value_size to -1. ! 1685: ! 1686: Sun Mar 11 18:39:40 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1687: ! 1688: * reload1.c (spill_hard_reg): ! 1689: Typo: index regs_explicitly_used with regno. ! 1690: ! 1691: * cse.c (cse_insn): When replacing constant with reg+const, ! 1692: don't make a REG_EQUIV note unless there already is one. ! 1693: ! 1694: * gcc.c (fatal): Flush spurious arg to delete_temp_files. ! 1695: ! 1696: * Makefile (gnulib, stamp-gnulib2): Ignore error in ranlib. ! 1697: ! 1698: Sat Mar 10 16:07:27 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1699: ! 1700: * loop.c (other_reg_use_p): New name for only_reg_use_p. ! 1701: Return 0 if IN == EXPR. ! 1702: (check_eliminate_biv, strength_reduce): Re-invert the test ! 1703: using other_reg_use_p. ! 1704: ! 1705: Thu Mar 8 02:17:50 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1706: ! 1707: * ns32k.md (movsi, movdi): Handle floating point registers. ! 1708: ! 1709: * reload.c (find_reloads_toplev): Do BYTES_BIG_ENDIAN offset ! 1710: only within a word. ! 1711: ! 1712: * stdarg.h: Use _VA_LIST_ as macro to indicate already loaded. ! 1713: ! 1714: * tm-alliant.h (FUNCTION_PROLOGUE): Use `linkl' on 68020. ! 1715: ! 1716: Tue Mar 6 23:44:15 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1717: ! 1718: * cccp.c (macroexpand): Fix bug in scanning strings for stringify. ! 1719: ! 1720: Fri Mar 2 00:27:14 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1721: ! 1722: * out-mips.c (tree_code_name): Declaration deleted. ! 1723: ! 1724: Thu Mar 1 22:59:18 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1725: ! 1726: * assert.h (__assert): Don't call abort; use 0 as value. ! 1727: * gnulib.c (__eprintf): Call abort here. ! 1728: ! 1729: Wed Feb 28 13:11:24 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1730: ! 1731: * Makefile (install): When installing $${eachfile}, use basename. ! 1732: ! 1733: Fri Feb 23 13:21:27 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1734: ! 1735: * c-parse.y (readescape): For x, avoid overflow when shifting in if. ! 1736: ! 1737: Thu Feb 22 19:09:48 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) ! 1738: ! 1739: * fixincludes: Delete directories before creating them. ! 1740: When making internal symbolic directory links, chase ! 1741: chain of existing links to the end. ! 1742: ! 1743: * dbxout.c (dbxout_type): Always use main variant. ! 1744: 1.1.1.17 root 1745: Wed Feb 21 00:25:39 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1746: 1747: * Version 1.37.1 released. 1748: 1749: * tm-mips.h (ASM_OUTPUT_ADDR_VEC_ELT and ASM_OUTPUT_ADDR_DIFF_ELT): 1750: Start label names with $. 1751: 1752: Sun Feb 18 13:58:04 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1753: 1754: * tm-mips.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): 1755: Start name with $. 1756: 1757: * integrate.c (expand_inline_function): Round up size of parm_map. 1758: 1759: Sat Feb 17 20:56:05 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1760: 1761: * tm-hp9k320.h (CPP_SPEC): Remove _INCLUDE__STDC__. 1762: 1763: Sun Feb 11 20:11:25 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1764: 1765: * Version 1.37 released. 1766: 1767: * c-decl.c (complete_array_type): In permanent type, add perm nodes. 1768: 1769: * out-i386.c (print_operand_address): Handle a MULT by itself. 1770: 1771: Sat Feb 10 14:35:03 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1772: 1773: * ns32k.md (movsf): Convert double constant to float. 1774: 1775: Fri Feb 9 00:02:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1776: 1777: * c-decl.c (duplicate_decls): Don't lose alignment of OLDDECL. 1778: 1779: * cccp.c (handle_directive): Keep comments by copying them explicitly. 1780: 1781: * cccp.c (rescan): When scanning for open-paren after macro name, 1782: discard comments if appropriate. 1783: 1784: Thu Feb 8 14:19:41 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1785: 1786: * c-decl.c (build_enumerator): Error if value outside range of int. 1787: 1788: * tm-hp9k320.h (CPP_SPEC): Define _INCLUDE__STDC__ if not traditional. 1789: * tm-hp9k310.h: Missing file brought back. 1790: 1791: Mon Feb 5 12:49:36 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1792: 1793: * reload1.c (spill_hard_reg): Return 1 if reg is explicitly used. 1794: (reload): Cancel dummy reloads using regs subject to spill. 1795: 1796: Sun Feb 4 12:37:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1797: 1798: * tm-3b1g.h: New file. 1799: * config.gcc (3b1g, 3b1-gas): New alternative. 1800: 1801: * tm-att386.h (ASM_OUTPUT_COMMON): Don't use rounded size. 1802: 1803: Fri Feb 2 17:04:37 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1804: 1805: * integrate.c (copy_for_inline): Use real width of rtunion in bcopy. 1806: * emit-rtl.c (copy_rtx_if_shared): Likewise. 1807: 1808: * assert.h (assert) [__STDC__]: Use comma operator to avoid warning. 1809: 1810: * c-decl.c (grokdeclarator): Traditionally change return type float 1811: to double. 1812: 1813: * cse.c (predecide_loop_entry): Give up unless simple jump enters loop. 1814: 1815: Thu Feb 1 02:02:21 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1816: 1817: * tm-convex.h (FASCIST_ASSEMBLER, VTABLE_USES_MASK, VINDEX_MAX): 1818: New definitions to control c++ files. 1819: 1820: * reload1.c (inc_for_reload): Forget reg_last_reload_reg 1821: for the reg being inc'd. 1822: 1823: * limits.h (INT_MIN): Define so it has type `int', not unsigned. 1824: (CHAR_MIN, SCHAR_MIN, SHRT_MIN): Put arens around value. 1825: 1826: Wed Jan 31 12:54:07 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1827: 1828: * tm-mips.h (FUNCTION_PROLOGUE): Use CONST_OK_FOR_LETTER_P to see 1829: if can update fp in one addiu insn. 1830: 1831: * reload1.c (reload): Reject fixed regs when finding groups to spill. 1832: 1833: * assert.h (assert) [NDEBUG]: Make value nonempty. 1834: (assert) [no NDEBUG]: Split into a version for __STDC__ and one not. 1835: (_assert) [__STDC__]: Pass expression and file separately to _eprintf. 1836: (_assert) [not __STDC__]: Likewise, but implemented differently. 1837: * gnulib.c (__eprintf): Handle 3 args plus format string. 1838: 1839: * tm-i386.h (STACK_BOUNDARY): Define it. 1840: 1841: Sat Jan 27 17:58:30 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1842: 1843: * hard-params.c: Use explicit file name to include self. 1844: 1845: Fri Jan 26 01:38:29 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1846: 1847: * cccp.c (rescan): Set beg_of_line when string ends at newline. 1848: (skip_quoted_string): Don't swallow newline that ends a string. 1849: (handle_directive): No need to back up here. 1850: Pass LIMIT as second arg to skip_quoted_string. 1851: 1852: * cccp.c (rescan): If traditional, end preproc number after expt sign. 1853: 1854: Thu Jan 25 01:57:34 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1855: 1856: * loop.c (general_induction_var): Reject widening multiply. 1857: 1858: * i860.md (andsi3): Truncate xop2 constant to 16 bits. 1859: 1860: Wed Jan 17 12:33:52 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1861: 1862: * tm-mips.h (CC1_SPEC): Don't complain about -g. 1863: 1864: * c-typeck.c (build_compound_expr): Delete special case 1865: that ignores expressions without side effects. 1866: 1867: * stor-layout.c (layout_type): Struct requires BLKmode if any field 1868: crosses a word boundary. 1869: 1870: * reload1.c (choose_reload_regs): Refix Sequent problem correctly. 1871: 1872: Tue Jan 16 12:03:42 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1873: 1874: * c-parse.y (unary_expr): If sizeof or alignof gets a comma expr 1875: which has array or function type, coerce it to pointer. 1876: 1877: * fold-const.c (combine): Propagate carry when subtracting from 0. 1878: 1879: * fold-const.c (fold): For x++==const, do arith in type of const. 1880: 1881: Mon Jan 15 19:24:04 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1882: 1883: * cexp.y (exp): Accept unary +. 1884: 1885: Sun Jan 14 12:18:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1886: 1887: * fold-const.c (lshift_double, rshift_double, lrotate_double): 1888: (rrotate_double): Don't shift more than width of operand. 1889: 1890: Fri Jan 12 18:50:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1891: 1892: * recog.c (next_insns_test_no_inequality): Return 1 at end of rtl. 1893: 1894: Thu Jan 11 14:09:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1895: 1896: * cccp.c (skip_if_group): Skip strings even if -traditional. 1897: (handle_directive): Likewise, when handling copy_command. 1898: 1899: * i860.md (movsf): Ensure F to f is reloaded via r. 1900: 1901: Wed Jan 10 15:03:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1902: 1903: * Makefile [3b1]: Propose redefinition of CCLIBFLAGS. 1904: 1905: * reload1.c (choose_reload_regs): Break down hairy if expression. 1906: 1907: * loop.c (loop_skip_over): Do nothing if don't find expected compare. 1908: 1909: Sun Jan 7 00:58:06 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1910: 1911: * config.gcc: Add i386-mach. 1912: * xm-i386.h: Use built-in alloca if compiling with GCC. 1913: 1914: * optabs.c (emit_cmp_insn): Set CLASS after MODE. 1915: 1916: Sat Jan 6 15:33:32 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1917: 1918: * out-mips.c (function_arg, function_arg_advance): 1919: Define typedef for CUMULATIVE_ARGS, and use it here. 1920: 1921: * cccp.c (main): Recognize `.C' for -M. 1922: 1923: * c-parse.y (yylex): Put 0 at end of wide string. 1924: 1925: * tm-mips.h (CC1_SPEC): Don't distort meaning of -O. 1926: 1927: Fri Jan 5 12:12:31 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1928: 1929: * gcc.c (link_command_spec): If LIBS_COMPILED_WITH_GCC, gnulib is last. 1930: 1931: Thu Jan 4 23:58:59 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1932: 1933: * Makefile (c-parse.tab.o): Add explicit compilation cmd. 1934: 1935: Wed Jan 3 00:27:53 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1936: 1937: * Makefile (install): Use nested foreach-loop to expand va*.h. 1938: 1939: Mon Jan 1 19:36:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1940: 1941: * expr.c (store_one_arg): Round size up for move_block_to_reg. 1942: (expand_call): Round up when emitting USE insns. 1943: * stmt.c (assign_parms): Round size up for move_block_from_reg. 1944: 1945: * reload1.c (alter_reg): Undo big-endian conversion from 1946: assign_stack_local. 1947: 1948: Sun Dec 31 20:10:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1949: 1950: * tree.h (struct tree_common): Declare `code' as char, not int. 1951: 1952: Thu Dec 28 13:49:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1953: 1954: * gnulib.c (__fixunsdfsi): Turn large numbers to small for conversion. 1955: 1956: * Makefile (includes): Set variable LIB. Run from `./'. 1957: 1958: Wed Dec 27 18:54:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1959: 1960: * Makefile (CCLIBFLAGS): Add -O. 1961: (gnulib): Remove -O here. 1962: (HARD_PARAMS_FLAGS): Like CCLIBFLAGS but no -O. 1963: (hard-params, hard-params.o): Use that. 1964: 1965: * loop.c (can_eliminate_biv_p, eliminate_biv): If add_val non zero, 1966: it must be a constant or register. 1967: 1968: Mon Dec 25 00:02:31 1989 Torbj|rn Granlund (tege at zevs.sics.se) 1969: 1970: * tm-pyr.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Should not be defined. 1971: The cvtdw instruction causes a trap for floating point values 1972: that are out-of-range for a signed int. 1973: 1974: * out-pyr.c (has_direct_base): Don't accept 0 as a base, if there 1975: is a register displacement. This is a workaround of a bug in 1976: /bin/as. (/bin/as changes things like "cmpw 8(reg),0(reg)" into 1977: "cmpw 8(reg),(reg)", which is invalid assembler.) 1978: 1979: Sun Dec 24 11:51:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1980: 1981: * expr.c (emit_move_insn): Lossage validating mem addr of constant. 1982: 1983: * varasm.c (record_constant_1): Missing `return' in ADDR_EXPR case. 1984: 1985: Sat Dec 23 10:54:22 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1986: 1987: * ns32k.md (extract byte from register): Delete #if conditionals. 1988: Assume 32532 always. 1989: (adjust stack): Likewise. 1990: 1991: Thu Dec 21 10:24:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 1992: 1993: * i860.md (load DF constant to reg): Typo: extra percent sign. 1994: (floatsidf2): Two words of a double were backwards. 1995: 1996: * reload1.c (alter_reg): 1997: Always do big-endian correction on slot address. 1998: 1999: * gnulib.c (__fixunsdfsi): Don't rely on host compiler for unsigned. 2000: 2001: * i386.md (float push recognizers): Don't pop fpreg if not dead. 2002: 2003: Sun Dec 17 12:13:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2004: 2005: * tm-hp9k320.h (CPP_PREDEFINES): Add __hp9000s300, _HPUX_SOURCE. 2006: 2007: Sat Dec 16 17:49:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2008: 2009: * loop.c (strength_reduce): When writing insn to init a biv, 2010: update life range of reg used to init it. 2011: 2012: * combine.c (try_combine): Do combine (y = x, x = y). 2013: 2014: * loop.c (strength_reduce): When finding initial value of a biv, 2015: notice assignments to subregs of it, etc. 2016: 2017: Fri Dec 15 00:42:31 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2018: 2019: * m68k.md (fpa float and float-trunc): Accept general_operand. 2020: 2021: * integrate.c (expand_inline_function): 2022: Put caller's line number after inline stuff. 2023: Put callee's line number before parm manipulation. 2024: 2025: * If local-alloc assumes a reg does not conflict, 2026: don't use it as dummy reload. 2027: * local-alloc.c (wipe_dead_reg): Add REG_UNSET note. 2028: * reload.c (find_dummy_reload): Check for that note. 2029: 2030: * vax.md (casesi): New pattern for super-trivial cse case. 2031: 2032: * jump.c (jump_optimize): Realize that more things can follow 2033: the NOTE_INSN_FUNCTION_END note. Change in two places, 2034: for optimized and one for unoptimized. 2035: 2036: Sat Dec 9 15:21:07 1989 Richard M. Stallman (rms at ccvi) 2037: 2038: * expr.c (expand_expr): For conversion ops, copy CONST_INT to reg 2039: to avoid lossage on VOIDmode in convert_move or expand_float. 2040: * optabs.c (expand_float): Abort if FROM has VOIDmode. 2041: 2042: * final.c (final_scan_insn): Delete unused label. 2043: 2044: Thu Dec 7 01:42:30 1989 Richard M. Stallman (rms at ccvi) 2045: 2046: * sdbout.c (MAKE_LINE_SAFE): Ensure arg is > sdb_begin_function_line. 2047: (sdbout_begin_block, sdbout_end_block, sdbout_end_function): Use it. 2048: 2049: * jump.c (jump_optimize): Leave block-beg, block-end notes 2050: in old context when swapping two ranges of insns. 2051: (squeeze_block_notes): New function. 2052: 2053: * expr.c (expand_call): For pcc struct, return reg mode is Pmode. 2054: 2055: * c-typeck.c (build_conditional_expr): 2056: Only explicit ints allow predetermined choice. 2057: 2058: Wed Dec 6 19:02:07 1989 Richard M. Stallman (rms at ccvi) 2059: 2060: * toplev.c: Undef FFS after including param.h. 2061: 2062: Tue Dec 5 16:01:18 1989 Richard M. Stallman (rms at ccvi) 2063: 2064: * mips.md (movsf): Use mtc1 where needed. 2065: 2066: * reload1.c (choose_reload_regs): If run out of spill regs, 2067: set must_reuse and try again. 2068: 2069: Mon Dec 4 00:18:24 1989 Richard M. Stallman (rms at ambroise) 2070: 2071: * reload1.c (alter_reg): 2072: Don't set spill_stack_slot_width if from_reg is -1. 2073: 2074: * cse.c (cse_end_of_basic_block): Typos checking NOTE insns. 2075: 2076: * math-68881.h (pow): Add parens around `&'. 2077: 2078: * loop.c (can_eliminate_biv_p, eliminate_biv): 2079: In COMPARE, verify the biv is one of the arguments. 2080: (strength_reduce): When eliminating biv, check for use 2081: in a giv in an address, just as in check_eliminate_biv. 2082: 2083: * stupid.c (reg_order): Make it int, in case reg # is large. 2084: (stupid_reg_compare, stupid_life_analysis): Implement this. 2085: 2086: Sun Dec 3 14:17:36 1989 Richard M. Stallman (rms at ambroise) 2087: 2088: * tm-att386.h (ASM_OUTPUT_LOCAL): Don't generate .lcomm. 2089: Go back to putting the variable in the data section. 2090: 2091: * expr.c (do_jump): Cast XVECLEN to int for subtracting 1. 2092: 2093: * reload.c (decompose): Handle SUBREGs. 2094: 2095: * c-typeck.c (build_modify_expr): Prevent -Wall warning 2096: when we generate a COMPOUND_EXPR for (?:)=. 2097: 2098: Mon Nov 27 15:39:40 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2099: 2100: * Makefile [pyramid]: Use CLIB, not ALLOCA, to access libPW.a. 2101: Use -lc explicitly first. 2102: 2103: * pyr.md (SI test recognizer): Fix syntax error, 2104: 2105: * c-decl.c (grokdeclarator): Don't test size of error_mark_node 2106: as type of a field. 2107: 2108: Sun Nov 26 12:36:01 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 2109: 2110: * tm-mips.h (CONST_OK_FOR_LETTER_P): Delete extra paren. 2111: 2112: Wed Nov 22 12:56:41 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2113: 2114: * pyr.md (mode conversion peepholes): Set CC_NO_OVERFLOW. 2115: * out-pyr.c (consecutive_operands): Don't expect wrap from reg15 to 16. 2116: 2117: * Makefile: Fix directions for pyramid. 2118: 2119: * tm-mips.h (CONST_OK_FOR_LETTER_P): Define `K'. 2120: (SMALL_INT): Range is 16 bits, not 17. 2121: (SMALL_INT_UNSIGNED): New macro. 2122: * mips.md (andsi3, iorsi3, xorsi3): Use `K', not `I'. 2123: 2124: * mips.md (negsi2): Accept general_operand as input. 2125: 2126: Tue Nov 21 10:57:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2127: 2128: * mips.md (one_cmpl*): Accept general_operand as input. 2129: 2130: Mon Nov 20 11:18:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2131: 2132: * expr.c (expand_expr): For MINUS_EXPR, don't explicitly negate int 2133: constant if it is in a mode too wide for host machine int. 2134: 2135: * cse.c (fold_rtx): Simulate negative shift counts. 2136: 2137: Sun Nov 19 14:36:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2138: 2139: * out-pyr.c (notice_update_cc): Set CC_NO_OVERFLOW in many cases. 2140: 2141: * cse.c (fold_rtx, fold_cc0): Handle float trap. 2142: 2143: Sat Nov 18 00:17:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2144: 2145: * varasm.c (output_constant): Handle float trap in fprintf. 2146: * toplev.c (float_signal): Don't print message. 2147: * fold-const.c (combine): Print it here. 2148: 2149: * sparc.md (extend patterns): Handle CONST_INT as operand. 2150: 2151: * out-i386.c (singlemove_string): Fix paren error. 2152: 2153: Fri Nov 17 12:19:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2154: 2155: * expr.c (expand_increment): For pre-increment, copy the rtx to return. 2156: 2157: * c-parse.y (compstmt): There may be implicit decls, so check 2158: and maybe keep the level. 2159: 2160: * tm-mips.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): 2161: Use call_used_regs, not a private copy. 2162: 2163: Thu Nov 16 00:28:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2164: 2165: * reload1.c: Keep track of paradoxical subregs of each pseudo, 2166: and make extra stack space for their sake. 2167: (reload): Record max size paradoxical subreg for each pseudo. 2168: (scan_paradoxical_subreg): New subroutine for that. 2169: (reload): Make stack slots big enough for that size. 2170: 2171: * tm-i860.h (ASM_DECLARE_FUNCTION_NAME): Define it, 2172: so we can output a no-op before each function. 2173: 2174: * tm-pyr.h (INIT_CUMULATIVE_ARGS): Simplify. 2175: Pass function type to aggregate_value_p. 2176: 2177: * fold-const.c (fold): 2178: For foo++ > const, don't change if foo++ could overflow. 2179: 2180: * loop.c (eliminate_biv): 2181: Fix typo; check both coeffs when comparing givs. 2182: 2183: Wed Nov 15 00:12:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2184: 2185: * integrate.c (copy_for_inline): Correctly handle RTL type "u". 2186: 2187: * jump.c (delete_insn): Extra test for PREV != 0. 2188: 2189: Tue Nov 14 17:31:08 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2190: 2191: * tm-sun3.h (LINK_SPEC): Specify -L to control choice of -lm. 2192: 2193: * tm-pyr.h (INIT_CUMULATIVE_ARGS): 2194: If -fpcc-struct-return, always do the scalar thing. 2195: 2196: * function.c (expand_function_end): Use FUNCTION_OUTGOING_VALUE. 2197: 2198: Sat Nov 11 00:18:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2199: 2200: * tm-sun386.h (ASM_OUTPUT_COMMON): Use ROUNDED, not SIZE. 2201: (ASM_OUTPUT_LOCAL): Likewise. Also, generate .lcomm 2202: rather than a .data area symbol. 2203: * tm-att386.h: Likewise. 2204: 2205: Fri Nov 10 15:04:15 1989 Richard Stallman (rms at rice-chex) 2206: 2207: * caller-save.c (emit_mult_restore, emit_mult_save): 2208: Improve arithmetic for address to save at. 2209: 2210: Thu Nov 9 00:14:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2211: 2212: * tm-pyr.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): 2213: Don't use obsolete pushw and popw insns. 2214: (ASM_OUTPUT_ALIGN): Ensure arg in range 2 to 5. 2215: * pyr.md (tstdi): Pattern deleted. 2216: (SImode test recognizer): Output ucmpw if jump is unsigned. 2217: 2218: * out-sparc.c (operands_satisfy_eager_branch_peephole): 2219: Check for moves between FP and non-FP regs; they take two insns. 2220: * sparc.md (eager branch peepholes): Likewise. 2221: (Ordinary delayed branch peepholes): Similar check. 2222: * out-sparc.c (single_insn_extra_test): New subroutine. 2223: 2224: Wed Nov 8 18:19:51 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2225: 2226: * combine.c (subst): In (sign_extend:M (subreg:N (and:M .. <const>) 0)) 2227: insist that constant be positive in mode N. 2228: 2229: Tue Nov 7 23:25:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2230: 2231: * rtl.h: Undefine FFS in case it was defined by the system. 2232: 2233: Mon Nov 6 14:43:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2234: 2235: * tm-i860.h, tm-m88k.h, tm-pyr.h, tm-spur.h (INIT_CUMULATIVE_ARGS): 2236: Test aggregate_value_p, not just BLKmode. 2237: 2238: * gnulib2.c (__builtin_saveregs): Moved from gnulib.c. 2239: Code added for mips. 2240: 2241: * pyr.md (conditional branch recognizers): Don't simplify if not -O. 2242: 2243: * out-pyr.c (extend_and_branch): Handle two constant operands. 2244: 2245: * integrate.c (function_cannot_inline_p): Don't inline if alloca used. 2246: 2247: Sun Nov 5 02:59:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2248: 2249: * Always make a LET_STMT and notes for the top level of a function 2250: if it has any subblocks. 2251: * c-decl.c (struct binding_level): New field keep_if_subblocks. 2252: (poplevel): Obey the new field. 2253: (keep_next_if_subblocks): New variable. 2254: (pushlevel): Use that variable. 2255: (store_parm_decls): Set that variable. 2256: (compstmt): Pass nonzero to expand_end_bindings 2257: for the new kept binding levels. 2258: (kept_level_p): New function. 2259: 2260: * xm-mips.h: Define USE_C_ALLOCA if compiling with CC. 2261: 2262: * tm-alliant.h (CHECK_FLOAT_VALUE): Define this. 2263: 2264: * expr.c (expand_call): Make valreg 0 if passing structure address. 2265: 2266: Sat Nov 4 23:27:02 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2267: 2268: * caller-save.c (emit_mult_save, emit_mult_restore): 2269: Test regs for suitability as address before using as temps. 2270: 2271: * cccp.c (make_definition, do_define): Better error checks for name. 2272: 2273: Fri Nov 3 01:05:04 1989 Torbj|rn Granlund (tege at echnaton) 2274: 2275: * pyr.md (tstdi): New pattern. Use 64-bit shift with count zero. 2276: 2277: * pyr-tm.h: -mretd pops args with the retd insn. 2278: 2279: * pyr.md (peep-holes for loop optimizations): Use the R output 2280: format in PRINT_OPERAND, don't use output_branch. 2281: * out-pyr.c: No need for functions output_branch, output_inv_branch. 2282: 2283: * tm-pyr.h (ASM_OUTPUT_ALIGN): Don't truncate alignment to two. 2284: 2285: Wed Nov 1 00:38:27 1989 Torbj|rn Granlund (tege at echnaton.sics.se) 2286: 2287: * out-pyr.c (output_inv_branch): When reversing test operands, ne 2288: remains ne, and eq eq eq. 2289: 2290: * pyr.md: Cleanup output code for compare patterns. 2291: 2292: * pyr.md (return): Adjust frame pointer if 2293: current_function_pretend_args_size != 0. 2294: 2295: * pyr.md (extendsidi2): Use general_operand for the input operand. 2296: 2297: * pyr.md, out-pyr.c: Output shift insns with output_shift. 2298: 2299: * tm-pyr.h, out-pyr.c: Make NOTICE_UPDATE_CC understand how 2300: condition codes are really set. Define flag CC_VALID_FOR_UNSIGNED 2301: with to make it possible not to reset cc after each compare or 2302: test. 2303: * pyr.md: Don't use CC_STATUS_INIT for most patterns. 2304: 2305: * out-pyr.c (already_sign_extended): Cleanup, correct, optimize. 2306: 2307: * out-pyr.c: rename radr_diff to constant_diff. 2308: 2309: * out-pyr.c (movdi_possible): Don't combine moves from memory to 2310: memory, because of possible address aliasing. Don't combine moves 2311: with register destination if the source operands are depending on 2312: the destination of the first move, as in 2313: 2314: movw (pr3),pr3 2315: movw 4(pr3),pr4. 2316: 2317: * out-pyr.c (consecutive_operands): Handle SUBREG in addition to REG. 2318: 2319: * out-pyr.c (output_move_double): movl of immediate *sign* extends. 2320: 2321: Tue Oct 31 22:51:39 1989 Torbj|rn Granlund (tege at echnaton.sics.se) 2322: 2323: * pyr.md (cmpsi): Don't expand this. It's just slower. 2324: 2325: * out-pyr.c (extend_and_branch): Handle only QImode and HImode. 2326: Flush code specific for SImode. 2327: 2328: * out-pyr.c (extend_and_branch): To make zero extensions to HImode 2329: of constants not crash: 2330: * out-pyr.c (ensure_extended): Call extend_const if it's a 2331: CONST_INT. Don't call extend_const from extend_and_branch. 2332: * pyr.md, out-pyr.md: Use global variable test_mode to determine the 2333: mode of tests and compares. Set in define_expands for tests and 2334: compares. Used in extend_and_branch. 2335: * out-pyr.c: Pass mode between extend_and_branch and ensure_extended. 2336: 2337: * out-pyr.c (extend_and_branch): Accept SUBREG whereever REG is 2338: accepted. 2339: * out-pyr.c (weird_memory_memory): Accept SUBREG whereever REG is 2340: accepted. 2341: 2342: Thu Nov 2 13:02:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2343: 2344: * gnulib2.c (lshrdi2, and other shifts): Take second arg as long long. 2345: 2346: * out-i386.c (fp_pop_int): Use %L0 in fistp insn. 2347: 2348: Wed Nov 1 00:05:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2349: 2350: * stmt.c (init_function_start): Init max_parm_reg. 2351: 2352: * varasm.c (compare_constant_1): For ADDR_EXPR, compare symbol name. 2353: (record_constant_1): Likewise. 2354: 2355: * out-sparc.c (output_mul_by_constant): Constant zero is legitimate. 2356: 2357: * caller-save.c (emit_mult_restore, emit_mult_save): 2358: Handle stack addresses which are invalid. 2359: 2360: * cse.c (use_related_value): Don't abort if offset is 0. 2361: 2362: Tue Oct 31 15:08:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2363: 2364: * config.gcc (pyramid): Set $machine to pyr. 2365: 2366: * Makefile: Change temp file names from tmp-insn-* to tmp-*. 2367: 2368: * expr.c (expand_call): OK_DEFER_POP for is_const was once too many. 2369: 2370: Sun Oct 29 00:53:46 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2371: 2372: * c-parse.y (yylex): Prevent warning for numbers that underflow. 2373: 2374: * stmt.c (assign_parms): Convert stack addresses to valid addresses. 2375: (validize_mem): New subroutine. 2376: 2377: * stmt.c (check_for_full_enumeration_handling): Accept enum type 2378: as argument (since was finding it incorrectly). 2379: Delete special case for constant index. 2380: (expand_end_case): Pass enum type; check for constant index. 2381: 2382: * cexp.y (initialize_random_junk): Test DOLLARS_IN_IDENTIFIERS 2383: for nonzeroness. 2384: 2385: Fri Oct 27 16:25:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2386: 2387: * tm-next.h (__inline): define as macro for old 1.34 Next uses. 2388: 2389: Wed Oct 25 17:59:33 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2390: * stmt.c: Include recog.h. 2391: 2392: Tue Oct 24 19:23:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2393: 2394: * combine.c (try_combine): Don't move a volatile asm. 2395: 2396: Mon Oct 23 01:45:34 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2397: 2398: * combine.c (try_combine): Don't install a subreg relating two modes 2399: that aren't tieable. 2400: 2401: * gnulib2.c (__fixdfdi): Declare __fixunsdfdi. 2402: 2403: * combine.c: Make uid_cuid an int *. 2404: (combine_instructions): Allocate as such. 2405: * loop.c: Make uid_luid an int *. 2406: (loop_optimize): Allocate as such. 2407: 2408: Sun Oct 22 16:34:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2409: 2410: * stmt.c (fixup_var_refs_1): New insn before a CALL goes before 2411: the preceding USEs. 2412: 2413: Sat Oct 21 00:51:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2414: 2415: * out-pyr.c (extend_and_branch): Allow SUBREG like REG. 2416: * pyr.md (mem-reg and reg-mem HI, QI patterns): 2417: Don't match unless one arg is MEM. 2418: 2419: * out-sparc.c (output_fp_move_double): Use ldd only when safe, 2420: on same conditions used for std. 2421: 2422: * Makefile (gnulib): Fix comments for editing for hpux. 2423: 2424: Fri Oct 20 00:27:00 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2425: 2426: * out-i386.c (singlemove_string): Handle ordinary constants as input. 2427: 2428: * reload1.c (choose_reload_regs): Arg of HARD_REGNO_MODE_OK 2429: was the pseudo; should be the reload reg. 2430: 2431: * tm-decstatn.h (CPP_PREDEFINES): Add bsd4_2, ultrix, MIPSEL, 2432: host_mips, R3000, LANGUAGE_C, SYSTYPE_BSD. 2433: * tm-mips.h (CPP_PREDEFINES): Add host_mips, R3000, MIPSEB, LANGUAGE_C. 2434: (CPP_SPEC): Remove those from here. 2435: Define __SYSTYPE_*__ always. Define SYSTYPE_* only if not -ansi. 2436: No CPP_SPEC needed for decstation. 2437: Correct typos in option tests. 2438: 2439: Thu Oct 19 18:16:40 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2440: 2441: * tm-m68k.h, tm-alliant.h (PRINT_OPERAND): 2442: Don't print :l for address if :w was already printed. 2443: 2444: Wed Oct 18 13:03:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2445: 2446: * tm-mips.h (FUNCTION_PROLOGUE): Get rid of __0__gcc macro. 2447: Store that value in frame_stack_difference. 2448: (FUNCTION_EPILOGUE): Get rid of __0__gcc macro. 2449: (FIX_FRAME_POINTER_ADDRESS): Use frame_stack_difference. 2450: * out-mips.c (frame_stack_difference): Define here. 2451: 2452: * gcc.c (compilers): Define __GNUG__ if g++. 2453: 2454: Tue Oct 17 01:17:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2455: 2456: * tm-i860.h (HAVE_PRE_INCREMENT): Undefine this. 2457: 2458: * mips.md (movsf): New alternatives for r registers. 2459: * tm-mips.h (FUNCTION_PROLOGUE): Handle big stack frames. 2460: * out-mips.c (function_arg): Handle mode distinction for floating args. 2461: 2462: * pyr.md (mtstsw pattern): Accept general_operand. 2463: 2464: * i860.md (movsf): New alternatives: allow loading r from F. 2465: Prefer f-reg as reload when moving m from F. 2466: * tm-i860.h (PRINT_OPERAND): Handle CONST_DOUBLE if SFmode. 2467: 2468: Sun Oct 15 19:45:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2469: 2470: * i860.md (movhi, movqi): Support moves to/from fp regs. 2471: 2472: * sparc.md (cse'd multiply): New pattern for mult. by -1. 2473: 2474: * out-i860.c (load_opcode, store_opcode): Handle DImode and fp reg. 2475: 2476: * expr.c (emit_library_call, expand_call): Make a SEQUENCE for 2477: any needed USE insns and pass them to emit_call_1. 2478: (emit_call_1): Place the passed SEQUENCE immediately before the 2479: generated CALL_INSN even if gen_call made more than one insn. 2480: 2481: Fri Oct 13 00:12:46 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2482: 2483: * recog.c (constrain_operands): Add case for `&'. 2484: 2485: * expmed.c (extract_bit_field): With structure reg fetched from mem, 2486: don't put in subreg if mode already correct. 2487: (store_bit_field): Typo: had extzv, wanted insv. 2488: 2489: * stmt.c (expand_function_start): Call init_recog. 2490: 2491: Thu Oct 12 01:48:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2492: 2493: * cccp.c (macarg1): Count newlines even after backslash. 2494: 2495: * c-decl.c (pushdecl): Don't warn for explicit extern 2496: followed by static. That case is useful for incomplete arrays. 2497: 2498: * tm-sparc.h (SELECT_RTX_SECTION): Test was backwards. 2499: 2500: Wed Oct 11 00:35:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2501: 2502: * tm-seq386.h (DBX_DEBUGGING_INFO): Override this. 2503: (HARD_REGNO_MODE_OK): Override this. 2504: 2505: Mon Oct 9 01:09:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2506: 2507: * i860.md (movdi): accept F source in 2nd alternative. 2508: Accept G source in 3rd. 2509: (adddi3, subdi3): Typo in opcode of output. 2510: 2511: Sun Oct 8 01:38:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2512: 2513: * tm-mips.h (ASM_SPEC): Pass -nocpp to as. 2514: 2515: * c-decl.c (grokdeclarator): Ignore variant differences 2516: when preserving typedef types from being altered. 2517: 2518: Sat Oct 7 00:46:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2519: 2520: * xm-mips.h: Use __builtin_alloca. 2521: 2522: Fri Oct 6 00:30:42 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2523: 2524: * reload.c (find_equiv_reg): Do let xregno be a pseudo reg, 2525: but don't call HARD_REGNO_NREGS in that case. 2526: 2527: Thu Oct 5 00:30:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2528: 2529: * reload.c (find_equiv_reg): Don't let xregno be a non-hard reg. 2530: Don't do OVERLAPPING_REGNO_P on a pseudo reg number. 2531: 2532: * i386.md (trunchiqi2, etc.): Output %1 with size of destination. 2533: * out-i386.c (PRINT_REG): Support 'b' as CODE. 2534: 2535: * combine.c (try_distrib): Make sure we don't move a reg use 2536: across a store into that reg. 2537: 2538: * reload1.c (order_regs_for_reload): Rate fixed regs at LARGE+2, 2539: and explicitly used regs at LARGE+1. 2540: 2541: * stor-layout.c (build_int): When memoizing, make permanent nodes. 2542: 2543: Wed Oct 4 19:40:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2544: 2545: * xm-i860.h: Missing file added. 2546: 2547: Mon Oct 2 16:26:33 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2548: 2549: * reload1.c (emit_reload_insns): Reject any OLDEQUIV that is 2550: in use in any other reload of this insn. 2551: 2552: * expr.c (expand_call): Don't put on notes for const functions 2553: if there aren't real insns to hold them. 2554: 2555: Sun Oct 1 19:50:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2556: 2557: * integrate.c (expand_inline_function): Handle PARALLEL in CALL_INSNs 2558: when setting follows_call. 2559: 2560: * i860.md (pfeq, pfgt and pfle patterns): Add f0 as 3rd arg. 2561: 2562: * integrate.c (save_for_inline): Don't delete NOTE_INSN_FUNCTION_END. 2563: 2564: Fri Sep 29 08:56:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2565: 2566: * tm-next.h (LINK_SPEC): Typo for -Z option. 2567: 2568: Thu Sep 28 12:57:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2569: 2570: * reload.c (decompose): Handle case of pseudo with no hard reg. 2571: 2572: Wed Sep 27 01:20:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2573: 2574: * explow.c (round_push): Fix typo: return fast if ALIGN is 1. 2575: 2576: * varasm.c (in_text_section): New function. 2577: * tm-3b1.h (ASM_OUTPUT_SKIP): Use that. 2578: 2579: Tue Sep 26 02:40:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2580: 2581: * c-typeck.c (commontype): If one arg is error_mark_node, return other. 2582: 1.1.1.16 root 2583: Sun Sep 24 00:21:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2584: 1.1.1.17 root 2585: * c-decl.c (poplevel): When popping a local extern decl, 2586: save the TREE_USED bit in the identifier. 2587: * toplev.c (compile_file): Check that, printing "not used" warnings. 2588: 2589: * tree.c (make_node): Always put PARM_DECL in saveable_obstack. 2590: 1.1.1.16 root 2591: * Version 1.36 released. 2592: 2593: * genextract.c (main): Pass `insn' as arg to `fatal_insn_not_found'. 2594: 2595: * tahoe.md (casel patterns): Use %@ for operand of .align. 2596: * tm-tahoe.h (PRINT_OPERAND): %@ prints `1'. 2597: * tm-harris.h (PRINT_OPERAND): Redefine it; %@ prints `2'. 2598: 2599: * config.gcc (decstation): New entry. 2600: 2601: * tm-harris.h: New file, using tm-tahoe.h. 2602: 2603: * tm-decstatn.h, tm-mips-bsd.h, tm-mips-sysv.h: New files. 2604: 2605: Sat Sep 23 00:28:14 1989 Alain Lichnewsky (lich at glenlivet) 2606: 2607: * added -Zxxx flag in tm-mips.h. (-Z stands for systype) 2608: 2609: used as -ZSYSV or -ZBSD43 on RISC_OS. I suppose 2610: that at somepoint -ZPOSIX might be required for Ultrix. 2611: 2612: * changed command issued to loader to set -systype and to get 2613: crt1 crtn instead of crt0. 2614: 2615: * changed predefines for cpp to agree with RISC-OS 2616: 2617: * tm-mips.h checks for machine type ( defined(ultrix) == DECSTATION) 2618: so that user does not have to go in and change tm-mips.h anymore 2619: 2620: * cpp defines mips host_mips unix and SYSTYPE_SYSV 2621: or SYSTYPE_BSD43. 2622: 2623: Fri Sep 22 00:31:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2624: 2625: * pyr.md (andsi3): Flush spurious paren. 2626: 2627: * Makefile (hard-params): Don't use LIBS or LIBDEPS. 2628: 2629: * rtl.c (init_rtl): 2630: Use malloc to allocate the string for format of CONST_DOUBLE. 2631: Don't fail to store in rtx_format. 2632: 2633: Thu Sep 21 00:33:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2634: 2635: * print-tree.c (dump): Move decl of P in REAL_CST case. 2636: 2637: * fold-const.c (fold): For ABS_EXPR, handle REAL_IS_NOT_DOUBLE. 2638: 2639: * c-convert.c (convert_to_real): Use REAL_VALUE_ATOF to make 0. 2640: 2641: * mips.md (movdi): Handle constant with or without WORDS_BIG_ENDIAN. 2642: For alternative 2, output just 2 store insns, not 3. 2643: 2644: * dbxout.c (dbxout_symbol): Optionally go to .data for 2645: a static file-scope variable. 2646: * tm-vax.h: Define DBX_STATIC_STAB_DATA_SECTION to request this. 2647: 2648: * varasm.c (output_constant, force_const_mem): 2649: ASM_OUTPUT_DOUBLE_INT now takes rtx as argument. 2650: 2651: * gvarargs.h [__NeXT__]: Undefine macros defined by stdardg.h. 2652: Define _VARARGS_H. 2653: 2654: * stddef.h (size_t): Don't define it if _SIZE_T macro is defined. 2655: (NULL): Undef any previous defn. 2656: 2657: * cexp.y (NULL): Don't define if already defined. 2658: 2659: * emit-rtl.c (force_next_line_note): New function. 2660: * stmt.c (expand_function_start): Call that just before returning. 2661: 2662: Wed Sep 20 01:22:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2663: 2664: * c-parse.y (asm_clobbers): 2665: Allow string concatenation: call combine_strings. 2666: 2667: Mon Sep 18 00:04:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2668: 2669: * expr.c (expand_call): If calling const function, don't defer 2670: pops for this call. 2671: 2672: * c-parse.y (yylex): When float constant ends in `f', 2673: actually truncate to a single-float. 2674: 2675: Sun Sep 17 01:36:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2676: 2677: * gcc.c (SWITCH_TAKES_ARG): -A takes an arg. 2678: (link_spec): Inhibit start files when -A. 2679: 2680: * convex.md (call, call_value): Supply dummy arg to RETURN_POPS_ARGS. 2681: 2682: * gnulib2.c (__fixunsdfdi): After removing top half, A can be neg. 2683: (__cmpdi2, __ucmpdi2): Was misusing macros HIGH and LOW-- 2684: use .s.high and .s.low to extract words from long_long. 2685: 2686: * Makefile (gnulib2): Run `./gcc'. 2687: 2688: * Makefile (float.h): Use `make', not `$(MAKE)'. 2689: (hard-params.o): Use `$(srcdir)' in deps as in commands. 2690: 2691: * out-tahoe.c (output_move_double): Handle constant operand 1. 2692: 2693: Sat Sep 16 01:15:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2694: 2695: * reload1.c (emit_reload_insns): Put death note for input reload reg 2696: even if reload was inherited. 2697: 2698: * out-i860.c (output_block_move): Typo loading size of block. 2699: 2700: * m68k.md (dbra patterns): Do CC_STATUS_INIT. 2701: 2702: * cse.c (fold_rtx): Check GET_MODE_CLASS before floating negate. 2703: 2704: Fri Sep 15 00:39:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2705: 2706: * combine.c (subst): Don't combine (subreg (mem)) 2707: if subreg's mode is wider than mem's mode. 2708: 2709: Thu Sep 14 04:33:51 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2710: 2711: * Makefile (clean): Delete temp files used in making gnulib. 2712: 2713: * tm-next.h (LINK_SPEC): Pass -Z and -seglinkedit options. 2714: 2715: Tue Sep 12 01:06:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2716: 2717: * stor-layout.c (layout_type): Ignore MAX_FIXED_MODE_SIZE for ints. 2718: 2719: * mips.md (cmpsi + bleu peephole): Should output unsigned insn. 2720: 2721: * expmed.c (store_bit_field, extract_bit_field): If loading mem 2722: into reg for bit field insn, don't use a larger mode than insn wants. 2723: 2724: * Makefile (stamp-gnulib2): Depend on gcc, cc1, cpp to avoid 2725: wrong order of making when parallel. 2726: 2727: * Makefile (float.h): Do use $(MAKE) to run recursive make. 2728: 2729: Mon Sep 11 00:49:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2730: 2731: * cccp.c (main): Test for missing arg after -o, etc. 2732: 2733: * tm-next.h: Nearly completely new. 2734: 2735: * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move after config.h. 2736: 2737: * cccp.c: Cast some args to strcpy and strcat. 2738: 2739: * genoutput.c (error): Declare arg S. 2740: 2741: * tm-pyr.h, pyr.md, out-pyr.c, xm-pyr.h: New files. 2742: * config.gcc: New item for pyr. 2743: 2744: * gvarargs.h: If __pyr__, use va-pyr.h. 2745: 2746: Sun Sep 10 00:48:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2747: 2748: * reload1.c (inc_for_reload): Really return the first of the insns. 2749: 2750: * stor-layout.c (build_int): Memoize size nodes for sizes <= 32. 2751: 2752: * loop.c (check_dbra_loop): Don't reverse a biv that is used 2753: in between its update and the loop endtest insn. 2754: 2755: Sat Sep 9 02:10:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2756: 2757: * stor-layout.c (genop): Don't use `combine' for nonexplicit constants. 2758: Handle some identity elements, etc., directly. 2759: (layout_basetypes): Function deleted. 2760: (layout_record): Ignore any TYPE_DECLs in the fieldlist. 2761: Don't do PCC_BUTFIELD_TYPE_MATTERS hack on field with ERROR_MARK type. 2762: (layout_union): Delete error check for base types. 2763: Ignore any TYPE_DECLs in the fieldlist. 2764: (layout_type): Copy layout info directly into all variants of type. 2765: Delete unused local `x'. 2766: 2767: * mips.md (movdi): Handle constant source operand. 2768: (movsi): Some output code moved to output_load_immediate. 2769: * out-mips.c (output_load_immediate): New function. 2770: 2771: * config.gcc (iris): Use tm-iris.h and xm-iris.h. 2772: 2773: * integrate.c (copy_for_inline): Copy all nonconstant MEM addresses. 2774: 2775: * tm-3b1.h (ASM_OUTPUT_SPACE): New override defn, to output explicit 2776: bytes of 0 if in text segment. 2777: 2778: Fri Sep 8 19:15:08 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2779: 2780: * combine.c (try_combine): Don't do i3dest stuff if i3 isn't a SET. 2781: 2782: Thu Sep 7 00:16:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2783: 2784: * integrate.c (function_cannot_inline_p): Fn is "not even close" 2785: only if > 3 * max_insns. 2786: 2787: * toplev.c (fatal_insn_not_found): New fn. 2788: * genextract.c (main): Make insn_extract call that fn. 2789: 2790: * integrate.c (expand_inline_function): Don't abort about bad offset 2791: in a parm whose type is error_mark_node. 2792: Make another syntax level to hold parm destructors. 2793: 2794: * tm-mips.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): 2795: Increment push_loc after, not before, each reg save or restore. 2796: When storing reg 9 or 29, use offset tsize-4. 2797: Make tsize larger by 4 initially. 2798: (STARTING_FRAME_OFFSET): -8, not -4. 2799: 2800: * gcc.c (choose_temp_base): Make use of TMPDIR and P_tmpdir 2801: if they exist. 2802: 2803: * toplev.c, gcc.c, cccp.c, gen*.c (fancy_abort): 2804: New function which can be used to replace `abort'. 2805: 2806: * toplev.c (main): Save argv, argc in save_argv, save_argc. 2807: 2808: * jump.c (delete_insn): Always advance NEXT across deleted insns, 2809: in case not optimizing. Fixes setting current_function_returns_null. 2810: 2811: * symout.c: Include stddef.h with <...>. 2812: 2813: Wed Sep 6 00:39:35 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2814: 2815: * gcc.c (find_exec_file): Was using `argbuf[0]' where wanted `prog'. 2816: 2817: * combine.c (combine_instructions): Dont call record_dead_and_set_regs 2818: if insn has become a NOTE. 2819: 2820: * reload.c (combine_reloads): Update reload_when_needed. 2821: 2822: * jump.c (delete_insn): If delete label on ADDR_VEC, delete table too. 2823: (jump_optimize): If ADDR_DIFF_VEC label has 1 ref, delete it and table. 2824: 2825: * gunlib2.c (__fixunsdfdi, __floatdfdi): Make the long long, 2826: and/or its two halves, unsigned. 2827: 2828: * reload1.c (reload): When setting double_reg_address_ok, 2829: require it to be offsettable. 2830: * out-sparc.c (output_fp_move_double): Now safe to use std 2831: for all reg+reg addresses. 2832: 2833: * vax.md: Add another simplified-casesi pattern for operand 0 constant. 2834: 2835: * cse.c (fold_rtx): Don't truncate VAL at end if WIDTH is 0. 2836: Don't alter WIDTH for that purpose based on the operands. 2837: 2838: * stmt.c (warn_if_unused_value): && or || is ok if 2nd op has effect. 2839: 2840: * c-parse.y (ALIGNOF unary_expr): Find a larger value if possible. 2841: 2842: * reload.c (combine_reloads): Don't combine an output address reload. 2843: (find_reloads): Call combine_reloads after setting reload_when_needed. 2844: (find_reloads_address): Update OPERAND if copy the operand. 2845: 2846: * cccp.c (macroexpand): Missing arg no error in 1-arg macro if -trad. 2847: 2848: Tue Sep 5 14:12:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2849: 2850: * reload.c (find_dummy_reload): Don't use the output reg if it is 2851: a fixed reg which can overlap with other regs. 2852: 2853: * cse.c (exp_equiv_p): Two vectors must have same length. 2854: 2855: * tree.def (WITH_CLEANUP_EXPR): Print-name string was wrong. 2856: 2857: * optabs.c (expand_fix): Undo previous change (unsigned conversion). 2858: It doesn't work. 2859: 2860: * gcc.c: Pass -i option to cpp. It takes an arg. 2861: 2862: * cccp.c (cplusplus_include_defaults) [VMS]: Typo in array indices. 2863: 2864: * Makefile (gnulib): Create it in tmpgnulib, then rename at the end. 2865: 2866: * i860.md (movdi from constant pattern): Fix `st' opcode typos. 2867: 2868: * Makefile (hard-params*): Use CCLIBFLAGS, not CFLAGS. 2869: 2870: Fri Sep 1 03:43:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2871: 2872: * tm-i386gas.h (ASM_OUTPUT_ALIGN): .align arg isn't a log, in gas. 2873: (ASM_OUTPUT_ALIGN_CODE): Align labels, etc. to 4-byte boundary. 2874: 2875: * integrate.c (save_for_inline): Delete NOTE_INSN_DELETED notes. 2876: 2877: * Makefile (clean): Delete dbr and jump2 dumps. 2878: 2879: * Makefile (gnulib, gnulib2): Compile in main dir, not libtemp subdir. 2880: This avoids trouble with -I options, etc. 2881: 2882: Thu Aug 31 15:07:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2883: 2884: * reload1.c (emit_reload_insns): 2885: Be specific moving REG_DEAD notes to an output reload. 2886: Sometimes move them to output-operand-address reloads. 2887: 2888: * out-sparc.c (output_fp_move_double): Very cautious about std. 2889: Use it only for something visibly aligned, or for an array element. 2890: 2891: * cccp.c (main) [VMS]: Remove dirs and extension from PROGNAME. 2892: (pfatal_with_name) [VMS]: Return VMS system call error code as status. 2893: (cplusplus_include_defaults) [VMS]: Add GNU_GXX_INCLUDE. 2894: 2895: * xm-vms.h (FATAL_EXIT_CODE): Now (44 | 0x10000000). 2896: 2897: * expr.c (do_store_flag): Allow more values of STORE_FLAG_VALUE. 2898: 2899: * gnulib2.c (__fixunsdfdi): Explicitly cast doubles to `long int' 2900: to avoid infinite recursion. 2901: 2902: Wed Aug 30 13:28:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2903: 2904: * loop.c (skip_consec_insns): Skip NOTEs. 2905: 2906: * loop.c (general_induction_var): If G or V is a nonreplaceable giv, 2907: give up. If G is allocated here, consider it replaceable. 2908: 2909: * stupid.c: Make uid_suid, reg_where_born and reg_where_dead 2910: vectors of ints, not short. 2911: 2912: Tue Aug 29 00:21:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 2913: 2914: * tm-iris.h: Fix typo in formfeed char. 2915: 2916: * out-i860.c (singlemove_string): Add missing `.l' to `st', `ld'. 2917: 2918: * loop.c (general_induction_var): Don't set G from 2nd op. of MINUS, 2919: since that would negate the result. 2920: 2921: Mon Aug 28 00:16:36 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 2922: 2923: * dbxout.c (dbxout_symbol): When we need a pointer type, don't 2924: record it in TYPE_POINTER_TO, lest it not live as long as its target. 2925: 2926: * tm-hp9k320.h (CPP_PREDEFINES): Delete __hp9000s300 and _HPUX_SOURCE. 2927: 2928: * Makefile (gnulib): Deleted stamp-gnulib2 in wrong dir. 2929: (hard-params.o): Copy it into current dir before compiling. 2930: (STAGESTUFF): Include the stamp-*.[ch] files. 2931: 2932: Sun Aug 27 13:59:39 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 2933: 2934: * out-i860.c (output_size_for_block_move): Typo in CC_KNOW_HI_R31. 2935: 2936: * integrate.c (expand_inline_function): Ignore insns to set value reg 2937: if we don't want the value. 2938: 2939: * varasm.c (make_function_rtl, make_decl_rtl): Use DECL_ASSEMBLER_NAME. 2940: 2941: * Makefile (stamp-gnulib2): Don't explicitly delete old members, 2942: just replace them. 2943: 2944: * m68k.md, alliant.md (trunchiqi): Use movew if moving from memory 2945: or from a const_int. 2946: 2947: * integrate.c (expand_inline_function): Set first_parm_offset 2948: later on, after computing the args, in case those args 2949: contain inline function calls. 2950: 2951: * alliant.md (movqi): Like recent change in m68k.md. 2952: 2953: Sat Aug 26 00:26:03 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 2954: 2955: * tm-hp9k320.h (CPP_PREDEFINES): Take out m68k and mc68000. 2956: * tm-news.h (CPP_PREDEFINES): Add mc68000. 2957: 2958: Fri Aug 25 15:37:35 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 2959: 2960: * optabs.c (expand_fix): Can convert to unsigned int 2961: by subtracting 2**(N-1), converting to signed, and adding 2**(N-1). 2962: 2963: * reload.c (find_reloads_address): For out-of-range stack slot, 2964: reload the displacement into a reg. 2965: (find_reloads_toplev): For subreg of a reg with a reg_equiv_address, 2966: turn the whole thing into a memref. 2967: 2968: Thu Aug 24 14:07:03 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 2969: 2970: * c-decl.c (grokdeclarator): If function is declared `extern inline', 2971: set current_extern_inline. 2972: (start_function): In that case, set TREE_EXTERN in function decl. 2973: * toplev.c (rest_of_compilation): In that case, don't really compile. 2974: (compile_file): Don't output such functions at the end either. 2975: 2976: * c-typeck.c (build_function_call): Do set NAME if we have one. 2977: 2978: * Prevent any variability in results of qsort. 2979: * stupid.c (stupid_reg_compare): Compare by regno as last resort. 2980: * global-alloc.c (allocno_compare): Same idea. 2981: * local-alloc.c (qty_compare_1): Same idea. 2982: * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Same idea. 2983: 2984: * cccp.c (macroexpand): If read one arg, but it's whitespace, 2985: consider that 0 args for checking number of args. 2986: Improve plurals in error messages. 2987: 2988: * expr.h (inhibit_defer_pop): New name for current_args_size, 2989: now declared here. 2990: (NO_DEFER_POP, OK_DEFER_POP): Moved here. 2991: * expr.c: Names related to current_args_size renamed. 2992: (clear_current_args_size): Deleted. 2993: * stmt.c (expand_function_start): Init inhibit_defer_pop here. 2994: 2995: * stmt.c (expand_start_stmt_expr): Do NO_DEFER_POP. 2996: (expand_end_stmt_expr): Do OK_DEFER_POP, and don't do deferred pops. 2997: 2998: * Makefile (c-parse.tab.c): Pass -o option to Bison. 2999: 3000: Wed Aug 23 23:14:06 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 3001: 3002: * expmed.c (store_bit_field, extract_bit_field): 3003: Use GET_MODE_WIDER_MODE to scan possible modes for bestmode. 3004: 3005: * Makefile (stamp-gnulib2): Discard error messages from `ar d'. 3006: 3007: Tue Aug 22 00:31:51 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 3008: 3009: * final.c (output_source_line): In COFF, don't output `.ln 0'. 3010: 3011: * Makefile (stamp-gnulib2): Depend on gnulib. For parallel make. 3012: 3013: * stmt.c (uninitialized_vars_warning): Don't crash if DECL_RTL is 0. 3014: 3015: * i386.md (truncdfsf2): Pay attention whether stack top is dead. 3016: 3017: Mon Aug 21 22:02:40 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 3018: 3019: * reload1.c (choose_reload_regs): Don't use regno uninitialized, 3020: in the code that does find_equiv_reg. 3021: 3022: Sun Aug 20 00:06:47 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 3023: 3024: * m68k.md (movqi): Was outputting bad code for areg->mem and mem->areg. 3025: 3026: * explow.c (memory_address): Handle a hard reg in wrong reg class. 3027: 3028: * stmt.c (expand_function_end): Set REG_FUNCTION_VALUE_P in return 3029: reg when returning address of structure value block. 3030: 3031: * integrate.c (save_for_inline): Preserve integrated bit on insns. 3032: 3033: Sat Aug 19 14:20:07 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) 3034: 3035: * combine.c (subst): Don't change (subreg:M (mem:N ...)) to 3036: (mem:M ...) if address is mode-dependent. 3037: 3038: * config.gcc: Copy and alter Makefile for any srcdir except `.'. 3039: In that case, make a .gdbinit as well. 3040: 3041: * sparc.md (andcbsi3, iorcbsi3, xorcbsi3): These are not commutative. 3042: 3043: * vax.md (cmpv and cmpzv patterns): Use COMPARE, not MINUS. 3044: 3045: Fri Aug 18 12:24:52 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 3046: 3047: * alliant.md (movqi): Change move to mov in assembler code. 3048: 3049: * integrate.c (expand_inline_function): 3050: Handle args passed in regs and copied to slots reached via arg ptr. 3051: 3052: * out-sparc.c (output_delayed_branch): 3053: Do alter_subreg on operands of delay insn. 3054: 3055: * reload1.c (choose_reload_regs): Look for a reg to share 3056: before one that we won't share. 3057: 3058: * expr.h: Define OPTAB_MUST_WIDEN. 3059: * optabs.c (expand_binop): Handle that case. 3060: * expmed.c (expand_shift): Use that when widening lshift to ashift. 3061: 3062: * optabs.c (emit_cmp_insn): Use CONST0_RTX, not individual vars. 3063: 3064: * gnulib2.c (lsh*di3, ash*di3): Return right away if count is zero. 3065: Otherwise tried to shift by 32. 3066: Also replace constant 32 by something symbolic. 3067: 3068: * final.c (output_source_line): Output line number in COFF 3069: even if wrong file. 3070: 3071: Thu Aug 17 15:16:34 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 3072: 3073: * Makefile (version.o): Make this a target; specify source file. 3074: (obstack.o): Likewise. 3075: 3076: * config.gcc (i860): New alternative. 3077: 3078: * i860.md (movstrsi): Record the alignment as operand 3. 3079: Renumber following (internal) operands. 3080: * out-i860.c (output_block_move): Rewrite as in out-sparc.c. 3081: (output_size_for_block_move): Likewise. And don't 3082: subtract alignment from the size. 3083: 3084: Wed Aug 16 13:27:12 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 3085: 3086: * loop.c (combine_movables): Don't combine zero-extend 3087: registers that live outside the loop. 3088: 3089: * integrate.c (expand_inline_function): Use copy_to_mode_reg 3090: to set up this_struct_value_rtx, to handle sums right. 3091: 3092: * Makefile: Use $(srcdir) in bison output files used as deps. 3093: Supply some missing deps. 3094: (*.info, doc): *.info files go in srcdir. 3095: 3096: Tue Aug 15 00:11:12 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 3097: 3098: * i860.md, tm-i860.h, out-i860.c: New files. 3099: 3100: * c-decl.c (duplicate_decls): Fix bug determining whether NEWDECL 3101: is a definition or just a decl. 3102: Combine code to preserve various things from old definition 3103: through a declaration. 3104: 3105: * config.gcc: Scan all args at beginning, setting variables. 3106: Arg of form -srcdir=... sets srcdir explicitly. 3107: srcdir now doesn't contain a slash, and is used with a slash. 3108: 3109: * Makefile (install): Copy header files and gcc.1 from srcdir. 3110: But copy float.h from current dir. (Remove that from USER_H.) 3111: (various): Use new variable INCLUDES to get the -I options. 3112: Add -I. at the beginning of these. 3113: (gnulib, gnulib2): Likewise, use SUBDIR_INCLUDES. 3114: Also, get source file from srcdir. 3115: Also, depend on $(CONFIG_H). 3116: (alloca.o): Get alloca.c from srcdir. 3117: 3118: * reload1.c (emit_reload_insns): Bug in last change: 3119: don't fail to set this_reload_insn. 3120: 3121: * Makefile (Bison rules): Specify $(srcdir) for target and source. 3122: (Explicit C rules): Specify $(srcdir)/ for source in commands. 3123: Use sed to eliminate `./' in normal case. 3124: (insn-*.c): Use $(srcdir) to run move-if-change. 3125: 3126: * config.gcc: Check . and .. for the sources. 3127: If in .., use that when making links. 3128: Also, copy Makefile, alter srcdir in it, and add a VPATH. 3129: 3130: * stmt.c (expand_end_case): When converting CONST_INT index 3131: to an INTEGER_CST, sign-extend if signed type. 3132: 3133: Mon Aug 14 13:51:08 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 3134: 3135: * c-decl.c (duplicate_decls): Warn for qualifier mismatch 3136: only if pedantic; don't consider it a type mismatch. 3137: Merge the qualifiers of the two decls if the types match. 3138: 3139: * expmed.c (store_bit_field): For insv, memref displacement 3140: always counts in bytes, regardless of unit fetched. 3141: When checking predicate of op0, accept any mode. 3142: 3143: * optabs.c (expand_float): One call to can_float_p had args backwards. 3144: 3145: * loop.c (check_dbra_loop): Set the JUMP_LABEL of the new jump insn. 3146: Increment label's use count rather than storing 2. 3147: 3148: * Makefile: Instead of $<, which fails in certain makes, 3149: use $@ and then substitute in the name with sed. 3150: 3151: * out-sparc.c (output_scc_insn): Handle CC_REVERSED for ordered tests. 3152: Use orcc insns to store the result and set cc's for it. 3153: 3154: * sparc.md (scc combination patterns): 3155: Use operands[0] as basis for recorded cc value. 3156: 3157: * gnulib2.c (floatdidf, fixdfdi, fixunsdfdi): New functions. 3158: 3159: * gnulib.c (floatdidf, fixdfdi, fixunsdfdi): Deleted. 3160: (union longlong, union double_di): Deleted. 3161: (HIGH, LOW): Deleted. 3162: These were deleted because most did not handle full range of DI 3163: and they didn't use the right calling convention for DI. 3164: 3165: Sun Aug 13 13:06:45 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 3166: 3167: * c-typeck.c (comptypes): Qualifiers must match. 3168: (Was already true for scalars.) 3169: Also, array elt qualifiers must match. 3170: 3171: * tm-apollo68.h (STRUCT_VALUE): Make it 0. 3172: (This was done before and lost.) 3173: * out-i386.c (function_epilogue): Use ret $4 to pop structure address. 3174: (This was done before and lost.) 3175: 3176: * out-i386.c (call_top_dead_p): Don't fail to check 3177: the rtx code of the insns themselves. 3178: (This was done before and lost.) 3179: 3180: * out-sparc.c (output_block_move): If align is 8, make it 4. 3181: 3182: * typeclass.h: New file. 3183: * expr.c: Include it. 3184: (expand_builtin): Use those codes in __builtin_classify_type. 3185: 3186: * Makefile (all, lang-c): Reinstall gnulib2. 3187: 3188: * Makefile (gnulib2): Don't give up if `ar d' fails. 3189: 3190: * expr.c (emit_library_call): New 2nd arg NO_QUEUE. 3191: All callers changed to pass it. 3192: * optabs.c (expand_binop, expand_unop): Don't call emit_queue. 3193: Instead, pass 1 for NO_QUEUE to emit_library_call. 3194: 3195: Sat Aug 12 12:05:22 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 3196: 3197: * reload1.c (emit_reload_insns): Decision for where to put input 3198: reload insn is now common to ordinary case and auto-increment. 3199: Likewise, updating these positions afterward. 3200: 3201: * stmt.c (assign_parms): Treat last named arg as nameless. 3202: * expr.c (expand_call): Likewise. 3203: 3204: * explow.c (copy_to_mode_reg): Use force_operand for PLUS or MULT. 3205: (copy_addr_to_reg): Use copy_to_mode_reg. 3206: 3207: * expmed.c (store_bit_field): Handle case where insv rejects memrefs. 3208: 3209: * tm-convex.h (ASM_OUTPUT_ALIGN): Magic to handle the fact 3210: that this is not called when LOG is 0. 3211: 3212: Fri Aug 11 16:39:51 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 3213: 3214: * emit-rtl.c (get_lowpart): For multi-word, in error check, 3215: test the unit size of the containing mode. 3216: 3217: * cccp.c (macroexpand, dump_all_macros): Return void. 3218: (macroexpand): Cast sprintf arg to char*. 3219: (error, warning, error_with_line): Declare first arg char*. 3220: 3221: Thu Aug 10 21:42:13 1989 Richard Stallman (rms at hobbes.ai.mit.edu) 3222: 3223: * expr.c (expand_call): 3224: Use force_operand to copy arithmetic to register. 3225: 3226: * dbxout.c (dbxout_symbol): Go back to N_FUN for const variable. 3227: 3228: * integrate.c (expand_inline_function): Use proper machine mode 3229: for a structure value in memory at address passed by caller. 3230: 3231: Wed Aug 9 15:21:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3232: 3233: * config.gcc: Delete unnecessary variable assignments in case stmt. 3234: (isi68-nfp): New alternative. 3235: 3236: * combine.c (try_combine): Don't substitute for a register 3237: which is being explicitly clobbered. 3238: 3239: * This change was requested for C++. 3240: * varasm.c (decode_reg_name, make_decl_rtl): Arg ASMSPEC now char *. 3241: * toplev.c (rest_of_decl_compilation): Likewise. 3242: * c-decl.c (finish_decl): Change call to rest_of_decl_compilation. 3243: 3244: * tree.h (struct tree_decl): Pack machine_mode into 8 bits. 3245: 3246: * explow.c (memory_address, copy_to_reg): 3247: Use force_operand to copy arithmetic to register. 3248: 3249: * tm-isi68-nfp.h: New file. 3250: * tm-isi68.h: Allow overriding TARGET_DEFAULT, and let that 3251: change CPP_SPEC and LINK_SPEC. 3252: (ASM_FILE_START): No `.globl fltused' if soft-float. 3253: 3254: Tue Aug 8 21:50:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3255: 3256: * varasm.c (const_hash): For constructor, mask TREE_TYPE to HASHBITS 3257: bits and take modulo, so we don't get negative numbers. 3258: 3259: * varasm.c (record_constant_1, compare_constant_1): 3260: Record and compare the width of an integer. 3261: 3262: * varasm.c (assemble_function, assemble_variable, get_or_assign_label): 3263: (force_const_mem): Don't call ASM_OUTPUT_ALIGN if boundary is 1. 3264: 3265: * c-decl.c (duplicate_decls): Consider const and volatile as part of 3266: type when checking for match and when installing new type into OLDDECL. 3267: 3268: * expr.c (do_store_flag): Make sure target fits operand predicate. 3269: Also, omit the AND insn when true-value is 1 3270: and the mode we get is wider than the one we want. 3271: 3272: * genrecog.c (main): Make insn-recog.c include real.h. 3273: 3274: Mon Aug 7 16:58:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3275: 3276: * genemit.c (main): Define `operands' as `emit_operands', 3277: not `recog_operands'. 3278: 3279: * reload1.c (emit_reload_insns): Don't copy back a dead output reg. 3280: 3281: Sun Aug 6 13:56:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3282: 3283: * sdbout.c (plain_type_1, sdbout_one_type): Use the main variant. 3284: (sdbout_type_fields): No need to check TREE_ASM_WRITTEN here, 3285: since sdbout_one_type does that. 3286: 3287: * expr.c (do_store_flag): Ensure the CLOBBER doesn't clobber an input. 3288: 3289: * fold-const.c (fold_convert): Attempt to avoid overflow 3290: when converting real to integer. Use unsigned conversion for 3291: low part; always convert as positive and then change sign; 3292: subtract high part before converting low part. 3293: Also, check for real values out of range for chosen int type; 3294: warn and do not convert. 3295: 3296: * tm-hp9k320.h (CPP_SPEC) [not HPUX_ASM]: Don't define mc68000 here. 3297: (CPP_PREDEFINES): Remove mc68k, add m68k and mc68000. 3298: [HPUX_ASM]: Define CPP_SPEC here as in the other case, 3299: but add __HPUX_ASM__ to each alternative. 3300: 3301: * tm-m68k.h (FUNCTION_EPILOGUE): Call new hook FUNCTION_EXTRA_EPILOGUE. 3302: * tm-altos3068.h (FUNCTION_EXTRA_EPILOGUE): Define it. 3303: 3304: * Makefile: Use $< wherever appropriate. 3305: Also put definitions of customization vars before the comments 3306: saying how to override them. 3307: 3308: Sat Aug 5 14:15:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3309: 3310: * i386.md (sne): Typo in opcode name. 3311: 3312: * tree.h (struct tree_identifier): Delete redundant/unused error_locus. 3313: 3314: Fri Aug 4 00:04:10 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3315: 3316: * varasm.c (const_hash, compare_constant_1, record_constant_1): 3317: Compare types only for record constructors, not for array constructors. 3318: 3319: * dbxout.c (dbxout_parms): When outputing parm from home in local slot, 3320: with address from the RTL, don't do big-endian correction on it. 3321: 3322: * c-typeck.c (build_unary_op): Do default conversion for unary +. 3323: 3324: * cccp.c (rescan): Accept comments between macro and its args. 3325: 3326: * c-decl.c (lang_decode_option): -traditional implies writable strings. 3327: 3328: * cccp.c (trigraph_pcp): Make warning msg more accurate. 3329: 3330: * c-typeck.c (c_expand_asm_operands): Delete the default promotion 3331: which was inserted mysteriously since 1.35. 3332: 3333: * global-alloc.c (global_conflicts): Allocate regs_set only once. 3334: Make it twice as big since clobbers are stored twice. 3335: 3336: * sparc.md (block move patterns): Record and use alignment operand. 3337: * out-sparc.c (output_block_move): Get alignment from there. 3338: (output_size_for_block_move): Greatly simplified. 3339: 3340: * tm-i386v.h (PCC_BITFIELD_TYPE_MATTERS): Define it. 3341: 3342: * stor-layout.c (layout_record): Anonymous bitfields don't affect 3343: overall structure alignment, in PCC_BITFIELD_TYPE_MATTERS case. 3344: 3345: * loop.c (strength_reduce): Prevent hard reg from becoming biv or giv. 3346: 3347: * combine.c (subst): Simplify (eq (neg ...) (const_int 0)). 3348: 3349: Thu Aug 3 13:08:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3350: 3351: * cse.c (fold_rtx): For (op var const) special cases, also check 3352: for constant as first argument. 3353: 3354: * c-decl.c (pushtag): For global_binding_level, make permanent nodes. 3355: 3356: * expr.c (do_store_flag): Put the CLOBBER before the comparison. 3357: 3358: * expr.c (emit_push_insn): Conditionalize recent changes 3359: on no FIRST_PARM_CALLER_OFFSET, so they don't happen on sparc. 3360: 3361: * out-sparc.c (gen_scc_insn): 3362: Don't be confused by CLOBBER emitted by do_store_flag. 3363: Skip past such insns looking for last_insn. 3364: Don't alter last_insn; instead, patch it to a NOTE and emit new insn. 3365: 3366: * varasm.c (const_hash, compare_constant_1, record_constant_1): 3367: For a CONSTRUCTOR, hash/compare/record type as well as elts. 3368: 3369: * cse.c (cse_insn): July 18 change was wrong. 3370: Now, invalidate at the beginning any regs explicitly clobbered 3371: so they will not be substituted for if they appear as inputs. 3372: * sparc.md (movstrsi): Copy addresses to temp regs, then use them. 3373: 3374: * loop.c (record_giv): When comparing life spans for setting 3375: ->forces, use luids consistently, not uids. 3376: 3377: * sparc.md (ashlsi3, ashrsi3, lshrsi3): Truncate constants mod 32. 3378: 3379: Wed Aug 2 17:50:30 1989 Richard Stallman (rms at sugar-bombs) 3380: 3381: * mips.md (patterns to move a subreg): Deleted. 3382: 3383: Sun Jul 30 19:23:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3384: 3385: * gcc.c (process_command): Skip `-b' like `-B', in 2nd scan. 3386: 3387: * xm-sunos4.h: Deleted. 3388: * tm-sparc.h, tm-sun3.h: Define LINK_SPEC here instead. 3389: * tm-sun4os3.h: Undef it here. 3390: * tm-sun3os3.h, tm-sun3os3nf.h: New files to undef LINK_SPEC. 3391: * config.gcc: Use those new files where needed. 3392: 3393: * config.gcc: Delete sun3-fpa and sun3-os4-fpa. 3394: * tm-sun3-fpa.h: Deleted. 3395: 3396: * cccp.c (do_include): Mention even non-ex files for -M. 3397: 3398: * out-mips.c (addr_compensate): Handle HImode. 3399: * mips.md (Set HI from subreg of SI rule): 3400: Allow operand in memory. 3401: 3402: * mips.md (cmpqi, cmphi): Patterns deleted. 3403: (cmpsi, cmpsf, cmpdf): Change predicates to register_operand. 3404: 3405: * cexp.y (rule for ?:): Result is unsigned if either operand is. 3406: 3407: * expr.c (emit_push_insn): If PARTIAL > 0, load the partial regs 3408: at the end, in case the rest of the push does a function call. 3409: 3410: * reload1.c (alter_frame_pointer_addresses): 3411: After altering a PLUS, re-fetch CODE before scanning subexps. 3412: 3413: * stmt.c (assign_parms): Don't copy the arg pointer value 3414: if it is also the frame pointer. If we do copy it, 3415: inhibit REG_EQUIV notes for parms copied into pseudo regs 3416: 3417: * integrate.c (copy_for_inline, copy_rtx_and_substitute): 3418: Set up filename and lineno fields of copy of ASM_OPERANDS. 3419: 3420: Sat Jul 29 18:58:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3421: 3422: * integrate.c (expand_inline_function): Handle struct-value-addr 3423: passed in memory just like that passed in reg: 3424: in either case, translate the pseudo-reg made in 3425: expand_function_start. 3426: (function_cannot_inline_p): Permit inlining in that case. 3427: But reject it if using pcc-style return convention. 3428: 3429: * stor-layout.c (layout_type): Consider STRICT_ALIGNMENT 3430: for ARRAY_TYPE just as for RECORD_TYPE. 3431: 3432: Wed Jul 26 12:54:59 1989 Richard M. Stallman (rms at mipos3) 3433: 3434: * cse.c (fold_rtx): If WIDTH is zero for binary operator, 3435: look at the modes of the original operands. 3436: 3437: * cse.c (cse_insn): Set prev_insn_explicit_cc0, for (set (cc0) INT). 3438: (predecide_loop_entry): Likewise. 3439: (fold_rtx): Look at it, for (if_then_else (cc0) ...). 3440: 3441: * expr.c (expand_builtin): Pass back return value from 3442: __builtin_saveregs. 3443: 3444: * stmt.c (assign_parms): Allow arg pointer reg not to be fixed. 3445: If it is not, copy it to a pseudo reg and use that later on. 3446: 3447: Tue Jul 25 15:42:04 1989 Richard M. Stallman (rms at mipos3) 3448: 3449: * expr.c (expand_builtin): New builtin __builtin_classify_type. 3450: * tree.h, c-decl.c: Additional support. 3451: 3452: * flow.c (mark_used_regs): Treat arg pointer like stack pointer. 3453: 3454: * expr.c (emit_library_call): 3455: Pass (tree)0 as TYPE arg to FUNCTION_ARG, etc. 3456: 3457: Mon Jul 24 11:18:10 1989 Richard M. Stallman (rms at mipos3) 3458: 3459: * loop.c (regs_match_p): Fix braino. 3460: 3461: * integrate.c (copy_for_inline, copy_rtx_and_substitute): 3462: Make ASM_OPERANDS constraint vector be shared like operand vector. 3463: 3464: * xm-iris.h: New file. 3465: 3466: * Makefile (stage4): New target. 3467: 3468: * gnulib2.c (badd, bsub, bmul, bdiv): If want long value from 3469: arithmetic, widen the operands first. 3470: (__div_internal aka bdiv): Rename to __bdiv. 3471: 3472: * sparc.md (seq combination patterns): Fully initialize cc_status. 3473: 3474: * expr.c (emit_push_insn): Like July 19 change, for BLKmode. 3475: 3476: * stmt.c (expand_function_end): Stack-restore for alloca 3477: is now done after the return_label. 3478: 3479: * loop.c (scan_loop): Set MAYBE_NEVER for conditional jump to loopbeg. 3480: 3481: * integrate.c (copy_rtx_and_substitute): Allow mapping of hard regs. 3482: (expand_inline_function): Always create parm_map. 3483: Handle structure value that way if nec. even if no parms. 3484: Otherwise, find the pseudo used in the function to hold the 3485: structure address, and map it to a new pseudo. 3486: 3487: * expr.c (expand_call): 3488: Use mark_addressable to make FNDECL addressable. 3489: * c-typeck.c (mark_addressable): No longer static. 3490: 3491: * cse.c (cse_insn): Modify last change: don't canon_reg 3492: for hard regs inside clobbers. 3493: 3494: * expr.c (expand_assignment): ALIGN arg to store_field comes from 3495: the structure, not from the value stored. 3496: 3497: Fri Jul 21 16:23:45 1989 Richard M. Stallman (rms at mipos3) 3498: 3499: * stmt.c (warn_if_unused_value): Don't warn for a cast 3500: around a MODIFY_EXPR. 3501: 3502: * tm-hp9k320.h (PCC_STATIC_STRUCT_RETURN): Undefine it. 3503: (CPP_PREDEFINES): Add some. 3504: 3505: * combine.c (simplify_and_const_int): 3506: Simplify (and (ashiftrt (zero_extend FOO) N) M). 3507: 3508: * optabs.c (expand_binop): When widening, 3509: for some operations we need not actually extend. 3510: 3511: Thu Jul 20 16:16:35 1989 Richard M. Stallman (rms at mipos3) 3512: 3513: * Makefile (insn-emit.o): Depend on insn-codes.h. 3514: 3515: * stmt.c (check_for_full_enumeration_handling): 3516: Handle all cases for TYPE_NAME of enum type. 3517: 3518: Wed Jul 19 17:00:39 1989 Richard M. Stallman (rms at mipos3) 3519: 3520: * fold-const.c (fold_convert): Don't fail to force_fit_type. 3521: 3522: * expr.c (emit_push_insn): When pushing only part of scalar on stack, 3523: adjust stack offset not to count the words not pushed. 3524: 3525: * stmt.c (expand_function_end): Always put return structure address 3526: in return register. 3527: 3528: * c-typeck.c (process_init_constructor): Assume 0 for nameless field. 3529: 3530: * recog.c (general_operand, memory_operand): 3531: Check validity of mem address using the mode of the MEM. 3532: 3533: * fixincludes: When calling egrep, use redirect, not -s. 3534: 3535: Tue Jul 18 11:18:55 1989 Richard M. Stallman (rms at mipos3) 3536: 3537: * Makefile (bootstrap*): Pass value of libdir down. 3538: 3539: * cse.c (cse_insn): Do canon_reg on any CLOBBERs and USEs. 3540: 3541: * cse.c (cse_insn): Don't use no_labels_between_p to check 3542: for jump to following label; find following label and compare. 3543: 3544: * combine.c (try_combine): Don't substitute into subreg(x)=y 3545: if modes of x and y are not tieable. 3546: 3547: * out-i386.c (call_top_dead_p): Don't fail to check 3548: the rtx code of the insns themselves. 3549: 3550: * i386.md (tstsf, tstdf): Don't discard TOS if not dead. 3551: 3552: * stupid.c: Don't use regs with PRESERVE_DEATH_INFO_REGNO_P 3553: for pseudos which live across jumps or labels. 3554: (stupid_life_analysis): Update last_jump_suid, last_label_suid. 3555: (stupid_mark_refs): Use those to set reg_crosses_blocks. 3556: (stupid_find_reg): Check that data, passed from stupid_life_analysis. 3557: 3558: * toplev.c (main): Avoid using caddr_t. 3559: 3560: * mips.md (inverted bgeu peephole): Typo in opcode. 3561: 3562: Mon Jul 17 12:29:45 1989 Richard M. Stallman (rms at mipos3) 3563: 3564: * i386.md (mulb patterns): Turned off due to assembler bug. 3565: 3566: * rtl.c (read_name): Use 0, not NULL, for character. 3567: 3568: * alliant.md (movqi): Typos in mov opcodes. 3569: 3570: * tm-sparc.h, tm-spur.h (CONST_DOUBLE_OK_FOR_LETTER_P): 3571: Use CONST_DOUBLE_LOW, etc. 3572: 3573: * stmt.c (expand_function_end): Check value of EXIT_IGNORE_STACK, 3574: not just whether defined. 3575: 3576: * i386.md (seq, etc.): New patterns. 3577: * expr.c (do_store_flags): If result is wrong mode, 3578: ensure rest of bits are cleared. 3579: Before storing low part of TARGET, emit a CLOBBER for it. 3580: 3581: * i386.md (load address): Use an immediate add if possible. 3582: 3583: * i386.md (ashlsi3): Don't generate leal; shift is faster. 3584: 3585: * Now struct_value_rtx is 0 to treat it as a parm. 3586: * expr.c (expand_call): Implement that. 3587: * integrate.c (expand_inline_function): Don't freak out. 3588: * tm-apollo68.h (STRUCT_VALUE): Make it 0. 3589: 3590: * On 386, called function must pop the structure value address. 3591: * tm-i386.h (STRUCT_VALUE): Don't change this. 3592: Address is now pushed but not counted as a parm. 3593: * out-i386.c (function_epilogue): Use ret $4 to pop that address. 3594: * output.h: Declare the current_function_... variables. 3595: * final.c: Include output.h. 3596: 3597: * varasm.c (make_decl_rtl): Insert missing `else', validating reg decl. 3598: 3599: Fri Jul 14 14:12:17 1989 Richard M. Stallman (rms at mipos3) 3600: 3601: * out-sparc.c, out-spur.c (output_move_double): 3602: Fixed typo, addreg0 => addreg1. 3603: 3604: * c-decl.c (lang_decode_option): Handle -fshort-enums. 3605: (finish_enum): In that case, give enum minimum number of bytes. 3606: * toplev.c (main): Default flag_short_enums. 3607: * toplev.c, flags.h (flag_short_enums, flag_signed_char): 3608: Define those flags here, not in c-decl.c and c-tree.h. 3609: 3610: * i386.md (mulqi3, umulqi3): New patterns. 3611: 3612: * c-convert.c (convert_to_integer): Tighter restrictions on 3613: distributing truncation through max, min, and multiplication. 3614: If operands were extended from unsigned, make the operation 3615: unsigned. 3616: 3617: * cccp.c (main): Fix bug where #include <...>, when -I- was used, 3618: failed to search standard dirs and/or searched some dirs 3619: intended only for #include "...". 3620: 3621: * tm-mips.h (FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): 3622: Increment push_loc after store or load, not before. 3623: 3624: Thu Jul 13 11:24:30 1989 Richard M. Stallman (rms at mipos3) 3625: 3626: * emit-rtl.c (add_insn_after): Don't update last_insn 3627: if insn is in a sequence. Instead, update end of sequence. 3628: 3629: * stmt.c (fixup_var_refs): Update end of stacked sequence. 3630: 3631: * stmt.c (expand_function_start): Set result rtl before assign_parms. 3632: 3633: * optabs.c (emit_unop_insn): Set PREV_INSN after preliminaries. 3634: 3635: * stmt.c (warn_if_unused_value): Do CONVERT_EXPR like NOP_EXPR. 3636: 3637: * stmt.c (expand_function_start): Make sure parm_birth_insn 3638: is a NOTE. 3639: 3640: * Makefile (clean): Delete tmp-insn-*. 3641: 3642: Wed Jul 12 14:24:12 1989 Richard M. Stallman (rms at mipos3) 3643: 3644: * i386.md (mulqi3): Restrict operand 2 to `q' reg. 3645: 3646: * reload1.c (choose_reload_regs): Check HARD_REGNO_MODE_OK 3647: for regs to be inherited. 3648: Also check HARD_REGNO_MODE_OK at end for modes of both 3649: reload_in and reload_out as well as reload_mode. 3650: 3651: * Makefile (maketest): Update for config subdir. 3652: 3653: Tue Jul 11 16:29:57 1989 Richard M. Stallman (rms at mipos3) 3654: 3655: * integrate.c (copy_decl_tree): Copy TREE_USED of each LET_STMT. 3656: 3657: * make-cc1.com: Changes by Angel Li. 3658: Define variables CC, CFLAGS, LDFLAGS, LIBS. 3659: Use LIBR library, not LIB. Specify a /INC in CFLAGS. 3660: Use MCR to run the gen* files. Add some comments. 3661: * make-cccp.com: Similar. 3662: * config-gcc.com: New file. 3663: 3664: * stmt.c (assign_parms): Compute parm alignment from passed type. 3665: 3666: * c-typeck.c (actualparameterlist): Instead of truncating 3667: and then promoting for PROMOTE_PROTOTYPES, go straight to int. 3668: 3669: * c-parse.y (setspecs): Save old current_declspecs on a stack. 3670: (decl, component_decl): Restore from that stack. 3671: 3672: Wed Jul 5 15:01:00 1989 Richard Stallman (tiemann at yahi) 3673: 3674: * tm-aix386.h, xm-aix386.h: New files. 3675: 3676: * loop.c (check_dbra_loop): Handle either test or compare 3677: for insn two before loop end; detect and reject anything else. 3678: 3679: * expr.c (expand_call, expand_builtin): If alloca is done, 3680: set current_function_calls_alloca. 3681: * stmt.c (expand_function_end): If so, generate code to save and 3682: restore the stack pointer, if not EXIT_IGNORE_STACK. 3683: 3684: * ns32k.md (movsi): Fixes for moving from fp or sp. 3685: 3686: * tm-mips.h (ASM_OUTPUT_ASCII): Start new .ascii every 256 chars. 3687: 3688: Tue Jul 4 11:01:00 1989 Richard Stallman (tiemann at yahi) 3689: 3690: * reload1.c (choose_reload_targets): Don't depend on 3691: reload_spill_index when cancelling invalid inheritance. 3692: Also, abort if trying to preserve death info 3693: on a spill reg used in operand addressing. 3694: 3695: * fold-const.c (fold): Don't fold "foo"[n] here. 3696: * expr.c (expand_expr): Do it here. 3697: Handle wide strings correctly. 3698: 3699: * i386.md (movsf,movdf): Disallow mem-mem moves. 3700: Enable mem-to-reg moves. 3701: 3702: * c-decl.c (finish_{struct,enum}): Warn if inside parm decls. 3703: (in_parm_level_p, declare_parm_level): Record when inside. 3704: * c-parse.y (parmlist, parmlist_or_identifiers): Call 3705: declare_parm_level. 3706: 3707: * c-decl.c (parmlist_tags_warning): Revise warning message text. 3708: 3709: * tm-hp9k320.h (ASM_SPEC): Pass -V switch to assembler. 3710: 3711: * tm-sun386.h (ASM_START_FILE): Truncate filename to 14 chars. 3712: 3713: * c-typeck.c (decl_constant_value): Use only literal values. 3714: 3715: Sat Jul 1 17:29:54 1989 Richard Stallman (tiemann at yahi) 3716: 3717: * integrate.c (copy_rtx_and_substitute): Don't make nested SUBREGs. 3718: 3719: * stmt.c (expand_function_start): Set new global 3720: current_function_returns_pointer. 3721: 3722: * stmt.c (get_frame_size): Return the size, not the offset. 3723: * integrate.c (expand_inline_function): When setting FP_DELTA, 3724: compensate for this change. 3725: * tm-alliant.h,tm-mips.h,tm-sparc.h,tm-tahoe.h 3726: (FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): Compensate. 3727: 3728: * out-mips.c (function_arg): Return 0 for BLKmode. 3729: 3730: * tm-mips.h (FUNCTION_INCOMING_ARG): Delete; no register windows. 3731: * out-mips.c (function_inarg): Delete; no longer used. 3732: 3733: * mips.md (addsi3): Use register_operand for operands 0,1. 3734: (load address): New pattern, following movsi. 3735: (fix_trunc*): Use trunc insn, not cvt. 3736: (cmpfs + bgt peephole): Operands were backwards in template. 3737: 3738: * gcc.c (main): Record in explicit_link_files which input files go 3739: straight to linker. If linker is not run, complain about them. 3740: (execute): Increment execution_count, to show we were called. 3741: 3742: * gcc.c (validate_all_switches): Check ASM_SPEC, CC1_SPEC, etc., 3743: so we find all switches that could be valid. 3744: 3745: * varasm.c (output_constructor): Position fields according to 3746: DECL_OFFSET; don't try to compute alignment here. 3747: 3748: * tm-sparc.h (PCC_BITFIELD_TYPE_MATTERS): Define this. 3749: 3750: * reload1.c (emit_reload_insns): Fix stupid error in last change. 3751: 3752: * c-decl.c (duplicate_decls): If redeclaring builtin, give error is 3753: type mismatched; otherwise warn only if -W. 3754: 3755: * jump.c (jump_back_p): Verify that PREV is not null. 3756: 3757: Mon Jun 26 13:50:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3758: 3759: * reload1.c (choose_reload_regs): If number of reloads needing 3760: spill regs exceeds n_spills, don't inherit any reloads. 3761: 3762: * sdbout.c (sdbout_record_type_name): Dumb error in last change. 3763: 3764: * reload1.c (emit_reload_insns): Extend last change: don't use 3765: equiv reg if reg is in use at same stage of insn, either. 3766: 3767: Sun Jun 25 00:00:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3768: 3769: * reload1.c (emit_reload_insns): Don't use an equivalent register 3770: to reload from, if that register was used for reloading 3771: earlier in this insn. 3772: 3773: * sdbout.c (sdbout_record_type_name): Handle a TYPE_DECL as the 3774: type name. Get rid of TYPE_TAG_NAME as separate macro. 3775: 3776: * optabs.c (emit_cmp_insn): Args to memcmp are addresses, not blocks. 3777: 3778: * reload1.c (choose_reload_regs): Typo, clearing reload_override_in. 3779: 3780: * tm-i386.h: Add register classes SIREG and DIREG. 3781: (enum reg_class, REG_CLASS_NAMES): Define class names. 3782: (REGNO_REG_CLASS, REG_CLASS_CONTENTS): Define their contents. 3783: (REG_CLASS_FROM_LETTER): Define letters `S' and `D'. 3784: 3785: Sat Jun 24 00:17:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3786: 3787: * c-decl.c (keep_next_level): New function. 3788: (struct binding): New slot `keep' says make a LET_STMT for this level. 3789: (pushlevel, poplevel): Implement that. 3790: * c-parse.y (stmt exprs): Call keep_next_level. 3791: 3792: * sdbout.c (plain_type_1): Handle REFERENCE_TYPE, METHOD_TYPE. 3793: Correct for size less than 0. 3794: (plain_type): Correct for size less than 0. 3795: 3796: * global-alloc.c (mark_reg_set): For CLOBBERs, call mark_reg_clobber. 3797: 3798: * reload1.c (order_regs_for_reload): Among regs explicitly used, 3799: prefer those used less often. 3800: 3801: * reload1.c (choose_reload_regs): If we find alternate place 3802: to reload from, verify it after all reloads assigned. 3803: New variable reload_override_in used for this. 3804: 3805: * combine.c (record_dead_and_set_regs): Look inside SIGN_EXTEND and 3806: STRICT_LOW_PART for place being set. 3807: (subst): When using reg_last_set to find what a register contains, 3808: verify the entire register was set. 3809: 3810: * toplev.c (rest_of_decl_compilation): Report invalid register name. 3811: 3812: Fri Jun 23 13:19:41 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3813: 3814: * tm-hp9k3bsd.h: New file. 3815: * config.gcc: New target hp9k320-bsd. 3816: 3817: * gcc.c (record_temp_file): Don't add a name twice to one queue. 3818: 3819: * stmt.c (expand_expr_stmt): Call warn_if_unused_value. 3820: (warn_if_unused_value): Code extracted from expand_expr_stmt. 3821: Recurse to handle COMPOUND_EXPR. Don't warn about COND_EXPR. 3822: 3823: * tm-encore.h (DBX_REGISTER_NUMBER): Override tm-ns32k.h; 3824: return operand unchanged. 3825: 3826: * reload1.c (emit_reload_insns): Don't use recog_memoized 3827: on an asm. 3828: 3829: * jump.c (delete_insn): Update last_insn. 3830: * emit-rtl.c (set_last_insn): New function. 3831: 3832: * reload1.c (reload): Put a note at end of insn chain. 3833: 3834: * gcc.c: Put cpp output of .S file into a .s file. 3835: 3836: Thu Jun 22 22:14:35 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3837: 3838: * optabs.c (expand_binop, expand_unop): Emit queue before library call. 3839: It is done within emit_library_call, and cse screws up if there is a 3840: queued insn in the middle of a cse-able sequence. 3841: 3842: Wed Jun 21 11:57:22 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3843: 3844: * tm-mips.h (CPP_PREDEFINES): Define -Dunix. 3845: 3846: * reload.c (combine_reloads): Combined reload needed for entire insn. 3847: 3848: * c-parse.y (yylex): Braino checking for out-of-range escape seq. 3849: 3850: * stor-layout.c (layout_union): Handle PCC_BITFIELD_TYPE_MATTERS. 3851: (layout_struct): Don't let a bitfield cross the storage unit 3852: of its type, if PCC_BITFIELD_TYPE_MATTERS. 3853: 3854: Tue Jun 20 00:03:48 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3855: 3856: * varasm.c (get_or_assign_label): Let CONSTANT_ALIGNMENT specify 3857: alignment of the constant. 3858: CONSTANT_ALIGNMENT is a new optional macro. 3859: 3860: * varasm.c (force_const_mem, get_or_assign_label): 3861: Make buffer bigger. 3862: 3863: * toplev.c (print_target_switch_defaults): New fn called for -version. 3864: 3865: * toplev.c (compile_file): Detect error closing output file. 3866: 3867: * stor-layout.c (fixup_unsigned_type): Don't shift by 32. 3868: 3869: * stmt.c (emit_case_nodes): Pass UNSIGNEDP along to emit_cmp_insn. 3870: 3871: * stmt.c (expand_end_case): If index is narrow and cannot be 3872: directly compared, widen it just once. 3873: 3874: * c-parse.y (yylex): Support multi-character constants. 3875: Thorough rewrite of char constant parsing. 3876: 3877: * c-decl.c (pushdecl): Replace local extern function decl with 3878: previous global decl if latter is inline, or builtin, or has 3879: more arg type info. 3880: 3881: * hard-params.c (xmalloc): Define it, for alloca.c. 3882: 3883: * tm-hp9k320.h (STANDARD_STARTFILE_PREFIX): Override -D in Makefile. 3884: 3885: * expmed.c (store_fixed_bit_field): Avoid shift by 32. 3886: 3887: * stmt.c (expand_function_start): Emit a NOTE_INSN_FUNCTION_BEG. 3888: * final.c (final_scan_insn): For SDB output, do the 3889: sdbout_begin_function at that note. 3890: 3891: * reload1.c (choose_reload_regs): If a reload reg inherits 3892: from a previous reload, verify safety after all reloads are assigned. 3893: 3894: * c-decl.c (build_enumerator): Remove no-op casts. 3895: 3896: * reload.c (find_reloads): If an earlyclobber operand matches 3897: an input operand it is constrained to match, that's not a problem. 3898: If an earlyclobber operand loses due to earlyclobber, its matching 3899: input operand also loses. 3900: 3901: * reload1.c (choose_reload_regs): Don't use result of find_equiv_reg 3902: if that reg is used for reloading in an earlier part of the insn. 3903: 3904: * cse.c (fold_rtx): If WIDTH is 0, don't try sign-extending ARG0, ARG1. 3905: 3906: * Makefile (hard-params*): Use $(OLDCC). 3907: 3908: * c-typeck.c (c_alignof): No warning for -pedantic. 3909: 3910: * c-parse.y (readescape): Don't have both error and warning 3911: on one hex escape. 3912: 3913: * c-parse.y (yylex): Treat vertical tab as white space. 3914: (skip_white_space): Likewise. 3915: 3916: * c-parse.y (datadef): If pedantic, warn for stray semicolon. 3917: 3918: * expr.c (expand_increment): Pass accurate unsignedp arg 3919: to expand_binary_op. 3920: 3921: Mon Jun 19 13:36:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3922: 3923: * config.gcc (news, news-gas): Use xm-m68k.h. 3924: 3925: * final.c (output_asm_label, output_addr_const): Make buf bigger. 3926: 3927: * cexp.y (main): Handle EOF on input. 3928: (lookup, warning): Provide as a dummy. 3929: (is_idchar, is_idstart): Declare as unsigned char. 3930: 3931: * cexp.y (parse_escape): Use TARGET_NEWLINE, etc., as values. 3932: Support hex escapes. Warn if octal or hex escape doesn't fit in char. 3933: 3934: * cexp.y (yylex): Sign-extend char constants if appropriate. 3935: 3936: * genemit.c: Make insn-emit.c include insn-flags.h. 3937: 3938: * gcc.c: Move record_temp_file past page which declares vflag. 3939: 3940: * integrate.c (expand_inline_function): If copying an insn with 3941: a REG_EQUIV note, make a similar note. 3942: 3943: * Allow reload regs to be reused for parts of an insn. 3944: * reload.c (find_reloads): Classify each reload for which part 3945: of the insn it is needed in. 3946: (find_reloads_address, etc.): Pass down the overall operand 3947: that this is part of, to record it on address reloads. 3948: (push_reload): Record that for each reload. 3949: * reload1.c (reload): Compute maximum needs of any part of the insn. 3950: (choose_reload_regs): Part of old choose_reload_targets. 3951: Hairier criteria for inheriting reloads and for which ones are 3952: available for the next insn to inherit. 3953: (emit_reload_insns): The rest of old choose_reload_targets. 3954: Emit reload insns in proper order according to where they are needed. 3955: * Record `reload_reg_in_use' separately for each part of the insn. 3956: (mark_reload_reg_in_use): New function. 3957: (reload_reg_free_p, reload_reg_free_before_p): New functions. 3958: (reload_reg_reaches_end_p): New function. 3959: 3960: * expr.c (expand_expr): Emit queue in X+=(Y?Z:A) optimization. 3961: 3962: * rtlanal.c (rtx_equal_p): Check vectors have same length. 3963: 3964: Sun Jun 18 12:16:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3965: 3966: * stmt.c (expand_expr_stmt): Maybe warn if top-level operator 3967: makes an unused result. 3968: 3969: * gcc.c (delete_temp_files, delete_failure_queue): 3970: If -v, report failures in unlink. 3971: 3972: * Makefile (includes): New target to run fixincludes. 3973: (install): Swap arms of if-statement. 3974: 3975: Sat Jun 17 12:41:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 3976: 3977: * stor-layout.c (layout_union): Arg to error_with_decl was missing. 3978: 3979: * ns32k.md (movsf): Use CONST_DOUBLE_LOW to extract from CONST_DOUBLE. 3980: 3981: * loop.c (consec_sets_giv): Change type of force, force2. 3982: 3983: * combine.c (dump*): Declare arg as FILE*. 3984: 3985: * Makefile (clean): Delete hard-params. 3986: 3987: * flow.c (life_analysis): Use a special obstack for the temporary 3988: regsets. 3989: 3990: * m68k.md (clr pattern): On 68000, use moveq to clear data reg. 3991: 3992: * gvarargs.h: File varargs.h renamed. 3993: The old name conflicted with <varargs.h>, now that -I. is used. 3994: * tree.c, expr.c, emit-rtl.c: Change #include commands. 3995: * Makefile (install): Install gvarargs.h under name varargs.h. 3996: * gcc.c: Include gvarargs.h, not system's varargs.h. 3997: 3998: * Makefile: Use -I$(srcdir) before -I$(srcdir)/config. 3999: * config/tm.h: Deleted; didn't work if config was a symlink. 4000: 4001: * cse.c (cse_insn): Record location of inner_dest 4002: so it can be replaced properly if a new MEM rtx is made. 4003: 4004: Fri Jun 16 14:17:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4005: 4006: * make-cc1.com: Compile and link rtlanal.c. 4007: 4008: * c-typeck.c (build_array_ref): Call fold on the array ref. 4009: * fold-const.c (fold): Simplify array ref of string constant. 4010: 4011: * stmt.c (expand_asm_operands): Fix error message. 4012: 4013: * Makefile (gnulib2): Remove old members before compiling new. 4014: Fix stupid errors. 4015: * gnulib2.c (__cmpdi2, __ucmpdi2): Typos in names of interface unions. 4016: 4017: * genconfig.c (main): Don't write MAX_CLOBBERS_PER_INSN; obsolete. 4018: Add 3 to MAX_RECOG_OPERANDS. 4019: 4020: * cse.c (fold_cc0): Extra arg specifies machine mode. 4021: Callers changed. 4022: (cse_insn): Record original mode of each src for this purpose. 4023: 4024: Thu Jun 15 12:35:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4025: 4026: * gnulib2.c (_cmpdi2, _ucmpdi2): Moved here from gnulib.c. 4027: Use long long for argument type. 4028: 4029: * rtlanal.c (may_trap_p): Moved here from loop.c. 4030: Return 1 for division by explicit zero. 4031: 4032: * reload1.c (eliminate_frame_pointer, alter_frame_pointer_addresses): 4033: Rerecognize insns which are changed by this. 4034: 4035: * i386.md (call_value): Don't return prematurely. 4036: 4037: * alliant.md (movqi): Handle moving Aregs to mem and vice versa. 4038: (bftst -> btst): Restrict to bitpos less than 8 4039: so operand may be non-offsettable. 4040: (nop): New pattern. 4041: (return): Was disabled; now deleted. 4042: * tm-alliant.h (PRINT_OPERAND_PUNCT_VALID_P): Define it. 4043: * out-alliant.c (output_btst): Same change as in out-m68k.c 4044: 4045: * alliant.md, out-alliant.c: Offsetable -> offsettable. 4046: 4047: * c-parse.y (rule for stmt_exprs): Make the LET_STMT volatile. 4048: 4049: * c-decl.c (duplicate_decls): Don't save inline function data 4050: from previous definition if a new *definition* is seen. 4051: 4052: * integrate.c (access_parm_map): Handle subregs and constants. 4053: 4054: * stmt.c (expand_return): Don't crash if DECL_RTL (DECL_RESULT()) is 0. 4055: 4056: * tm-tahoe.h (LONGJMP_RESTORE_FROM_STACK): Define it. 4057: 4058: * tm-mips.h (CONSTANT_P): Deleted; duplicates rtl.h. 4059: 4060: Fri Jun 9 01:39:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4061: 4062: * Makefile (float.h): Avoid using $(MAKE). 4063: 4064: * Don't cram two things into STMT_BODY of a LET_STMT. 4065: * tree.h (struct bind_stmt): New field, subblocks. 4066: (STMT_SUBBLOCKS): New macro to access it. 4067: * print-tree.c (walk): Print new field. 4068: * tree.c (build_let_stmt): Store the old BODY arg into subblocks field. 4069: * c-parse.y (stmt expr rule): Put rtl expr alone into body field. 4070: * dbxout.c (dbxout_block): Recurse on subblocks, not body. 4071: * sdbout.c, symout.c: Likewise. 4072: * integrate.c (copy_decl_tree): Likewise. 4073: * stmt.c (setjmp_protect, uninitialized_vars_warning): Likewise. 4074: * expr.c (expand_expr): For LET_STMT, simply use its body. 4075: 4076: * machmode.def: Add sixth arg to each entry. 4077: * tree.h, rtl.h, rtl.c: Add arg to DEF_MACHMODE. 4078: * rtl.h (GET_WIDER_MODE): New macro; table in rtl.c. 4079: * expr.c (expand_expr): Use that for widening multiply. 4080: 4081: * stmt.c (fixup_var_refs_1): When converting MEM to QImode for 4082: bit field, adjust the address if possible to make bitpos 4083: less than 8. 4084: * m68k.md (bftst -> btst): Restrict to bitpos less than 8 4085: so operand may be non-offsettable. 4086: 4087: * cccp.c (do_line): Accept and pass on 3rd arg for enter or leave file. 4088: 4089: * out-m68k.c (output_btst): Handle COUNT bigger than size of unit. 4090: 4091: * cccp.c (CHECK_DEPTH): Macro to detect instack overflow. 4092: (finclude, macroexpand, expand_to_temp_buffer): Use that. 4093: 4094: * cccp.c (rescan): Don't check for disabled macro if traditional. 4095: (macroexpand): Don't disable macro if traditional. 4096: 4097: * sdbout.c (sdbout_one_type): Take out last change; assembler barfs. 4098: 4099: * c-parse.y (maybe_attribute): Eliminate #-syntaxes. 4100: Make ATTRIBUTE the name for __attribute. 4101: 4102: * c-parse.gperf: Add __attribute{,__} and __signed{,__}. 4103: * c-parse.y: Install results of that change. 4104: 4105: * Fix bug in sizeof ({...}). 4106: * c-decl.c (poplevel): Set TREE_USED. Return the LET_STMT. 4107: * c-parse.y (stmt-expr rule): Put the RTL_EXPR in the LET_STMT, 4108: clear its TREE_USED, and use it as the result. 4109: * expr.c (expand_expr): Allow LET_STMT as an expr. 4110: Set its TREE_USED and expand the TREE_VALUE of its body. 4111: * dbxout.c (dbxout_block): Ignore LET_STMT if TREE_USED not set. 4112: * sdbout.c, symout.c: Likewise. 4113: 4114: Thu Jun 8 00:06:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4115: 4116: * c-parse.y (yylex): Extend ERANGE-inhibitor for 0.0 4117: to 0.0e0 as well. 4118: 4119: * flow.c (life_analysis): Prevent allocation of regs live at setjmp 4120: on certain machines. Controlled by LONGJMP_RESTORE_FROM_STACK. 4121: Sets reg_live_length to -1. 4122: * local-alloc.c (block_alloc): Be prepared for that. 4123: * tm-vax.h (LONGJMP_RESTORE_FROM_STACK): Define it. 4124: 4125: * gnulib2.c (all interfaces): Declare args and values as long long, 4126: and split them using unions. 4127: 4128: * loop.c (check_dbra_loop): Don't reverse loop if there are two 4129: refs to varying addresses. Consider foo[i] = foo[i-1]. 4130: (count_nonfixed_refs): Subroutine to count them. 4131: 4132: * cexp.y: Distinguish signed and unsigned. 4133: An integer value is now represented by a struct. 4134: All rules for arithmetic changed. 4135: (yylex): Adapt to change in yylval data type. 4136: 4137: * limits.h (LONG_MIN): Make sure it's a signed long. 4138: 4139: * sdbout.c (sdbout_one_type): Output types of fields first, 4140: if they are structs. Don't go through pointers. 4141: (sdbout_field_types): Subroutine for that 4142: 4143: Wed Jun 7 13:00:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4144: 4145: * fixincludes: Switch to /usr/include before doing vuid_event.h. 4146: Use $2 as output directory for sed. 4147: 4148: * tm-i386.h (FUNCTION_PROFILER): Put counter address in %edx. 4149: * tm-i386v.h (LIB_SPEC): Use -L/usr/lib/libp if profiling. 4150: 4151: * expr.c (expand_increment): Typo testing for BImode component. 4152: 4153: * convex changes from csmith: 4154: * tm-convex.h: use EXTRA_SECTIONS to do .bss. 4155: out-convex.c: set_section, align_section are now unused. 4156: * convex.md: add pattern to pick an A-reg destination for sums 4157: whose source involves a dedicated A reg (frame or arg pointer) 4158: * convex.md: immediate and, or, xor instructions store a 32-bit 4159: result. Fix instructions that assumed it was 64. 4160: 4161: * mips.md (probe): New pattern to create stack space. 4162: 4163: * Makefile (float.h): Ignore errors from hard-params. 4164: Specify ./ to run it. 4165: 4166: Tue Jun 6 15:45:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4167: 4168: * out-tahoe.c: Rename `offsetable' to `offsettable'. 4169: 4170: * tahoe.md (nop): New pattern. 4171: 4172: * i386.md (umul...): Constrain operand 1 as `0', not `a'. 4173: `a' sometimes wanted two a-regs for operands 0 and 1. 4174: 4175: * cccp.c: Forward-declare some structs. 4176: 4177: * c-decl.c: Rearrange fcn fwd decls and struct decls. 4178: 4179: * expr.c: Move some fcn fwd decls after structs their args use. 4180: * genpeep.c, genextract.c: Likewise. 4181: 4182: * loop.c: Forward-declare some structs. 4183: 4184: * stmt.c: Move decls of structs before those of static functions. 4185: 4186: * loop.c (strength_reduce): Delete extra arg to check_eliminate_biv. 4187: 4188: * integrate.c (expand_inline_function): Supply missing arg 4189: to convert_to_mode. 4190: 4191: * gcc.c (handle_braces): Supply missing arg to do_spec_1. 4192: 4193: * explow.c (lookup_static_chain): Accept a context arg. 4194: 4195: * expmed.c (store_split_bit_field): Pass ALIGN arg 4196: to extract_fixed_bit_field. 4197: 4198: * expr.c (expand_assignment): Convert TYPE_ALIGN to bytes. 4199: (store_constructor, expand_expr): Likewise. 4200: 4201: * m68k.h: NO_ADDSUB_Q conditionals turn off all addq, subq insns. 4202: (Fully supported only with MOTOROLA and HPUX_ASM flags.) 4203: 4204: * jump.c (do_cross_jump): Don't die if LABEL is 0. 4205: 4206: * tm-mips.h (PRINT_OPERAND_PUNCT_VALID_P): New macro. 4207: * tm-iris.h: New file. Unsplit lines accidentally split. 4208: 4209: Mon Jun 5 15:39:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4210: 4211: * integrate.c (output_inline_function): Call init_function_start, 4212: not expand_function_start. 4213: * emit-rtl.c (restore_reg_data): No need to init reg_rtx_no. 4214: 4215: * stmt.c (init_function_start): Set current_function_returns_struct. 4216: 4217: * rtlanal.c (reg_set_between_p): New fn analogous to reg_used_between_p 4218: * loop.c (strength_reduce): Reject biv initial value which is altered 4219: subsequently before actual loop start. 4220: 4221: * rtlanal.c: New file split out from rtl.c. 4222: Has things not used in the gen files. 4223: 4224: * loop.c (strength_reduce): Reject biv initial value in a hard reg 4225: clobbered by an intervening function call. 4226: 4227: * tree.c (get_identifier): New flag needed to enable id-clash warnings. 4228: (start_identifier_warnings): Set that flag. 4229: * c-decl.c (init_decl_processing): Call that, after making built-ins. 4230: 4231: Sat Jun 3 14:41:34 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4232: 4233: * final.c (final_scan_insn): No basic block profiling at jump tables. 4234: 4235: * stmt.c (expand_decl): Probe the stack to make pages exist. 4236: * expr.c (expand_builtin): Likewise, for alloca. 4237: 4238: * move-if-change: Specify /bin/sh. 4239: 4240: * tm-ns32k.h (INDIRECTABLE_2_ADDRESS_P): Don't accept PLUS 4241: with constant operands but not inside CONST. 4242: 4243: * integrate.c (output_inline_function, save_for_inline): 4244: Save stack_slot_list, and restore it for actual output. 4245: * emit-rtl.c (gen_inline_header_rtx): New arg for this. 4246: 4247: * emit-rtl.c (restore_reg_data): Initialize reg_rtx_no. 4248: (restore_reg_data_1): Handle reg_rtx_no jumping past 4249: reg_pointer_flag_length. 4250: 4251: * reload1.c (alter_reg): Do nothing if regno_reg_rtx has 0. 4252: 4253: * integrate.c (copy_rtx_and_substitute): Typos for stack parm 4254: addresses in PLUS case. 4255: 4256: * genoutput.c (gen_insn, gen_peephole): Make output_n fns static. 4257: (output_prologue): Use new macro DEFAULT_MACHINE_INFO if defined. 4258: 4259: * tree.h (enum machine_mode): Define MAX_MACHINE_MODE as in rtl.h. 4260: 4261: Fri Jun 2 15:40:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4262: 4263: * cccp.c (do_include): A file included via a system header file 4264: counts as a system header file for -M. 4265: 4266: * gnulib2.c: Support boolean ops and shifts. 4267: 4268: * loop.c (emit_iv_inc): Use emit_iv_init_code. 4269: 4270: * rtl.h (CONST0_RTX): Don't try to cast abort. 4271: 4272: * tm-news.h (PRINT_OPERAND_ADDRESS): Fix typo `reg_name'. 4273: Delete two garbage lines. 4274: 4275: * loop.c (eliminate_biv): Use emit_iv_init_code to compute comparison 4276: value. If value is constant, recognize the insn, and if that fails, 4277: put the value in a register. 4278: 4279: Thu Jun 1 16:56:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4280: 4281: * print-tree.c (dump): Don't die if rtx components are null. 4282: 4283: * expmed.c (expand_mult_add): New fn to do A * X + B. 4284: (make_tree): New subroutine. 4285: * loop.c (emit_iv_init_code): Use that. Much simpler now. 4286: 4287: Tue May 30 17:20:40 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4288: 4289: * fold-const.c (fold): Use TREE_SET_CODE to store in tree codes. 4290: 4291: * tree.h (struct tree_common): Make `code' an unsigned int. 4292: (TREE_CODE, TREE_SET_CODE): Put in casts. 4293: 4294: * optabs.c (emit_cmp_insn): Supply all the args in recursive calls. 4295: 4296: * toplev.c (report_error_function): Fix typo; METHOD_TYPE missing. 4297: 4298: * fixincludes: Add code to make internal non-directory links. 4299: 4300: Mon May 29 21:36:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4301: 4302: * gcc.c (find_exec_file): Try both with and without machine_suffix. 4303: (find_file): Use machine_suffix here too. 4304: 4305: Sat May 27 00:02:26 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4306: 4307: * reload.c (decompose): OFFSET wasn't initialized. 4308: 4309: * cse.c (cse_main): Assign monotonic cuids. 4310: (make_regs_eqv, CHEAPER): Use cuids, not uids. 4311: (cse_end_of_basic_block): Return a cuid, not a uid. 4312: 4313: * expr.c (expand_builtin): For BUILTIN_SAVEREGS, range of regs 4314: moved included one extra previous insn. 4315: 4316: * emit-rtl.c (emit_line_note): Don't check -g here. 4317: (emit_note): For line number when no -g, increment cur_insn_uid anyway. 4318: * stmt.c (expand_start_case): Always output a NOTE_INSN_DELETED. 4319: 4320: * loop.c (loop_optimize): Don't count line-number NOTEs for luids. 4321: Prevents -g from affecting optimization decisions. 4322: 4323: Fri May 26 17:31:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4324: 4325: * local-alloc.c (block_alloc): Don't count notes in insn_number. 4326: Prevents -g from affecting order of allocation. 4327: 4328: Thu May 25 14:12:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4329: 4330: * local-alloc.c (block_alloc): Clear full length of regs_live_at. 4331: 4332: * ns32k.md (cmpsi): Make this the first cmp pattern. 4333: 4334: * jump.c (do_cross_jump): Skip NOTEs while checking for existing label. 4335: 4336: * cse.c (cse_insn): When no-oping a jump, decrement use count of label. 4337: (cse_basic_block): If label use count is 0, go past it. 4338: 4339: * integrate.c (access_parm_map): New fn, broken out of 4340: copy_rtx_and_substitute, handles case of mem ref to stack arg. 4341: (copy_rtx_and_substitute): Call it. 4342: Also use it for address of a stack arg. 4343: 4344: * gen*.c (fatal): Declare 1st arg as string. 4345: 4346: Wed May 24 00:13:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4347: 4348: * optabs.c (init_optabs): Handle movdi and movdf insns. 4349: 4350: * final.c (end_final): Realign locn ctr after outputting string. 4351: 4352: * tm-sparc.h (LINK_SPEC): Link bb_link.o before standard lib. 4353: 4354: * tm-sun386i.h (LINK_SPEC): Accept and ignore -sun386. 4355: 4356: * gcc.c (find_exec_file): Use machine_suffix. 4357: (process_command): Set that for -b option. 4358: 4359: * integrate.c (function_cannot_inline_p): No size limit 4360: for functions declared inline. 4361: 4362: * loop.c (skip_consec_insns): New fn, skip several insns or libcalls. 4363: (force_movables): New fn, part of scan_loop broken out. 4364: (ignore_some_movables): New fn, ignore a movable whose insn 4365: is within another movable's libcall. 4366: (scan_loop): Call those three. 4367: Don't handle m->consec for zero-extend movables, since always 0. 4368: 4369: Tue May 23 12:58:24 1989 Joe Weening (weening at gang-of-four.stanford.edu) 4370: 4371: * config/alliant.md: 4372: Removed operand classes 'x', 'y', 'G', 'H'. 4373: Added "%." to many opcodes to simplify comparison with m68k.md. 4374: Changed TARGET_68881 to TARGET_CE. 4375: Changed floating-point insns to better describe the Alliant CE. 4376: Most args to floating-point insns are now nonimmediate_operand. 4377: Removed special insns for pushing doublewords onto stack. 4378: Added non-CE versions of movsf and movdf to avoid using FP 4379: registers in this case. 4380: (float*i*f2): Don't allow immediate ops. 4381: (sne): Fix typo, fsne => fsneq. 4382: (call, call_value): Changed to always pop args from stack 4383: upon return; this gives better code than before and conforms 4384: to Alliant calling standard. 4385: Incorporated some recent changes to m68k.md. 4386: 4387: * config/out-alliant.c: 4388: (regno_reg_class): Removed FPA reg classes. 4389: (output_move_const_double): Function not needed, removed. 4390: 4391: * config/tm-alliant.h: 4392: Removed FPA registers and reg classes. 4393: Target flags: changed TARGET_68881 to TARGET_CE, removed 4394: TARGET_RTD, TARGET_REGPARM, TARGET_FPA. 4395: Removed TARGET_CE test in several places since we need to 4396: use FP regs even for non-CE programs. 4397: (TARGET_VERSION, CPP_SPEC): Define for Alliant. 4398: (CONDITIONAL_REGISTER_USAGE): Removed, not needed. 4399: (FRAME_POINTER_REQUIRED): Defined. 4400: (RETURN_POPS_ARGS): Defined. 4401: (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): 4402: Use fp0 to return floating-point values. 4403: (FUNCTION_ARG): Remove TARGET_REGPARM code. 4404: (FUNCTION_ARG_PARTIAL_NREGS): Always 0. 4405: (FUNCTION_PROFILER): Define for Alliant. 4406: (FUNCTION_EPILOGUE): Remove use of rtd instruction. 4407: Renamed CC_IN_68881 to CC_IN_FP. 4408: (NOTICE_UPDATE_CC): Incorporate changes that were made 4409: in tm-m68k.h. 4410: 4411: * config/xm-alliant.h (LINK_SPEC): Pass -X to linker. 4412: 4413: Tue May 23 12:58:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4414: 4415: * sdbout.c: Don't include c-tree.h. 4416: 4417: * tree.c (build_index_type): Use sizetype for min and max values. 4418: Convert maxval rather than clobbering it. 4419: 4420: * tm-hp9k320.h: Finish unterminated comment. 4421: 4422: * sdbout.c (sdbout_parms): Use gen_fake_label for anonymous parm. 4423: 4424: Sun May 21 12:58:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4425: 4426: * stmt.c (aggregate_value_p): New fn says whether expression is a type 4427: that functions cannot return as a scalar. 4428: (assign_parms, expand_function_start): Use that. 4429: * expr.c (expand_call): Likewise. 4430: 4431: * gcc.c (delete_failure_queue): New subroutine. 4432: (delete_temp_files): No longer delete the failure queue. 4433: (main): Delete failure queue after each failing compilation. 4434: 4435: Sat May 20 13:16:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4436: 4437: * varasm.c (force_const_mem): New optional macro SELECT_RTX_SECTION. 4438: 4439: * mips.md: Change %u0 to %:. 4440: (movsi): Add constraint alternative accepting address arg. 4441: 4442: * fold-const.c (mul_double): Special case for 2nd arg 2, 4, 8. 4443: (combine): Special case shortcuts for plus, minus, mult, div. 4444: 4445: * stmt.c (expand_function_start): Simplify hairy statement for 3B1. 4446: * expr.c (expand_call): Likewise. 4447: 4448: * math-68881.h: New file. 4449: 4450: * m68k.md (movqi): Handle moving aregs to mem and vice versa. 4451: 4452: * dbxout.c (dbxout_type): Don't test use_gdb_dbx_extensions 4453: in cases that occur in C. 4454: 4455: * stmt.c (expand_function_{start,end}): Make DECL_RESULT's rtl 0 4456: when function returns no value. 4457: 4458: * tree.c (build_decl): Initialize DECL_PRINT_NAME, DECL_ASSEMBLER_NAME. 4459: 4460: * c-decl.c (store_parm_decls): Call init_function_start. 4461: 4462: Thu May 18 00:41:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4463: 4464: * stmt.c (expand_null_return_1): New arg USE_GOTO says jump to 4465: return_label even if could otherwise use a return insn. 4466: Make a return_label if we need one and don't have one already. 4467: If have parm cleanups, always jump to cleanup_label. 4468: (expand_null_return): Pass 1 for USE_GOTO if cleanups pending. 4469: (expand_return): Set LAST_INSN if have local cleanups or parm cleanups. 4470: Use that if jumping to tail-recursion label. 4471: Optimization for returning a comparison is safe for local cleanups 4472: but don't do it if there are parm cleanups. 4473: Calling expand_null_return_1, pass 1 for USE_GOTO if local cleanups. 4474: (this_contour_has_cleanups_p): New function. 4475: 4476: * stmt.c (init_function_start): New function, beginning of 4477: expand_function_start broken out. 4478: Use DECL_PRINT_NAME to get function's name. 4479: (expand_function_start): Now two args, function and PARMS_HAVE_CLEANUPS 4480: Compute RETURN_LABEL sooner; make one if parm cleanups. 4481: If parms have cleanups, put scalar return value in pseudo-reg. 4482: Don't mark that pseudo with REG_FUNCTION_VALUE_P. 4483: (expand_function_end): Simplify decisions about output of return_label 4484: and return insn. 4485: If DECL_RESULT is pseudo-reg, copy it to real return reg. 4486: 4487: * stmt.c (expand_function_end): Handle ordinary struct values 4488: like pcc, but only if unoptimized. 4489: (expand_function_start): Make a return_label for ordinary struct value. 4490: 4491: * stor-layout.c (layout_type): Handle METHOD_TYPE like FUNCTION_TYPE. 4492: (layout_decl): Allow TYPE_DECL. 4493: 4494: * stor-layout.c (layout_basetypes): Code for basetypes broken 4495: out of layout_record. Sets the type size tentatively. 4496: (layout_record): Start with that tentative size. 4497: Also, don't do anything with CONST_DECL members. 4498: 4499: * stor-layout.c (layout_union): Simpler error report for static memb. 4500: 4501: * reload1.c (eliminate_frame_pointer): Reduce PUSH_ROUNDING 4502: conditional to apply only to push instructions. 4503: 4504: * expr.c (expand_call): Fix stupid errors handling MAX_PARM_BOUNDARY. 4505: * stmt.c (assign_parms): Likewise. 4506: 4507: * toplev.c (announce_function, report_error_function): 4508: (error_with_decl, warning_with_decl): Use DECL_PRINT_NAME. 4509: 4510: * toplev.c (compile_file): Subtract integration_time from parse_time. 4511: 4512: * toplev.c (compile_file): Don't output read-only static variables 4513: at end of compilation if address was not used. 4514: 4515: * toplev.c (rest_of_compilation): Handle flag_syntax_only. 4516: 4517: * toplev.c (main): Handle -g0 and -G0 options. 4518: For -g and -G, set use_gdb_dbx_extensions. 4519: 4520: * toplev.c (main): Set `progname'. 4521: (pfatal_with_name, fatal_io_error, {error,warning}_with_file_and_line): 4522: (sorry): Print value of `progname', not "cc1". 4523: 4524: * tree.def: Delete FRIEND_DECL. Add PUSH_EXPR and POP_EXPR. 4525: 4526: * tree.c (simple_cst_equal): Handle INDIRECT_REF. 4527: 4528: * tree.c (lvalue_p): Handle METHOD_TYPE. Handle NEW_EXPR. 4529: 4530: * tree.c (copy_list): New function. 4531: 4532: * tree.h (struct tree_decl): New fields print_name and assembler_name. 4533: (DECL_PRINT_NAME, DECL_ASSEMBLER_NAME): New accessors. 4534: 4535: * c-decl.c (LONG_DOUBLE_TYPE_SIZE): New compilation parameter. 4536: 4537: Wed May 17 22:07:17 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) 4538: 4539: * dbranch.c (emit_delay_sequence): Reset insn code to -1 when 4540: turning insn into a sequence so that it won't think that it matches 4541: something in the md file. 4542: 4543: * dbranch.c (insn_eligible_p): Call refers_to_regno_p with a 4544: non-zero range. 4545: 4546: * dbranch.c (pnote): Modified to make sure instruction clobbered 4547: register is a set, rather than, say, a clobber. 4548: 4549: Wed May 17 14:01:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4550: 4551: * sdbout.c (sdbout_parms): Handle parm with no name. 4552: 4553: * loop.c (combine_movables): Test for overlap of zero-extend regs 4554: was screwed up. 4555: 4556: * c-typeck.c (c_sizeof{,_nowarn}): Convert from bytes to chars, 4557: since c defines sizeof (char) as 1. 4558: (pointer_int_sum, pointer_diff): Use c_sizeof{,_nowarn}. 4559: 4560: Tue May 16 16:27:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4561: 4562: * reload1.c (choose_reload_targets): Don't reuse regs 4563: mentioned in reload_reg_rtx. 4564: 4565: * tm-tahoe.h, tahoe.md, out-tahoe.c, xm-tahoe.h: New files. 4566: 4567: Mon May 15 16:25:12 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4568: 4569: * fixincludes: Exit with explicit status 0 at end. 4570: cd to /usr/include before cd to subtree root in case of relative link. 4571: Create dir $LIB earlier. 4572: When checking for a link, treat .. like an absolute target. 4573: 4574: * symout.c (symout_block_symbols): Give every local decl a typespec. 4575: * cexp.y (parse_number): 4576: * flow.c (life_analysis, dump_flow_info): 4577: 4578: * loop.c (consec_sets_invariant_p): Logic error accepted consec sets 4579: of which only one was invariant. 4580: 4581: * expr.c (expand_expr): Use no subtargets inside loops. 4582: * stmt.c (inside_loop): New function. 4583: 4584: Sun May 14 00:11:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4585: 4586: * tree.h: Declare long long types. 4587: 4588: * c-parse.y (combine_strings): Make string contents saveable. 4589: 4590: * tree.c (savealloc): New function. 4591: 4592: * m68k.md (movdi): % missing in fmove%.d. 4593: 4594: * c-parse.y (yylex): Detect overflow past 64-bits. 4595: Detect specially numbers not fitting in signed long long. 4596: 4597: Sat May 13 13:16:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4598: 4599: * reload1.c (alter_frame_pointer_addresses): Preserve volatility. 4600: 4601: * varasm.c (output_constructor): Die if BITS_PER_UNIT is too big 4602: for this function to work. 4603: 4604: * genpeep.c (match_rtx): For match_operator, match the operands, too. 4605: 4606: * varasm.c (output_constant): Use ASM_OUTPUT_DOUBLE_INT for DImode. 4607: 4608: * stor-layout.c (make_signed_type, make_unsigned_type): 4609: (fixup_unsigned_type): Use HOST_BITS_PER_INT. 4610: 4611: * stor-layout.c (layout_type): Use TFmode if appro. 4612: 4613: * optabs.c (emit_cmp_insn): Use mode sizes to check cmpstrqi, cmpstrhi. 4614: 4615: * c-typeck.c (get_floating_type): Compare MODE against modes of types. 4616: (signed_type, unsigned_type, signed_or_unsigned_type, type_for_size): 4617: Handle long long types. 4618: (digest_init): Don't assume width of `char' is BITS_PER_UNIT. 4619: 4620: * c-parse.y (yylex): For truncating chars, use width of `char' type. 4621: Allow `ll' in int constants and make long long. 4622: Also make long long if constant won't fit in an int. 4623: 4624: * c-decl.c (SHORT_TYPE_SIZE): Round up when dividing. 4625: 4626: Fri May 12 22:36:21 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4627: 4628: * real.h: Allow multiple inclusion. 4629: 4630: * tm-sun386i.h (DBX_REGISTER_NUMBER): Bizarre renumbering. 4631: 4632: Thu May 11 00:36:21 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4633: 4634: * fixincludes: Fix non-ansi declaration of sprintf in X11/Xmu.h 4635: 4636: * c-parse.y (stmt from expr): Do default conversion if useful 4637: for sake of ({...}). 4638: 4639: * sparc.md (andcc recognizer): Operand missing in subreg. 4640: 4641: Wed May 10 17:20:38 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4642: 4643: * rtl.c (read_name): Error if name is missing. 4644: (dump_and_abort): Don't print char args if -1. 4645: 4646: * i386.md (umulqihi3): Operand numbers were missing. 4647: 4648: * reload1.c (choose_reload_targets): Allow spill reg in find_equiv_reg 4649: if it's free and correct class. 4650: 4651: * cse.c (canon_hash): Handle empty strings. 4652: 4653: * cccp.c (macroexpand): Newline newline treated like real white space 4654: when stringifying. 4655: 4656: * Rename *offsetable* to *offsettable*. 4657: 4658: Tue May 9 22:54:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4659: 4660: * c-decl.c (finish_type): Layout any variants of the type. 4661: 4662: Tue May 9 12:30:28 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) 4663: 4664: * final.c (final_scan_insn, final): Added an argument to 4665: final_scan_insn to disallow peephole processing (to turn it off 4666: during delayed branch scheduling). 4667: 4668: * final.c (final_scan_insn): Made insn not matching any MD rtl a 4669: criteria for delayed branch case. Moved delayed branch case to just 4670: before real insn recognition to reduce the number of insns on which 4671: recog_memoized is called. 4672: 4673: Mon May 8 15:02:42 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4674: 4675: * fixincludes (LIB): Allow overriding. 4676: 4677: * cccp.c: Don't search /usr/include/CC by default. 4678: 4679: Mon May 8 13:09:21 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) 4680: 4681: * print-tree.c (dump): Fixed typo; IDENTIFIER ==> IDENTIFIER_NODE. 4682: 4683: Sun May 7 12:44:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4684: 4685: * print-tree.c (dump): TYPE_NAME may be IDENTIFIER or TYPE_DECL. 4686: 4687: Sat May 6 00:13:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4688: 4689: * tree.def: Define EXACT_DIV_EXPR, for when remainder known as 0. 4690: * fold-const.c (combine, fold, div_and_round_double): Handle new code. 4691: * expr.c (expand_expr): Likewise. 4692: * c-typeck.c (pointer_diff): Use EXACT_DIV_EXPR. 4693: 4694: * integrate.c (expand_inline_function): Use size of passed type 4695: for allocating stack slot with that type. 4696: 4697: * c-parse.y (maybe_attribute, attribute*): New syntax for Apollos. 4698: These tokens currently not generated. 4699: 4700: Fri May 5 18:43:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4701: 4702: * toplev.c [USG]: Undefine FLOAT for sake of sys/param.h on hpux. 4703: 4704: * optabs.c (expand_binop): If backtracking, don't delete insns made 4705: for -fforce-mem. 4706: 4707: Thu May 4 01:57:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4708: 4709: * reload.c (find_reloads): Don't compare an earlyclobber operand 4710: with itself. 4711: 4712: * reload.c (immune_p): Constants and stack slots don't overlap. 4713: 4714: * Put no-ops in front of loops and labels, 4715: to prevent confusion in the debugger. 4716: * c-parse.y (loops and labels): Call emit_nop. 4717: * stmt.c (emit_nop): New function--sometimes emit a no-op. 4718: * *.md (nop): New insn. 4719: 4720: * expr.c (expand_call): Typo in arg to FIRST_PARM_CALLER_OFFSET. 4721: 4722: Wed May 3 01:34:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4723: 4724: * loop.c (scan_loop): Scanning around end of loop 4725: should not set maybe_never. 4726: 4727: * Rename SELECT_VARIABLE_SECTION to SELECT_SECTION. 4728: * varasm.c (get_or_assign_label): Use SELECT_SECTION if defined. 4729: * varasm.c: Use EXTRA_SECTION_FUNCTIONS if defined (new macro). 4730: 4731: * mips.md: Change %u to %u0 to avoid error check. 4732: 4733: * tm-mips.h (TARGET_VERSNUM): Inc. to 1 08. 4734: (TARGET_VERSION): Change strings. 4735: (AL_DEBUG): Don't define it. 4736: (HARD_REGNO_MODE_OK): Add some casts to int. 4737: (STACK_ARGS_ADJUST): Name was misspelled. 4738: (PRINT_OPERAND_ADDRESS): Just abort for MEM, POST_INC, etc. 4739: (EXTRA_SECTIONS, SELECT_VARIABLE_SECTION, SELECTORS_EXTRA_SECTIONS, 4740: SELECT_VARIABLE_CONST_SECTION): New macros. 4741: (ASM_FILE_END): Change function name. 4742: * out-mips.c (function_arg_advance): Delete debugging printfs. 4743: (function_inarg, function_arg): Likewise. 4744: (compare_collect, compare_restore): Add some. 4745: 4746: * reload1.c (reload): Fix handling of caller_save_needed. 4747: 4748: * stmt.c (expand_function_start): Clear caller_save_needed. 4749: 4750: * stmt.c (emit_case_nodes): Some compiler has trouble with calling 4751: a function pointer. 4752: * gnulib.c: likewise. 4753: 4754: Tue May 2 15:32:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4755: 4756: * loop.c (combine_movables): For zero extend, 4757: do each from-mode separately. 4758: 4759: Mon May 1 00:18:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4760: 4761: * tm-apollo68.h: New file. 4762: 4763: * c-parse.y (is_reserved_word, hash): Add keywords `__asm__', etc. 4764: * c-parse.gperf: Corresponding changes. 4765: 4766: * c-parse.y (check_newline): Set main_input_filename before 4767: considering optional arguments. 4768: 4769: * final.c (final_scan_function): Return next insn to process. 4770: Usually that's the following insn; occasionally, previous compare. 4771: 4772: * c-decl.c (DOUBLE_TYPE_SIZE): Wrong value. 4773: 4774: * reload.c (decompose): Failed to return value. 4775: 4776: * Support local specified-register variables. 4777: * varasm.c (decode_reg_name): New function, cvt asmspec to regnum. 4778: (make_decl_rtl): Call that. 4779: * toplev.c (rest_of_decl_compilation): Handle local specified-register 4780: declarations. 4781: 4782: * i386.md (tstqi, trunc*qi): Constrain to `q' regs. 4783: 4784: * loop.c (scan_loop, move_movables): ->global for zero-extend register 4785: now means register is used outside range from where it is set 4786: to the following label. Non-global zero-extend regs 4787: may be entirely cleared. 4788: 4789: * loop.c (combine_movables): Loop that combines matching movables 4790: broken out from scan_loop. 4791: Now also combine non-global zero-extend registers with each other 4792: if their lifespans don't overlap. 4793: 4794: * c-typeck.c (build_unary_op, ADDR_EXPR of a COMPONENT_REF): 4795: Always convert to desired result type. 4796: 4797: Sun Apr 30 12:58:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4798: 4799: * c-decl.c (init_decl_processing): New macros parameterize int types. 4800: CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, 4801: FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE. 4802: 4803: * fixincludes: Use sed instead of ex. No problem with split lines. 4804: 4805: * print-tree.c (dump): Print type's name, if any. 4806: 4807: * c-parse.y: Use __inline, not plain inline. 4808: 4809: * toplev.c: New option -fdelayed-branch. 4810: (compile_file): Open and close dbranch dump file. 4811: Collect and print dbranch time. 4812: (rest_of_compilation): Optionally do dbranch scheduling, 4813: only if HAVE_DELAYED_BRANCH. 4814: (main): Handle -dd. 4815: 4816: * rtl.c (copy_rtx): Handle null pointers as code `e'. 4817: 4818: * final.c (dbr_sequence_length): New function. 4819: (final_scan_insn): Most of `final' broken out. 4820: Add support for SEQUENCE insns. 4821: last_ignored_compare and new_block now top-level static. 4822: 4823: * c-parse.y (MAX_WORD_LENGTH): Long enough for __volatile. 4824: 4825: Sat Apr 29 13:03:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4826: 4827: * c-parse.y (asm statements): Output line numbers. 4828: 4829: * loop.c (emit_iv_init_code, emit_iv_inc, eliminate_biv): Copy 4830: additive term rtx's to prevent sharing between insns. 4831: 4832: * c-parse.y (check_newline): Increment input_file_stack_tick. 4833: * toplev.c (report_error_function): Describe input stack only if 4834: changed. 4835: 4836: * c-decl.c (finish_struct): Reject zero width for named field. 4837: 4838: * tm-sun3.h (CC1_SPEC): Prevent error on `-sun3'. 4839: * tm-sparc.h (CC1_SPEC): Prevent error on `-sun4'. 4840: 4841: * Makefile (cleanconfig): cleanlinks renamed; also delete gnulib. 4842: (gnulib): Delete stamp-gnulib2 since gnulib2 should be redone after. 4843: 4844: Fri Apr 28 00:38:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4845: 4846: * config.gcc (genix): Correct xm file name. 4847: 4848: * tm-genix.h: Undefine ASM_SPEC inherited from tm-encore.h. 4849: 4850: * Makefile: Make float.h using hard-params. 4851: (clean): Delete float.h. 4852: 4853: * hard-params.c: New program. 4854: 4855: * varasm.c (assemble_variable): Use SELECT_VARIABLE_SECTION if defined. 4856: (in_section): Use EXTRA_SECTIONS if defined. 4857: 4858: * toplev.c (compile_file): Call ASM_FILE_END if defined. 4859: 4860: * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Let config override. 4861: 4862: * loop.c (emit_iv_init_code): Force A to a reg if it isn't. 4863: 4864: Thu Apr 27 12:51:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4865: 4866: * tm-mips.h (ASM_START_FILES): Don't call print_options. 4867: Don't call the funny abort-functions. 4868: * out-mips.c: Delete funny debugging functions and aborts. 4869: (print_options): #if 0. 4870: (compare_restore): Test for COMPARE, not MINUS. 4871: (mips_section_get, mips_output_external, mips_asm_final): New fns. 4872: 4873: * input.h: New file with *input_filename, lineno and input_file_stack. 4874: Included in toplev.c and c-parse.y. 4875: * c-decl.c (finish_function): LINENO is now arg. 4876: * c-parse.y: Calls changed. 4877: 4878: * c-parse.y (check_newline): Handle `1' or `2' from cpp 4879: by pushing or popping input_file_stack. 4880: * toplev.c (compile_file): Push main input file on input_file_stack. 4881: (report_error_function): If in include file, print the chain 4882: of include-locations. 4883: 4884: * cccp.c (output_line_command): New arg says whether entering or 4885: leaving a file. Output `1' or `2' on #-line if so. Callers changed. 4886: 4887: * gnulib2.c: Little-endian fixes from [email protected]. 4888: 4889: * fixincludes: Wrong quoting in `echo' command. 4890: 4891: * tm-mips.h (REG_P): Duplicate defn deleted. 4892: (PRINT_OPERAND): `\' was missing. 4893: 1.1.1.15 root 4894: Wed Apr 26 02:44:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4895: 1.1.1.16 root 4896: * cccp.c (handle_directive): Preprocess even #pragma, but copy 4897: to output file afterward. 4898: (do_pragma): Use standard calling convention. 4899: (install_builtins, special_symbol): Define __INCLUDE_LEVEL__. 4900: 4901: * cccp.c (do_include): Don't forget to close file. 4902: 4903: * final.c (output_asm_insn): Use PRINT_OPERAND_PUNCT_VALID_P 4904: to validate punctuation after percent. 4905: * tm-m68k.h, tm-alliant.h, tm-ns32k.h, tm-vax.h, tm-i386.h: 4906: Define PRINT_OPERAND_PUNCT_VALID_P. 4907: 1.1.1.15 root 4908: * Version 1.35 released. 4909: 4910: * c-decl.c (grokdeclarator): Use INT_CST_LT only on int constants. 4911: 4912: Tue Apr 25 15:47:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4913: 4914: * reload.c (find_reloads_address_1): Always return a value. 4915: 4916: * flow.c (mark_set_1): Look inside zero_extract, sign_extract. 4917: 4918: * expr.c (emit_library_call) [STACK_ARGS_ADJUST]: 4919: Fix typo for `struct args_size'. 4920: 4921: Mon Apr 24 00:12:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4922: 4923: * flow.c (mark_set_1): Look inside strict_low_part. 4924: 4925: * c-typeck.c (decl_constant_value): Don't use var's init if volatile. 4926: 4927: * print-tree.c (dump): Don't call walk on rtx's. 4928: 4929: * integrate.c (expand_inline_function): Convert expanded arg from 4930: passed mode to nominal mode. 4931: 4932: Sun Apr 23 13:14:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4933: 4934: * fixincludes: fix _IO macros if split across two lines. 4935: Fix typo: EOF was indented. 4936: 4937: * gnulib2.c: New file with DImode library routines. 4938: * Makefile (gnulib2): Put them into gnulib. 4939: Must be explicitly requested. 4940: 4941: Fri Apr 21 13:45:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4942: 4943: * cccp.c (main): Don't turn on trigraphs for -Wtrigraphs or -Wall; 4944: use -trigraphs for that. 4945: 4946: * cccp.c (main): Use -trigraphs to enable trigraphs. 4947: * gcc.c: Pass -trigraphs to cpp; don't pass -T. 4948: 4949: * Makefile: Variable srcdir relates location of sources 4950: to current directory. Default is `.'. 4951: 4952: * integrate.c (expand_inline_function): When copying expanded arg, 4953: use mode it's passed in, not arg's nominal mode. 4954: 4955: * dbxout.c (dbxout_block): Print generated name with assemble_name. 4956: 4957: Thu Apr 20 12:36:09 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4958: 4959: * stdarg.h: check __sparc__ instead of sparc. 4960: 4961: Tue Apr 18 18:58:03 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4962: 4963: * tm-next.h (STARTFILE_SPEC): Define it. 4964: 4965: Mon Apr 17 19:56:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4966: 4967: * dbxout.c (dbxout_block): Use ASM_GENERATE_INTERNAL_LABEL to format 4968: the labels LBB... and LBE... 4969: 4970: Sun Apr 16 23:57:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4971: 4972: * mips.md: Change MINUS to COMPARE where appropriate. 4973: 4974: Sat Apr 15 16:11:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4975: 4976: * c-decl.c (finish_struct, redeclaration_error_message): 4977: Rename variables named OLD and NEW. 4978: 4979: * sparc.md (cse'd mult pattern): Handle memory operands. 4980: Optimize small integer operands. 4981: 4982: * stmt.c (expand_decl): On sparc, ensure dynamic arrays of doubles 4983: are properly aligned, despite unaligned STACK_POINTER_OFFSET. 4984: 4985: Fri Apr 14 10:59:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 4986: 4987: * expr.c (expand_call): Bugs treating struct value address as param: 4988: do so only if it's supposed to be pushed; 4989: decode value of FUNCTION_ARG properly. 4990: 4991: * tm-altos3068.h (CPP_SPEC): Some braces were dropped. 4992: 4993: * gcc.c (pexecute): Print message when exec fails. 4994: (perror_exec): New fn. 4995: (perror_with_name,pfatal_with_name): Change message syntax. 4996: 4997: * tm-hp9k320.h (ASM_IDENTIFY_GCC): Define as no-op. 4998: 4999: Wed Apr 12 00:20:31 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5000: 5001: * cse.c (cse_insn): Can record constant value being stored in 5002: a bit field, if we can tell that truncation won't change it. 5003: 5004: * m68k.md (bfset, bfclr, bfchg insns): Do CC_STATUS_INIT 5005: since the cc's are set from the old contents. 5006: 5007: * gcc.c (compilers): Running `as', put -o option before input file. 5008: 5009: * gcc.c: Delete output file only if that file's compilation fails. 5010: * gcc.c (record_temp_file): Changed args: always_delete, fail_delete. 5011: (store_arg): Likewise. Callers changed. 5012: (clear_failure_queue): Called after each compilation. 5013: 5014: Tue Apr 11 01:18:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5015: 5016: * combine.c (subst): (SET (ZERO_EXTRACT) (OR (ZERO_EXTRACT) const)) 5017: optimization was sometimes invalid. 5018: 5019: * tm-m68k.h (NOTICE_UPDATE_CC): A doubleword move that requires 2 insns 5020: does not set the cc's usefully. 5021: 5022: * Makefile (cleanlinks): Just do `clean', not `realclean'. 5023: (realclean): Delete config links also. 5024: 5025: * expr.c (expand_call): Handle case where return value is in memory 5026: but TARGET is a register. 5027: 5028: * c-typeck.c (build_binary_op_nodefault): New arg ERROR_CODE 5029: is passed to binary_op_error instead of CODE. 5030: All callers changed. 5031: (binary_op_error): CODE = NOP_EXPR is new special case. 5032: (truthvalue_conversion): Call build_binary_op_nodefault directly 5033: and specify NOP_EXPR for the error code. 5034: 5035: * c-decl.c (xref_tag): If pedantic, warn on fwd ref to enum. 5036: 5037: Mon Apr 10 19:44:48 1989 Chris Smith (csmith at mozart) 5038: 5039: * tm-convex.h (PCC_BITFIELD_TYPE_MATTERS): It doesn't, 5040: but set it anyway. It makes for better code on this 5041: word machine. 5042: 5043: * convex.md (one_compl*): add not:QI and not:HI, which 5044: do get used after all. 5045: 5046: * tm-convex.h (A_REG_P, S_REG_P): define new macros 5047: convex.md: use them 5048: 5049: * convex.md (addsi3): tidy up constraints. 5050: 5051: * tm-convex.h (REG_OK_FOR_INDEX_P): stack pointer is not ok. 5052: 5053: * convex.md: add a pattern to push REG+CONST so we can 5054: prefer an A reg. 5055: 5056: * tm-convex.h (tstqi): should sign extend, not zero extend. 5057: 5058: * expr.c (convert_move): Extending narrow to DI via SI, 5059: operand of extendsidi2 was wrong. 5060: 5061: * emit-rtl.c (gen_lowpart): Handle CONST_DOUBLE. 5062: 5063: Mon Apr 10 05:19:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5064: 5065: * recog.c (nonmemory_operand): Test constant operands 5066: as general_operand does. 5067: 5068: * tm-m68k.h (PRINT_OPERAND): Limit effect of code `d' 5069: to constant addresses. 5070: 5071: * loop.c (can_eliminate_biv_p, eliminate_biv): Don't rely on givs with 5072: nonconstant coefficients, since the coeffs could be zero. 5073: 5074: * loop.c (can_eliminate_biv_p): Check each giv for ! ignore 5075: before assuming it can be used. 5076: (check_eliminate_biv): New fn, a piece of strength_reduce broken out. 5077: 5078: * cccp.c (error_from_errno): New fn, like error and perror_with_name. 5079: (do_include): Call that if open fails. 5080: (finclude): Print I/O error msg before closing desc. 5081: 5082: * c-decl.c (shadow_tag): If more than one tag or structure, 5083: or anything other than a tag, warning. 5084: 5085: * c-parse.y (components): Just warn if memb decl has no member, 5086: and only if pedantic. 5087: 5088: * loop.c (strength_reduce): Print uids, not luids, for dump. 5089: (record_giv): giv_count field counts only DEST_REG givs. 5090: (check_dbra_loop): src_two_before_end was set wrong. 5091: 5092: * loop.c (record_giv): New arg LOOP_END; all callers changed. 5093: Don't mark giv replaceable if used past LOOP_END. 5094: (find_mem_givs): New arg LOOP_END; all callers changed. 5095: 5096: * out-i386.c (FP_CALL): Make this a `return' stmt. 5097: 5098: Fri Apr 7 11:56:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5099: 5100: * expr.c (expand_expr, case ..._DECL): Preserve mode thru 5101: calling change_address. 5102: 5103: * expr.c (emit_library_call): Typo: ARGNUM => COUNT. 5104: 5105: * expr.c (preexpand_calls, expand_call): Take note of RETURN_IN_MEMORY. 5106: * stmt.c (assign_parms): Likewise. 5107: * integrate.c (function_cannot_inline_p): Likewise. 5108: 5109: * STACK_ARGS_ADJUST: Arg is now a `struct arg_data' and it should 5110: be updated in place. 5111: * tm-mips.h: Define it. 5112: * expr.c (expand_call): Adapt to this. Assume padding comes after args 5113: so turn off the feature of changing the args' offsets. 5114: (emit_library_call): Adapt to this. 5115: 5116: * tm-mips.h (PRINT_OPERAND): Use CONST_DOUBLE_{LOW,HIGH}. 5117: Truncate SFmode constants to single precision. 5118: 5119: * c-typeck.c (mark_addressable): Fix test for local vs global reg var. 5120: 5121: * config.gcc: Change `:-' to `-' in var refs. 5122: Shell on convex doesn't handle `:-'. 5123: 5124: Thu Apr 6 00:09:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5125: 5126: * integrate.c (expand_inline_function): Compare actual's mode 5127: against formal's DECL_ARG_TYPE's mode, not TREE_TYPE's mode. 5128: 5129: * c-decl.c (implicitly_declare): Make the decl permanent if 5130: in global binding level. (Can happen for certain invalid input.) 5131: 5132: * c-typeck.c (build_modify_expr): Block path that made a MODIFY_EXPR 5133: containing an ERROR_MARK. 5134: 5135: * config/tm.h: New file. 5136: 5137: * loop.c (only_reg_use_p): Fix bugs in recursion, add some fast 5138: special cases. Comment on return value was backwards. 5139: (strength_reduce): Negate the value of only_reg_use_p. 5140: 5141: * genoutput.c (output_prologue): Output `#include hard-reg-set.h'. 5142: * Makefile: insn-output.o depends on that. 5143: 5144: * toplev.c (main): Typo recognizing -Wswitch. 5145: 5146: * config.gcc (mips): New alternative. 5147: * tm-mips.h, out-mips.c, mips.md, va-mips.h: New files. 5148: * varargs.h: Include va-mips.h if on mips. 5149: 5150: Wed Apr 5 16:58:04 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5151: 5152: * c-decl.c (duplicate_decls): Rename OLD, NEW to OLDDECL, NEWDECL. 5153: 5154: * stmt.c (expand_function_start): Ref subr instead of 5155: current_function_decl; should make no difference. 5156: 5157: * stmt.c (assign_parms): Do extra padding for some parms, 5158: controlled by MAX_PARM_BOUNDARY. 5159: * expr.c (expand_call): Same thing for caller side. 5160: Note this is implemented only for machines that lack push insns. 5161: Also, in both cases, it doesn't handle variable-size args. 5162: 5163: Tue Apr 4 12:22:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5164: 5165: * gcc.c (find_file): Try STANDARD_EXEC_PREFIX for startfiles too. 5166: 5167: * varasm.c (make_decl_rtl): Delete never-executed clause. 5168: 5169: * spur.md (movqi, loadhi, extend*, zero_extendhisi): 5170: Make subregs with C code, not RTL patterns, so we can 5171: avoid generating subreg of subreg. 5172: 5173: * optabs.c (emit_cmp_insn): Not all clauses always succeed, 5174: so stop using `else' structure. 5175: 5176: * stmt.c (expand_return): Avoid moving void to void, in cleanups case. 5177: 5178: Mon Apr 3 18:04:33 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5179: 5180: * m68k.md (cmphi): Don't allow a-reg vs a-reg, since that sign-extends. 5181: If there is one a-reg, make sure it is not last. 5182: 5183: Sun Apr 2 13:02:26 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5184: 5185: * stor-layout.c (agg_mode): Use highest mode that has desired size. 5186: Allow all integer modes, but reject sizes > MAX_FIXED_MODE_SIZE. 5187: (That defaults to the size of DImode.) 5188: 5189: * machmode.def: Add PSI, PDI and XF, CXF modes. 5190: 5191: Sat Apr 1 00:50:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5192: 5193: * ns32k.md (ashd, lshd): Delete patterns that logand the count with 31. 5194: The shift count is not truncated on this machine. 5195: 5196: * combine.c (subst): Simplify nested or's, nested xor's. 5197: (try_distrib): XOR doesn't distribute through anything. 5198: 5199: * rtl.c (rtx_equal_p): Don't die on null pointers. 5200: 5201: * loop.c (eliminate_biv): Use COMPARE, not MINUS, in generated compare. 5202: 5203: * loop.c (invariant_p): Mem refs in constant pool are invariant. 5204: 5205: * c-decl.c (redeclaration_error_message): If -traditional, allow 5206: redeclarations of typedef provided they agree. 5207: 5208: * c-decl.c (start_decl): Do expand_decl on the decl that pushdecl 5209: returns. If there was a prev. decl with a different type, 5210: we have changed its type and cleared its old rtl, so it need new rtl. 5211: 5212: Sat Apr 1 00:50:11 1989 Matthew Self (rms at sugar-bombs.ai.mit.edu) 5213: 5214: * expr.c (convert_move): Modified to use mode classes 5215: instead of refering to specific machine modes. 5216: 5217: * expr.c (do_jump): Converted to use CONST0_RTX macro. 5218: do_jmp no longer refers to any machine modes directly except 5219: for VOIDmode! 5220: 5221: * expr.c (compare, compare1): Modified to use CONST0_RTX 5222: macro. No longer refers to any machine modes directly 5223: except VOIDmode and BLKmode! 5224: 5225: * machmode.def: Documented assumptions made about the order 5226: of machine modes during mode widening. 5227: 5228: * optabs.c (expand_binop, expand_twoval_binop, expand_unop, 5229: emit_cmp_insn): Added mode widening which is independent of 5230: specific machine modes. It assumes that we may widen to any 5231: higher numbered mode of the same mode class. 5232: NOTE: the checks for VOIDmode ops which were present in 5233: QI and HI to SI widening are now present in all widening. 5234: I assume this is correct. Also, widening is now possible 5235: from QI to HI. This may or may not be a good thing.... 5236: 5237: * rtl.h (CONST0_RTX): Added definition of new macro 5238: CONST0_RTX (mode). 5239: 5240: * rtl.h (GET_NOTE_INSN_NAME, GET_REG_NOTE_NAME): New macros. 5241: * rtl.c (note_insn_name, reg_note_name): New tables. 5242: * rtl.def (NOTE): Change last field from `i' to `n'. 5243: * rtl.c (print_rtx): Print mode of INSN_LIST or EXPR_LIST as reg-note. 5244: Print operand code `n' as name of kind of note. 5245: (read_rtx): treat `n' like `i'. 5246: 5247: * loop.c (struct induction): Add `mode' field. 5248: (strength_reduce, record_giv): Set the `mode' field in V. 5249: (can_eliminate_biv_p, eliminate_biv): Use that field. 5250: 5251: * loop.c (struct iv_class): `init_insn' records what inits the biv. 5252: Replaces `init_val_set' flag. 5253: (strength_reduce): Update and test `init_insn' instead. 5254: Use of a biv between its init and the start of the loop 5255: does not preclude its elimination from the loop. 5256: Setting a giv is ok for eliminating a biv, even if giv is "ignore", 5257: since that just means giv will be combined with another. 5258: Handle some DEST_ADDR givs for that purpose. 5259: Test for giv-setting before check can_eliminate_biv_p. 5260: New error check for replaceable giv whose value needed after loop. 5261: (only_reg_use_p): New fn. 5262: 5263: * expr.c (expand_expr): PLUS, MINUS with EXPAND_SUM: 5264: Associate even harder. 5265: 5266: * loop.c (strength_reduce): Treat all constant biv init vals like ints. 5267: 5268: * loop.c (strength_reduce): Clear all_reduced when v->ignore is set; 5269: the code to check this later didn't always do the job. 5270: 5271: * loop.c (verify_loop): Set loop_continue. 5272: (scan_loop): mention its value. 5273: * rtl.h: Define NOTE_INSN_LOOP_CONT. 5274: * stmt.c (expand_loop_continue_here): Output one. 5275: 5276: Fri Mar 31 10:08:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5277: 5278: * c-typeck.c (pointer_int_sum, pointer_diff): Treat const void * like 5279: void *. 5280: 5281: * rtl.c (rtx_addr_varies_p): Don't die on null exp. 5282: * cse.c (refers_to_mem_p, refers_to_p): Likewise. 5283: 5284: * gcc.c (validate_switches, validate_all_switches): New fns. 5285: Mark a switch as valid if any compiler spec or the linker spec 5286: matches it, even for languages not being used. 5287: 5288: Thu Mar 30 00:22:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5289: 5290: * loop.c (loop_optimize, move_movables): when moving a `clr' insn used 5291: in zero-extension, sometimes change it to an `and' so that the 5292: significant low bits are not clobbered. 5293: 5294: * cccp.c: Implement __BASE_FILE__ and #once. 5295: (savestring): New fn. 5296: (struct file_name_list): new name for struct directory_stack. 5297: (enum node_type): Add T_ONCE, T_BASE_FILE. 5298: (directive_table): Add #pragma once. 5299: (initialize_builtins): Add __BASE_FILE__. 5300: (special_symbol): Handle __BASE_FILE__, together with __FILE__. 5301: (do_include): Ignore the file if it's on the #pragma once list. 5302: (do_once): New fn; add current file to #pragma once list. 5303: 5304: * cccp.c (do_include): Don't add non-ex files to list of deps. 5305: 5306: * config.gcc: Use {...:-...}, not {...=...}. 5307: 5308: * c-parse.y: Add precedence for IF/ELSE, and for parens; 5309: avoids some conflicts. 5310: 5311: * tm-newsgas.h: Include tm-news.h and define USE_GAS. 5312: 5313: * tm-news.h: New name for tm-news800.h. 5314: If not USE_GAS, define SONY_ASM. 5315: Don't define USE_GAS by default. 5316: (CPP_PREDEFINES): Various alternatives depending on processor type. 5317: (ASM_FORMAT_PRIVATE_NAME): Override this. 5318: (ASM_IDENTIFY_GCC): Override; output nothing. 5319: (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Round fsize up to % 4. 5320: Max for halfword link insn is 32k, not 64k. 5321: (FUNCTION_EPILOGUE): Don't output move.l if no regs to restore. 5322: (PRINT_OPERAND_ADDRESS): Change handling of tableref pc-rel addresses. 5323: * m68k.md (movhi): Add SONY_ASM conditional. 5324: 5325: * cse.c (cse_insn): If replacing a dest address, preserve MEM_IN_STRUCT 5326: 5327: * gcc.c (error, fatal): alternate varargs defns if HAVE_VPRINTF. 5328: 5329: Wed Mar 29 09:54:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5330: 5331: * gcc.c (process_command): Check WORD_SWITCH_TAKES_ARG, so that 5332: -Tdata can be handled right. 5333: 5334: * stmt.c (check_for_full_enumeration_handling): new fn, for warn_switch 5335: (expand_end_case): Call it, if orig index was enum. 5336: * toplev.c (main): Handle -Wswitch. 5337: * c-parse.y (SWITCH stmt): Pass orig switch expr to expand_end_case. 5338: 5339: * tm-*.h, out-*.c: Uniformly use reg_names, not reg_name, and don't 5340: define any duplicates. 5341: * final.c: Delete reg_name. 5342: 5343: * c-parse.y (is_reserved_word): Add keywords __asm and __inline; 5344: also __const and __volatile. 5345: (yylex): Keywords that start with `__' are recognized regardless of 5346: -traditional or -ansi. 5347: 5348: * c-parse.y (check_newline): Always recognize #ident. 5349: Macro IDENT_DIRECTIVE is no more. 5350: If ASM_OUTPUT_IDENT is undefined, don't output anything for #ident. 5351: * tm-3b1.h: Don't define IDENT_DIRECTIVE or ASM_OUTPUT_IDENT. 5352: * tm-encore.h, tm-i386gas.h, tm-i368v.h, tm-sun386i.h, tm-vaxv.h: 5353: Don't define IDENT_DIRECTIVE; define ASM_OUTPUT_IDENT to output in 5354: default way. 5355: 5356: * expr.h (RETURN_IN_MEMORY): New macro, default defn here. 5357: * expr.c (expand_call): Use it to control where to return value. 5358: * stmt.c (expand_function_start): Likewise. 5359: 5360: * out-sparc.c (find_addr_reg): Abort if none found. 5361: Eliminate confusion; do only one change between tests for PLUSness. 5362: (output_move_double): Arg to find_addr_reg is address, not mem ref. 5363: * out-m68k.c, out-spur.c, out-i386.c, out-alliant.c: Likewise. 5364: 5365: * jump.c (find_cross_jump): Don't let either E1 or E2 be included 5366: in the range of matching insns preceding the other (E2 or E1). 5367: 5368: * c-parse.y (check_newline): No error for `#pragma\n'. 5369: 5370: * Makefile (gcc.o): Control STANDARD_STARTFILE_PREFIX here. 5371: 5372: * stmt.c (walk_fixup_memory_subreg): handle null. 5373: 5374: * tm-sparc.h (FUNCTION_BLOCK_PROFILER): Change LPBnn to LPYnn, 5375: to avoid conflict with final.c. 5376: 5377: Tue Mar 28 15:23:17 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5378: 5379: * cccp.c (do_include): If fail, print system error message. 5380: (perror_with_name): Use more standard error format. Inc. `errors'. 5381: 5382: * dbxout.c (dbxout_function): Output any temporary types 5383: that were made by dbxout itself. 5384: 5385: * stmt.c: always use an epilogue if pcc-struct-return. 5386: (expand_function_start): Compute return_label after testing that. 5387: (expand_function_end): Output a return insn after pcc-struct-return 5388: processing, if there is a return insn. 5389: (expand_null_return): Don't output a return insn, in that case. 5390: Simplify the conditions--depends entirely on HAVE_return. 5391: 5392: * tm-m68k.h (FUNCTION_BLOCK_PROFILER): Use jsr, not call. 5393: 5394: * reload.c (find_reloads): Certain mem addresses will be offsetable 5395: after reloading; in particular, those where reg_equiv_address applies. 5396: 5397: * loop.c (check_dbra_loop): Change MINUS to COMPARE. 5398: 5399: * c-typeck.c (convert_for_assignment): Return THE standard error_mark. 5400: 5401: Thu Mar 23 09:39:02 1989 Richard M. Stallman (rms at watson) 5402: 5403: * c-parse.y (components): Error if empty. 5404: 5405: * dbxout.c (dbxout_symbol): Output const variables as N_STSYM. 5406: 5407: * varasm.c (force_const_mem): Use ASM_OUTPUT_DOUBLE_INT if defnd. 5408: 5409: * c-decl.c (grokdeclarator): Warn about `long long long'. 5410: 5411: * reload1.c (reload): When changing REG to MEM, clear REG_USERVAR_P. 5412: * final.c (alter_subreg): Preserve volatile bit of MEM. 5413: 5414: * m68k.md (cmpsi, cmphi): Permit cmpm. 5415: 5416: * gcc.c (find_file): Use standard_startfile_prefix_2. 5417: Now search /usr/local/lib/, /lib/ and /usr/lib/. 5418: 5419: * tm-m68k.h (PRINT_OPERAND): Support code `d'. 5420: * m68k.md (cmpsi, cmphi, cmpqi): Use it for all mem addresses. 5421: 5422: * final.c (output_asm_insn): Don't allow %LETTER without an 5423: operand number. 5424: * tm-m68k.h, m68k.md, tm-hp9k320.h, tm-news*.h: Use %@ instead of %s. 5425: * tm-alliant.h, alliant.md: Likewise. 5426: * i386.md, out-i386.h: Put `0' after each %L, %W, %B, %S, %Q, %R. 5427: 5428: * stmt.c (expand_end_stmt_expr): Pop pending stack args. 5429: 5430: * varasm.c (assemble_variable): For 0-size common variable, 5431: allocate at least 1 byte. 5432: 5433: * tm-encore.h (ASM_OUTPUT_DOUBLE, PRINT_OPERAND): Use 0f, not 0l, 5434: for doubles. 5435: 5436: Mon Mar 13 10:24:56 1989 Richard M. Stallman (rms at ccvi) 5437: 5438: * out-i386.h (function_prologue, function_epilogue): 5439: Use call_used_regs, not a copy, so -f options work. 5440: Save regs in the opposite order. 5441: Save regs even starting from 0 if they happen to be call-saved. 5442: 5443: * Bug fixes from Rob McMahon. 5444: 5445: * loop.c (strength_reduce): When inserting insn to set 5446: nonreplaceable giv, put it after all the consecutive insns 5447: that compute it. 5448: 5449: * reload.c (find_reloads): When forcing const to mem, 5450: use the insn's operand mode, not the const's mode. 5451: 5452: * reload1.c (choose_reload_targets): Use wider of inmode and outmode 5453: when determining have_groups. 5454: 5455: * reload1.c (choose_reload_targets): typo checked wrong insn with 5456: constraint_accepts_reg_p. 5457: 5458: * reload1.c (choose_reload_targets): Enable #if-0'd code for 5459: forgetting old reloads in case of output reload from a non-spill-reg. 5460: 5461: Sun Mar 12 00:04:49 1989 Richard M. Stallman (rms at ccvi) 5462: 5463: * c-parse.y (yyerror): Add forward-decl here. 5464: * c-tree.h: Delete decl here. 5465: 5466: * New macro USE_C_ALLOCA. 5467: * cse.c (cse_main): Do alloca (0) to clear out C alloca. 5468: * flow.c (life_analysis): 5469: * local-alloc.c (local_alloc): 5470: * reload1.c (reload_as_needed): likewise. 5471: 5472: * loop.c (emit_iv_init_code, eliminate_biv): 5473: Always put constant in a PLUS last. 5474: 5475: * gcc.c (make_switch): Unused function deleted. 5476: 5477: *gcc.c (switches): Each switch has a `used' field. 5478: (process_command): Init it to 0 when making `switches'. 5479: (do_spec_1, handle_braces, give_switch): Set to 1 when switch is used. 5480: (main): If it remains 0 at the end, print error message. 5481: 5482: * expr.c (convert_move, convert_to_mode): Don't truncate a MEM in 5483: place if it is volatile. 5484: 5485: * loop.c (strength_reduce): When reducing a giv, if the biv is 5486: incremented between the giv's creation and its use, increment 5487: the reduced giv var *after* its use. 5488: 5489: * c-decl.c (duplicate_decls): Warn about proto vs nonproto 5490: only if no other errors apply. 5491: 5492: * jump.c (invert_exp): Don't crash if arg is null. 5493: 5494: * alliant.md (float*i*f2): Don't allow immediate ops. 5495: (sne): Fix typo, fsne => fsneq. 5496: 5497: * expr.c (store_one_arg, expand_call): When size doesn't matter, 5498: pass const0_rtx, not (rtx) 0. 5499: 5500: * expr.c (do_jump): Args to invert_exp were missing. 5501: 5502: * gcc.c (store_arg): Now 2 separate args for delete-on-success 5503: and delete-on-failure. All calls changed. 5504: (do_spec_1): DELETE_THIS_FILE is meaningful for output files. 5505: 5506: * config/xm-alliant.h (LINK_SPEC): Pass -X to linker. 5507: 5508: Sat Mar 11 10:30:41 1989 Richard M. Stallman (rms at ccvi) 5509: 5510: * tm-*.h, xm-*.h, *.md: Moved to subdir `config'. 5511: * output-*.c: Moved to `config/out-*.c'. 5512: * Makefile (.c.o): Define rule to use -Iconfig when compiling. 5513: (various): Delete the commands from some compilation rules. 5514: Put -Iconfig in other compilation commands. 5515: Also some reordering of variable defs and comments for cleanliness. 5516: (realclean): Change a shell comment to a Make comment. 5517: 5518: * fold-const.c (fold): Simplify and extend TRUTH_... operators 5519: knowing that args must be ints and values will be 0 or 1. 5520: 5521: * gcc.hlp: New file (for VMS). 5522: 5523: * reload1.c (reload): Don't let two 2-groups overlap. 5524: 5525: * reload.c (push_reloads): When a plain reg matches a reload 5526: for an increment, don't change the reload_in to a plain reg. 5527: Leave the increment there. 5528: 5529: * integrate.c (expand_inline_function): Don't try to inline 5530: unless the parm machine modes really match what's expected. 5531: 5532: * stmt.c (emit_case_nodes): default_label is an rtx, not tree. 5533: 5534: * tm-next.h (DOLLARS_IN_IDENTIFIERS): Define it as 1. 5535: 5536: * output-sparc.c (output_move_double): Don't trust random structs 5537: to be double-word aligned. 5538: 5539: * gcc.c: Pass -Wcomments to cpp. 5540: 5541: * rtl.def (ASM_OPERANDS): New operands, source file and line. 5542: * rtl.h (ASM_OPERANDS_*): New macros for components of ASM_OPERANDS. 5543: * stmt.c (expand_asm_operands): Use new fields, not REG_ASM_* notes. 5544: * toplev.c (error_for_asm): likewise. 5545: * rtl.h (enum reg_note): Delete REG_ASM_FILE, REG_ASM_LINE. 5546: 5547: * combine.c (try_combine): Check explicitly for volatility in I2, I1. 5548: 5549: Fri Mar 10 19:30:10 1989 Richard M. Stallman (rms at ccvi) 5550: 5551: * c-parse.y (GOTO stmt): Set TREE_USED for the label. 5552: * c-decl.c (poplevel): Warn about unused label. 5553: 5554: * c-decl.c (warn_pointer_arith, warn_strict_prototypes): New vars. 5555: (lang_decode_options): Options to set them. 5556: * c-typeck.c (pointer_int_sum, c_sizeof): Maybe warn if bad target. 5557: * c-decl.c (grokparms): Maybe warn if nonprototype fn decl. 5558: 5559: * flags.h, toplev.c (warn_shadow): New flag. 5560: * toplev.c (main): Decode it. 5561: * c-decl.c (pushdecl): Maybe warn about any shadowing. 5562: Existing parm-shadowing warning now disabled if shadowing decl 5563: is also a parm. 5564: 5565: * flags.h, toplev.c (warn_id_clash, id_clash_len): New flags. 5566: * toplev.c (main): Decode -Wid-clash-LEN. 5567: * tree.c (get_identifier): Implement warning if two idents match. 5568: 5569: * toplev.c (compile_file): Warn about statics defined and unused. 5570: 5571: * rtl.h (CONST0_RTX): New macro. 5572: 5573: * recog.c (offsetable_address_p): New 1st arg says whether to demand 5574: a strictly valid address. 5575: (offsetable_memref_p): Pass nonzero. 5576: * stmt.c (optimize_bit_field): Pass zero. 5577: 5578: * cccp.c (main): Allow -Wcomment like -Wcomments. 5579: * c-decl.c (lang_decode_options): Likewise. 5580: 5581: Sun Mar 5 15:02:59 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) 5582: 5583: * m68k.md [tstdf, cmp[sd]f, truncdfsf2, floatsi[sd]f2, add[sd]f3, 5584: sub[sd]f3, mul[sd]f3, div[sd]f3, neg[sd]f2, abs[sd]f2]: Made sure 5585: that the test function's in the match_operands of the define_expand 5586: and define_insn's matched, and made that test function 5587: "register_operand" when both define_insn's really needed registers 5588: in that spot. 5589: 5590: Sat Mar 4 00:25:37 1989 Richard M. Stallman (rms at c2v) 5591: 5592: * expr.c (emit_push_insn): Don't ever bypass the big-endian 5593: padding at the end. 5594: 5595: * cccp.c (deps_output): Break line if would otherwise exceed 75 chars. 5596: Make a name for that value 75. 5597: 5598: * combine.c (subst): Handle general case of (subreg (sign_extend X)). 5599: 5600: * tm-sun386i.h (CPP_PREDEFINES): Define `sun'. 5601: 5602: * fixincludes: change `find' calls to find dirs thru symlinks. 5603: 5604: * flow.c (mark_set_1): (set (subreg (reg N))...) 5605: does make reg N significant for this basic block. 5606: 5607: Fri Mar 3 13:55:25 1989 Richard M. Stallman (rms at c2v) 5608: 5609: * c-decl.c (parmlist_tags_warning): Print an explanation 5610: for the first such warning. 5611: 5612: * i386.md (extendsfdf): Let op 1 match op0 if that is an fp reg. 5613: 5614: * expr.c (expand_call): Fix stupid errors copying pcc struct value. 5615: 5616: * varasm.c (output_constructor): Discard NOP_EXPRs from build_c_cast. 5617: 1.1.1.14 root 5618: Thu Feb 23 05:55:57 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5619: 5620: * Version 1.34 released. 5621: 5622: * c-typeck.c (build_c_cast): If EXPR is an error mark, return that. 5623: 5624: * fold-const.c (div_and_round_double): Abort if divisor is 0. 5625: (combine): Likewise, for real constants. 5626: (real_zerop): New subroutine. 5627: (fold): Don't try to fold division if divisor is 0. 5628: Don't try to fold reals if can't do arithmetic on them. 5629: Don't try to compare reals for TRUTH_..._EXPR if can't do arith. 5630: Use real_zerop to test reals for zeroness. 5631: For TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR, can simplify based on 5632: first operand alone. 5633: 5634: * c-typeck.c (store_init_value): Fix error msg text. 5635: 5636: * tm-sparc.h (FUNCTION_PROFILER): Use `mcount'. 5637: * tm-sun4os3.h (FUNCTION_PROFILER): Override it; use `.mcount'. 5638: 5639: Wed Feb 22 04:33:22 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5640: 5641: * tm-hp9k320.h (CPP_SPEC, CPP_PREDEFINES): Make handling of 5642: -Dmc68000 depend on TARGET_DEFAULT. 5643: 5644: * tm-sparc.h (FUNCTION_PROFILER): Missing newline in fprintf. 5645: 5646: * integrate.c (expand_inline_function): Don't map struct-value-address 5647: in memory if fn does not use it. 5648: 5649: * c-parse.y (check_newline): At skipline, detect eof. 5650: 5651: * stmt.c (uninitialized_vars_warning): Change text of warning. 5652: 5653: Tue Feb 21 03:58:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5654: 5655: * output-sparc.c (output_mul_insn): Handle case of both args 5656: in reg 8, or both in reg 9. 5657: 5658: * tm-sparc.h (ASM_SPEC): Define, to handle -pipe. 5659: 5660: * tm-sparc.h (FUNCTION_PROFILER): Add omitted fprintf args. 5661: (BLOCK_PROFILER): Likewise. Use tempvar. 5662: 5663: * m68k.md (QImode btst): Allow nonoffsetable mem refs. 5664: 5665: Mon Feb 20 00:32:42 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5666: 5667: * flow.c (mark_used_regs): Don't record about global reg vars. 5668: 5669: * config.gcc (convex-*): tm file names are tm-convex1.h, tm-convex2.h. 5670: 5671: * tm-vax.h, tm-ns32k.h, tm-alliant.h: Define PCC_STATIC_STRUCT_RETURN. 5672: 5673: * gcc.c (compilers): Pass `-a' to cc1. 5674: * tm-sun3.h, tm-sparc.h (LIB_SPEC): Define, to handle `-a'. 5675: 5676: * expr.c (emit_push_insn): Copy stack addresses to be passed to bcopy; 5677: old method of preadjustment is broken by changes in emit_library_call. 5678: 5679: * c-decl.c (finish_decl): New temp `temporary'; don't get confused 5680: about whether allocation was temporary. 5681: 5682: Sun Feb 19 17:03:35 1989 Chris Smith (csmith at mozart) 5683: 5684: * tm-convex.h: define PCC_STATIC_STRUCT_RETURN 5685: 5686: * convex.md: 5687: remove pshea patterns, movsi does it better. 5688: add ashift:DI abs:DF abs:SF 5689: (tstdi): use a clobbered register instead of a bogus DImode zero. 5690: (trunchiqi2): delete noninstruction cvth.b 5691: (udivsi3, udivhi3, udivqi3): deleted, expand_divmod does it now. 5692: (call, call_value): delete stupid call/ret -> jump optimization. 5693: (call, call_value): flush call_ap_check, use reg_mentioned_p instead. 5694: 5695: * convex.md: (movxx): swap constraint alternatives so that the 5696: leftmost alternative is (set =g r). This makes (set mem const) 5697: get combinable input reloads of const instead of uncombinable 5698: output reloads to mem. They still do not combine, but wtf, 5699: I'll inch up on it. 5700: 5701: * output-convex.c: (const_double_{high,low}_int): new routines 5702: to pick apart const_doubles for assembler. 5703: 5704: Sun Feb 19 01:40:17 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5705: 5706: * sparc.md (shift memory right 24 bits): Another `a1' typo. 5707: 5708: * config.gcc (convex-*): Delete troublesome whitespace. 5709: 5710: * c-decl.c (grokparms): Delete redundant `parm != 0' tests. 5711: 5712: * stmt.c (fixup_memory_subreg): Slight simplification. 5713: 5714: * tm-sparc.h (FUNCTION_PROFILER): Fill delay slot. 5715: (FUNCTION_BLOCK_PROFILER): Use sethi. 5716: (BLOCK_PROFILER): Use %g2, not %g0. Use sethi. 5717: 5718: Sat Feb 18 02:11:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5719: 5720: * expr.c (expand_expr): Ignore const array's initial value 5721: if it's an error_mark. 5722: * c-decl.c (finish_decl): Set DECL_INITIAL to an error_mark 5723: if the decl is a permanent node. 5724: 5725: * cccp.c (rescan): If traditional, if macro ends inside string, 5726: keep scanning for the end of the string. 5727: (handle_directive): A line of just `#' becomes blank. 5728: (collect_expansion): \ in strings traditionally doesn't hide macro arg. 5729: 5730: * m68k.md, alliant.md (addsi3): New alternative a=r+a, in addition 5731: to old a=a+r, needed since reload-insns are not commuted. 5732: 5733: Fri Feb 17 03:15:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5734: 5735: * tm-m68k.h (PCC_STATIC_STRUCT_RETURN): Define it. 5736: * toplev.c, flags.h: New var flag_pcc_struct_return. 5737: * stmt.c (expand_function_start): Obey new flag and new variable. 5738: * expr.c (expand_call): Obey new flag and new variable. 5739: * varasm.c (assemble_static_space): New function. 5740: 5741: * stmt.c (expand_return): If we need cleanups, compute retval first 5742: into pseudo reg, then do the cleanups, then copy it to return reg. 5743: 5744: Thu Feb 16 02:59:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5745: 5746: * regclass.c (init_reg_sets_1): Win if STATIC_CHAIN_REGNUM undefined. 5747: 5748: * expr.c (expand_call): Handle conflict between two precomputed 5749: args that are both function calls returning structures. 5750: 5751: * loop.c (move_movables): Bkwds test of m->partial, for a matching reg. 5752: 5753: * expr.c (emit_library_call, expand_call): Handle STACK_ARGS_ADJUST. 5754: 5755: Wed Feb 15 01:59:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5756: 5757: * toplev.c (flag_caller_saves): New var, for -fcaller-saves. 5758: DEFAULT_CALLER_SAVES controls initial value. 5759: * global-alloc.c (find_reg): Do caller saves only if flag set. 5760: * local-alloc.c (find_free_reg): Do caller saves only if flag set. 5761: * tm-alliant.h, tm-convex.h: Define DEFAULT_CALLER_SAVES. 5762: 5763: Wed Feb 15 01:59:15 1989 Chris Smith (rms at sugar-bombs.ai.mit.edu) 5764: 5765: * caller-save.c: New file. 5766: * regs.h (CALLER_SAVE_PROFITABLE): New macro. 5767: (reg_n_calls_crossed): new int-vector replaces reg_crosses_calls. 5768: * flow.c (allocate_for_life_analysis, propagate_block, dump_flow_info): 5769: Use reg_n_calls_crossed. 5770: * stupid.c (stupid_mark_refs, stupid_life_analysis): Likewise. 5771: * global-alloc.c (find_reg): Sometimes allocate call-clobbered regs 5772: for call-crossing pseudos. 5773: New arg ACCEPT_CALL_CLOBBERED; callers changed. 5774: * local-alloc.c (find_free_reg): Similar changes. 5775: (qty_n_calls_crossed): New int-vector replaces qty_crosses_calls. 5776: (alloc_qty, local_alloc, combine_regs, find_free_reg): change that var. 5777: * regclass.c (call_fixed_regs, call_fixed_reg_set): new vars. 5778: (init_reg_sets_1): Initialize them. 5779: * reload1.c (reload): Call caller-saves processing if needed. 5780: 5781: Wed Feb 15 01:59:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5782: 5783: * expr.c (expand_expr): INTEGER_CST for DImode: don't handle 5784: endianness here. So CONST_DOUBLE_LOW is always the low word. 5785: * varasm.c (force_const_mem): Handle it here. 5786: 5787: * expr.c (convert_move): widening followed by extendsidi2 had braino. 5788: 5789: * integrate.c: Don't include ctype.h; not needed and kills Sun cpp. 5790: 5791: * m68k.md (cmpsf, cmpdf and their recognizers): 5792: Replace MINUS with COMPARE. 5793: Also, use VOIDmode for COMPAREs, not SF or DF. 5794: 5795: * optabs.c (sign_expand_binop): Handle ops such as division where 5796: an unsigned char could be widened and handled with signed int insns. 5797: * expmed.c (expand_divmod): Use that. 5798: 5799: * c-typeck.c (digest_init): Allow for type variants in validating 5800: initialization from a string constant. 5801: 5802: * c-typeck.c (decl_constant_value): Disable opt. if pedantic or 5803: outside functions, so that validity of program is never affected. 5804: 5805: * fold-const.c (fold): Signedness-test for ABS_EXPR was backwards. 5806: 5807: Tue Feb 14 01:30:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5808: 5809: * cccp.c (main): Don't omit normal output, if we want deps on 5810: a separate stream. 5811: 5812: * c-decl.c (grokdeclarator): Don't record any arg types for functions 5813: if -traditional. 5814: 5815: * print-tree.c (prtypeinfo): Mention permanent attribute. 5816: 5817: * tm-next.h: New file. 5818: 5819: * c-typeck.c (decl_constant_value): The DECL_INITIAL may be ERROR_MARK. 5820: 5821: * c-decl.c (duplicate_decls): For fns, new static decl overrides 5822: old non-static one. 5823: 5824: * emit-rtl.c (gen_lowpar, gen_highpart): Use change_address, so we 5825: preserve volatility, etc. 5826: 5827: * stmt.c (expand_expr_stmt): Use emit_filename, emit_lineno 5828: as file and line for any warning. 5829: * emit-rtl.c (emit_line_note): Set those vars. 5830: 5831: * c-decl.c (store_parm_decls): If -Wimplicit, warn of arg with no decl. 5832: 5833: * recog.c (offsetable_address_p): Use strict_memory_address_p, 5834: since called from reload.c. 5835: 5836: Mon Feb 13 03:11:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5837: 5838: * sparc.md (compare-to-reg patterns): Some still had MINUS. 5839: 5840: * toplev.c (main): Warn if `-a' on system that can't handle it. 5841: 5842: * stmt.c (expand_asm_operands): Delete unused local `val'. 5843: (pushcase_range): Likewise for `value'. 5844: (fixup_var_refs): Likewise for `insn'. 5845: * emit-rtl.c (start_sequence): Likewise for `save'. 5846: * loop.c (scan_loop): Likewise for `before_start'. 5847: * expr.c (expand_expr): Delete label `binop1'. 5848: 5849: * reload1.c (constraint_accepts_reg_p): Handle SUBREGs of REGs. 5850: 5851: Sun Feb 12 05:37:46 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5852: 5853: * gnulib.c (__bb_init_func): New function 5854: 5855: * tm-m68k.h (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): Defined. 5856: 5857: Sat Feb 11 00:05:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5858: 5859: * tm-sparc.h (FUNCTION_PROFILER): Make it really work. 5860: (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): New macros. 5861: 5862: * final.c (final): Use BLOCK_PROFILER at start of each basic block. 5863: (final_start_function): Use FUNCTION_BLOCK_PROFILER if -a. 5864: (end_final): New fn to output the block-profiling tables. 5865: * toplev.c (profile_block_flag): Set if -a. 5866: (compile_file): Call end_final. 5867: 5868: * combine.c (try_combine): Avoid combining in most cases if I3 5869: has an inc or dec and I1 or I2 uses the same register. 5870: 5871: * tree.c (size_in_bytes, int_size_in_bytes): Use type's main variant. 5872: 5873: * c-typeck.c (actualparameterlist): Error if parm type is incomplete. 5874: 5875: * expr.c (expand_call): Ignore args that have incomplete type. 5876: 5877: Fri Feb 10 02:26:02 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5878: 5879: * c-parse.y (case stmts): strip dummy NOP_EXPRs. 5880: 5881: * reload1.c (reload_as_needed): Clear reg_{has,is}_output_reload here, 5882: (choose_reload_targets): not here. 5883: 5884: Thu Feb 9 01:35:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5885: 5886: * output-sparc.c (output_mul_by_constant): Forget cc status. 5887: 5888: * stmt.c (assign_parms): Don't put volatile parms in regs. 5889: 5890: * vax.md (jlbs/jlbc recognizers): Move them before jbc/jbs recognizers. 5891: 5892: * cse.c (fold_rtx): Handle (EQ (COMPARE ...) (CONST_INT 0)). 5893: 5894: * c-typeck.c (default_conversion, digest_init): For static const 5895: nonvolatile scalar variable, use its initial value if known. 5896: 5897: * expr.c (expand_expr: case COMPONENT_REF): If containing structure 5898: comes out volatile, leave the component MEM volatile too. 5899: 5900: * hard-reg-set.h: Fix multi-word case macros to swallow semicolon. 5901: 5902: * c-typeck.c (default_conversion): In array=>ptr, volatility 5903: of target type comes from TREE_THIS_VOLATILE, not TREE_VOLATILE. 5904: 5905: * reload1.c (forget_old_reload_1, choose_reload_targets): 5906: New array reg_is_output_reload is converse of reg_has_output_reload. 5907: forget_old_reload_1 needs both. 5908: 5909: Wed Feb 8 01:26:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5910: 5911: * reload1.c (forget_old_reloads_1): New fn, guts of forget_old_reloads. 5912: Do process a spill reg if it isn't used for reloading in this insn. 5913: (forget_old_reloads): Deleted, replaced with note_stores. 5914: (reload_as_needed): Undo Feb 1 change. 5915: Call forget_old_reloads_1 on pseudos autoincremented and not reloaded. 5916: 5917: * c-typeck.c (convert_for_assignment): Handle variant types. 5918: 5919: * c-decl.c (lang_decode_option): -Wall implies -Wunused. 5920: 5921: Tue Feb 7 01:32:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5922: 5923: * combine.c (try_combine): Don't try adding outputs to an asm_operands. 5924: 5925: * cse.c (CHEAPER): Don't ever let a hard reg get ahead of a pseudo. 5926: 5927: * stmt.c (fixup_gotos): Don't crash on undef label if THISBLOCK is 0. 5928: 5929: * c-decl.c (parmlist_tags_warning): New fn. 5930: * c-parse.y (parmlist, parmlist_or_identifiers): Call it, 5931: to warn about any tags defined inside the parmlist. 5932: * c-decl.c (grokparms): Don't warn about ptr to incomplete type. 5933: The new warning is better. 5934: 5935: Mon Feb 6 01:11:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5936: 5937: * expr.c (store_constructor): Incorrect ALIGN arg in store_field calls. 5938: 5939: * c-parse.y (%union): Delete unused alternative. 5940: 5941: * c-decl.c (grokparms): Use main variant to test for ptr to incomplete. 5942: 5943: * c-decl.c (finish_enum): Delete superfluous init for `pair'. 5944: 5945: * cse.c (fold_rtx): Optimize X+0, X-0 in floating point. 5946: Fix typo in PLUS case; omitted value to compare GET_MODE_CLASS against. 5947: (equiv_constant): Allow CONST_DOUBLE. 5948: 5949: * cse.c: Optimize past if-statements that are known to fail. 5950: (cse_insn): If condjump becomes uncond to end of this block, 5951: set cse_skip_to_next_block. 5952: (cse_basic_block): If that happens, ignore rest of block, and maybe 5953: treat next block as part of this one (if tables have room). 5954: Resume insn that starts next basic block to be scanned. 5955: (cse_main): Make room for at least 500 qtys. 5956: (cse_end_of_basic_block): Subroutine broken out of cse_main. 5957: 5958: * c-parse.y (hash, is_reserved_word): Rewrite: new hash technique. 5959: 5960: * c-decl.c (duplicate_decls): Be smart about proto vs nonproto mismatch 5961: involving a function definition. 5962: 5963: Sun Feb 5 17:31:12 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5964: 5965: * alliant.md (movdi): Typo in `fmoved'. 5966: (ftruncsf2): Handle moving into fp reg. 5967: 5968: * jump.c (jump_optimize): Typo in testing PRESERVE_DEATH_INFO_REGNO_P. 5969: 5970: * reload1.c (choose_reload_targets): Move all death notes to the 5971: output reload insn. 5972: 5973: * m68k.md (fix_truncsfsi2,fix_truncdfsi2): Use accurate rtl pattern. 5974: 5975: * loop.c (delete_insn_forces): Use presence of REG_RETVAL to check 5976: for value-of-library-call insn. 5977: 5978: Sat Feb 4 18:17:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 5979: 5980: * integrate.c (expand_inline_function): Make addresses of stack 5981: slots valid somehow. 5982: 5983: * tm-3b1.h (DIVSI3_LIBCALL, etc.): Define these macros; avoid gnulib. 5984: 5985: * expmed.c (store_bit_field): Avoid (subreg (mem)) when converting 5986: VALUE1 to SImode. 5987: 5988: * jump.c (jump_optimize): Do delete USE and CLOBBER insns. 5989: This is needed for proper jump optimization. 5990: 5991: * rtl.def (COMPARE): New code. 5992: * *.md (compare and related patterns): Use COMPARE, not MINUS:VOID. 5993: * loop.c (eliminate_biv, can_eliminate_biv_p): Likewise. 5994: * cse.c (fold_rtx, fold_cc0, cse_insn): 5995: * output-m88k.c (output_{f,}compare, output_store): 5996: * output-sparc.c (strict_single_insn_op_p, single_insn_src_p, safe_insn_src_p): 5997: * combine.c (subst): 5998: * jump.c (jump_back_p): 5999: 6000: Fri Feb 3 18:34:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6001: 6002: * output-i386.c (notice_update_cc): If arith insn sets the cc's, 6003: discard all remnants of previous cc value and flags. 6004: 6005: * sparc.md (ashiftrt mem by 24): Fix typo `a1'. 6006: 6007: Thu Feb 2 14:55:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6008: 6009: * output-sparc.c (output_mul_insn): Clear the CC status. 6010: 1.1.1.13 root 6011: Wed Feb 1 20:01:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6012: 6013: * Version 1.33 released. 6014: 6015: * reload1.c (reload_as_needed): On entering new basic block, 6016: if it didn't need reload regs, forget all inherited contents of those. 6017: 6018: * tm-alliant.h (NOTICE_UPDATE_CC): Floating moves don't set the cc's. 6019: Also delete the clauses and tests for FPA regs. 6020: 6021: Tue Jan 31 21:51:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6022: 6023: * config.gcc: Handle convex-c1, convex-c2. 6024: * tm-convex1.h, tm-convex2.h: New files that include tm-convex.h. 6025: * tm-convex.h: Define switches -mnoc1, -mnoc2. 6026: 6027: * config.gcc: rename `nofp' to `nfp', to match the file names. 6028: 6029: Mon Jan 30 22:12:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6030: 6031: * output-sparc.c (output_delay_insn): Extract the operands, 6032: call alter_subreg, constrain_operands and NOTICE_UPDATE_CC. 6033: So callers other than output_eager_then_insn don't lose. 6034: (output_eager_then_insn): No need to do that stuff. 6035: 6036: * symout.c (symout_block_symbols): Handle (MEM (REG)) for 6037: variable-sized arrays. 6038: 6039: * tm-encore.h (ASM_SPEC): Always pass -j; avoid jump-range lossage. 6040: 6041: Sun Jan 29 17:06:26 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6042: 6043: * alliant.md: Fix refs to CONST_DOUBLEs to use CONST_DOUBLE_{HIGH,LOW}. 6044: 6045: * combine.c (subst): (minus (zero_extend ...) (const_int ...)) opt. 6046: now limited to within the context of (set (cc0) ...). 6047: 6048: Sat Jan 28 14:26:08 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6049: 6050: * cse.c (fold_cc0): Missing `&' extracting CONST_DOUBLEs. 6051: (fold_rtx): Don't put CONST_DOUBLEs together into a (CONST (PLUS...)). 6052: 6053: * output-convex.c (gen_cmp): Recognize CONST_DOUBLE as a constant. 6054: 6055: * tree.c (build_real_from_int_cst): Typo in REAL_ARITHMETIC case. 6056: 6057: * Makefile (bootstrap2): Don't use bootstrap3 as subroutine. 6058: 6059: * varasm.c (force_const_mem): Put the CONST_DOUBLE on the chain 6060: if its MEM is stored in it; so it can be cleared at end of function. 6061: 6062: * stmt.c (emit_case_nodes): Put a compare before each cond-jump. 6063: Two cond-jumps after one cond is invalid and makes cse produce garbage. 6064: 6065: Fri Jan 27 01:05:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6066: 6067: * tm-sun2.h (CPP_SPEC): Define __HAVE_68881__ only if -m68881. 6068: 6069: * c-decl.c (start_decl): Don't expand_decl if DECL already has rtl. 6070: (grokparms): If just declaring fcn, incomplete parm type is just 6071: a warning, and don't discard the specified type. 6072: 6073: * expmed.c (expand_divmod): Be smarter about not clobbering args 6074: with intermediate results; one mem can clobber another, and a reg 6075: can clobber a mem. 6076: 6077: * tm-i386.h (FUNCTION_PROFILER): Use LPREFIX. May actually work now. 6078: * tm-i386gas.h: Include tm-bsd386.h, not tm-att386.h. 6079: This means changing asm syntax. 6080: #undef DBX_NO_XREFS and DBX_CONTIN_LENGTH. 6081: 6082: * sparc.md (eager branch peepholes): Don't forget 2nd arg to 6083: safe_insn_src_p. 6084: Don't print warnings. 6085: * output-sparc.c: (strict_single_insn_op_p): Return 0 for floating 6086: REG or MEM, since copying that may take 2 insns. 6087: (operands_satisfy_eager_branch_peephole): require delay insn to 6088: be strict_single_insn_op_p as well as safe_insn_src_p. 6089: (operand_clobbered_before_used_after): Don't print warnings. 6090: 6091: * varasm.c (decode_rtx_const): Clear entire structure incl. gaps. 6092: Avoids spurious hash mismatches. 6093: (force_const_mem): If CONST_DOUBLE, store its CONST_DOUBLE_MEM field. 6094: Also look in that field rather than hashing, to save time. 6095: 6096: * c-typeck.c (build_c_cast): If value is literal, mark NOP_EXPR as so. 6097: (store_init_value): Change error msg. 6098: 6099: * c-decl.c (duplicate_decls): Classify prototype vs nonprototype 6100: mismatches better. 6101: 6102: * tm-3b1.h: Fix comment. 6103: 6104: Wed Jan 25 12:46:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6105: 6106: * Makefile (cleanlinks): Use -f. 6107: 6108: Tue Jan 24 17:54:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6109: 6110: * cse.c (canon_hash): Fix paren error in last change. 6111: 6112: * varasm.c (immed_real_const_1): Missing arg to bcmp. 6113: 6114: Mon Jan 23 02:43:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6115: 6116: * stor-layout.c (layout_type): BLKmode elts force array to be BLKmode. 6117: 6118: * genpeep.c, genoutput.c, genemit.c: Put `#include "real.h"' in output. 6119: 6120: * stmt.c (expand_expr_stmt): No "no effect" warning for error-mark. 6121: 6122: * varargs.h: Rename implicit arg name to __builtin_va_alist 6123: which triggers code in assign_parms. Does this really matter? 6124: 6125: * sparc.md (sne): New define_expand. 6126: (seq recognizers): Handle sne as well. 6127: * output-sparc.c ({strict_,}single_insn_src_p): 6128: Some NEG and MINUS insns are actually 2 asm insns. 6129: (safe_insn_src_p): No floating arith is safe; they can trap. 6130: (eq_or_neq): New fn, for seq/sne recognizers. 6131: 6132: * c-decl.c (grokdeclarator, size of array type): 6133: Strip from SIZE any NOP_EXPRs that don't change anything. 6134: 6135: * reload.c, recog.c: Include real.h so constraint macros can examine 6136: CONST_DOUBLEs. 6137: 6138: Sun Jan 22 04:12:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6139: 6140: * c-decl.c (init_decl_processing): Define __builtin_saveregs. 6141: * tree.h: likewise. 6142: * expr.c (expand_builtin): Handle it. 6143: 6144: * tm-sparc.h: Define TARGET_EAGER and -meager. 6145: * sparc.md (eager branch peepholes): Reenable, but test TARGET_EAGER. 6146: Change fb insns to use %F. Delete `,a' from some of them. 6147: * jump.c (jump_optimize): Don't delete USE and CLOBBER insns. 6148: 6149: * xm-vms.h (const): Define it as empty. 6150: 6151: * make-cccp.com: Move the rename of cexp_tab.c. 6152: Compile cccp.c with no macro definitions. 6153: 6154: * cccp.c (main): VMS conditional for setting max_include_len. 6155: 6156: Sat Jan 21 12:53:00 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6157: 6158: * varargs.h (va_start): On sparc, call __builtin_saveregs. 6159: Delete the old conditional that used va-sparc.h. 6160: Rename macros and locals to start with two underscores. 6161: * va-sparc.h: File deleted. 6162: 6163: * c-decl.c (store_parm_decls): Initialize OTHERS. 6164: 6165: * stmt.c (assign_parms): Obey layout_decl. 6166: 6167: Fri Jan 20 02:19:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6168: 6169: * cse.c (fold_rtx): For SYMBOL_REF and LABEL_REF, mask address 6170: to 16 bits. 6171: 6172: * tree.h (NUM_TREE_CODES): NUM_TREE_CODE renamed. 6173: 6174: Thu Jan 19 13:53:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6175: 6176: * c-typeck.c (mark_addressable): For global reg var, report error. 6177: Now returns an int; value of 0 means caller should fail. 6178: All calls (in this file) changed. 6179: 6180: * stor-layout.c (layout_decl): Don't let an more than 1 word 6181: of any aggregate go in any 1 register. (Needed for machines whose 6182: integer regs are 64 bits). 6183: 6184: * tm-convex.h, xm-convex.h, convex.md, output-convex.c: new files. 6185: 6186: * expr.c (convert_move): Use extendqidi2, etc. for converting 6187: small ints to double ints. Use zero_extendsidi2 rather than 6188: clearing the high half. 6189: 6190: Wed Jan 18 01:20:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6191: 6192: * varasm.c (make_decl_rtl): If global `register' decl is invalid, 6193: make ordinary non-register rtl. 6194: 6195: * output-sparc.c (operand_clobbered_before_used_after): new fn. 6196: (reg_clobbered_p, safe_insn_src_p): New fns. 6197: (single_insn_src_p): Treat constants all as ok, even though not 6198: always literally so. Also accept some SIGN_EXTENDs and ZERO_EXTENDs. 6199: (strict_single_insn_src_p): New fn, like above but is strict 6200: about constants and constant memory addresses. 6201: (relop): New fn. 6202: (output_move_double): Don't make a MEM, and don't use %m. 6203: (output_delayed_branch): New name for output_delay_insn. 6204: Now handle non-small constant operands. 6205: Avoid duplicate loads of g1 for constant addresses. 6206: Use recog_operand directly for output of the delay insn. 6207: (output_delay_insn): Now a completely new fn. 6208: (output_eager_then_insn, next_real_insn_no_labels): New fns. 6209: (operands_satisfy_eager_branch_peephole): New fn. 6210: 6211: * sparc.md: New peepholes for testing a recently used operand. 6212: New peepholes for delayed branches, incl. conditional ones. 6213: ** Some of them commented out because they seem not to work. 6214: (andcc recognizer): Fix typo, missing %. 6215: (bgt): Change bgt to bg in output. 6216: (reversed jumps): Replace with one pattern using match_operand. 6217: It uses %F to output the condition. 6218: (movsi): For round-valued immed const, use just a sethi. 6219: For other immed, use explicit sethi and or. 6220: (movhi, movqi): use `move' for reg source or small int source. 6221: For other immed, use explicit sethi and or. 6222: (movsi, etc.): Handle all constant addresses like SYMBOL_REFs. 6223: (movsf): Delete never-used duplicate code for constant addresses. 6224: (addsi3, subsi3, cse'd multiply): Use sethi and or, rather than set. 6225: (andsi3, iorsi3, xorsi3): Likewise. 6226: (jump): Make an annulled branch. 6227: 6228: * tm-sparc.h (PROMOTE_PROTOTYPES): Define this. 6229: (GO_IF_LEGITIMATE_ADDRESS): Now accept all constant addresses; 6230: also cleaned up. 6231: (NOTICE_UPDATE_CC): Don't change the G1 status when storing in memory. 6232: Assume all PARALLEL insns are peepholes. 6233: (PRINT_OPERAND): New codes C and N for outputting conditions, 6234: either forward or reversed. Also F for reversed floating. 6235: 6236: * jump.c (delete_for_peephole): New function to delete range of insns. 6237: * genpeep.c (gen_peephole): Output code to use this. 6238: 6239: * Makefile (install): Fix typo, had $${name} for $${file}. 6240: 6241: Tue Jan 17 00:00:12 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6242: 6243: * i386.md (ashlsi3): Use addl or leal for special cases. 6244: 6245: * c-decl.c (grokdeclarator): Make a non-global VAR_DECL public 6246: if it is external. 6247: 6248: * masm386.c: Clean up formatting. 6249: 6250: * cse.c (fold_rtx): Typo simplifying x|0 or x^0 6251: when the 0 comes second. 6252: 6253: * expmed.c (store_fixed_bit_field): For halfwords, verify that 6254: the field fits in an *aligned* halfword. 6255: (extract_fixed_bit_field): likewise. 6256: 6257: * expmed.c (store_split_bit_field): New arg align, passed in from 6258: store_fixed_bit_field and passed back to it. 6259: (extract_split_bit_field): likewise. 6260: 6261: * expr.c: Reinsert changes from Jan 2, mysteriously deleted Jan 3. 6262: Also changes from Dec 23, Dec 28 and Dec 29. 6263: 6264: * tm-i386.h: Likewise for changes from Dec 30. 6265: 6266: * c-typeck.c (build_component_ref): If field's type is error-mark, 6267: return an error-mark. 6268: 6269: Mon Jan 16 14:16:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6270: 6271: * genpeep.c (main): Output code to exit early if insn is followed 6272: by a barrier. 6273: (gen_peephole): Reject barriers just like labels. 6274: 6275: * stmt.c (do_jump_if_equal): New arg UNSIGNEDP, for emit_cmp_insn. 6276: Caller changed. Now static. 6277: 6278: * final.c (final): Set INSN_DELETED_P in insns when output. 6279: 6280: * final.c (final): Re-set BODY if peephole does anything. 6281: 6282: * c-decl.c (grokparms): Ignore anything but PARM_DECLs in the list. 6283: (store_parm_decls): If we had a prototype, separate out anything other 6284: than a PARM_DECL declared in it, and pushdecl those at the end, 6285: after DECL_ARGUMENTS is set. 6286: 6287: * stmt.c (expand_end_case): Do stack adjusts after computing index. 6288: 6289: * expr.c (store_one_arg): Handle padding for case of BLKmode 6290: for which space was preallocated. 6291: 6292: * integrate.c (copy_rtx_and_substitute): When copying asm insn, 6293: preserve sharing of the input-operand vectors. 6294: (expand_inline_function): Clear {orig,copy}_asm_operands_vector 6295: to make that mechanism work. 6296: (save_for_inline, copy_for_inline): Likewise. 6297: 6298: * stmt.c (expand_asm_operands): Reject `+' in constraints. 6299: Every output constraint requires `='; inputs reject it. 6300: 6301: * stmt.c (expand_function_end): Arg to fixup_gotos was missing. 6302: 6303: Sun Jan 15 00:28:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6304: 6305: * cccp.c, gcc.c (main): Handle SIGPIPE. 6306: (pipe_closed): New fn; report suitable fatal error. 6307: 6308: * loop.c (loop_optimize): Initialize moved_once. 6309: 6310: * gcc.c (do_spec): Don't call `execute' if value != 0. 6311: Delete redundant second call to do_spec_1. 6312: 6313: * toplev.c (compile_file): Make declared-but-not-defined warnings 6314: only if -Wunused. 6315: 6316: * stmt.c (emit_case_nodes): Fix typo setting gen_ble_pat. 6317: 6318: * tm-sparc.h ({U,}MODSI3_LIBCALL): Name was wrong. 6319: 6320: * gcc.c (env_exec_prefix refs): Don't try to open via it if it's null. 6321: 6322: * output-sparc.c (output_store, output_load_{fixed,floating}): 6323: Fixed confusions between the mem ref and its address. 6324: 6325: * cse.c (canon_hash): global_regs has entries only for hard regs. 6326: * flow.c (insn_dead_p, mark_set_p, mark_used_regs): Likewise. 6327: 6328: * cse.c (fold_rtx): More simplifications for MULT, IOR, AND, XOR 6329: DIV and shifts with one arg 0 or 1. 6330: 6331: Sat Jan 14 11:41:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6332: 6333: * c-typeck.c (build_array_ref): If pedantic, check for regdecl arrays. 6334: 6335: * fixincludes: Make all subdirs in advance, so no need for `dirname'. 6336: 6337: * genpeep.c (gen_peephole): Delete code to increment LABEL_NUSES; 6338: instead, clear JUMP_LABEL for any jumps being deleted. 6339: No need to test INSN1 for being a label, since not called then. 6340: [If any of the matched insns is a JUMP_INSN, set want_jump, 6341: and in that case make the matched peephole a JUMP_INSN itself.] 6342: That's in an #if 0 now; it's good in jump, but not in final. 6343: 6344: * jump.c (jump_optimize): Don't do peepholes here. 6345: * final.c (final): Do them here. 6346: 6347: * jump.c (jump_optimize): In optimizing `if (foo) bar; else break;', 6348: don't try to invert anything but a standard-looking conditional jump. 6349: 6350: * jump.c (jump_optimize): Do peepholes on ALL BUT the first pass. 6351: 6352: * gcc.c (env_exec_prefix): New var used like user_exec_prefix 6353: but set from envvar GCC_EXEC_PREFIX. 6354: 6355: Fri Jan 13 13:21:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6356: 6357: * genpeep.c (gen_peephole): Test INSN1 for a label at the very start, 6358: then test following insns at the end of the loop. 6359: 6360: * sparc.md (call recognizers): do CC_STATUS_INIT, for %g1. 6361: 6362: Thu Jan 12 02:13:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6363: 6364: * varasm.c (make_decl_rtl): Recognize more error cases for reg vars: 6365: BLKmode, or initializer given. 6366: Distinguisn missing asm from invalid name. 6367: 6368: * expr.c (expand_call): Never return 0; return const0_rtx instead. 6369: This makes expand_expr more uniform. 6370: 6371: * c-decl.c (grokparms): For ptr to incomplete type, just warn; 6372: don't change the parm's type. 6373: 6374: * stmt.c (expand_return): Set RETVAL_RHS so as to recognize 6375: tail-recursive fcn returning void. 6376: Unconditionally test value of expand_expr for being a REG. 6377: 6378: * reload.c (find_reloads): Don't process insns that have 6379: no constraint alternatives. No more need for have_constraints. 6380: 6381: * recog.c (constrain_operands): New local var nalternatives. 6382: Don't bother checking the insn if nalternatives is 0. 6383: 6384: Wed Jan 11 01:27:48 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6385: 6386: * Implement global register decls. 6387: 6388: * varasm.c (make_decl_rtl): Handle global register vars. 6389: (make_function_rtl): Set function_defined: after 1st function dfn. 6390: (assemble_variable): Ignore global register vars. 6391: 6392: * c-decl.c (grokdeclarator): Don't reject global register decls. 6393: (builtin_function): Use make_decl_rtl, not make_function_rtl, 6394: to avoid setting function_defined. 6395: 6396: * regclass.c (init_reg_class{,_1}): Init and process global_regs. 6397: They are fixed, and call-clobbered. 6398: 6399: * flow.c (insn_dead_p): Storing one of global_regs is never dead. 6400: (mark_used_regs, mark_set_1): A global reg is never dead. 6401: 6402: * cse.c (canon_hash): Consider global regs volatile. 6403: 6404: 6405: * expr.c (do_jump): Know how to invert jumps which are sequences. 6406: 6407: * dbxout.c, symout.c, final.c: On USG, use our own stab.h. 6408: 6409: * tm-i386gas.h: New file for GAS on sysV (with DBX debugging info). 6410: 6411: * m68k.md (bfchg and bfins patterns): Make # alternatives uniform. 6412: * alliant.md: Likewise; also in movdf patterns. 6413: 6414: * genoutput.c (output_epilogue): Spurious `break' disabled 6415: error check for mismatched # of alternatives. 6416: (output_epilogue, scan_operands): Errors in input are not fatal. 6417: 6418: * flow.c (regno_uninitialized): Avoid crash if no basic blocks. 6419: 6420: * sparc.md (move insns): Delete special patterns that handled 6421: symbolic constant addresses. The main move patterns now do this. 6422: * output-sparc.c (output_store, output_load_{fixed,floating}): 6423: Subroutines to do the work for this; has the code from those 6424: special patterns. Also fixed bugs in testing against cc_status.mdep. 6425: 6426: * output-sparc.c (output_delay_insn): Clear the CC status. 6427: This is necessary for %g1 in the case of a call insn. 6428: 6429: * tm-i386.h (REG_CLASS_CONTENTS): INDEX_REGS is now all but ESP. 6430: (REGNO_REG_CLASS): Corresponding change. 6431: (REG_CLASS_FROM_LETTER): Eliminate `x' letter since not used. 6432: 6433: * optabs.c (emit_cmp_insn): New arg ALIGN, used for BLKmode. 6434: All callers changed. 6435: Pass alignment (as rtx) as 4th arg to cmpstr gen functions. 6436: Use cmpstrhi if available. 6437: * expr.c (compare): Only this call passes a nonzero ALIGN. 6438: 6439: * expr.c (emit_push_insn, emit_block_move): Pass alignment (as rtx) 6440: as 4th arg to movstr gen functions. 6441: 6442: Tue Jan 10 23:43:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6443: 6444: * stor-layout.c (layout_type): Use BLKmode, if a struct isn't 6445: aligned well enough for a scalar mode. 6446: 6447: * expr.c (expand_expr): For static CONSTRUCTOR, ensure memory 6448: address is made valid. 6449: 6450: * genpeep.c (match_rtx): For MATCH_OPERATOR, set max_opno, n_operands. 6451: 6452: Mon Jan 9 17:07:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6453: 6454: * varasm.c (output_constant): Split strings every 2000 chars. 6455: 6456: * stmt.c (expand_end_case): Test bkwds, handling constant switch arg. 6457: 6458: Fri Jan 6 09:11:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6459: 6460: * output-sparc.c (output_delay_insn): Add parens to first if test. 6461: (output_move_double): Turn addr for `sethi' into MEM for %m. 6462: 6463: * c-typeck.c (convert_for_assignment): move test for ERROR_MARK. 6464: 6465: * c-parse.y (unary_expr): Allow cast_expr as arg of unary op. 6466: 6467: * stmt.c (expand_decl): Don't abort if FUNCTION_DECL lacks rtl; 6468: assemble_variable is called after this. 6469: 6470: * c-parse.y (primary -> identifier): Separate case for undeclared 6471: identifier outside of functions; avoids confusing error msgs. 6472: 6473: Thu Jan 5 01:24:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6474: 6475: * Makefile (install): Ignore errors in all `if' commands. 6476: Create $(libdir) if nec. 6477: 6478: * Makefile (insn-*.[ch]): Put in empty commands. May help Ultrix Make. 6479: 6480: * stmt.c (emit_case_nodes): New arg UNSIGNEDP says do unsigned jumps. 6481: Arg INDEX is an rtx, not a tree. 6482: (expand_end_case): Pass that arg. 6483: (node_has_{low,high}_bound): check for overflow, avoid confusion. 6484: 6485: Wed Jan 4 02:24:21 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6486: 6487: * sparc.md (movdi, movdf): Use `&' constraint when loading reg from; 6488: otherwise can lose on (set (reg X) (mem (plus (reg X) (reg X+1)))). 6489: 6490: * expr.c (emit_push_insn): For memory scalar partially going in regs, 6491: copy each word to reg before pushing. Avoids memory-to-memory move. 6492: Make the displaced address valid. 6493: Also delete unfinished STACK_OFFSET variable. 6494: 6495: * c-parse.y (check_newline): Read just one #-directive and return. 6496: This prevents lossage when toplev.c calls it to get the main input file 6497: name, and it gets a following #ident as well. 6498: 6499: * c-decl.c (lang_decode_option): Set warn_cast_qual for -Wcast-qual. 6500: * c-typeck.c (build_c_cast): Issue some warnings if set. 6501: 6502: * tm-3b1.h (ASM_OUTPUT_CASE_LABEL): Missing `;'. 6503: 6504: Tue Jan 3 18:07:31 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6505: 6506: * expr.c (emit_library_call): Do force_operand on each operand 6507: if it isn't a REG, MEM or constant. 6508: Do this, or mode conversions, earlier, before loading any hard regs. 6509: 6510: * m68k.md (addsi3) [SGS]: Put a zero displacement in the `lea'. 6511: 6512: * c-typeck.c (default_conversion): Don't lose `const' or `volatile' 6513: when converting array type to pointer. 6514: 6515: Mon Jan 2 01:18:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6516: 6517: * expmed.c (store_bit_field, store_fixed_bit_field): New arg, 6518: alignment in bytes the structure is known to have. 6519: (store_fixed_bit_field): Handle working in halfwords, 6520: in case the pointer isn't known to have fullword alignment. 6521: * expmed.c (extract_bit_field, extract_fixed_bit_field): likewise. 6522: (extract_bit_field): fix unsignedp arg to extract_fixed_bit_field. 6523: * expr.c (store_field): New arg, passed to {store,extract}_bit_field 6524: (expand_assignment, store_constructor): Pass that arg. 6525: (expand_expr): Pass new arg to extract_bit_field. 6526: 6527: * m68k.md (casesi_2 recognizer): Offset always 6 for 3b1. 6528: 6529: * c-typeck.c (convert_for_assignment): Strip from rhs no-op NOP_EXPRs 6530: put on by build_c_cast (to make the result not an lvalue). 6531: (build_modify_expr, build_compound_expr): likewise. 6532: (build_conditional_expr): likewise. 6533: (actualparameterlist, build_function_call): likewise. 6534: (default_conversion, truthvalue_conversion): likewise. 6535: 6536: * loop.c (move_movables): If reg has moved out of one loop, 6537: divide `savings' by 2. 6538: 6539: Sun Jan 1 03:00:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6540: 6541: * c-typeck.c (truthvalue_conversion): Distribute the conversion 6542: into the arms of a COND_EXPR. 6543: 6544: * cse.c (fold_rtx): Don't fold a MINUS with VOIDmode 6545: into a symbolic constant--it's incorrect. 6546: 6547: * cse.c (cse_insn): If SRC is a subreg with known value, simplify it. 6548: 6549: * integrate.c (copy_rtx_and_substitute): Allow a ref to a part of 6550: MEM parm whose actual parm is a reg, provided it refs 6551: the low part of the MEM. 6552: (function_cannot_inline_p): Don't inline functions which have 6553: aggregate parameters and take their addresses. This could produce 6554: refs to non-low-parts, which copy_rtx_and_substitute can't handle. 6555: 6556: * c-typeck.c (build_modify_expr): If lhs is COND_EXPR, 6557: make a COMPOUND_EXPR to ensure the rhs is computed before the branch. 6558: 6559: * Implement -pipe. 6560: * gcc.c (do_spec_1): `|' is now a special delimiter 6561: which goes in the argbuf. 6562: When a newline is preceded by a `|', delete it if no -pipe. 6563: Otherwise, don't execute yet, and keep scanning. 6564: (do_spec): At end, if we have stuff with no newline, execute it. 6565: (handle_braces): Implement %{|foo:...}. 6566: (execute): If argbuf contains some `|'s, run several processes 6567: and pipe them together. 6568: (pexecute): new subroutine to make one of the processes. 6569: (find_exec_file): new fn to search for program to execute. 6570: (record_temp_file): new arg FAIL_ONLY. 6571: (store_arg): 2nd arg == 3 means delete file on failure. 6572: This is used for output files. 6573: (delete_temp_files): delete certain files only if fail. 6574: 6575: * cccp.c (include_defaults): /usr/include before /usr/local/include. 6576: 6577: * recog.c (asm_noperands): 1-off in loop checking CLOBBERS 6578: when no output operands and PARALLEL. 6579: 6580: * expmed.c (negate_rtx): Sign-extend the high bits rather than clear. 6581: 6582: * cse.c (fold_rtx): fold negation of real values. 6583: (fold_cc0): fold comparisons on real values. 6584: 6585: * Makefile (install): Use $(INSTALL) for gcc.1 and files in USER_H. 6586: 6587: * Handle floating-point problems for cross-compilation. 6588: 6589: * real.h (CONST_DOUBLE_LOW, etc.): new macros to access CONST_DOUBLE. 6590: * varasm.c (immed_double_const, decode_rtx_const): Use these. 6591: ({force,clear}_const_double_mem): Likewise. 6592: * output-*.c (output_move_double): Use these. 6593: * output-m68k.c (standard_{68881,sun_fpa}_constant_p): Likewise. 6594: * tm-*.h (PRINT_OPERAND): Use these. 6595: * output-i386.c (print_operand): Use these. 6596: * final.c (output_addr_const): Likewise. 6597: * emit-rtl.c (gen_rtx): Delete special code for CONST_DOUBLE. 6598: 6599: * real.h (union real_extract): Portable type for storing real as ints. 6600: * varasm.c (immed_double_const, decode_rtx_const): Use these. 6601: 6602: * varasm.c (immed_real_const_1, decode_rtx_const): 6603: Don't assume REAL_VALUE_TYPE is 2 ints long. 6604: * emit-rtl.c (init_emit_once): Likewise. 6605: 6606: * real.h (REAL_VALUE_TYPE): Define as `double' if not defined. 6607: (REAL_IS_NOT_DOUBLE): Define this if default REAL_VALUE_TYPE not used. 6608: (REAL_VALUES_EQUAL, REAL_VALUES_LESS): Define, if not already defined. 6609: (REAL_VALUE_LDEXP, REAL_VALUE_ATOF): Likewise. 6610: * tree.h (struct tree_real_cst): Use REAL_VALUE_TYPE for the value. 6611: 6612: * rtl.c (init_rtl): Increase length of CONST_DOUBLE if REAL_VALUE_TYPE 6613: needs more space. Change the rtx_format element to match. 6614: * varasm.c (immed_real_const_1): 1st arg now has REAL_VALUE_TYPE. 6615: (force_const_mem): Assume a CONST_DOUBLE contains REAL_VALUE_TYPE. 6616: * emit-rtl.c (init_emit_once): Likewise. 6617: And use REAL_VALUE_ATOF to get a floating zero. 6618: * optabs.c (expand_float): Use REAL_VALUE_TYPE, REAL_VALUE_LDEXP. 6619: * c-parse.y (yylex): Likewise, and use REAL_VALUE_ATOF. 6620: * fold-const.c (split_tree): Don't accept REAL_CSTs. 6621: (combine, fold_convert, fold): Use REAL_ARITHMETIC if defined; 6622: else don't fold reals if they are not doubles. 6623: * tree.c (build_real_from_int_cst): Likewise. 6624: * print-tree.c (dump) [REAL_IS_NOT_DOUBLE]: output float value 6625: in hex, since we don't know how to do it right. 6626: 6627: Sat Dec 31 14:15:13 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6628: 6629: * optabs.c (init_optabs): Handle new macros {U,}MULSI3_LIBCALL, 6630: DIVSI3_LIBCALL, MODSI3_LIBCALL. 6631: * tm-sparc.h: Define {,U}{MUL,DIV,MOD}SI3 to call Sun's library direct. 6632: 6633: * tm-sun3-nfp.h, tm-sun3-fpa.h: New files. 6634: 6635: Fri Dec 30 00:14:36 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6636: 6637: * cccp.c (main): Certain envvars specify a file to write deps info to. 6638: 6639: * toplev.c (compile_file): Warn about undefined fns declared static. 6640: 6641: * m68k.md (casesi_2 recognizer) [SGS] RTX_INTEGRATED_P test backwards. 6642: * tm-3b1.h (ASM_OUTPUT_CASE_LABEL): Likewise. Also missing `\'. 6643: 6644: * reload1.c (count_occurrences): New function. 6645: (choose_reload_targets): Don't delete a reload if the same reg 6646: is used elsewhere in the current insn. 6647: (delete_output_reload): code split out from choose_reload_targets. 6648: 6649: * c-typeck.c (build_c_cast): Always put on some operator, 6650: so the cast is never an lvalue for strict ANSI. 6651: 6652: * c-typeck.c (initializer_constant_valid_p): Don't depend on 6653: distinction between NOP_EXPR and CONVERT_EXPR. 6654: 6655: * c-convert.c: Fns reordered; new comments. 6656: 6657: * fold-const.c (fold): If simplifying a NOP_EXPR within a BIT_AND_EXPR, 6658: return a NOP_EXPR. 6659: New var TYPE holds type of expr. 6660: 6661: * c-parse.y (expr_no_commas): Split off cast_expr and unary_expr, 6662: to reject `sizeof (int) foo'. 6663: 6664: * toplev.c (main): Treat plain `-' as input filename. 6665: 6666: * final.c (final): If an insn's output routine returns 0, 6667: it means to output the deleted compare insn immediately preceding. 6668: 6669: * m68k.md (branch insns): Use 0 as 3rd arg for OUTPUT_JUMP 6670: rather than explicitly clearing the overflow flag. 6671: 6672: * tm-i386.h (OUTPUT_JUMP): Really use NO_OV; don't abort. 6673: * i386.md (branch insns): Put real data (sometimes 0) in 3rd arg 6674: of OUTPUT_JUMP. 0 means preceding test may not be deleted. 6675: (lea pattern): Clear the cc's. 6676: * output-i386.c (notice_update_cc): various arith insns set the cc's. 6677: 6678: Thu Dec 29 13:22:01 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6679: 6680: * stmt.c (expand_decl_init): Do nothing for static decls. 6681: 6682: * reload.c (find_reloads_address{,_1}): Return 1 iff entire arg 6683: was reloaded as a whole, else 0. 6684: (find_reload): If find_reloads_address returns 1, don't let that MEM 6685: satisfy a `>' or `<' constraint. 6686: 6687: * m68k.md (cmpmb): Delete special pattern, make cmpqi handle it. 6688: The special pattern couldn't handle reloading the incremented register. 6689: 6690: * integrate.c (copy_rtx_and_substitute): Test BYTES_BIG_ENDIAN, 6691: not BITS... 6692: 6693: * combine.c (subst): Consider big-endian correction 6694: when simplifying (subreg (mem ...) ...). 6695: 6696: * reload.c (find_reloads): Don't crash if matching operands in `asm' 6697: are both read or both write. 6698: 6699: * expr.c (emit_push_insn): Address for movstr must be XINNER, not X. 6700: 6701: * toplev.c (main): Typo parsing `-fno...'. 6702: 6703: Wed Dec 28 13:07:21 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6704: 6705: * toplev.c (rest_of_compilation): `volatile' fns need jump_optimize 6706: for warnings, as if -Wreturn-type. 6707: * c-typeck.c (c_expand_return): Warn about `return' in a `volatile' fn. 6708: * c-decl.c (finish_function): Warn if `volatile' fn can drop thru end. 6709: 6710: * cse.c (canon_reg): Handle nulls as subexpressions. 6711: (fold_rtx, canon_hash, mention_regs, exp_equiv_p): Likewise. 6712: * loop.c (invariant_p, replace_regs, replace_call_address, may_trap_p, 6713: {basic,general}_induction_var): Likewise. 6714: 6715: * expr.c (expand_call): Handle `const' functions: 6716: Local IS_CONST is 1 if function is const. 6717: Attach REG_RETVAL and REG_LIBCALL notes around the call. 6718: Copy fn address to register outside of those notes. 6719: Likewise precompute all parms outside them. 6720: 6721: * expr.c (expand_call): If fn is volatile, emit barrier after the call. 6722: 6723: * c-decl.c (grokdeclarator): Allow function declared const or volatile. 6724: 6725: Sat Dec 24 18:40:12 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6726: 6727: * integrate.c (function_cannot_inline_p): If STRUCT_VALUE_INCOMING 6728: or STRUCT_VALUE is defined, can't inline functions returning BLKmode. 6729: 6730: Fri Dec 23 13:26:26 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6731: 6732: * expr.c (store_constructor): Compute array's size 6733: with int_size_in_bytes. 6734: 6735: * varasm.c (assemble_variable): If shared data, go to data section 6736: before outputting an uninitialized symbol. 6737: 6738: * tm-sequent.h (ASM_OUTPUT_ALIGN_CODE): Missing backslash. 6739: (SHARED_SECTION_ASM_OP): Macro defined. 6740: * tm-seq386.h (SHARED_SECTION_ASM_OP): Macro defined. 6741: 6742: * c-typeck.c (c_expand_asm_operands): Warn if output op is `const'. 6743: 6744: * Fix problem where a stmt expr in an initialization 6745: refers to the variable it is initializing. 6746: * stmt.c (expand_decl_init): New fn split out from `expand_decl'. 6747: * c-decl.c (finish_decl): Call that. 6748: Don't call expand_decl if already done. 6749: (start_decl): Call expand_decl if type is complete already. 6750: 6751: * Makefile (install): Typo in ranlib command. 6752: 6753: Thu Dec 22 15:57:12 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) 6754: 6755: * tree.h (tree_identifier): New field. 6756: (IDENTIFIER_ERROR_LOCUS): Accessor for it. 6757: * c-parse.y (primary => IDENTIFIER): 6758: Undeclared variable gets one err msg per function it appears in. 6759: 6760: * ns32k.md (andsi3): Delete extra brace. 6761: 6762: * alliant.md, xm-alliant.h, tm-alliant.h, output-alliant.c: New files. 6763: 6764: * combine.c (SUBST, SUBST_INT): Store new field `is_int'. 6765: (copy_substitutions): Don't copy an int as an rtx. 6766: 6767: * Makefile (INSTALL): Install gcc.1 properly. 6768: 6769: * tm-ns32k.h (FUNCTION_PROLOGUE, ASM_OUTPUT_ALIGN_CODE): 6770: Add missing backslashes. 6771: 1.1.1.9 root 6772: See file OChangeLog. 1.1 root 6773: 6774: Local Variables: 6775: mode: indented-text 6776: left-margin: 8 6777: fill-column: 76 6778: version-control: never 6779: End:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.