DESTDIR is already trimmed to the correct directory
[platform/upstream/gcc.git] / gcc / ChangeLog
1 Fri May  7 09:54:11 1999  Nick Clifton  <nickc@cygnus.com>
2
3         Patch from: Nick Burrett  <nick.burrett@btinternet.com>
4
5         * arm.c (arm_poke_function_name): New function to implement
6         -mpoke-function-name.
7         * aof.h (ASM_DECLARE_FUNCTION_NAME): Call it.
8         * aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
9         * elf.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10         * arm.h: Prototype it.
11         (TARGET_SWITCHES): Add `no-poke-function-name'.
12
13 Fri May  7 14:19:31 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14
15         * fixinc/server.c (load_data): Cast text_size to long, adapt
16         format.
17         * fixinc/server.c (read_pipe_timeout): Declare volatile, modified
18         in signal handler.
19         (sig_handler): Add debug code.
20         * fixinc/server.c (run_shell): Don't \-escape cd, it breaks the
21         Ultrix V4.3 /bin/sh.
22         * fixinc/server.c (def_args): Use static instead of STATIC to
23         avoid redefinition error from linker iff DEBUG.
24
25         * fixinc/hackshell.tpl: Don't strip trailing directory from
26         DESTDIR - that is already done
27
28         * fixinc/fixincl.c (run_compiles): fix memory leak
29
30 Thu May  6 20:34:00 1999  Mark Mitchell  <mark@codesourcery.com>
31
32         * resource.c (mark_referenced_resources): Make volatil
33         monotonically increasing.
34         (mark_set_resources): Likewise.
35
36 Thu May  6 20:02:33 1999  Fred Fish  <fnf@be.com>
37
38         * rs6000/xm-beos.h (HAVE_VPRINTF): Don't redefine if already defined.
39         (HAVE_PUTENV, HAVE_ATEXIT, HAVE_RENAME): Likewise.
40
41 Wed May  5 20:28:32 1999  Jason Merrill  <jason@yorick.cygnus.com>
42
43         * install.texi (Header Dirs): s/GPLUS/GPLUSPLUS/.
44
45 Wed May  5 23:44:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
46
47         * unroll.c (copy_loop_body): Don't copy VTOP notes from copy_notes_from.
48
49 Wed May  5 16:26:13 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
50
51         * function.c (purge_addressof_replacements): Rename into
52         purge_bitfield_addressof_replacements.
53         (purge_addressof_replacements): New variable.
54         (purge_addressof_1): Add code for changing addressof in notes for
55         field values which are extracted by usage MEM with narrower mode.
56         (purge_addressof): Initialize purge_bitfield_addressof_replacements.
57
58 Wed May  5 07:40:02 1999  Nick Clifton  <nickc@cygnus.com>
59
60         Patch from: Nick Burrett  <nick.burrett@btinternet.com>
61         * config/arm/arm.h (ARM_MCOUNT_NAME): Define.
62         (FUNCTION_PROFILER): Remove assembler dialect dependency and use
63         ARM_MCOUNT_NAME.
64         (TRAMPOLINE_TEMPLATE): Remove assembler dialect dependency.
65         
66         * config/arm/aof.h (ARM_MCOUNT_NAME): Define.
67
68 1999-05-05 09:58 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
69
70         * gcc.c (default_compilers): Fix brace nesting bug.
71         * objc/lang-specs.h: Use %i, not %g.mi, for the input file
72         when processing an .mi file.
73
74 Tue May  4 13:17:55 1999  Mark Mitchell  <mark@codesourcery.com>
75
76         * resource.c (mark_set_resources): Handle UNSPEC_VOLATILE,
77         ASM_INPUT, TRAP_IF, and ASM_OPERANDS just like in
78         mark_referenced_resources.
79
80 Mon May  3 22:38:41 1999  David Edelsohn  <edelsohn@gnu.org>
81
82         * rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Change non-PowerPC
83         and AIX64 combination to warning.  Add warning for disabling
84         PowerPC64 support when using 64-bit mode.
85         (LIB_SPEC): Do not link with libg.a in 64-bit mode.
86         (LINK_SPEC): Do not export libg.exp symbols in 64-bit mode.
87         * rs6000/rs6000.h (MY_ISCOFF): Treat import/export files as valid
88         XCOFF files.
89         (read_only_data_section, private_data_section,
90         read_only_private_data_section): Always align CSECTs to doubleword
91         boundary regardless of mode.
92         (TEXT_SECTION_ASM_OP): Align text CSECT on doubleword boundary in
93         64-bit mode.
94         (DATA_SECTION_ASM_OP): Always align CSECT to doubleword boundary.
95         (ASM_OUTPUT_LOCAL): Use rounded size in 64-bit mode to
96         maintain doublword alignment.
97
98 Mon May  3 14:45:23 1999  Jeffrey A Law  (law@cygnus.com)
99
100         * mn10200.md (btst insns): btst does not leave cc0 in a useable
101         state for redundant tst eliminatino.
102         * mn10300.md (btst insns): Likewise.
103
104 Mon May  3 16:14:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
105
106         * mips.h (Pmode): Revert Oct 14th change which added a cast.
107
108 Sun May  2 14:02:21 1999  Mark Mitchell  <mark@codesourcery.com>
109
110         * tree.h (struct tree_decl): Add comdat_flag.
111         (DECL_COMDAT): Define it.
112         * toplev.c (wrapup_global_declarations): Don't output a
113         DECL_COMDAT function just because it's public.
114
115 Sun May  2 15:16:42 1999  Joseph S. Myers  <jsm28@cam.ac.uk>
116
117         * pdp11.h (TARGET_SWITCHES): Fix error in previous change.
118         (ASSEMBLER_DIALECT): Define.
119         (CONDITIONAL_REGISTER_USAGE): Rename floating point registers if
120         required for the UNIX assembler.
121         (ASM_OUTPUT_INT): Remove.  The compiler will synthesise it.
122         (ASM_OUTPUT_ADDR_VEC_PROLOGUE): Remove.
123         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Change to "[" and "]".
124         (TRAMPOLINE_TEMPLATE): Use ASM_OUTPUT_SHORT.
125         * pdp11.c (output_addr_const_pdp11): Copy of output_addr_const
126         adapted to output constants in octal.
127         * pdp11.c, pdp11.h, pdp11.md: Use output_addr_const_pdp11 instead
128         of output_addr_const.  Output constants in octal.  Use assembler
129         dialect alternatives where DEC and UNIX assemblers use different
130         instruction names.
131
132 Sun May 2 01:15:06 PDT 1999 Jeff Law  (law@cygnus.com)
133
134         * version.c: Bump for snapshot.
135
136 Fri Apr 30 13:55:43 1999  Richard Henderson  <rth@cygnus.com>
137
138         * va-ppc.h (__va_start_common): Let __builtin_saveregs do the work.
139         * rs6000.c (expand_builtin_saveregs): For V4, initialize a private
140         va_list struct, and return a pointer to it.
141         (setup_incoming_varargs): V4 save area based off virtual_stack_vars
142         instead of frame_pointer.
143
144 Thu Apr 29 23:02:22 1999  Mark Mitchell  <mark@codesourcery.com>
145
146         * emit-rtl.c (start_sequence): Expand comments.
147         (start_sequence_for_rtl_expr): Likewise.
148         (push_to_sequence): Likewise.
149         (end_sequence): Likewise.
150         * expr.c (inhibit_defer_pop): Likewise.
151         * expr.h (inhibit_defer_pop): Likewise.
152         (NO_DEFER_POP): Likewise.
153         (OK_DEFER_POP): Likewise.
154
155 Thu Apr 29 22:13:46 1999  Robert Lipe  <robertlipe@usa.net>
156
157         * configure.in (i?86-UnixWare7*-sysv): Set thread_file to 'posix'
158         --enable-threads[={yes,pthreads,posix}] is passed as a command
159         line parameter to configure.
160         * config/i386/sysv5.h (LIB_SPEC): Add support for '-pthread'.
161         (CPP_SPEC): Likewise.
162
163 Thu Apr 29 17:23:59 1999  Richard Henderson  <rth@cygnus.com>
164
165         * emit-rtl.c (operand_subword): Religiously mask and sign-extend
166         from 32-bits to HOST_WIDE_INT.
167
168 Thu Apr 29 15:58:52 1999  Robert Lipe  <robertlipe@usa.net>
169
170         * fixinc/regex.c, fixinc/regex.h: Removed.   Replace with...
171         * fixinc/gnu-regex.c, fixinc/gnu-regex.h: Imported from GDB 4.18.
172         * fixinc/Makefile.in (OBJ, HDR): Handle name changes from above.
173         (gnu-regex.o): Define REGEX_MALLOC to avoid memory leak.
174         * fixinc/fixincl.c: new regex.h header name
175         * Makefile.in: new regex.[ch] file names
176
177 Thu Apr 29 12:53:33 1999  Richard Henderson  <rth@cygnus.com>
178
179         * calls.c (emit_call_1): Pass rounded_stack_size to emit_call
180         instead of the unrounded size.
181
182 1999-04-28 14:40 Bruce Korb <ddsinc09@ix.netcom.com>
183
184         * fixinc/mkfixinc.sh: Makesure the result shell script is writable
185
186 Wed Apr 28 10:36:39 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
187
188         * config/m68k/m68k.md (cmpsi+1): Use cmp.w when comparing a 16 bit
189         constant with an address register. 
190
191 Wed Apr 28 00:14:41 PDT 1999 Jeff Law  (law@cygnus.com)
192
193         * version.c: Bump for snapshot.
194
195 Tue Apr 27 19:50:25 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
196
197         * rtl.h (REG_EH_REGION): Update comment to indicate a value of -1
198         indicates no throw and no nonlocal gotos.
199         * optabs.c (emit_libcall_block): Emit REG_EH_REGION with a value
200         of -1 instead of 0 to indicate a nonlocal goto won't happen either.
201         * flow.c (count_basic_blocks, find_basic_blocks_1): Ignore libcall
202         blocks, look for REG_EH_REGION note exclusively.
203         (make_edges): Check for REG_EH_REGION > 0 for specified handlers.
204
205 Tue Apr 27 15:33:42 1999  David Edelsohn  <edelsohn@gnu.org>
206
207         * rs6000.h (read_only_data_section, private_data_section,
208         read_only_private_data_section, toc_section): Align CSECT on
209         doubleword boundary for 64-bit target.
210         (DATA_SECTION_ASM_OP): Likewise.
211         * rs6000.c (rs6000_stack_info): Leaf procedure stack limit is 288.
212
213 Tue Apr 27 20:19:47 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
214
215         * sh.md (insv): Use copy_addr_to_reg.
216
217         * final.c (insn_lengths_max_uid): New variable.
218         (init_insn_lengths, shorten_branches): Set it.
219         (get_attr_lengths): Test insn uid against insn_lengths_max_uid.
220
221 1999-04-27 08:32 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
222
223         * expr.c (emit_move_insn_1): Abort if MODE argument is invalid. 
224         (compare): Punt if TREE_OPERAND (exp, 0) is an ERROR_MARK.
225
226 Tue Apr 27 01:33:43 1999  Jeffrey A Law  (law@cygnus.com)
227
228         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Renmaed from FLAGS_TO_PASS.
229         Remove "CC".
230         (FLAGS_TO_PASS): New variable.
231
232 Tue Apr 27 00:36:44 1999  Nick Burrett  <nick.burrett@btinternet.com>
233
234         * arm.md (nop): Output instruction using output_asm_insn to fix
235         assembler dialect problems.
236
237 Mon Apr 26 23:55:50 1999  Robert Lipe  <robertlipe@usa.net>
238
239         * Makefile.in (fixinc.sh): Fix dependencies.
240
241         * fixinc/inclhack.def (avoid_bool): Enable match if typedefs are 
242         prepended by spaces.
243         (sco5_stat_wrappers): New fix.   Make sys/stat.h C++ safe.
244         * fixinc/fixincl.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
245
246 Mon Apr 26 23:28:54 1999  Mumit Khan  <khan@xraylith.wisc.edu>
247                           Donn Terry  <donn@interix.com>
248
249         * function.c (put_var_into_stack): Change ptr_mode to Pmode
250         in setup for chkr_set_right_libfunc calls.
251         (assign_params): Likewise.
252         * expr.c (emit_push_insn): Change ptr_mode to Pmode in
253         setup for chkr_copy_bitmap_libfunc and chkr_set_right_libfunc calls.
254         (expand_assignment): Change ptr_mode to Pmode in
255         setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc.
256         (store_expr): Change ptr_mode to Pmode in
257         setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc.
258         (expand_expr): Change ptr_mode to Pmode in
259         setup for chkr_check_addr_libfunc.
260         (expand_builtin): Change ptr_mode to Pmode in
261         setup for chkr_check_str_libfunc, chkr_copy_bitmap_libfunc and
262         chkr_check_addr_libfunc.
263         * calls.c (rtx_for_function_call): Change ptr_mode to Pmode in
264         setup for chkr_check_exec_libfunc.
265         (expand_call): Change ptr_mode to Pmode in
266         setup for chkr_set_right_libfunc.
267         (expand_call): Change ptr_mode to Pmode in
268         setup for chkr_set_right_libfunc.
269         (store_one_arg): Change ptr_mode to Pmode in
270         setup for chkr_set_right_libfunc.
271
272         * c-parse.in (absdcl1): Allow attributes in explicit typespecs.
273         (%expect): Update.
274         * c-parse.y: Regenerate.
275         * c-parse.c: Likewise.
276         * objc/objc-parse.c: Likewise.
277         * objc/objc-parse.y: Likewise.
278
279 Mon Apr 26 21:17:41 1999  Jason Merrill  <jason@yorick.cygnus.com>
280
281         * c-pragma.c (push_alignment): Don't ignore alignments greater than
282         4 bytes.
283         (handle_pragma_token): Likewise.
284
285         * c-pragma.c: Support for #pragma pack (push, <id>, <n>).
286         (struct align_stack): Add id field.
287         (push_alignment, pop_alignment): Take id parameter.
288         (handle_pragma_token): Add necessary states.
289         * c-pragma.h (enum pragma_state): Add necessary states.
290
291 Tue Apr 27 13:58:23 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
292
293         * config/c4x/c4x.md (*cmpqf, *cmpqf_noov, *cmpqi_test, 
294         *cmpqi_test_noov): Remove ? modifier from constraints list.
295         (*smulqi3_highpart_clobber, *umulqi3_highpart_clobber): Swap
296         output strings to match new constraint ordering.
297
298 1999-04-26 19:16 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
299
300         * cpphash.c (dump_definition): New function.
301         * cpphash.h: Prototype it.
302
303         * cpplib.c (handle_directive): Don't output anything here.
304         Streamline.
305         (pass_thru_directive): Take a length, not a pointer to the
306         end.  All callers changed.
307         (do_define): Handle -dD, -dN, -g3 entirely here.  Streamline.
308         (do_include): Handle -dI here.
309         (do_ident): Correct to match cccp.
310         (do_pragma): Copy the pragma through here.
311         (do_assert, do_unassert): Tidy.
312         
313         * cppinit.c (cpp_finish): If -dM was specified, walk the macro
314         hash table and call dump_definition on all the entries.
315         * cppmain.c: cpp_finish may produce output.
316
317 Mon Apr 26 15:27:33 1999  Mark Mitchell  <mark@codesourcery.com>
318
319         * toplev.c (compile_file): Move call to check_global_declarations
320         after output_exception_table to restore behavior as it was before
321         1999-04-22 change.
322
323 1999-04-26 10:50 -0700 Bruce Korb <ddsinc09@ix.netcom.com>
324
325         * fixinc/fixincl.c:  Improve the handling of child process exits
326         * fixinc/server.[ch]: Export the interface for shutting down
327         the server process
328         * fixinc/inclhack.tpl: Remove unnecessary character quote
329         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate
330
331 Mon Apr 26 10:41:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
332
333         * alpha.md (builtin_setjmp_receiver): Use a label_ref instead of 
334         a code label.
335
336 1999-04-26 09:47 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
337
338         * rtl.texi: Document the rtl classes and their relation to
339         formats.
340
341 Mon Apr 26 01:02:38 1999  Richard Henderson  <rth@cygnus.com>
342
343         * alpha.md (fix_trunc patterns): Use reg_no_subreg_operand on op0
344         for less work in reload.
345         (movsf and movdf patterns): Put fp reg alternatives first.
346
347 Mon Apr 26 01:55:56 1999  Marc Espie  <espie@cvs.openbsd.org>
348
349         * configure.in (openbsd): Factorize xmake_file.
350         (ix86 openbsd): Trim obsolete comment.
351         (vax openbsd): Fix typo.
352         * configure: Rebuilt.
353
354 Mon Apr 26 01:30:59 1999 Donn Terry <donn@interix.com>
355
356         * expr.c (expand_assignment): Improve test for pointer type.
357
358 Mon Apr 26 00:26:18 1999  Richard Henderson  <rth@cygnus.com>
359
360         * alpha.c (print_operand_address): Account for the subreg word.
361
362 Mon Apr 26 01:08:36 1999  Toshiyasu Morita  (tm@netcom.com)
363
364         * fold-const.c (make_range): Always initialize arg0 and arg1.
365         (fold): Simlarly for alt0 and alt1.
366         * function.c (fixup_var_refs_insns): Initialize insn_list.
367         (instantiate_virtual_regs_1): Initialize offset.
368         * optabs.c (expand_binop): Initialize carry_in, carry_out, op0_xhigh
369         and op1_xhigh.
370         * stmt.c (expand_end_case): Initialize minval and maxval.
371
372 Mon Apr 26 01:02:34 1999  Nathan Sidwell  <nathan@acm.org>
373
374         * toplev.c (report_error_function): Reorder file stack and
375         function name printing.  Ignore FILE parameter.
376
377 Mon Apr 26 00:58:54 1999  Jerry Quinn <jquinn@nortelnetworks.com>
378
379         * pa.h (architecture_type): New enum.
380         (pa_arch_string, pa_arch): Declare.
381         (MASK_PA_10, MASK_PA_20): New flags.
382         (TARGET_SWITCHES): Add pa-risc-2-0.  Update docs for PA1.0 codegen.
383         (TARGET_OPTIONS): Add -march= option.
384         * pa.c (pa_arch, pa_arch_string):  Define.
385         (override_options):  Set them.
386         * pa/pa-hpux10.h (ASM_FILE_START):  Output LEVEL 2.0 asm directive for
387         2.0 architecture. 
388         * invoke.texi (Option Summary, HPPA Options):  Document new
389         architecture flags.
390
391         * pa/pa-hpux.h, pa/pa-hpux10.h, pa/pa-hpux9.h, pa/pa-osf.h, pa.h,
392         pa.c, pa.md, configure.in, configure: Replace TARGET_SNAKE by
393         TARGET_PA_11 and MASK_SNAKE by MASK_PA_11.
394
395 Mon Apr 26 00:28:25 1999  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
396
397         * flags.h (inline_max_insns): Declare.
398         * integrate.c (inline_max_insns): New variable.
399         (function_cannot_inline_p): Use it.
400         * toplev.c (main): Add the flag -finline-limit-n.
401         (display_help): Document -finline-limit-n.
402         * invoke.texi: Document -finline-limit-n
403
404 Sun Apr 25 23:03:32 1999  Richard Henderson  <rth@cygnus.com>
405
406         * stmt.c (expand_asm_operands): Reload in-out reg-only memory operands.
407
408 Sun Apr 25 13:06:13 1999  Richard Henderson  <rth@cygnus.com>
409
410         * function.c (assign_parms/STACK_BYTES): Revert last change,
411         and that of 19 Nov.
412
413 Sun Apr 25 12:30:50 1999  Richard Henderson  <rth@cygnus.com>
414
415         * calls.c (emit_call_1): New arg rounded_stack_size; update callers.
416         Update pending_stack_adjust based on this value.
417         (compute_argument_block_size): Include pending_stack_adjust in
418         PREFERRED_STACK_BOUNDARY alignment.
419         * function.c (assign_parms): Don't round to PREFERRED_STACK_BOUNDARY.
420
421 Sun Apr 25 14:38:10 EDT 1999  John Wehle  (john@feith.com)
422
423         * stupid.c (stupid_mark_refs): Generate a REG_UNUSED note
424         for a register which is clobbered even if the register
425         was used by an earlier instruction.
426
427         * i386.md (fix_truncsfdi2, fix_truncdfdi2,
428         fix_truncxfdi2): Don't bother with the gen_reg_RTX.
429         (fix_truncsfsi2, fix_truncsfdi2, fix_truncdfsi2,
430         fix_truncdfdi2, fix_truncxfsi2, fix_truncxfdi2): Update
431         operand constraints and modes.
432         * i386.c (output_fix_trunc): Use HImode register to avoid
433         memory stalls.  Call output_move_double instead of output_to_reg.
434         (output_to_reg): Remove.
435         * i386.h: Likewise.
436
437         * i386.md (negsf2, negdf2, negxf2): Set the type
438         attribute to fpop.
439
440 Sat Apr 24 23:15:57 1999  Donn Terry (donn@interix.com)
441
442         * alpha.md (call_value_nt): Correct subscripts.
443
444 Sat Apr 24 20:49:20 1999  Richard Henderson  <rth@cygnus.com>
445
446         * alpha.h (PRINT_OPERAND_ADDRESS): Break out to ...
447         * alpha.c (print_operand_address): here.  Handle subregs.
448
449 Fri Apr 23 22:35:41 EDT 1999  John Wehle  (john@feith.com)
450
451         * acconfig.h (HAVE_GAS_FILDS_FISTS): Add.
452         * configure.in: Check assembler instructions.
453         * configure: Rebuild.
454         * config.in: Likewise.
455         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
456         * i386.c (print_operand): Use the proper suffix for a 387 HImode
457         operand.  Abort if a 387 operand has an unsupported size.
458
459 Fri Apr 23 16:57:40 1999  Richard Henderson  <rth@cygnus.com>
460
461         * alpha.c (alpha_write_verstamp): Mark `file' unused.
462         * alpha.h (FUNCTION_VALUE): Use gen_rtx_REG not gen_rtx.
463         (LIBCALL_VALUE): Likewise.
464         (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Handle normal subregs.
465
466 Fri Apr 23 14:57:33 1999  Donn Terry  <donn@interix.com>
467
468         * alpha32.h (INITIALIZE_TRAMPOLINE): Get offsets right.
469
470         * alpha.c (alpha_initialize_trampoline): Add covert_memory_address
471         calls as needed.
472
473 Fri Apr 23 14:36:47 1999  Richard Henderson  <rth@cygnus.com>
474
475         * alpha.c (alpha_expand_prologue): Don't negate frame size
476         for use with subq.
477
478 Fri Apr 23 09:43:18 1999  Nick Clifton  <nickc@cygnus.com>
479
480         * print-rtl.c (print_rtx): Display LABEL_NUSES for labels.
481
482 Thu Apr 22 23:08:37 1999  Mark Mitchell  <mark@codesourcery.com>
483
484         * toplev.h (wrapup_global_declarations): Declare.
485         (check_global_declarations): Likewise.
486         * toplev.c (wrapup_global_declarations): New function, split out
487         from ...
488         (check_global_declarations): Likewise...
489         (compile_file): Here.
490
491 Thu Apr 22 22:34:41 1999  Richard Henderson  <rth@cygnus.com>
492
493         * c-parse.in (expr_no_commas): Verify we've an expr before
494         calling C_SET_EXP_ORIGINAL_CODE.
495
496 Thu Apr 22 22:22:15 EDT 1999  John Wehle  (john@feith.com)
497
498         * toplev.c (rest_of_compilation): Always set
499         current_function_uses_only_leaf_regs appropriately.
500
501 Thu Apr 22 14:39:43 1999  Mumit Khan  <khan@xraylith.wisc.edu>
502
503         * i386/xm-cygwin.h (HAVE_BCOPY): Delete unneeded macro.
504         (HAVE_BZERO): Likewise.
505         (HAVE_BCMP): Likewise.
506         (HAVE_RINDEX): Likewise.
507         (HAVE_INDEX): Likewise.
508         (DIR_SEPARATOR_2): Define.
509         (GET_ENV_PATH_LIST): Turn path lists into POSIX.
510         (PATH_SEPARATOR): Use ':'.
511
512 1999-04-22 Bruce Korb <ddsinc09@ix.netcom.com>
513
514         * configure.in: enable disabling of fast fixincludes
515         * configure: regenerate
516
517 1999-04-21 14:55 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
518
519         * gen-protos.c: #undef abort after including system.h.  
520         Delete defns of fancy_abort and fatal.
521         * fix-header.c: Delete defn of fancy_abort.
522
523 Wed Apr 21 12:09:38 1999  Mumit Khan  <khan@xraylith.wisc.edu>
524
525         * cccp.c (simplify_filename): Always preserve leading double slash.
526
527 Wed Apr 21 18:15:55 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
528
529         * config/c4x/c4x.md: Add new peepholes to remove redundant loads.
530
531 Wed Apr 21 17:41:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
532
533         * config/c4x/c4x.md (binary patterns): Reorder alternatives
534         so that two operand instructions are chosen before three operand
535         instructions.
536
537 Tue Apr 20 23:38:58 1999  Nathan Sidwell  <nathan@acm.org>
538
539         * objc/Make-lang.in (objc-parse.c): Put BISON parameters in correct
540         order.
541
542         * Makefile.in (c-parse.c): Put BISON parameters in correct
543         order.
544
545 Tue Apr 20 16:38:11 1999  Richard Henderson  <rth@cygnus.com>
546
547         * alpha.md (nt_lda): New pattern. 
548         * alpha.c (alpha_expand_prologue): Use it for large frames 
549         under windows nt.
550
551 Tue Apr 20 17:57:14 1999  Catherine Moore  <clm@cygnus.com>
552
553         * config/arm/arm.md (movhi):  Add check for odd offset.
554
555 Tue Apr 20 13:14:58 EDT 1999  John Wehle  (john@feith.com)
556
557         * i386.c (output_move_double): Abort if a non-offsettable
558         memory operand is encountered.  Delete unused code.
559         (find_addr_reg): Remove.
560
561 Mon Apr 19 21:13:02 1999  Craig Burley  <craig@jcb-sc.com>
562
563         * tree.def (BLOCK): Fix typo in comment.
564
565 1999-04-19 14:51 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
566
567         * cpplib.c (output_line_command): Drop CONDITIONAL argument.
568         We can omit unnecessary line commands if file_change ==
569         same_file and pfile->lineno != 0.  All callers changed.
570         (cpp_get_token [case '\n']): Don't bump pfile->lineno if
571         CPP_OPTIONS (pfile)->no_line_commands is set.
572         * cpplib.h: Fix prototype of output_line_command.
573
574 1999-04-18 17:46 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
575
576         * cppfiles.c (find_position, read_and_prescan): Use `unsigned
577         long' variables consistently to count line and column numbers.
578
579 Sun Apr 18 15:50:33 EDT 1999  John Wehle  (john@feith.com)
580
581         * output.h (current_function_is_leaf,
582         current_function_uses_only_leaf_regs): Declare.
583         * function.c (current_function_is_leaf,
584         current_function_uses_only_leaf_regs): Define.
585         (init_function_start): Initialize current_function_is_leaf
586         and current_function_uses_only_leaf_regs.
587         * final.c (leaf_function): Don't define.
588         (final_start_function): Replace uses of leaf_function with
589         current_function_uses_only_leaf_regs.
590         * toplev.c (rest_of_compilation): Set current_function_is_leaf
591         prior to invoking local register allocation.
592         (rest_of_compilation): Replace uses of leaf_function with
593         current_function_uses_only_leaf_regs.
594         * dbxout.c (dbxout_symbol, dbxout_parms): Likewise.
595         * dwarf2out.c (add_location_or_const_vaule_attribute): Likewise.
596         * dwarfout.c (add_location_or_const_value_attribute): Likewise.
597         * sdbout.c (sdbout_symbol): Likewise.
598         * sparc.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
599         * sparc.c (eligible_for_epilogue_delay, output_return,
600         sparc_return_peephole_ok): Likewise.
601         * sparc.md (leaf_function attribute, untyped_return): Likewise.
602         * i386.c (ix86_compute_frame_size): Don't align the stack
603         for leaf functions which don't allocate any stack slots.
604         * tm.texi: Update documentation.
605
606 Sun Apr 18 02:15:09 PDT 1999 Jeff Law  (law@cygnus.com)
607
608         * version.c: Bump for snapshot.
609
610 Sun Apr 18 00:08:45 1999  Richard Henderson  <rth@cygnus.com>
611
612         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Correct last change --
613         make sure FP_BASE_P registers are only used with an integer.
614
615 Sat Apr 17 22:54:17 1999  Richard Henderson  <rth@cygnus.com>
616
617         * alpha.h (REG_OK_FP_BASE_P): New macro.
618         (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Use it.
619         * alpha.md (adddi3+1): New insn to handle large constants off 
620         the soft frame pointer.
621         (adddi3+2): Don't split soft frame pointer or arg pointer additions.
622
623 Sun Apr 18 17:24:10 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
624
625         * config/c4x/c4x.c (legitimize_operands): Use rtx_cost
626         to determine if it is worthwhile forcing a constant into a register.
627         * config/c4x/c4x.h (CONST_COSTS): An integer value of 255 or 65535
628         used with a logical and or an integer value of 16 or 24 used with
629         a right shift has zero cost on the C40.
630
631 Sat Apr 17 21:30:11 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
632
633         * gcse.c (compute_local_properties): If setp is nonzero, clear
634         TRANSP instead of setting it to all ones.
635
636 Sat Apr 17 21:10:10 1999  Jan Hubicka <hubicka@freesoft.cz>
637
638         * i386.c (i386_preferred_stack_boundary_string): New global variable.
639         (i386_preferred_stack_boundary): New global variable.
640         (override_functions): Set it.  Tidy option setting code.
641         * i386.h (TARGET_OPTIONS): New command line option.
642         (i386_preferred_stack_boundary_string): Declare it.
643         (i386_preferred_stack_boundary): Likewise.
644         (PREFERRED_STACK_BOUNDARY): Use i386_preferred_stack_boundary.
645
646 Sat Apr 17 19:22:38 1999  Jan Hubicka <hubicka@freesoft.cz>
647
648         * i386.c (k6_cost): Take into account the decoding time.
649
650 Sat Apr 17 19:13:22 1999  Donn Terry  <donn@interix.com>
651
652         * i386.h (PRINT_OPERAND_PUNCT_VALID_P): Allow _.
653         * i386.c (print_operand): New %_ operator.
654         (load_pic_register): Proper number of leading _ in GOT literal.
655         * i386.md (prologue_get_pc_and_set_got): Likewise.
656         * i386/unix.h (ASM_OUTPUT_MI_THUNK): Likewise.
657
658 Sat Apr 17 19:13:07 1999  Richard Henderson  <rth@cygnus.com>
659
660         * alpha.c (alpha_expand_prologue): Use gen_adddi3 instead of 
661         emit_move_insn+plus_constant.  For NT, don't use the stack probe
662         loop pointer to allocate stack space.
663         * alpha.md (adddi3): Always use lda to set the stack pointer.
664
665 1999-04-17 20:11 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
666
667         * c-aux-info.c, emit-rtl.c, explow.c, expmed.c, gcse.c,
668         haifa-sched.c, optabs.c, reorg.c, resource.c, sched.c: Include
669         toplev.h for real declaration of trim_filename.
670         * Makefile.in: Update dependencies.
671
672 Sat Apr 17 14:36:19 1999  Craig Burley  <craig@jcb-sc.com>
673
674         * tree.c (chainon): Check for circularity only if
675         ENABLE_CHECKING is defined.
676
677 1999-04-17 10:15 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
678
679         * cccp.c: Make fatal non-static.
680
681 Sat Apr 17 23:47:24 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
682
683         * config/c4x/c4x.md (*andqi3_255_clobber,*andqi3_65535_clobber):
684         New logical and patterns using C40 bit-field insert instructions.
685         (*lshrqi3_24_clobber,*ashrqi3_24_clobber,*lshrqi3_16_clobber,
686         *ashrqi3_16_clobber): New shift patterns using C40 bit-field insert
687         instructions.
688         
689 1999-04-16 22:44 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
690
691         * system.h: Always prototype abort.  Prototype fatal.  Define
692         abort to call fatal, not fprintf/exit.  Define a stub macro
693         for trim_filename.
694         * toplev.c: Define DIR_SEPARATOR.  (trim_filename): New
695         function.
696         * toplev.h: Prototype trim_filename, and #undef system.h's stub.
697
698         * gcc.c, genattr.c, genattrtab.c, gencodes.c, genconfig.c,
699         genemit.c, genextract.c, genflags.c, genopinit.c, genoutput.c,
700         genpeep.c, genrecog.c: Make fatal non-static.
701         * gcov.c, gengenrtl.c, protoize.c: #undef abort after
702         including system.h.
703
704         * config/i386/dgux.h, config/m68k/xm-amix.h: Remove stale code
705         relating to abort.
706
707 Sat Apr 17 11:25:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
708
709         * config/c4x/c4x.md (mulqf3_clrqf_clobber, mulqi3_clrqi_clobber): 
710         New patterns to support parallel multiply and load of zero.
711
712 Fri Apr 16 01:23:47 1999  Jason Merrill  <jason@yorick.cygnus.com>
713
714         * tree.c (valid_machine_attribute): If we're modifying the
715         FUNCTION_TYPE within a POINTER_TYPE and we don't get a decl,
716         update the POINTER_TYPE.
717
718 Fri Apr 16 00:19:31 1999  Jan Hubicka <hubicka@freesoft.cz>
719
720         * i386.c (x86_adjust_cost): Move break statement to correct place.
721
722 Thu Apr 15 23:17:33 1999  Jerry Quinn <jquinn@nortelnetworks.com>
723
724         * pa.h (HAVE_PRE_INCREMENT, HAVE_POST_INCREMENT,
725         HAVE_PRE_DECREMENT, HAVE_POST_DECREMENT): Fix pa_cpu value from
726         8000 to PROCESSOR_8000.
727
728 Thu Apr 15 20:46:57 1999  Donn Terry (donn@interix.com)
729
730         * expr.c (expand_assignment): Force pointers to proper mode if
731         POINTERS_EXTEND_UNSIGNED is defined.
732
733         * xm-alpha.h (alloca.h): Add Interix to list of special machines 
734         that don't like alloca.h, pending using autoconf results.
735
736         * except.c (start_catch_hadler): Be sure rtime_address is Pmode
737         if POINTERS_EXTEND_UNSIGNED.
738
739         * except.c (expand_eh_return): Force pointers to proper mode if
740         POINTERS_EXTEND_UNSIGNED.
741
742 Thu Apr 15 23:13:35 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
743
744         * config/c4x/c4x.h:  Tweaked comment formatting.
745         * config/c4x/c4x.c:  Likewise.
746
747 Thu Apr 15 02:45:19 1999  Mumit Khan  <khan@xraylith.wisc.edu>
748
749         * aclocal.m4 (GCC_FUNC_MKDIR_TAKES_ONE_ARG): Define.
750         * configure.in: Use.
751         * configure: Rebuilt.
752         * acconfig.h (MKDIR_TAKES_ONE_ARG): Add.
753         * config.in: Rebuilt.
754         * system.h: Use.
755
756 Thu Apr 15 01:03:21 1999  Jan Hubicka <hubicka@freesoft.cz>
757                           Jeff Law <law@cygnus.com>
758
759         * i386.md (QImode add pattern): Support lea instruction.
760         (HImode add pattern): Likewise.
761
762         * i386.md (ashlsi patterns): Call output_ashl instead of output_ashlsi3.
763         (ashlqi): Use expander, separate LEA and SAL / ADD patterns; call
764         output_ashl.
765         (ashlhi): Likewise.
766         * i386.h (output_ashl): Renamed from output_ashlsi3.
767         * i386.c (output_ashl): Likewise; support HImode and QImode operands
768         as well.
769
770         * i386.md (notsi, nothi, xorsi, xorhi, and xorqi patterns): Call
771         memory_address_displacement_length instead of memory_address_length.
772         * i386.c (memory_address_info): Renamed from memory_address_length.
773         Accept new argument DISP_LENGTH.  All callers changed.  If DISP_LENGTH,
774         then return the displacement length.  Else return length of the
775         entire memory address.  Handle MULT case correctly.
776         * i386.h (memory_address_info): Update declaration.
777
778         * i386.md (memory_bit_test): Fix paren error.
779
780 Wed Apr 14 21:29:18 1999  Andrew Haley  <aph@cygnus.com>
781
782         * flow.c: (make_edges): Always make edges from a basic block
783         to its exception handlers, even if the block ends with a jump.
784
785 1999-04-14 23:26 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
786
787         * graph.c (node_data): Return void.  Ignore result of
788         print_rtl_single.  Change caller to match.
789         * integrate.c (subst_constants): Initialize op0_mode to an 
790         invalid mode, and abort before use if it's still invalid.
791         (Can only happen if the RTX_CLASS, RTX_FORMAT tables are corrupted.)
792         * objc/objc-act.c (get_objc_string_decl,
793         build_selector_translation_table, generate_protocol_list,
794         synth_id_with_class_suffix, build_keyword_selector,
795         build_selector_expr, gen_declarator): Abort when the tree
796         structure is corrupted.
797
798 Wed Apr 14 19:57:49 1999  Jeffrey A Law  (law@cygnus.com)
799
800         * configure.in (alpha interix): Use symbolic names to set
801         target_cpu_default.
802         * configure: Rebuilt.
803
804         * explow.c (allocate_dynamic_stack_space): Undo last change.  Use
805         convert_memory_address instead.
806
807 Wed Apr 14 19:42:02 1999  Donn Terry (donn@interix.com)
808
809         * alpha/lib1funcs.asm: New file.
810         * alpha/t-interix (lib1funcs.asm): Add to build.
811
812         * explow.c (allocate_dynamic_stack_space): Correctly convert TARGET
813         to Pmode.
814
815 Wed Apr 14 14:26:36 1999  John Wehle  (john@feith.com)
816
817         * i386.md (truncxfdf): Output the template supplied
818         by output_move_double with the correct operands.
819
820         * i386.md (extendsfdf, extendsfxf, extenddfxf): Use
821         output_float_extend instead specifying '#' as the template.
822         * i386.c (output_float_extend): Define.
823         * i386.h (output_float_extend): Declare.
824
825 Wed Apr 14 10:48:03 1999  Catherine Moore  <clm@cygnus.com>
826  
827         * config/mips/elf.h, config/mips/elf64.h
828         (CTORS_SECTION_ASM_OP): Define.
829         (DTORS_SECTION_ASM_OP): Define.
830         (EXTRA_SECTIONS): Define.
831         (INVOKE__main): Define.
832         (NAME__MAIN): Define.
833         (SYMBOL__MAIN): Define.
834         (EXTRA_SECTIONS_FUNCTIONS): Define.
835         (SECTION_FUNCTION_TEMPLATE): Define.
836         (ASM_OUTPUT_CONSTRUCTOR): Define.
837         (ASM_OUTPUT_DESTRUCTOR): Define.
838         (CTOR_LIST_BEGIN): Define.
839         (CTOR_LIST_END): Define.
840         (DTOR_LIST_BEGIN): Define.
841         (DTOR_LIST_END): Define.
842         (LIB_SPEC): Define.
843         (STARTFILE_SPEC): Define.
844         (ENDFILE_SPEC): Define.
845         * config/mips/linux.h:  Undefine all of the above.
846         * config/mips/rtems64.h: Likewise.
847         * config/mips/t-r3900: Likewise.
848         * config/mips/t-elf: New file.
849         * config/mips/vxworks.h: New file.
850         * configure.in (mips-wrs-vxworks): Use mips/vxworks.h.
851         (mips*-*-*elf*):  Use t-elf instead of t-ecoff.
852         * configure: Regenerate.
853
854 Wed Apr 14 09:59:38 1999  Richard Henderson  <rth@cygnus.com>
855
856         * reload1.c (emit_reload_insns): Also find equivalent mems
857         for subregs of pseudos.
858
859         * alpha.c (aligned_memory_operand): Recognize the output of
860         LEGITIMIZE_RELOAD_ADDRESS.  Examine reg_equiv_memory_loc in
861         the event of a pseudo.
862         (unaligned_memory_operand): Likewise.  Don't otherwise accept
863         completely illegal addresses.
864         (normal_memory_operand): Likewise.  Handle subregs of pseudos.
865         (get_aligned_mem): Revert previous change.  Abort if we don't have a
866         mem.  During reload, call find_replacement on all illegal memories.
867         (get_unaligned_address): Likewise.
868         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Use !aligned_memory_operand
869         instead of unaligned_memory_operand.
870         * alpha.md: Revert extra argument to get_aligned_mem.
871         (reload_inqi): Use any_memory_operand in constraints.  Abort if
872         we're not given some sort of mem.
873         (reload_inhi): Likewise.
874         (reload_outqi, reload_outhi): Likewise.
875
876 Wed Apr 14 09:39:20 1999  Richard Henderson  <rth@cygnus.com>
877
878         * i386.md (neghi): Use the whole register when widening the op.
879
880 1999-04-14 12:37 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
881
882         * cpperror.c, cppexp.c, cpplib.c: Never call abort.
883         * cpphash.c: Only call abort when we detect corruption of the
884         malloc arena.
885         * cppmain.c: Don't define fatal or fancy_abort.
886
887 Wed Apr 14 09:19:39 1999  Jan Hubicka <hubicka@freesoft.cz>
888
889         * i386.c (x86_adjust_cost): Agi stall takes 1 cycle on Pentium, fst
890         requires value to be ready one extra cycle.
891
892 Wed Apr 14 11:28:34 1999  Dave Brolley  <brolley@cygnus.com>
893
894         * config/i386/i386.c (memory_address_length): Add missing parenthesis.
895
896 Wed Apr 14 13:59:27 1999  Martin von Loewis  <loewis@informatik.hu-berlin.de>
897
898         * extend.texi (Deprecated Features): New node.
899         * invoke.texi (-Wdeprecated): Document.
900
901 Wed Apr 14 00:18:22 1999  Jan Hubicka <hubicka@freesoft.cz>
902
903         * i386.md (SImode logical compare): Avoid outputing non-pariable testw
904         and testl on Pentium.
905         (register and memory bit tests): Likewise.
906         (setcc, normal and reversed conditional branches): Use shorter
907         sequence for testing flags stored in EAX.
908
909         * i386.md (xorsi3): Do not output NOT instrctions on Pentium.
910         (xorqi3): Likewise.
911         (xorhi3): Likewise.
912         (notsi2): Likewise.
913         (notqi2): Likewise.
914         (nothi2): Likewise; do not output prefixed opcodes when possible.
915
916         * i386.md (neghi2): Do not output prefixed opcode when possible.
917         (ashlhi3): Likewise.
918
919 Wed Apr 14 00:08:46 1999  Richard Henderson  <rth@cygnus.com>
920
921         * i386.c (memory_address_length): New function.
922         * i386.h (memory_address_length): Declare it.
923
924 Tue Apr 13 22:52:04 1999  Donn Terry (donn@interix.com)
925                           Martin Heller (Ing.-Buero_Heller@t-online.de)
926
927         * configure.in (interix Alpha): Add. 
928         (winnt Alpha): Use alpha32.h
929         (interix i386): Parallel Alpha32.
930         * configure: Rebuilt.
931
932         * config/interix.h: Move common elements from i386-interix.h.
933         * config/i386/i386-interix.h: Delete same.
934         * config/alpha/alpha-interix.h: New file.
935
936         * config/alpha/alpha32.h: New file, part fron win-nt.h.
937         * config/alpha/win-nt.h: Deletions (-> alpha32.h).
938         * config/alpha/interix.h: New file
939
940         * config/alpha/alpha.md (interix): Comment.
941
942         * config/alpha/xm-alpha-interix.h: New file.
943
944         * config/alpha/t-interix: New file.
945
946         * fixinc/mkfixinc.sh (interix/Alpha): Add.
947
948 1999-04-13  Mike Stump  <mrs@wrs.com>
949
950         * i386/vxi386.h (CPP_CPU_SPEC): Define appropriately for vxworks.
951         (CPP_PREDEFINES, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): likewise.
952
953 Tue Apr 13 21:01:36 1999  Jason Merrill  <jason@yorick.cygnus.com>
954
955         * c-common.c (default_valid_lang_attribute): New fn.
956         (valid_lang_attribute): New callback ptr.
957         (decl_attributes): Call it.  Move init_priority support into
958         C++ frontend.
959
960 Tue Apr 13 17:47:14 1999  John Wehle  (john@feith.com)
961
962         * i386.md (movdi): Add splitter.
963
964 Wed Apr 14 10:04:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
965
966         * config/c4x/c4x.md (storeqf_int, storeqf_int_clobber, loadqf_int,
967         loadqf_int_clobber): Add new patterns with corresponding splitters
968         to handle moves of floating point values into and out of intager
969         registers by using memory.
970
971         * config/c4x/c4x.c (c4x_check_legit_addr): Disallow PRE_INC for modes
972         other than QFmode and QImode.
973         (mixed_subreg_operand): New function.
974         (c4x_emit_move_sequence): If moving a floating point value into or
975         out of an integer register, use the new patterns storeqf_int_clobber
976         or loadqf_int_clobber.
977         (reg_imm_operand, *_reg_operand): Call reg_operand instead of 
978         register_operand.
979         (reg_operand, src_operand): Disallow operand if it satisifes
980         mixed_subreg_operand.
981
982         * config/c4x/c4x.h (mixed_subreg_operand): Add prototype.
983
984 Tue Apr 13 14:49:13 1999  Jan Hubicka  <hubicka@freesoft.cz>
985
986         * i386.c (agi_dependent): Handle push operation more correctly.
987
988 Tue Apr 13 14:45:17 1999  Jan Hubicka  <hubicka@freesoft.cz>
989
990         * i386.md (anddi3): Add % constraint.
991         (iordi3, xordi3): Likewise.
992
993 Tue Apr 13 14:29:58 1999  Jan Hubicka  <hubicka@freesoft.cz>
994
995         * i386.md (extendhisi2): Output mov instead of cw instruction for K6
996         to improve decoding bandwidth.
997         * i386.md (extendhiqi2): Likewise.
998
999 Tue Apr 13 14:26:31 1999  Jan Hubicka  <hubicka@freesoft.cz>
1000
1001         * i386.md (movsf_push): Handle memory to memory case too, new splitter.
1002         (movdf_push, movxf_push): Likewise.
1003         (movsf_push_memory, movdf_push_memory, movxf_push_memory): Remove.
1004
1005 Tue Apr 13 14:14:06 1999  Jan Hubicka  <hubicka@freesoft.cz>
1006
1007         * i386.md: Do not output mov %0,reg on AMD K6.
1008
1009 Tue Apr 13 12:14:07 1999  Dave Brolley  <brolley@cygnus.com>
1010
1011         * cppinit.c (cpp_start_read): Fix buffer overwrite.
1012         * Makefile.in (cppinit.o): Typo in dependencies.
1013
1014 Tue Apr 13 05:04:59 1999  Richard Earnshaw  (rearnsha@arm.com)
1015
1016         * arm.h (function prototypes for arm.c): Ifdef these out if
1017         HAVE_CONFIG_H is not defined.
1018
1019 Tue Apr 13 02:11:11 1999  Jeffrey A Law  (law@cygnus.com)
1020
1021         * pa.c: Avoid Using immediate zero for register zero.
1022         * pa.md: Likewise.
1023
1024         * pa.c (print_operand, case 'f'): New case for FP register or 0.0.
1025         (print_operand, case 'r'): Use %r0 for zero value.
1026         * pa.md (move patterns, fcmp patterns): Use new %f output arg.
1027
1028         * pa.c: Use a register name, not a raw immediate in branch,
1029         compare/clear, sub, subb, uaddcm and vshd instructions.
1030         * pa.md: Likewise.
1031
1032         * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise.
1033
1034         * pa.c: Use a register name, not a raw immediate in "bv" instructions.
1035         * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise.
1036
1037         * pa.c: Remove space register specification in memory addresses,
1038         except where it is actually needed.
1039         * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise.
1040
1041 Mon Apr 12 23:34:35 1999  Jeff Law  (law@cygnus.com)
1042
1043         * version.c: Bump for snapshot.
1044
1045 Mon Apr 12 14:58:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
1046
1047         * reg-stack.c (check_stack_regs_mentioned): Remove variable SIZE.
1048
1049 Mon Apr 12 19:15:17 1999  Daniel Jacobowitz  <dan@debian.org>
1050
1051         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Add missing backslash.
1052
1053 Mon Apr 12 19:11:38 1999  Mumit Khan  <khan@xraylith.wisc.edu>
1054
1055         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mconsole; fix
1056         -mno-nop-fun-dllimport and minor doc fixes.
1057         (STARTFILE_SPEC): Cygwin DLLs don't have dllcrt0.
1058         (LINK_SPEC): Add -mconsole support.
1059         * i386/mingw32.h (LIB_SPEC): Make libraries consistent with 
1060         Cygwin.
1061         (LINK_SPEC): Remove. Use Cygwin's version.
1062         (MATH_LIBRARY): Make it null.
1063         * i386/crtdll.h (MATH_LIBRARY): Likewise.
1064
1065 Fri Apr 12 15:00:52 1999  Stan Cox  <scox@cygnus.com>
1066
1067         * c-decl.c (c_decode_option, start_decl, start_function,
1068         finish_function) : Recognize -Wno-main so we can avoid warnings.
1069
1070 1999-04-12  Zack Weinberg  <zack@rabi.columbia.edu>
1071
1072         * cpphash.c (collect_expansion, macroexpand,
1073         push_macro_expansion): Make the escape character in macro
1074         buffers '\r', not '@'.  Remove code to protect literal
1075         occurences of the escape character; '\r' cannot appear
1076         in a macro buffer unless we put it there.
1077         * cpplib.c (skip_comment, copy_comment, cpp_skip_hspace,
1078         copy_rest_of_line, cpp_get_token, parse_string,
1079         parse_assertion): '\r' might be a backslash-newline marker, or
1080         it might be a macro escape marker, depending on
1081         CPP_BUFFER (pfile)->has_escapes.  '@' is not a special
1082         character.
1083         * cpplib.h: Update commentary.
1084
1085 Mon Apr 12 09:30:03 1999  Richard Earnshaw  (rearnsha@arm.com)
1086
1087         * arm.h (target_fp_name, structure_size_string, arm_cpu_select):
1088         Const-ify.
1089         * arm.c (target_fp_name, structure_size_string): Const-ify.
1090
1091         * arm.md (reload_inhi, reload_outhi): Make the scratch DImode.
1092         * arm.c (arm_reload_in_hi): Handle cases when the input is still
1093         a pseudo, make use of scratch registers for reloading the address
1094         as appropriate.
1095         (arm_reload_outhi): Similarly for when the output is still a pseudo.
1096
1097         * riscix.h (SUBTARGET_SWITCHES): Document.
1098
1099 1999-04-12  Bruce Korb  <ddsinc09@ix.netcom.com>
1100
1101         * fixincludes:
1102         make fixincludes behave like the scripts in fixinc/
1103
1104         * Makefile.in( stmp-fixinc ):
1105         ensure the SHELL value is that of the make
1106
1107         * fixincl/inclhack.tpl:
1108         the file name lists ought to be restricted to "*.h" anyway
1109         C++ files may be named .../[a-z]++/... also
1110         Adding copyright year and attribution to output
1111
1112         * fixincl/inclhack.def:
1113         fixed broken expression
1114         Clarify a some comments
1115
1116         * fixincl/fixincl.tpl:
1117         Clarify a some comments
1118         Remove dead template text
1119         Correct the counting of regular expressions
1120
1121 Mon Apr 12 03:07:44 1999  Richard Henderson  <rth@cygnus.com>
1122
1123         * alpha.c (aligned_memory_operand): Handle out of range stack slots.
1124         Take a new SCRATCH argument for the occasion.  Update all callers.
1125         (get_unaligned_address): Abort on out of range stack slots.
1126         * alpha.md (adddi3 splitter): Check s_p_rtx not REGNO.
1127         (reload_inqi): Check for aligned mems before unaligned.
1128         (reload_inhi): Likewise.
1129
1130 Mon Apr 12 03:11:30 1999  Jeffrey A Law  (law@cygnus.com)
1131
1132         * flow.c (flow_delete_insn): If we delete a CODE_LABEL, also remove
1133         it from the nonlocal_goto_handler_labels list.
1134         * jump.c (delete_insn): Likewise.
1135         (jump_optimize_1): Also recompute LABEL_NUSES when we are just
1136         marking labels.
1137         * rtl.h (remove_node_from_expr_list): Declare.
1138         * rtlanal.c (remove_node_from_expr_list): New function.
1139
1140 Mon Apr 12 02:37:02 1999  Jan Hubicka  <hubicka@freesoft.cz>
1141
1142         * reg-stack.c: Update comment, include varray.h.
1143         (stack_regs_mentioned_data): New global variable.
1144         (check_stack_regs_mentioned): New function.
1145         (stack_regs_mentioned): New function.
1146         (reg_to_stack): Initialize and free stack_regs_mentioned_data,
1147         use stack_regs_mentioned.
1148         (record_asm_reg_life): Change insn type cache for changed insn.
1149         (record_reg_life): Do not change the insn mode.
1150         (emit_pop_insn): Likewise.
1151         (emit_swap_insn): Likewise.
1152         (move_for_stack_reg): Likewise.
1153         (stack_reg_life_analysis): Use stack_regs_mentioned.
1154         (emit_swap_insn): Likewise.
1155         (subst_stack_regs): Likewise.
1156         (convert_regs): Likewise.
1157         * jump.c (find_cross_jump): Use stack_regs_mentioned.
1158         * rtl.h (stack_regs_mentioned): Declare.
1159
1160 Mon Apr 12 00:57:10 1999  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr> 
1161
1162         * integrate.c (INTEGRATE_THRESHOLD): Sync it with the comment.
1163
1164 Sun Apr 11 10:24:18 1999  Mark Mitchell  <mark@codesourcery.com>
1165
1166         * rtl.h (rtx_def): Update documentation for jump and call.
1167
1168 Sun Apr 11 07:43:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1169
1170         * jump.c (jump_optimize_1): Make the definition static to match
1171         the prototype.
1172
1173 Sat Apr 10 22:51:53 1999  Jan Hubicka  <hubicka@limax.paru.cas.cz>
1174
1175         * flow.c (life_analysis): New parameter remove_dead_code.
1176         (life_analysis_1): Likewise.
1177         (propagate_block): Likewise; use it.
1178         * output.h: Update prototype.
1179         * toplev.c: Update calls to life_analysis.
1180
1181 Sat Apr 10 22:12:12 1999  Jan Hubicka  <hubicka@freesoft.cz>
1182
1183         * recog.c (constrain_operands): Ignore unary operators when
1184         matching operands.  Recognize '5'..'9' as well.
1185
1186 Sat Apr 10 21:53:02 1999  Philipp Thomas  (kthomas@gwdg.de)
1187                           Richard Henderson  <rth@cygnus.com>
1188
1189         * configure.in: Set target_cpu_default2 for target_alias k6.
1190         * i386.h (TARGET_SWITCHES): Remove no-<cpu> entries.
1191         (CC1_CPU_SPEC): Likewise.
1192         (CPP_CPU_DEFAULT_SPEC): Streamline definition.  Add K6 version.
1193         (CPP_K6_SPEC): New.
1194         (CPP_CPU_SPEC): Add K6 variant.
1195         (EXTRA_SPECS): Likewise.
1196
1197 Fri Apr  9 11:29:17 1999  Richard Henderson  <rth@cygnus.com>
1198
1199         * flow.c (merge_blocks_nomove): Rewrite to properly handle two
1200         blocks that vanish entirely during merging.
1201
1202 Sat Apr 10 20:09:55 1999  John Wehle  (john@feith.com)
1203
1204         * i386.md (floatsisf2, floatdisf2, floatsidf2, floatdidf2,
1205         floatsixf2, floatdixf2, movsicc, movhicc, movsfcc, movdfcc,
1206         movxfcc, movdicc): Remove unused register constraints from
1207         the splitters.
1208
1209         * i386.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
1210         fixuns_truncxfsi2): Delete.
1211
1212         * reg-stack.c (delete_insn_for_stacker): Ensure that
1213         the only side effects of a PARALLEL are clobbers.
1214         (subst_stack_regs): Handle subst_stack_regs_pat deleting
1215         a PARALLEL.
1216         * i386.md (extendsfdf2, extenddfxf2,
1217         extendsfxf2): Rewrite using a splitter.
1218         * i386.c (output_op_from_reg): Remove.
1219         * i386.h: Likewise.
1220
1221 Sat Apr 10 13:09:18 1999  Nick Clifton  <nickc@cygnus.com>
1222
1223         * config/arm/arm.c (di_operand): Allow SUBREGs as well.
1224         (soft_df_operand): Allow SUBREGs as well.
1225
1226 Sat Apr 10 06:14:31 1999  Jan Hubicka  <hubicka@paru.cas.cz>
1227
1228         * extend.texi (Assembler Instructions with C Expression Operands):
1229         Document the i386 floating point operands.
1230
1231 1999-04-10  Mike Stump  <mrs@wrs.com>
1232
1233         * configure.in (*-*-vxworks): Add vxWorks thread support for all
1234         vxWorks targets.
1235         * configure.in (thumb-wrs-xvworks): Add vxWorks support for thumb.
1236         * configure: Rebuilt.
1237
1238 Sat Apr 10 06:04:50 1999  Donn Terry  (donn@interix.com) 
1239
1240         * i386/t-interix: Use mostly system headers unchanged.
1241         Use system assert.h
1242         * fixinc/fixinc.interix: Ditto (make almost no-op).
1243         * config/x-interix.h (_ALL_SOURCE): add -D
1244         * config/x-interix.h (crti.o): Delete dependency.
1245         * config/xm-interix.h (ONLY_INT_FIELDS): Define only when bootstrapping.
1246         * i386/xm-i386-interix.h: New file.
1247         * i386/interix.h (ASM_OUTPUT_LIMITED_STRING): Fix warnings.
1248         * i386/i386-interix.h: Renamed from interix.h.
1249         * configure.in (interix): Use new files.
1250         * configure: Rebuilt.
1251
1252 Sat Apr 10 05:25:28 1999  Daniel Jacobowitz  <dan@debian.org>
1253
1254         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Fix conditions
1255         for -Dunix and -Dlinux, and remove duplicate definition. 
1256         Change -Asystem(linux) to -Asystem(posix).
1257         (CPP_OS_SOLARIS_SPEC): Fix conditions for -Dunix, -Dsun,
1258         -DSVR4, -D__EXTENSIONS__.
1259
1260         * rs6000/linux.h (CPP_PREDEFINES): Remove -Dunix,
1261         -Dlinux, -Asystem(linux), and -Asystem(unix).
1262
1263 Sat Apr 10 05:14:50 1999  Mark Elbrecht  <snowball3@usa.net>
1264
1265         * i386/djgpp.h (SET_ASM_OP): Define.
1266
1267         * cccp.c (DIR_SEPARATOR): Move to the top of the file.
1268         (is_dir_separator): New function.
1269         (simplify_filename): Use it.
1270         * collect2.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM in place
1271         of the DIR_SEPARATOR test.
1272         Consider any file starting with a drivename to be absolute.
1273         If the absolute filename test fails and EXECUTABLE_SUFFIX is 
1274         defined, append EXECUTABLE_SUFFIX to the file and try again.
1275         * cppinit.c (base_name): Use HAVE_DOS_BASED_FILE_SYSTEM 
1276         in place of __MSDOS__ and _WIN32.
1277         * cppfiles.c (simplify_pathname): Likewise.
1278         * gcc.c (IS_DIR_SEPARATOR): Define new macro. Returns true if a
1279         character is a directory separator.
1280         (find_a_file): Use it.
1281         (convert_filename): Likewise.
1282         (process_command): Likewise.
1283         (do_spec_1): Likewise.
1284         (is_directory): Likewise.
1285         (main): Likewise.
1286         * prefix.c (IS_DIR_SEPARATOR): Define. Tests whether a character is
1287         a directory separator.
1288         (translate_name): Use it.
1289         (update_path): Change DIR_SEPARATOR_2 to DIR_SEPARATOR. Fix 
1290         warning in block where '/' is changed to DIR_SEPARATOR.
1291         * i386/xm-djgpp.h (DIR_SEPARATOR): Set to '/'.
1292         (DIR_SEPARATOR_2): New macro. Set to '\'.
1293         (HAVE_DOS_BASED_FILESYS): Define.
1294         * i386/xm-mingw32.h: Updated copyright. Set 
1295         DIR_SEPARATOR_2 to '/'. Define HAVE_DOS_BASED_FILE_SYSTEM.
1296         * i386/xm-os2.h: Likewise.
1297         * winnt/xm-winnt.h: Likewise.
1298         * i386/xm-dos.h: Likewise.  Add copyright.
1299
1300 1999-04-10  Joseph S. Myers  <jsm28@cam.ac.uk>
1301
1302         * pdp11.h (TARGET_SWITCHES): Add option to vary assembler syntax.
1303         (TARGET_DEFAULT): Possibly use UNIX syntax.
1304         (TARGET_UNIX_ASM, TARGET_UNIX_ASM_DEFAULT): New macros.
1305         (REGISTER_NAMES): Use "r5" instead of "fp".
1306         (ASM_OUTPUT_ALIGN): Use ".even" directive, and abort for any
1307         greater alignment.
1308         * 2bsd.h (TARGET_UNIX_ASM_DEFAULT): Default to UNIX assembler
1309         syntax for 2BSD.
1310         * pdp11.c (output_ascii): Use working syntax for ".byte".
1311         (print_operand_address): Use "*" instead of "@" when using UNIX
1312         assembler syntax.
1313
1314 Sat Apr 10 03:50:12 1999  Jeffrey A Law  (law@cygnus.com)
1315
1316         * rtl.h (rebuild_jump_labels): Declare.
1317         * jump.c (jump_optimize_1): Renamed from jump_optimize.  Make static.
1318         Add new argument MARK_LABELS_ONLY.  Quit after mark_all_labels if
1319         requested.
1320         (jump_optimize, rebuild_jump_labels): New wrapper functions for
1321         jump_optimize_1.
1322         * toplev.c (rest_of_compilation): Use rebuild_jump_labels instead of
1323         running the entire jump optimizer.
1324
1325         * rtl.h (local_alloc): Returns an integer now.
1326         * local-alloc.c (recorded_label_ref): New file scoped variable.
1327         (local_alloc): Initialize recorded_label_ref to zero.  Return its
1328         value when local allocation has completed.
1329         (update_equiv_regs); If we create an equivalence for a LABEL_REF,
1330         set recorded_label_ref.
1331         * toplev.c (rest_of_compilation): Run the jump optimizer after
1332         register allocation and reloading if needed.
1333
1334 Fri Apr  9 21:02:57 1999  Krister Walfridsson  (cato@df.lth.se)
1335
1336         * i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Fix typo.
1337         * i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1338
1339 1999-04-09  Zack Weinberg  <zack@rabi.columbia.edu>
1340
1341         * cpphash.c (special_symbol): When expanding __LINE__, use the
1342         top file buffer, not the top buffer.
1343
1344 Fri Apr  9 13:41:04 1999  Jim Wilson  <wilson@cygnus.com>
1345
1346         * Makefile.in (check-g++, check-gcc, check-g77, check-objc): Add
1347         cd .. to TCL_LIBRARY command.
1348
1349 Fri Apr  9 13:04:52 1999  Nick Clifton  <nickc@cygnus.com>
1350
1351         * config/arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Only define if
1352         not already specified.
1353
1354 Fri Apr  9 11:18:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
1355
1356         * c-common.c (decl_attributes, A_INIT_PRIORITY): Allow arrays
1357         of classes, too.
1358
1359 Fri Apr  9 10:40:10 1999  Kaveh R. Ghazi  <ghazi@snafu.rutgers.edu>
1360
1361         * rs6000.c (rs6000_override_options, ptt, rs6000_file_start,
1362         rs6000_float_const, rs6000_replace_regno, debug_stack_info,
1363         rs6000_output_load_toc_table, output_prolog, output_epilog):
1364         Const-ify a char*.
1365         (output_mi_thunk): Likewise.  Mark parameter `thunk_fndecl' with
1366         ATTRIBUTE_UNUSED.  Hide unused variables `r0', `sp', `toc',
1367         `schain', `r12', `buf' and `labelno'.
1368         (output_ascii): Const-ify a char*.
1369         (rs6000_gen_section_name): Initialize variable `last_period'.
1370         (rs6000_adjust_priority): Mark parameter `insn' with
1371         ATTRIBUTE_UNUSED.
1372         (rs6000_trampoline_template, rs6000_dll_import_ref,
1373         rs6000_longcall_ref, rs6000_encode_section_info): Const-ify a char*.
1374
1375         * rs6000.h (offsettable_mem_operand, optimization_options): Add
1376         prototypes.
1377
1378         * rs6000.md (movdi, define_split): Cast a value to HOST_WIDE_INT
1379         when comparing against one.
1380
1381 Thu Apr  8 19:20:18 1999  Jeffrey A Law  (law@cygnus.com)
1382
1383         * expr.c (expand_expr, case ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF):
1384         Do not try to optimize a aggregate address which has VOIDmode.
1385         Mirrors March 23 change to expand_assignment.
1386
1387         * flow.c (delete_unreachable_blocks): Do not require EDGE_FALLTHRU
1388         for an edge when tidying an edge which connects consecutive basic
1389         blocks.
1390
1391         * flow.c (can_delete_label_p): Do not convert a label into a
1392         deleted label here.
1393
1394         * cse.c (flush_hash_table): New function.
1395         (cse_insn): Flush the hash table when we encounter a volatile asm.
1396         (cse_basic_block): Use flush_hash_table instead of doing it
1397         inline.
1398
1399         * reload1.c (reload_cse_regs_1): Flush known register values if
1400         we encounter a volatile asm.
1401
1402         * loop.c (strength_reduce): Re-enable Joern's loop improvements.
1403
1404 Thu Apr  8 09:37:40 1999  Nick Clifton  <nickc@cygnus.com>
1405
1406         * config/arm/arm.c (arm_print_operand): Undo previous change -
1407         always print large constants in decimal.
1408
1409 Thu Apr  8 10:22:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1410
1411         * configure.in (host_xm_file, build_xm_file): Include hwint.h.
1412         Use case statements instead of "if test -a ... -a ... -a ..."
1413
1414         * machmode.h: Don't define HOST_WIDE_INT, etc. Wrap use of
1415         HOST_WIDE_INT in #ifdef.
1416
1417         * mips.h: Include hwint.h instead of providing definitions for
1418         HOST_WIDE_INT, etc.  Wrap uses of HOST_WIDE_INT in #ifdef.
1419
1420 Thu Apr  8 06:16:14 1999  John Wehle  (john@feith.com)
1421
1422         * i386.md (truncdfsf2, truncxfsf2,
1423         truncxfdf2): Rewrite using a splitter.
1424
1425 Thu Apr  8 01:26:05 1999  Arg Haas  (ahaas@neosoft.com)
1426                           Jeffrey A Law  (law@cygnus.com)
1427
1428         * freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Avoid ambiguous
1429         else statement.
1430         * gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1431         * linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1432         * openbsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1433
1434 Wed Apr  7 22:40:19 1999  Jim Wilson  <wilson@cygnus.com>
1435
1436         * i960/i960.c (i960_function_prologue): Don't save static chain
1437         pointer.
1438         * i960/i960.h (STACK_CHAIN_REGNUM): Change from r3 to g12.
1439         (TRAMPOLINE_TEMPLATE): Likewise.
1440         (FRAME_POINTER_REQUIRED): Check current_function_has_nonlocal_goto.
1441         * i960/i960.md (nonlocal_goto): Rewrite.
1442         
1443 Tue Apr  6 17:49:49 1999  Philip Blundell  <pb@nexus.co.uk>
1444
1445         * config/arm/lib1funcs.asm: Test for __ELF__ not __elf__.
1446
1447 Wed Apr  7 14:07:34 1999  Jeffrey A Law  (law@cygnus.com)
1448
1449         * h8300.c (h8300_adjust_insn_length): Also avoid recognizing
1450         ADDR_VEC and ADDR_DIFF_VEC insns.
1451
1452         * h8300.c (h8300_adjust_insn_length): Avoid trying to recognize
1453         USE, CLOBBER or SEQUENCE insns.
1454
1455         * unroll.c (unroll_loop): For HAVE_cc0 machines, adjust copy_end_luid
1456         to account for the uncopied insn that sets cc0 at the end of the loop.
1457
1458         * unroll.c (copy_loop_body): Always ensure at least two insns
1459         are in the copied loop.
1460
1461 Wed Apr  7 14:52:18 1999  Catherine Moore  <clm@cygnus.com>
1462
1463         * config/mips/elf.h (MAKE_DECL_ONE_ONLY): Define.
1464         (UNIQUE_SECTION_P): Define.
1465
1466 1999-04-07  Bruce Korb  <ddsinc09@ix.netcom.com>
1467
1468         * fixinc/inclhack.tpl & fixincl.tpl:
1469         Remove dynamic content from generated files
1470
1471 Wed Apr  7 13:16:22 1999  John Wehle  (john@feith.com)
1472
1473         * i386.c (output_move_memory): Remove.
1474         * i386.h: Likewise.
1475
1476         * i386.md (movsi, movhi, movstricthi, movqi, movstrictqi,
1477         movsf, movdf, movxf, movdi): Check no_new_pseudos instead
1478         of (reload_in_progress | reload_completed).
1479
1480 Wed Apr  7 03:16:45 1999  Richard Henderson  <rth@cygnus.com>
1481
1482         * alpha.c (reg_no_subreg_operand): New function.
1483         * alpha.h (PREDICATE_CODES): Add it.
1484         * alpha.md (floatdi?f patterns): Use it for op1.
1485
1486         * alpha.c (alpha_end_function): Don't flag weak functions.
1487
1488 Wed Apr  7 02:11:55 1999  Richard Henderson  <rth@cygnus.com>
1489
1490         * expr.c (expand_builtin) [BUILT_IN_RETURN_ADDRESS]: Use
1491         copy_to_mode_reg; don't force constants into a register.
1492
1493 Tue Apr  6 22:55:25 1999  Richard Henderson  <rth@cygnus.com>
1494
1495         * toplev.c (compile_file): Typo flow_dump -> flow2_dump.
1496
1497 1999-04-06  Joseph S. Myers  <jsm28@cam.ac.uk>
1498
1499         * pdp11.c (simple_memory_operand): Add default case in switch.
1500         * pdp11.h (TARGET_SWITCHES): Add help strings.
1501         (NOTICE_UPDATE_CC): Don't include excess argument to format.
1502         (ASM_OUTPUT_DOUBLE_INT): Remove.
1503
1504 Tue Apr  6 22:09:40 1999  Richard Henderson  <rth@cygnus.com>
1505
1506         * expr.c (expand_builtin_setjmp): Put setjmp return label on
1507         nonlocal_goto_handler_labels for flow.
1508
1509 Tue Apr  6 22:05:21 1999  Jan Hubicka  <hubicka@paru.cas.cz>
1510                           Richard Henderson  <rth@cygnus.com>
1511
1512         * flow.c (verify_flow_info): New function.
1513         (find_basic_blocks): Call it if ENABLE_CHECKING.
1514         (merge_blocks): Don't merge if there are non-deletable labels.
1515         * toplev.c (fatal_insn): Allow a printf-style arg list.
1516         * toplev.h (fatal_insn): Update prototype.
1517
1518 Tue Apr  6 16:18:58 1999  Jan Hubicka  <hubicka@paru.cas.cz>
1519
1520         * flow.c (split_edge) update correctly flow graph, disable
1521         EDGE_CRITICAL flag on the split edge, update NUSES for new label.
1522
1523 Tue Apr  6 15:47:51 1999  Richard Henderson  <rth@cygnus.com>
1524
1525         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use XWINT not XINT.
1526         Clear third and following slots, if they exist.
1527
1528 Tue Apr  6 15:45:28 1999  Richard Henderson  <rth@cygnus.com>
1529
1530         * flow.c (create_basic_block): Make sure the bb note is in the block.
1531         (can_delete_note_p): Rename from delete_note_p.
1532         (delete_insn_chain): Preserve undeleteable labels too.
1533         (tidy_fallthru_edge): Use next_real_insn instead of confusing
1534         inline code.
1535
1536 1999-04-06  Zack Weinberg  <zack@rabi.columbia.edu>
1537
1538         * cppexp.c (parse_charconst): Initialize c.
1539         (cpp_parse_expr): Initialize rprio.
1540         * cppfiles.c (merge_include_chains): Initialize prev.
1541         (finclude): Set fp->line_base to fp->buf before returning.
1542         * cpphash.c (macroexpand): Initialize token.
1543         * cppspec.c (lang_specific_driver): Change suff to
1544         const char *const *.
1545
1546 1999-04-06  Zack Weinberg  <zack@rabi.columbia.edu>
1547
1548         * cppinit.c (install_predefs): Delete function.
1549         (cpp_start_read): Don't call install_predefs.
1550         (cpp_handle_option): Remove case 'u' and all refs to
1551         opts->inhibit_predefs.
1552         (print_help): Don't mention -undef.
1553         (initialize_builtins): Define __HAVE_BUILTIN_SETJMP__, to
1554         match cccp.
1555         * cpplib.h (struct cpp_options): Remove inhibit_predefs
1556         member.
1557
1558         * cccp.c (predefs): Delete variable.
1559         (main): Remove case 'u' in argument parse loop,
1560         'inhibit_predefs' variable, and the code block that would
1561         process CPP_PREDEFINES.
1562         (initialize_builtins): Don't define __OBJC__, the driver will
1563         do that.
1564
1565         * gcc.c (default_compilers): Remove -undef from all specs that
1566         invoke a C preprocessor.
1567         * ch/lang-specs.h: Likewise.
1568         * cp/lang-specs.h: Likewise.
1569         * f/lang-specs.h: Likewise.
1570         * objc/lang-specs.h: Likewise.
1571
1572 Mon Apr  5 11:55:31 1999  Donn Terry  (donn@interix.com)
1573
1574         * Makefile.in (SUBDIR_FLAGS_TO_PASS): Fix misapplied patch.
1575
1576 Mon Apr  5 11:51:38 1999  Jeffrey A Law  (law@cygnus.com)
1577
1578         * m68k.md (movdf): Hide GPR sources & destinations from regclass.
1579
1580 Mon Apr  5 09:54:42 1999  Jeff Law  (law@cygnus.com)
1581
1582         * version.c: Bump for snapshot.
1583
1584 Mon Apr  5 05:55:15 1999  Bruce Korb  <ddsinc09@ix.netcom.com>
1585
1586         * fixincl.tpl: Separate "-e" from its argument, a la
1587         the Sat Apr  3 17:05:13 1999 fix.
1588         * genfixes: Ensure that the server shell is _NOT_ csh.
1589
1590 Mon Apr  5 03:52:30 1999  Jeff Law  (law@cygnus.com)
1591
1592         * version.c: Bump for snapshot.
1593
1594 Mon Apr  5 04:47:14 1999  Jeffrey A Law  (law@cygnus.com)
1595
1596         * i386.c (x86_double_with_add): Turn off for Pentium and PPro.
1597         (small_shift_operand, output_ashlsi3): New functions.
1598         * i386.h (small_shift_operand, output_ashlsi3): Declare.
1599         * i386.md (ashlsi3): Simplify ahlsi3 patterns.  Remove splitters
1600         that are no longer needed.
1601
1602 Sun Apr  4 04:05:04 1999  Jeffrey A Law  (law@cygnus.com)
1603
1604         * stmt.c (expand_loop_end): When copying the loop exit test,
1605         do not walk into a nested loop.
1606
1607 Sun Apr  4 00:14:54 1999  Jeffrey A Law  (law@cygnus.com)
1608
1609         * fixinc/hackshell.tpl: Skip links to directories, to avoid
1610         removing them.
1611         * fixinc/inclhack.tpl: Likewise.
1612         * fixinc/fixinc.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
1613
1614 Sat Apr  3 23:46:13 1999  David Edelsohn  <edelsohn@gnu.org>
1615         
1616         * rs6000.md (addsi3, iorsi3, xorsi3, adddi3, iordi3, xordi3,
1617         movsi_got, movsi, movsf): Use no_new_pseudos.
1618         * rs6000.c (rs6000_got_register): Likewise.
1619         (offsettable_mem_opereand): Use || not |.
1620
1621 Sat Apr  3 22:02:56 1999  Jeffrey A Law  (law@cygnus.com)
1622
1623         * acconfig.h (ENABLE_CHECKING): Remove redundant #undef.
1624         * config.in: Rebuilt.
1625
1626 Sat Apr  3 16:22:59 1999  Toshiyasu Morita  (tm@netcom.com)
1627
1628         * gcc.texi: Add info on regmove pass.
1629
1630         * regmove.c (fixup_match_1): Consistently evaluate
1631         HAVE_POST_INCREMENT and HAVE_POST_DECREMENT.
1632
1633 Sat Apr  3 19:21:05 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
1634
1635         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER): Use grep
1636         instead of test and sed to check whether they're GNU programs.
1637         * configure: Rebuilt.
1638
1639 Sat Apr  3 17:57:35 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
1640
1641         * Makefile.in (install-headers-tar, install-headers-cpio): Avoid
1642         problems with CDPATH.
1643         Reported by Ralf Canis <canis@bigfoot.com>
1644
1645 Sat Apr  3 13:50:16 1999  Jeffrey A Law  (law@cygnus.com)
1646
1647         * fixinc.x86-linux-gnu: Deleted.
1648
1649 Sat Apr  3 17:05:13 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
1650
1651         * inclhack.tpl: Insert spaces between `sed -e' and '...'.
1652         Reported by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1653         * fixinc/fixincl.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Regen.
1654         
1655 Sat Apr  3 14:54:46 1999  Craig Burley  <craig@jcb-sc.com>
1656
1657         * tree.def (BLOCK): Fix typo in comment.
1658
1659 Sat Apr  3 00:53:29 1999  John Wehle  (john@feith.com)
1660
1661         * i386.md (floatsisf2, floatdisf2, floatsidf2, floatdidf2,
1662         floatsixf2, floatdixf2): Rewrite using a splitter.
1663
1664 Fri Apr  2 17:36:10 1999  Nick Clifton  <nickc@cygnus.com>
1665
1666         * config/arm/arm.c (arm_print_operand): Print large constants in
1667         hex rather than decimal.
1668
1669 Fri Apr  2 17:23:58 1999  Nick Clifton  <nickc@cygnus.com>
1670
1671         * print-rtl.c (print_rtx): Use both HOST_WIDE_INT_PRINT_DEC
1672         and HOST_WIDE_INT_PRINT_HEX to display constants.
1673
1674 1999-04-02  Zack Weinberg  <zack@rabi.columbia.edu>
1675
1676         * config/i386/i386.h: Document all TARGET_SWITCHES or add
1677         explicit null initializer.
1678
1679         * config/i386/cygwin.h: Document all SUBTARGET_SWITCHES.
1680         * config/i386/dgux.h: Likewise.
1681         * config/i386/osf1elf.h: Likewise.
1682         * config/i386/win32.h: Likewise.
1683         * config/i386/osfrose.h: Likewise.  Drop obsolete -mno-ident option.
1684
1685 Fri Apr  2 17:49:44 1999  Toshiyasu Morita  <tm@netcom.com>
1686
1687         * regmove.c (fixup_match_1): Remove now useless if (0).
1688
1689 Sat Apr  3 11:37:20 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1690
1691         * tm.texi (USE_LOAD_POST_DECREMENT, USE_LOAD_PRE_DECREMENT,
1692         USE_STORE_POST_DECREMENT, USE_STORE_PRE_DECREMENT): Document.
1693         (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT,
1694         USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Fix documentation.
1695
1696         * rtl.h (USE_LOAD_POST_DECREMENT, USE_LOAD_PRE_DECREMENT,
1697         USE_STORE_POST_DECREMENT, USE_STORE_PRE_DECREMENT,
1698         USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT,
1699         USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Provide default
1700         definition.
1701
1702         * expr.c (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT,
1703         USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Delete default
1704         definition.
1705
1706 Fri Apr  2 16:03:05 1999  Jeffrey A Law  (law@cygnus.com)
1707
1708         * fixinc.dgux, fixinc.interix, fixinc.irix, fixinc.ptx: Deleted.
1709         * fixinc.sco, fixinc.svr4, fixinc.winnt, fixinc.wrap: Likewise.
1710
1711 Fri Apr  2 15:46:25 1999  Donn Terry  (donn@interix.com)
1712
1713         * configure.in: Set and substitute quoted_cc_set_by_configure.
1714         * configure: Rebuilt.
1715         * Makefile.in (SUBDIR_FLAGS_TO_PASS): Fix quoting problem with ``.
1716
1717 Fri Apr  2 14:35:45 1999  Stan Cox  <scox@cygnus.com>
1718
1719         * config/i386/cygwin.h (CPP_SPEC): Use mingw_include_path instead
1720         of a hardcoded path for -mno-cygwin.
1721         (mingw_include_path): New.
1722
1723 1999-04-02  Joseph S. Myers  <jsm28@cam.ac.uk>
1724
1725         * pdp11.c: Include "recog.h".
1726         (output_function_prologue): Remove unused variables `nregs', `i',
1727         `offset'.
1728         (output_function_epilogue): Remove unused variables
1729         `may_call_alloca', `nregs', `regno', `adjust_fp'.
1730         (output_ascii): Mark as returning void.
1731         (print_operand_address: Likewise.
1732         (simple_memory_operand): Remove unused variables `plus0', `plus1',
1733         `offset'.
1734         * pdp11.h: Declare functions `arith_operand',
1735         `const_immediate_operand', `expand_shift_operand',
1736         `legitimate_address_p', `notice_update_cc_on_set', `output_ascii',
1737         `output_function_epilogue', `output_function_prologue',
1738         `print_operand_address', `register_move_cost',
1739         `simple_memory_operand'.
1740         (HARD_REGNO_MODE_OK): Parenthesize `REGNO' arg.
1741         (REGNO_REG_CLASS): Likewise.
1742         * pdp11.md: Add explicit `int' to `static count' (in two places).
1743         (addhi3): Add explicit braces to avoid ambiguous else.
1744         (addqi3): Likewise.
1745         (ashlhi3): Likewise.
1746
1747 Fri Apr  2 14:17:10 1999  Jerry James  <jerry@cs.ucsb.edu>
1748
1749         * gcc/invoke.texi: Add documentation for additional supported
1750         MIPS CPU types, options -mips16 and -mentry, and ABI and ISA
1751         defaults.
1752
1753 Fri Apr  2 14:12:06 1999  John Wehle  (john@feith.com)
1754
1755         * i386.md: Delete floating point compare, add, subtract,
1756         multiply, and divide patterns which allowed integer
1757         operands.
1758         * i386.c (output_387_binary_op): Delete unused code.
1759         (output_float_compare): Likewise.
1760
1761 Fri Apr  2 11:53:37 1999  John Wehle  (john@feith.com)
1762
1763         * i386.md (movsf+1, movdf+1, movxf+1): Update constraints
1764         so that SECONDARY_MEMORY_RELOAD is used.  Remove dead code.
1765
1766 1999-04-02  Bruce Korb  <ddsinc09@ix.netcom.com>
1767
1768         * fixinc/mkfixinc.sh: Added support for x86-interix.
1769         * fixinc/fixinc.interix: Fixincludes script, slight changes
1770         from ./fixinc.interix.  Untested (needs interix box).
1771         * fixinc/inclhack.def:
1772         Complete the change to the 'fixinc.tmp' file.
1773         Fixed regex for finding C++ headers.
1774         * fixincl.x, fixincl.sh, inclhack.sh: Regenerate.
1775
1776 Fri Apr  2 11:36:12 1999  Jan Hubicka  (hubicka@paru.cas.cz)
1777
1778         * i386.c (print_operand_address, case REG): Do not use ESI addressing
1779         mode for the K6.
1780
1781         * i386.c (print_operand_address, case MULT): Use more efficient
1782         encoding (mult (reg) (const_int 2)).
1783
1784 Thu Apr  1 17:01:50 1999  Richard Henderson  <rth@cygnus.com>
1785
1786         Move over patch from Bernd Schmidt from GC branch:
1787         * emit-rtl.c (gen_rtx_CONST_DOUBLE): New function.
1788         (gen_rtx): Call it.  Tidy cases.
1789         * rtl.h (gen_rtx_CONST_DOUBLE): Prototype it.
1790         * gengenrtl.c: Add commentary.
1791         (special_rtx): Also match CONST_DOUBLE.
1792         (gencode): Emit call to memset instead of bzero.
1793
1794 Fri Apr  2 12:58:26 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1795
1796         * config/c4x/c4x.md (ashlhi3, lshrhi3, ashrhi3): Force operand 1
1797         into a register if shift count not constant.
1798         (ashlhi3_reg, lshrhi3_reg, ashrhi3_reg): Ensure that operand 1
1799         is a register.
1800
1801 Fri Apr  2 12:19:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1802
1803         * config/c4x/c4x.md (*db): Enable pattern if TARGET_LOOP_UNSIGNED
1804         is non-zero.
1805         (movstrqi_small, movstrqi_large, *cmpstrqi): Add + modifier to address
1806         register constraints.
1807         (*movhi_clobber+1): Modify splitter pattern to handle destination
1808         register that is used in the source address.
1809         (*xorhi3_clobber): Replace AND with XOR in call to legitimize_operands.
1810
1811 Fri Apr  2 12:16:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1812
1813         * config/c4x/c4x.h: Added more comments.
1814
1815 Fri Apr  2 11:58:22 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1816
1817         * config/c4x/c4x.c (c4x_emit_move_sequence): Force invalid QImode
1818         constants into memory if we get called directly from gen_move_insn
1819         rather than emit_move_insn.
1820         (c4x_legitimize_address): Fix up LABEL_REF addresses.
1821
1822 Thu Apr  1 12:04:05 1999  Jim Wilson  <wilson@cygnus.com>
1823
1824         * expr.c (store_field): When check direct_store, assume all complex
1825         modes can be directly stored.
1826
1827 1999-04-01  Bruce Korb  <ddsinc09@ix.netcom.com>
1828
1829         * fixinc/genfixes: New shell script that runs autogen
1830         to create the generated files.
1831
1832 1999-04-01  Manfred Hollstein  <manfred@s-direktnet.de>
1833
1834         * Makefile.in (cppmain$(exeext)): Depend on intl.o.  Link in intl.o.
1835
1836 Thu Apr  1 03:48:34 1999  H.J. Lu  (hjl@gnu.org)
1837
1838         * i386.c (output_fp_conditional_move): Abort for LT, LE, GE, and GT
1839         signed integer comparisons.
1840
1841         * i386.c (output_int_conditional_move): Use "enum rtx_code" for code
1842         type.
1843
1844         * i386.c (notice_update_cc): No need to check the INT mode for
1845         conditional moves since FLOAT conditional moves don't affect cc0.
1846
1847 Thu Apr  1 02:17:18 1999  Jeffrey A Law  (law@cygnus.com)
1848
1849         * fixinc/inclhack.def (zzz_ki_syscalls, zzz_time): Fix trigger
1850         string to only match on hpux11.
1851         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixinc.sh: Rebuilt.
1852
1853 Thu Apr  1 01:09:27 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
1854
1855         * fixinc/hackshell.tpl: Complete transition to fixinc.tmp.
1856         * fixinc/inclhack.sh: Rebuilt.
1857
1858         * fixinc/inclhack.def: Fix typos in c_asm.h fix.
1859         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixinc.sh: Rebuilt.
1860
1861 Wed Mar 31 17:20:11 1999  Jeffrey A Law  (law@cygnus.com)
1862
1863         * toplev.c (rest_of_compilation): Allow dbr_schedule to write to
1864         the dump file too.
1865
1866 Wed Mar 31 12:32:43 1999  Richard Henderson  <rth@cygnus.com>
1867
1868         * flow.c (find_basic_blocks): New argument `do_cleanup'.
1869         Conditionally call delete_unreachable_blocks.
1870         (free_basic_block_vars): Zero ENTRY/EXIT data.
1871         (allocate_for_life_analysis): Kill.  Split into...
1872         (allocate_bb_life_data, allocate_reg_life_data): ... new functions.
1873         (life_analysis_1): Update.
1874         * gcse.c (gcse_main): Update find_basic_blocks call.
1875         * toplev.c (rest_of_compilation): Likewise.
1876         * stupid.c (stupid_life_analysis): Update life data calls.
1877         * rtl.h, output.h: Update prototypes.
1878
1879 Wed Mar 31 12:10:00 1999  Bruce Korb  <ddsinc09@ix.netcom.com>
1880
1881         * inclhack.def (several): Added spaces in tests to ensure
1882         correct shell syntax.  Added c_asm.h fix from fixincludes.
1883         Also corrected the corrected fix to C++ comments :-}
1884
1885         * inclhack.tpl: Changed method of traversing symlink trees
1886         so that file name matching will work correctly.
1887
1888         * fixincl.c, hackshell.tpl: Fallout from above.
1889         * fixincl.x, inclhack.sh, fixincl.sh: Rebuilt.
1890
1891 Tue Mar 30 10:43:49 1999  Philip Blundell  <pb@nexus.co.uk>
1892
1893         * config/arm/aout.h (DBX_DEBUGGING_INFO): Avoid redefinition if
1894         dbxelf.h was previously included.
1895         (CPP_APCS_PC_DEFAULT_SPEC): No need to undefine.
1896         
1897         * config/arm/linux-elf.h (FP_DEFAULT): Correctly override the
1898         definition from arm.h.
1899
1900 Wed Mar 31 10:33:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1901
1902         * Makefile.in (c-gperf.h): Generate using gperf language 'C', not
1903         'KR-C', so gperf uses the `const' keyword on strings.
1904         
1905         * c-parse.gperf (resword): Const-ify a char*.
1906
1907 Wed Mar 31 01:49:31 1999  Ian Lance Taylor  <ian@zembu.com>
1908
1909         * t-rtems (LIMITS_H_TEST, LIBGCC2_INCLUDES): Define.
1910
1911 Wed Mar 31 00:50:48 1999  Jeffrey A Law  (law@cygnus.com)
1912
1913         * system.h (STDERR_FILENO): Fix typo.
1914
1915         * inclhack.def (bool): Also fix bogus bool in curses_colr/curses.h.
1916         * fixincl.x, inclhack.sh, fixincl.sh: Rebuilt.
1917
1918 Tue Mar 30 20:51:40 1999  Mark Mitchell  <mark@codesourcery.com>
1919
1920         * alias.c (alias_set_compare): Remove.
1921         (record_alias_subset): Use splay_tree_compare_ints instead of
1922         alias_set_compare.
1923         (init_alias_once): Likewise.
1924         * cse.c: Include splay-tree.h.
1925         (reg_qty): Remove.
1926         (reg_tick): Likewise.
1927         (reg_table): Likewise.
1928         (cse_reg_info): New structure.
1929         (cse_reg_info_free_list): New variable.
1930         (cse_reg_info_tree): Likewise.
1931         (cached_regno): Likewise.
1932         (cached_cse_reg_info): Likewise.
1933         (all_minus_one): Remove.
1934         (consec_ints): Likewise.
1935         (GET_CSE_REG_INFO): New macro.
1936         (REG_TICK): Likewise.  Use throughout instead of reg_tick.
1937         (REG_IN_TABLE): Likewise.  Use throughout instead of reg_in_table.
1938         (REG_QTY): Likewise.  Use throughout instead of reg_qty.
1939         (get_cse_reg_info): New function.
1940         (free_cse_reg_info): Likewise.
1941         (new_basic_block): Reinitialize cse_reg_info_tree instead of
1942         reg_tick, all_minus_one, and consec_ints.
1943         * Makefile.in (cse.o): Depend on splay-tree.h
1944
1945 Tue Mar 30 13:19:36 1999  Jason Merrill  <jason@yorick.cygnus.com>
1946
1947         * libgcc2.c (throw_helper): Just return the SP offset, rather than
1948         a whole udata.  Include args_size in the offset.
1949         (__throw, __rethrow): Adjust.
1950
1951 Tue Mar 30 11:39:27 1999  Craig Burley  <craig@jcb-sc.com>
1952
1953         * extend.texi (Extended Asm): Delete spurious `b' before
1954         `@end example', which was confusing texi2html.
1955
1956 Tue Mar 30 00:26:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
1957
1958         * dwarf2out.c (output_line_info): Don't emit redundant info.
1959         Do start a new row if the file changes and the line # doesn't.
1960
1961 Mon Mar 29 15:48:39 1999  Jason Merrill  <jason@yorick.cygnus.com>
1962
1963         * invoke.texi (Invoking G++, C++ Dialect Options): Update.
1964
1965 Mon Mar 29 15:05:39 1999  Richard Henderson  <rth@cygnus.com>
1966
1967         * except.c (start_dynamic_handler): Force jmp_buf address to
1968         and operand before moving to memory.
1969
1970 Mon Mar 29 15:11:10 1999  Craig Burley  <craig@jcb-sc.com>
1971
1972         * invoke.texi (Code Gen Options): Attempt to clarify
1973         -fcheck-memory-usage.  Minor edits to -fprefix-function-name.
1974
1975 Mon Mar 29 20:52:47 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
1976
1977         * loop.c (maybe_eliminate_biv): For libcalls that set a giv, skip to
1978         end of libcall.
1979
1980 Mon Mar 29 20:35:49 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
1981
1982         * sh.md (mulsi3): Tag an extra REG_EQUAL note to the middle insn.
1983
1984 Mon Mar 29 11:50:34 1999  Jerry Quinn  <jquinn@nortelnetworks.com>
1985
1986         * pa.h (HAVE_PRE_INCREMENT): Disable when optimizing for a PA8000
1987         class machine.
1988         (HAVE_PRE_DECREMENT, HAVE_POST_INCREMENT): Likewise.
1989         (HAVE_POST_DECREMENT): Likewise.
1990
1991 Mon Mar 29 08:24:43 1999  Bruce Korb  <korb@datadesign.com>
1992
1993         * fixinc/mkfixinc.sh: Fix portability problems with old shells.
1994
1995         * fixinc/README: Updated for release announcement
1996
1997 Sun Mar 28 20:26:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1998
1999         * recog.h (insn_outfun, insn_operand_predicate): Add prototype
2000         arguments.
2001
2002         * rtl.h (note_stores): Likewise.
2003
2004         * rtlanal.c (note_stores): Likewise.
2005
2006 Sun Mar 28 15:34:28 1999  Richard Henderson  <rth@cygnus.com>
2007
2008         * varasm.c (output_constant_pool): Always mark the constant pool.
2009
2010 Sun Mar 28 16:09:01 1999  Jerry Quinn  <jquinn@nortelnetworks.com>
2011
2012         * pa.md (pa7100LCshiftmem, pa7100LCalu): Change simultaneity.  Use
2013         shift/mem ops in pa7100LCalu.
2014
2015         * pa.c (pa_adjust_cost): Don't do cost adjustments on pa8000.
2016         (pa_reorg): Don't call pa_combine_instructions on pa8000.
2017
2018 Sun Mar 28 15:27:26 1999  Jeffrey A Law  (law@cygnus.com)
2019
2020         * reload1.c (reload): Remove accidental code duplication.
2021
2022 Sun Mar 28 12:22:12 1999  Robert Lipe  (robertlipe@usa.net)
2023
2024         * i386/sysv5.h: New file to describe UnixWare7/SVR5.
2025         * configure.in (i?86-UnixWare7*-sysv): Use it.
2026         * i386/udk.h: Use sysv5.h.  Now uses Dwarf-2.
2027
2028 Sun Mar 28 01:15:04 1999  Jeff Law  (law@cygnus.com)
2029
2030         * version.c: Bump for snapshot.
2031
2032 Sun Mar 28 00:44:27 1999  Jeffrey A Law  (law@cygnus.com)
2033
2034         * sdbout.c (sdbout_symbol): Do not call build_pointer_type, build
2035         one on the fly and do not cache the result.
2036
2037         * gcc.cps, cpp.cps: Delete unwanted files.
2038
2039 Sat Mar 27 23:37:40 1999  John Wehle  (john@feith.com)
2040
2041         * i386.md (movdicc+3, movdicc+4): Rewrite using split_di.
2042         * i386.c (output_int_conditional_move): Delete unused code.
2043
2044 Sat Mar 27 21:17:36 1999  David Edelsohn  <edelsohn@gnu.org>
2045
2046         * rs6000/{aix41.h,aix43.h} (ASM_CPU_SPEC): Add 604e.
2047
2048 Sat Mar 27 16:13:50 1999  Jeffrey A Law  (law@cygnus.com)
2049
2050         * flow.c (mark_used_regs): Improve handling of ASMs.
2051
2052 1999-03-26  Zack Weinberg  <zack@rabi.columbia.edu>
2053
2054         * Makefile.in (xcpp, cppspec.o): New targets.
2055         (CPP_INSTALL_NAME): New macro.
2056         (install-cpp): Install xcpp.  Use CPP_INSTALL_NAME.
2057         (all.build, start.encap): Build xcpp.
2058
2059         * cppspec.c: New file, implements argument filtering for a
2060         user-visible C preprocessor.
2061         * cpp.sh: Removed.
2062
2063 Fri Mar 26 20:41:46 1999  Jim Wilson  <wilson@cygnus.com>
2064
2065         * Makefile.in (stmp-fixinc): Use tooldir instead of gcc_tooldir.
2066
2067 Fri Mar 26 16:02:37 1999  Nick Clifton  <nickc@cygnus.com>
2068
2069         * configure.in (arm-*-vxworks*): Just include arm/vxarm.h.
2070         * configure: Regenerate.
2071         * config/arm/vxarm.h: Define SUBTARGET_CPU_DEFAULT before
2072         including arm/coff.h
2073
2074 1999-02-16  Scott Bambrough  <scottb@corelcomputer.com>
2075
2076         * configure.in (arm*-*-linux-gnu*): Set thread_file to 'posix' if
2077         --enable-threads[={yes,pthreads,posix}] is passed as a command
2078         line parameter to configure.
2079
2080         * configure: Regenerate.
2081         
2082         * gcc/config/arm/t-linux (TARGET_LIBGCC2_CFLAGS): Include -fPIC.
2083
2084 Fri Mar 26 19:42:19 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2085
2086         * loop.c (combine_givs): Fix index into can_combine when doing
2087         benefit adjustment for remaining givs when having combined a giv.
2088
2089 Fri Mar 26 11:38:01 1999  Nick Clifton  <nickc@cygnus.com>
2090
2091         * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Define.
2092
2093 Fri Mar 26 10:48:27 1999  Nick Clifton  <nickc@cygnus.com>
2094
2095         * config/arm/linux-elf.h: Include dbxelf.h
2096
2097 Fri Mar 26 10:43:47 1999  Nick Clifton  <nickc@cygnus.com>
2098
2099         * config/svr4.h: Include new header file dbxelf.h.
2100         (DBX_DEBUGGING_INFO): Remove definition.
2101         (DBX_USE_BINCL): Remove definition.
2102         (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition.
2103         (ASM_IDENTIFY_GCC): Remove definition.
2104         (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition.
2105         (ASM_OUTPUT_SOURCE_LINE): Remove definition.
2106         (DBX_FUNCTION_FIRST): Remove definition.
2107         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Remove definition.
2108
2109         * config/elfos.h: Include new header file dbxelf.h.
2110         (DBX_DEBUGGING_INFO): Remove definition.
2111         (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition.
2112         (ASM_IDENTIFY_GCC): Remove definition.
2113         (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition.
2114         (ASM_OUTPUT_SOURCE_LINE): Remove definition.
2115         (DBX_FUNCTION_FIRST): Remove definition.
2116
2117         * config/dbxelf.h: New header file.
2118         (DBX_DEBUGGING_INFO): Define.
2119         (DBX_BLOCKS_FUNCTION_RELATIVE): Define.
2120         (DBX_FUNCTION_FIRST): Define.
2121         (DBX_USE_BINCL): Define.
2122         (DBX_CONTIN_LENGTH): Define.
2123         (ASM_IDENTIFY_GCC): Define.
2124         (ASM_IDENTIFY_GCC_AFTER_SOURCE): Define.
2125         (ASM_OUTPUT_SOURCE_LINE): Define.
2126         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define.
2127
2128 Fri Mar 26 01:59:15 1999  "Charles M. Hannum"  <root@ihack.net>
2129
2130         * fold-const.c (fold_truthop): Optimize bitfield references with
2131         different masks as long as their size and bit position are the same.
2132
2133         * fold-const.c (fold_truthop): Build a type for both the lhs and
2134         rhs and use it appropriately.
2135
2136         * fold-const.c (fold_truthop): Mask the lhs and rhs after merging
2137         adjacent bitfield references.
2138
2139         * fold-const.c (fold_truthop): Verify that the lhs and rhs are
2140         in the same bit position when optimizing bitfield references
2141         which have the same mask.
2142
2143 Thu Mar 25 22:53:27 1999  Martin von Löwis  <loewis@informatik.hu-berlin.de>
2144
2145         * gcc.texi (Copy Assignment): New node.
2146
2147 1999-03-25  Zack Weinberg  <zack@rabi.columbia.edu>
2148
2149         * gcc.c: Compile unconditionally all code formerly dependent
2150         on #ifdef LANG_SPECIFIC_DRIVER.
2151         * gccspec.c: New file with stub lang_specific_driver,
2152         lang_specific_pre_link.
2153         * Makefile.in: Link gccspec.o into xgcc.  Add rule to compile
2154
2155 Thu Mar 25 21:08:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
2156
2157         * gcc.texi (Temporaries): Update.
2158
2159 Thu Mar 25 16:53:53 1999  Richard Henderson  <rth@cygnus.com>
2160
2161         * combine.c (distribute_notes): Place REG_LABEL also where
2162         REG_EQUAL indicates.
2163
2164 Thu Mar 25 12:46:37 1999  Jim Wilson  <wilson@cygnus.com>
2165
2166         * a29k/a29k.h (TARGET_SWITCHES): Add doc strings.
2167         * i960/i960.h (TARGET_SWITCHES): Add doc strings.
2168         * invoke.texi (a29k): Add documentation for -mno-multm option.
2169
2170 Thu Mar 25 14:04:54 1999  Andrew MacLeod  <amacleod@cygnus.com>
2171
2172         * rtl.texi (RTX_FRAME_RELATED_P): Add documentation.
2173         * rtl.h (struct rtx_def): Update comment for frame_related field.
2174         (set_unique_reg_note): Declare prototype.
2175         * dwarf2out.c (dwarf2out_frame_debug_expr): Split out from
2176         'dwarf2out_frame_debug' to handle only expressions, and process
2177         component parts of a PARALLEL expression.
2178         (dwarf2out_frame_debug): Process insns only, and call
2179         new function 'dwarf2out_frame_debug_expr' for patterns.
2180         * emit-rtl.c (set_unique_reg_note): New function to add a reg note,
2181         but if there is an existing one, delete it first.
2182         * expmed.c (expand_mult, expand_divmod): Use set_unique_reg_note.
2183         * optabs.c (add_equal_note, expand_binop): Use set_unique_reg_note.
2184         (emit_no_conflict_block, emit_libcall_block): Use set_unique_reg_note.
2185         (expand_fix): Use set_unique_reg_note.
2186
2187 Thu Mar 25 11:47:49 1999  Art Haas  <ahaas@neosoft.com>
2188
2189         * tlink.c (symbol_hash_newfunc): Remove redundant call to
2190         hash_newfunc.
2191         (file_hash_newfunc, demangled_hash_newfunc): Likewise.
2192
2193 Thu Mar 25 10:05:56 1999  Richard Henderson  <rth@cygnus.com>
2194
2195         * i386.h (PREFERRED_STACK_BOUNDARY): Set to 128.
2196
2197 1999-03-25  Philip Blundell  <pb@nexus.co.uk>
2198
2199         Based on patch from Jim Studt  <jim@federated.com>:
2200         * config/arm/linux-elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Copy
2201         definitions from config/linux.h.
2202         (DBX_BLOCKS_FUNCTION_RELATIVE): Define to 1.
2203
2204 Thu Mar 25 02:12:42 1999  Finn Hakansson  <finn@axis.com>
2205
2206         * loop.c (strength_reduce): Correct a comment.
2207
2208         * rtl.h (MEM_COPY_ATTRIBUTES): Remove unnecessary ending backslash.
2209
2210 Thu Mar 25 02:02:13 1999  Axel Thimm  <Axel.Thimm@physik.fu-berlin.de>
2211
2212         * Makefile.in (RANLIB_TEST): Improve test.
2213
2214 Thu Mar 25 01:15:33 1999  Donn Terry  <donn@interix.com>
2215
2216         * combine.c (force_to_mode, case PLUS): Use sign extended mask
2217         when masking the low bits out of a constant.
2218
2219 Tue Mar 23 15:45:25 1999  Richard Earnshaw  (rearnsha@arm.com)
2220                           Jeff Law  <law@cygnus.com>
2221
2222         * fold-const.c (make_range): If orig_type is unset, set it as soon
2223         as we know the type.  Remove now unnecessary set of orig_type for
2224         conversions.
2225
2226 Wed Mar 24 23:27:25 1999  Mark Elbrecht  <snowball3@usa.net>
2227                           Jeff Law  <law@cygnus.com>
2228
2229         * system.h (STDIN_FILENO): Provide default definition if one is not
2230         provided by the system header files.
2231         (STDOUT_FILENO, STDERR_FILENO): Likewise.
2232
2233         * i386/xm-djgpp.h (COLLECT2_HOST_INITIALIZATION): New macro.
2234         * collect2.c (main): Use it.
2235         (pexecute_pid): New variable. Holds return value from call to pexecute.
2236         (collect2_execute): Rework to use pexecute instead of fork.
2237         (collect2_wait): Use pwait() instead of wait().
2238
2239         * i386/djgpp.h: Fix typo.
2240
2241 Wed Mar 24 23:24:30 1999  Jeffrey A Law  (law@cygnus.com)
2242
2243         * fixinc/mkfixinc.sh: Recognize cygwin* instead of only
2244         cygwin32.
2245
2246 Wed Mar 24 15:44:12 1999  Nick Clifton  <nickc@cygnus.com>
2247
2248         * config/m32r/m32r.c (init_idents): Accept both NAME and __NAME__
2249         versions of attribute names and values.
2250         (m32r_valid_machine_decl_attribute): Likewise.
2251         (m32r_encode_section_info): Likewise.
2252
2253 Wed Mar 24 21:42:15 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2254
2255         * reload1.c (choose_reload_regs): If output-reloading for a
2256         simple move insn, try to inherit an equivalence for the input.
2257
2258 1999-02-24  Mike Stump  <mrs@wrs.com>
2259
2260         * arm/aout.h (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Fix quoting.
2261
2262 1999-03-24  Jim Blandy  <jimb@zwingli.cygnus.com>
2263
2264         * libgcc2.c (__CTOR_LIST__, __DTOR_LIST__): Initialize on all
2265         platforms.
2266
2267 Wed Mar 24 01:35:01 1999  Geoff Keating  <geoffk@ozemail.com.au>
2268
2269         * fold-const.c (fold): Recognize a rotate by an unsigned amount.
2270
2271 Tue Mar 23 23:32:14 1999  Jeffrey A Law  (law@cygnus.com)
2272
2273         * pa.md (rotlsi3): New expander.  Synthesize a variable rotate
2274         left using a variable rotate right.  Provide anonymous pattern for
2275         rotate left by a constant value.
2276
2277         * expr.c (expand_assignment): Do not try to optimize a aggregate
2278         address which has VOIDmode.
2279
2280 Tue Mar 23 22:51:48 1999  Mumit Khan  <khan@xraylith.wisc.edu>
2281                           Donn Terry  <donn@interix.com>
2282
2283         * protoize.c (abspath): Preserve multiple leading slashes for
2284         _WIN32 and Interix.
2285
2286 1999-01-23  Mike Stump  <mrs@wrs.com>
2287
2288         * arm/vxarm.h: Split out vxWorks support into separate headerfile
2289         and vxify.
2290         * arm/arm.c (cpu_defaults): Allow arm710 as default.
2291         
2292         * configure.in: Split out vxWorks support for Arm.
2293         * configure: Rebuilt.
2294
2295 Tue Mar 23 11:20:03 1999  Per Bothner  <bothner@cygnus.com>
2296
2297         * tree.c (first_rtl_op, has_cleanups): Handle GOTO_SUBROUTINE_EXPR.
2298
2299 Tue Mar 23 09:00:39 1999  Nick Clifton  <nickc@cygnus.com>
2300
2301         * config/arm/riscix1.h (SUBTARGET_SWITCHES): Add doc string.
2302         * config/arm/riscix1-1.h (SUBTARGET_SWITCHES): Add doc string.
2303
2304 Tue Mar 23 07:50:20 1999  Mark Mitchell  <mark@codesourcery.com>
2305
2306         * function.c: Include hash.h.
2307         (insns_for_mem_entry): New struct.
2308         (put_reg_into_stack): Take an optional hash-table mapping MEMs to
2309         the INSNs that use them.
2310         (fixup_var_refs): Likewise.
2311         (put_addressof_into_stack): Likewise.
2312         (purge_addressof_1): Likewise.  Keep the hash-table up to date if
2313         we add new instructions.
2314         (fixup_var_refs_insns): Use it to avoid searching the entire
2315         instruction chain.
2316         (insns_for_mem_newfunc): New function.
2317         (insns_for_mem_comp): Likewise.
2318         (insns_for_mem_walk): Likewise.
2319         (compute_insns_for_mem): Likewise.
2320         (pop_function_context_from): Pass NULL for the hash-table.
2321         (put_var_into_stack): Likewise.
2322         (gen_mem_addressof): Likewise.
2323         (flush_addressof): Likewise.
2324         (purge_addressof): Call compute_insns_for_mem to pre-compute the
2325         hash table.
2326         * Makefile.in (OBJS): Include hash.o.
2327         (function.o): Depend on hash.h.
2328         
2329 Tue Mar 23 00:39:14 1999  Jeffrey A Law  (law@cygnus.com)
2330
2331         * i386/openbsd.h (TARGET_DEFAULT): Use symbolic names instead of
2332         numbers.
2333         * i386/netbsd.h, i386/freebsd.h: Likewise.
2334
2335         * crtstuff.c: Use ANSI function definitions.  Fix minor whitespace
2336         problems.
2337
2338         * i386/openbsd.h (TARGET_DEFAULT): Define.
2339         * configure.in: Do not set TARGET_CPU_DEFAULT for x86 OpenBSD
2340         configurations.
2341         * configure: Rebuilt.
2342
2343 Tue Mar 23 00:39:10 1999  John Wehle  (john@feith.com)
2344
2345         * i386/freebsd.h (TARGET_DEFAULT): Define instead
2346         of TARGET_CPU_DEFAULT.
2347         * i386/netbsd.h (TARGET_DEFAULT): Likewise.
2348
2349 Mon Mar 22 23:52:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
2350                           Donn Terry  <donn@interix.com>
2351
2352         * sdbout.c (syms.h): Don't include on Interix.
2353         * toplev.c (main): No sbrk on Interix.
2354
2355         * configure.in: Add i386-pc-interix support.
2356         * configure: Regenerate.
2357         * fixinc.interix: New file.
2358         * config/interix.h: New file.
2359         * config/x-interix: New file.
2360         * config/xm-interix.h: New file.
2361         * i386/interix.h: New file.
2362         * i386/interix.c: New file.
2363         * i386/t-interix: New file.
2364
2365 Mon Mar 22 23:41:49 1999  Jeffrey A Law  (law@cygnus.com)
2366
2367         * i386.h (PREFERRED_STACK_BOUNDARY): Define.
2368
2369 Mon Mar 22 23:41:31 1999  John Wehle  (john@feith.com)
2370
2371         * i386.c (ix86_compute_frame_size): New function.
2372         (ix86_prologue, ix86_epilogue): Use it.
2373         * i386.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2374         * reload1.c: Provide default for PREFERRED_STACK_BOUNDARY.
2375
2376 Mon Mar 22 18:06:59 1999  Jim Wilson  <wilson@cygnus.com>
2377
2378         * mips/mips.h (TARGET_SWITCHES, TARGET_OPTIONS): Add option doc
2379         strings.
2380         * mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Likewise.
2381
2382 Mon Mar 22 16:18:27 1999  Nick Clifton  <nickc@cygnus.com>
2383
2384         * config/arm/elf.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother
2385         passing ATTRIBUTES to arm_valid_machine_decl_attribute.
2386         
2387         * config/arm/coff.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother
2388         passing ATTRIBUTES to arm_valid_machine_decl_attribute.
2389         
2390         * config/arm/arm.h (DEFAULT_RTX_COSTS): Do not bother passing
2391         OUTER_CODE to arm_rtx_costs - it is not used.
2392         (arm_compare_fp): Delete declaration.
2393         (FINAL_PRESCAN_INSN): Do not bother passing OPVEC or NOPERANDS to
2394         arm_final_prescan_insn - they are not used.
2395         (const_ok_for_op): Remove prototype.
2396         (arm_rtx_costs): Fix prototype.
2397         (arm_valid_machine_decl_attribute): Fix prototype.
2398         (final_prescan_insn): Fix prototype.
2399
2400         * config/arm/arm.md: Remove references to arm_compare_fp.
2401
2402         * config/arm/arm.c (arm_compare_fp): Delete.
2403         (const_ok_for_op): Make function static.  Add prototype.  Remove
2404         mode parameter - it is unused.
2405         (arm_rtx_costs): Remove outer_code parameter.
2406         (reload_memory_operand): Declare mode parameter unused.
2407         (power_of_two_operand): Declare mode parameter unused.
2408         (equality_operator): Declare mode parameter unused.
2409         (load_multiple_operation): Declare mode parameter unused.
2410         (store_multiple_operation): Declare mode parameter unused.
2411         (multi_register_push): Declare mode parameter unused.
2412         (arm_valid_machine_decl_attribute): Remove attributes parameter -
2413         it is unused.
2414         (select_dominance_cc_mode): Remove op parameter - it is unused.
2415         (gen_compare_reg): Remove fp parameter - it is unused.
2416         (final_prescan_insn): Remove opvec and noperands parameters - they
2417         are unused.
2418         
2419 Mon Mar 22 14:35:28 1999  Nick Clifton  <nickc@cygnus.com>
2420
2421         * tm.texi (MD_SCHED_INIT): Add missing closing parenthesis.
2422
2423 Mon Mar 22 22:24:30 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2424
2425         * reload1.c (reload_as_needed): Set reload_is_output_reload /
2426         reload_has_output_reload for auto_inc expressions that could be
2427         reloaded.  Call forget_old_reloads for REG_INC notes.
2428
2429 Mon Mar 22 21:51:57 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2430
2431         * cse.c (cse_insn): Don't change the result register of a libcall.
2432
2433 Mon Mar 22 21:08:59 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2434
2435         * rtl.h (shallow_copy_rtx): Declare.
2436         * rtl.c (shallow_copy_rtx): New function.
2437         * reload.c (find_reloads_toplev): Use shallow_copy_rtx instead of
2438         copy_rtx.
2439
2440 Mon Mar 22 10:44:33 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
2441
2442         * config/h8300/h8300.md (adjust_length): New attribute.
2443         (modhi3+1, andsi3+1, iorsi3+1, extzv+1, extzv+2): Change insn
2444         default value of attribute "adjust_length" onto "no".
2445
2446         * config/h8300/h8300.c (h8300_adjust_insn_length): Adjust
2447         length only if the attribute "adjust_length" value is "yes".
2448         Use 0 if the shift is negative.
2449
2450         * final.c (shorten_branches): Check insn length after its
2451         adjusting.
2452
2453 Sun Mar 21 17:33:48 1999  Jeffrey A Law  (law@cygnus.com)
2454
2455         * i860.h (TARGET_SWITCHES): Add documentation for default case.
2456         * i860/paragon.h (TARGET_SWITCHES): Add documentation for default case.
2457         * i370.h (TARGET_SWITCHES): Add documentation for default case.
2458         * fx80.h (TARGET_SWITCHES): Add documentation for default case.
2459         * elxsi.h (TARGET_SWITCHES): Add documentation for default case.
2460         * clipper.h (TARGET_SWITCHES): Add documentation for default case.
2461         * 1750a.h (TARGET_SWITCHES): Add documentation for default case.
2462         * pa.h (TARGET_SWITCHES): Add documentation for default case.
2463         (TARGET_OPTIONS): Likewise for default case.
2464         * mn10300.h (TARGET_SWITCHES): Add documentation for default case.
2465         * h8300.h (TARGET_SWITCHES): Add documentation for default case.
2466
2467         * gcse.c (dump_hash_table): Fix whitespace in declaration.
2468         (compute_transpout): Renamed from pre_compute_transpout.
2469         (compute_pre_*): Deleted.
2470         (pre_expr_reaches_here_p): New argument, CHECK_PRE_COMP.  All
2471         callers changed.
2472         (insert_insn_end_bb): Renamed from pre_insert_insn.
2473         (pre_*): Delete unused variables.  Only leave local properties and
2474         global redundant/optimal computation points.
2475         (alloc_pre_mem, free_pre_mem): Corresponding changes.
2476         (compute_pre_data): Simplify and call pre_lcm to run the lazy
2477         code motion dataflow analysis.
2478         (pre_insert, pre_insert_copies, pre_delete): Revamp to use LCM
2479         based redundant and optimal computation points.
2480
2481         * basic-block.h (pre_lcm, pre_rev_lcm): Declare.
2482
2483         * toplev.c (main): A debug option without a level defaults to
2484         level 2.
2485
2486 Sun Mar 21 12:13:01 1999  Nick Clifton  <nickc@cygnus.com>
2487
2488         * flow.c (can_delete_label_p): Do not allow user specified
2489         labels to be deleted.
2490         * dwarf2out.c (gen_label_die): Generate addresses for deleted
2491         (programmer specified) labels.
2492         * dwarfout.c (output_label_die): Generate addresses for deleted
2493         (programmer specified) labels.
2494
2495 1999-03-21  Manfred Hollstein  <manfred@s-direktnet.de>
2496
2497         * Makefile.in (xgcc$(exeext)): Add intl.o to list of files to be
2498         linked with.
2499
2500 Sun Mar 21 01:15:03 1999  Jeff Law  (law@cygnus.com)
2501
2502         * version.c: Bump for snapshot.
2503
2504 Sat Mar 20 22:26:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2505
2506         * sparc.h (TARGET_SWITCHES): Add null description to default case.
2507
2508 Sat Mar 20 21:46:06 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2509
2510         * c-lex.c (yylex): Remove unused variable `bytes'.
2511
2512         * flow.c (print_rtl_with_bb): Cast the return value of alloca.
2513
2514         * function.c (assign_parms): Wrap variable `varargs_setup' in
2515         macro SETUP_INCOMING_VARARGS.
2516         (thread_prologue_and_epilogue_insns): Mark parameter `f' with
2517         ATTRIBUTE_UNUSED.
2518
2519         * local-alloc.c (no_equiv): Likewise for parameter `store'.
2520
2521         * sched.c (schedule_insns): Remove unused variables `insn' and `next'.
2522
2523         * tlink.c (symbol_hash_newfunc, symbol_hash_lookup,
2524         file_hash_newfunc, file_hash_lookup, demangled_hash_newfunc,
2525         demangled_hash_lookup, symbol_push, symbol_pop, file_push,
2526         file_pop, tlink_init, tlink_execute, frob_extension,
2527         obstack_fgets, tfgets, pfgets, freadsym, read_repo_file,
2528         maybe_tweak, recompile_files, read_repo_files,
2529         demangle_new_symbols, scan_linker_output): Add static prototype.
2530
2531         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc):
2532         Make the third argument a `hash_table_key'.
2533
2534         * toplev.c (debug_start_source_file): Mark parameter `filename'
2535         with ATTRIBUTE_UNUSED.
2536
2537 Sun Mar 21 02:28:21 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2538
2539         * tm.texi (Varargs): Don't split argument of @item across lines.
2540
2541         * invoke.texi: Fix use of @item vs @itemx.
2542
2543 Sun Mar 21 09:59:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2544
2545         * config/c4x/c4x.h (TARGET_SWITCHES): Add null description to
2546         default case.
2547
2548 Sat Mar 20 23:33:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2549
2550         * loop.c (check_dbra_loop): Fix debug message.
2551
2552 Sat Mar 20 15:54:35 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2553
2554         * config/c4x/c4x.md (decrement_and_branch_on_count): Emit rptb_end
2555         pattern instead of decrement_and_branch_until_zero pattern.
2556
2557 Sat Mar 20 11:39:58 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2558
2559         * config/c4x/c4x.h (TARGET_SWITCHES): Add documentation.
2560         * config/c4x/c4x.h (TARGET_OPTIONS): Add documentation.
2561
2562 Fri Mar 19 23:26:29 1999  Martin von Löwis  <loewis@informatik.hu-berlin.de>
2563
2564         * expr.c (expand_expr): Handle ERROR_MARK much earlier.
2565
2566 Fri Mar 19 15:28:38 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2567
2568         * cccp.c (create_definition): Cast to U_CHAR* when assigning to one.
2569
2570         * cppfiles.c (read_and_prescan): Likewise.
2571         Start a #define in column 0.
2572
2573         * cpplib.c (cpp_define): Cast to U_CHAR* when assigning to one.
2574         (cpp_push_buffer): Likewise for cpp_buffer*.
2575         (do_include): Change the type of `fbeg' and `fend' to unsigned char*.
2576         (do_endif): Cast to char* when assigning to one.
2577         (do_assert): Likewise.
2578         (do_unassert): Likewise.
2579         (cpp_read_check_assertion): Change the type of `name' to U_CHAR*.
2580         Don't do unnecessary cast to char* anymore.
2581
2582         * genrecog.c (make_insn_sequence): Cast to char** when assigning
2583         to one.  Cast the first argument of bzero to PTR.
2584
2585         * loop.c (strength_reduce): Remove unused variable `note'.
2586
2587         * reload1.c (new_insn_chain): Cast to struct insn_chain* when
2588         assigning to one.
2589
2590         * rtl.c (copy_rtx): Use memcpy instead of bcopy.
2591
2592 Fri Mar 19 11:19:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2593
2594         * calls.c (initialize_argument_information): Mark parameters
2595         `num_actuals' and `n_named_args' with ATTRIBUTE_UNUSED.
2596
2597         * dbxout.c (dbxout_start_new_source_file): Likewise for parameter
2598         `filename'.
2599         (dbxout_finish): Likewise for parameters `file' and `filename'.
2600         (dbxout_prepare_symbol): Likewise for parameter `decl'.
2601         (dbxout_begin_function): Likewise.
2602
2603         * explow.c (hard_function_value): Likewise for parameter `func'.
2604
2605         * function.c (locate_and_pad_parm): Likewise for parameter `fndecl'.
2606         
2607         * expmed.c (expand_divmod): Omit unused argument to `expand_abs'.
2608         * expr.c (expand_expr): Likewise.
2609         * expr.h (expand_abs): Delete unused argument from prototype.
2610         * optabs.c (expand_abs): Remove unused parameter `unsignedp'.
2611
2612         * sdbout.c (sdbout_init): Mark parameter `syms' with ATTRIBUTE_UNUSED.
2613         (sdbout_end_block): Likewise for parameter `n'.
2614         
2615         * toplev.c (debug_define): Likewise for parameters `lineno' and
2616         `buffer'.
2617         (debug_undef): Likewise.
2618         
2619         * varasm.c (named_section): Likewise for parameter 'reloc'.
2620         (assemble_external): Likewise for parameter `decl'.
2621         (assemble_alias): Likewise for parameter `target'.
2622         
2623 Fri Mar 19 01:54:30 1999  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
2624
2625         * toplev.c (read_integral_parameter): Constify.  Better control of
2626         error messages.
2627         (main): Use read_integral_parameter to set optimize, id_clash_len,
2628         larger_than_size, and the debugging level.
2629         * toplev.h (read_integral_parameter): Update prototype.
2630
2631 Fri Mar 19 01:42:05 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
2632
2633         * system.h: Use putc_unlocked, fputc_unlocked, and
2634         fputs_unlocked only if putc_unlocked has a prototype already.
2635         Prototype fputs_unlocked if necessary.
2636         * configure.in: Check for prototypes of putc_unlocked and
2637         fputs_unlocked.
2638         * acconfig.h: Updated.
2639         * config.in, configure: Rebuilt.
2640
2641 Fri Mar 19 02:45:12 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
2642
2643         * Makefile.in (INTL_TARGETS): New macro.
2644         ($(INTL_TARGETS)): Depend on generated sources; drop dependencies
2645         on cp/parse.c and objc/objc-parse.c.
2646         ($(srcdir)/cp/parse.c): Move to cp/Make-lang.in.
2647         * objc/Make-lang.in ($(INTL_TARGETS)): Depend on objc/objc-parse.c.
2648
2649 Thu Mar 18 22:28:53 1999  Jeffrey A Law  (law@cygnus.com)
2650
2651         * i860.h (TARGET_SWITCHES): Add documentation.
2652         * i860/paragon.h (TARGET_SWITCHES): Add documentation.
2653         * i370.h (TARGET_SWITCHES): Add documentation.
2654         * fx80.h (TARGET_SWITCHES): Add documentation.
2655         * elxsi.h (TARGET_SWITCHES): Add documentation.
2656         * clipper.h (TARGET_SWITCHES): Add documentation.
2657         * 1750a.h (TARGET_SWITCHES): Add documentation.
2658         * pa.h (TARGET_SWITCHES): Add documentation.
2659         (TARGET_OPTIONS): Likewise.
2660         * mn10300.h (TARGET_SWITCHES): Add documentation.
2661         * h8300.h (TARGET_SWITCHES): Add documentation.
2662
2663 Thu Mar 18 15:58:26 1999  Nick Clifton  <nickc@cygnus.com>
2664
2665         * loop.c (strength_reduce): Do not perform pseudo replacements
2666         if the loop contains volatile memory references.
2667
2668 Thu Mar 18 19:09:50 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2669
2670         * reload.c (find_reloads_toplev): When processing X recursively,
2671         don't alter it destructively except by filling in constants.
2672
2673 Thu Mar 18 10:14:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2674
2675         * cccp.c (default_include): Initialize structure members.
2676         (pass_thru_directive): Change the type of 'keyword_length' to int.
2677         (main): Cast `bindtextdomain' and `textdomain' to (void).
2678
2679         * collect2.c (main): Likewise.
2680
2681         * cppmain.c (main): Likewise.
2682
2683         * gcc.c (main): Likewise.
2684
2685         * gcov.c (main): Likewise.
2686
2687         * protoize.c (main): Likewise.
2688
2689         * toplev.c (main): Likewise.
2690
2691 1999-03-18  Gavin Romig-Koch  <gavin@cygnus.com>
2692
2693         * config/mips/mips.c (mips_explicit_type_size_string): Correct
2694         its type.
2695
2696 Thu Mar 18 01:24:25 1999  Jeffrey A Law  (law@cygnus.com)
2697
2698         * configure.in: Use "exit 1", not "exit (1)".
2699         * configure: Rebuilt.
2700
2701 Wed Mar 17 23:17:42 1999  Mark Kettenis  <kettenis@gnu.org>
2702
2703         * config/t-gnu (SYSTEM_HEADER_DIR): New variable.  Set to
2704         `/include' in order to find the system's limits.h.
2705
2706 Wed Mar 17 23:00:18 1999  Robert Lipe  <robertlipe@usa.net>
2707
2708         * fixinc/fixincl.c: Include auto-host.h instead of config.h.
2709         * fixinc/procopen.c: Likewise.
2710         * fixinc/regex.c: Likewise.
2711         * fixinc/server.c: Likewise.
2712
2713 Wed Mar 17 22:46:13 1999  Mark Elbrecht  <snowball3@usa.net.
2714
2715         * config/i386/go32.h: Delete.
2716         * config/i386/djgpp.h: New. Renamed from go32.h.
2717         Added -DDJGPP=2 to CPP_PREDEFINES.
2718         * config/i386/go32-rtems.h: Delete.
2719         * config/i386/djgpp-rtems.h: New. Renamed from go32-rtems.h.
2720         Added -DDJGPP=2 to CPP_PREDEFINES.
2721         * config/i386/xm-go32.h: Delete.
2722         * config/i386/xm-djgpp.h: New. Renamed from xm-go32.h.
2723         * config/i386/x-go32: Delete.
2724         * config/i386/x-djgpp: New. Renamed from x-go32.
2725         * config/i386/t-go32: Delete.
2726         * config/i386/t-djgpp: New. Renamed from t-go32.
2727         * configure.in(pc-msdosdjgpp): Set xm_file to i386/xm-djgpp.h.
2728         Set tm_file to i386/djgpp.h. Set tmake_file to i386/t-djgpp.
2729         Set xmake_file to i386/x-djgpp.
2730         (*-go32-msdos, *-go32*): Remove entries.  Warn that GO32/DJGPP V1.X
2731         is now unsupported and *-pc-msdosdjgpp for DJGPP V2.X should be
2732         used instead.
2733         * configure: Rebuilt.
2734
2735         * gcc.c (process_command): Dump link_command_spec too.
2736
2737 Wed Mar 17 20:38:08 1999  Jerry Quinn  <jquinn@nortelnetworks.com>
2738                           Jeff Law  <law@cygnus.com>
2739
2740         * pa.md: Add real PA8000 scheduling information.
2741
2742         * pa.h (processor_type): Add PROCESSOR_8000 symbol.
2743         (ISSUE_RATE): Revamp, including PA8000 support.
2744         * pa.c (override_options): Add 8000 as -mschedule= option.
2745         Do not call strcmp if pa_cpu_string is null.
2746         * pa.md (attr cpu): Add 8000.
2747         * invoke.texi: Add documentation for PA8000 scheduling.
2748         
2749 Wed Mar 17 18:20:24 1999  David S. Miller  <davem@redhat.com>
2750
2751         * config/sparc/sparc.h (TARGET_SWITCHES, TARGET_OPTIONS):
2752         Add descriptions.
2753         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
2754         * config/sparc/splet.h (SUBTARGET_SWITCHES): Likewise.
2755
2756 Wed Mar 17 14:51:19 1999  Richard Henderson  <rth@cygnus.com>
2757
2758         * flow.c (compute_immediate_dominators): New function.
2759         * basic-block.h (compute_immediate_dominators): Declare it.
2760
2761         * alpha.h (HARD_REGNO_MODE_OK): Allow only 4 and 8 byte unit modes
2762         in FP regs.
2763         (MODES_TIEABLE_P): Define asymmetricly wrt modes illegal in FP regs.
2764
2765 Wed Mar 17 14:41:41 1999  Nick Clifton  <nickc@cygnus.com>
2766
2767         * config/arm/aout.h (ASM_GENERATE_INTERNAL_LABEL): Fix compile
2768         time warning.
2769         * config/arm/arm.md: Fix various compile time warnings.
2770         * config/arm/arm.h: Fix various compile time warnings.  Add
2771         function prototypes.
2772         * config/arm/arm.c: Fix various compile time warnings.
2773         (arm_override_options): Reorganize to separate tuning from
2774         targetting.
2775         (bit_count): New function: Return a count of the number of bits
2776         set in a word.
2777
2778 Wed Mar 17 21:29:12 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2779
2780         * reload1.c (eliminate_regs): Don't keep REG_DEAD notes around for
2781         things that were eliminated.
2782
2783 Wed Mar 17 12:16:26 1999  Richard Henderson  <rth@cygnus.com>
2784
2785         * function.c (fixup_var_refs_1): First try moving the expression
2786         directly into a register.  Don't separate cc0 setter and user.
2787
2788 Wed Mar 17 11:20:29 1999  Dave Brolley  <brolley@cygnus.com>
2789
2790         * cppfiles.c (PIPE_BUF): #define PIPE_BUF if not defined already.
2791
2792 Wed Mar 17 09:25:06 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2793
2794         * c-lex.c: Don't include setjmp.h.
2795         (parse_float): New static function.
2796         (pf_args): New struct.
2797         (yylex): Use them in call to `do_float_handler'.
2798
2799 1999-03-16  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2800
2801         * cexp.y (yyerror): Call verror to get a useful error message.
2802         * cexp.c: Rebuilt.
2803
2804         * .gdbinit: Move command to put breakpoint at abort to end of file
2805         so that gdb does not bail out early.
2806
2807 Tue Mar 16 15:30:19 1999  Nick Clifton  <nickc@cygnus.com>
2808
2809         * rtl.h: Rename prototype for free_bb_memory to free_bb_mem.
2810
2811 Tue Mar 16 23:40:09 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2812
2813         * sh.md (movsi_i): Move t/r alternative after r/rI alternative.
2814
2815 Tue Mar 16 13:44:50 1999  Jim Wilson  <wilson@cygnus.com>
2816
2817         * mn10200/mn10200.md (addsi3, subsi3, ashlsi3, lshrsi3, ashrsi3):
2818         Delete emit_library_call_value declaration.
2819
2820 1999-03-16  Zack Weinberg  <zack@rabi.columbia.edu>
2821
2822         * cppfiles.c (read_and_prescan): Map backslash-newline to '\r'
2823         (which cannot otherwise appear in the processed buffer) and
2824         move it out of tokens that it appears in the middle of.
2825         Improve performance.
2826         (find_position): New function.
2827
2828         * cpplib.c: \r (one character) indicates backslash
2829         newline, not \\\n (two characters).  It cannot appear in the
2830         middle of a token.  Call CPP_BUMP_LINE (pfile) whenever
2831         parsing moves past \n or \r.  Increment pfile->lineno whenever
2832         a \n is placed into token_buffer.  Only one mark can exist at
2833         a time, and CPP_BUMP_LINE must not be used while it is
2834         active.  It is automatically cleared by cpp_pop_buffer and
2835         parse_goto_mark.  \r is not in is_hor_space or is_space.
2836
2837         (NEWLINE_FIX, NEWLINE_FIX1, adjust_position,
2838         update_position, count_newlines, parse_move_mark): Removed.
2839         (parse_string, copy_comment): New functions.
2840         (parse_name): Returns void.
2841         (parse_set_mark, parse_clear_mark, parse_goto_mark): Take only
2842         one argument, a cpp_reader *.  Change for new marking scheme.
2843         (skip_comment): Handle CHILL line comments too.  Second
2844         argument is now first character of comment marker; all callers
2845         changed.  Issue error for unterminated block comment here.
2846         (cpp_skip_hspace): Recognize CHILL comments.
2847         (copy_rest_of_line): Likewise.  Call skip_comment and
2848         parse_string directly, don't go through cpp_get_token.  Emit
2849         "/**/" for block comments if -traditional (create_definition
2850         needs this).
2851         (do_define): Don't play with put_out_comments.
2852         (cpp_push_buffer): Initialize ->mark to -1.
2853         (cpp_buf_line_and_col): Just read out the values in the buffer
2854         structure.
2855         (output_line_command): Use cpp_buf_line_and_col.  Fix
2856         formatting.  Remove stale code.
2857         (cpp_get_token): Break out string parsing code to
2858         parse_string.  Use skip_comment for CHILL comments too.  Use
2859         copy_comment for put_out_comments instead of dinking with
2860         marks.  Remove stale code.  Don't call output_line_command
2861         unless it's necessary.
2862
2863         * cpplib.h (parse_marker): Removed.
2864         (struct cpp_buffer): Line_base is now a unsigned char *; add
2865         `mark' [long], remove `marks' [struct parse_marker *].
2866         (parse_set_mark, parse_clear_mark, parse_goto_mark): Update
2867         prototypes.
2868         (CPP_BUMP_LINE, CPP_BUMP_BUFFER_LINE): New macros.
2869         * cppinit.c (is_hor_space, is_space): '\r' is not considered
2870         whitespace.
2871         * cppexp.c (cpp_parse_expression): Use cpp_skip_hspace, not
2872         SKIP_WHITE_SPACE.
2873         * cpphash.c (macarg): Disable line commands while expanding.
2874
2875 Tue Mar 16 11:30:19 1999  Gavin Romig-Koch  <gavin@cygnus.com>
2876
2877         * c-lex.c (yylex) : Remove warning for integer literals being
2878         larger than the largest target int.  Add warning for integer
2879         literal being larger than than its chosen type.
2880
2881 Tue Mar 16 10:53:17 1999  Gavin Romig-Koch  <gavin@cygnus.com>
2882
2883         * invoke.texi: Add -mlong32 documentation.
2884         * config/mips/mips.h (mips_explicit_type_size_string): New.
2885         (TARGET_SWITCHES): Add 'long32'.
2886         (TARGET_OPTIONS): Add 'explicit-type-size'.
2887         (CC1_SPECS): Set -mexplicit-type-size.
2888         (LONG_MAX_SPEC): Change a use of 'no-long64' to 'long32'.
2889         * config/mips/abi64.h (LONG_MAX_SPEC): Same.  Add 'mabi=32'.
2890         * config/mips/mips.c (mips_explicit_type_size_string): New.
2891         (override_options): Use it.
2892         * config/mips/osfrose.h (CC1_SPECS): Set -mexplicit-type-size.
2893
2894         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC):
2895         Pointer size now depends on both size longs and size of GP
2896         registers.
2897
2898 Tue Mar 16 10:22:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
2899
2900         * config/mips/iris.h (CTORS_SECTION_ASM_OP,DTORS_SECTION_ASM_OP,
2901         dtors_section): Use Pmode == DImode rather than TARGET_LONG64.
2902         * config/mips/mips.c (override_options): Allow -mlong64 and
2903         -mint64 with -mips2 or less.
2904         * config/mips/mips.h (MASK_LONG64): Fix comment.
2905         (POINTER_SIZE): Use Pmode == DImode rather than TARGET_LONG64.
2906         (Pmode): Make Pmode the smaller of longs or gp registers.
2907         * invoke.texi: Note the new size for pointers.
2908
2909 Mon Mar 15 22:45:25 1999  David Edelsohn  <edelsohn@gnu.org>
2910
2911         * rs6000.h (ASM_OUTPUT_{DOUBLE,FLOAT}): Always generate IEEE 754
2912         bit-pattern directly.
2913         (ASM_OUTPUT_REG_{PUSH,POP}): Delete.
2914         * rs6000.c (first_reg_to_save): If profiling and context needed,
2915         allocate a reg to save static chain for all ABIs.  For AIX
2916         profiling, calculate parameter registers to save based on need.
2917         (output_function_profiler): Save and restore static chain around
2918         profile call for all ABIs.
2919
2920 1999-03-15  Zack Weinberg  <zack@rabi.columbia.edu>
2921
2922         * cppinit.c: Instead of one pending list, keep separate lists
2923         for each category of pending option: -D/-U, -A, -include,
2924         -imacros.  Move the four partial include-path lists into the
2925         pending block.  Use head and tail pointers so we don't ever
2926         have to reverse the lists.
2927
2928         (cpp_start_read): Break out blocks of code to their own
2929         functions: install_predefs and initialize_dependency_output.
2930         Use path_include for C_INCLUDE_PATH and friends as well as
2931         CPATH.  Remove include_defaults gunk.  Warn about the
2932         combination of -lang-chill and -trigraphs.  Optimize string
2933         bashing.  Walk each pending list once, deallocating as we go.
2934
2935         (append_include_chain): Brought over from cppfiles.c.  Mark
2936         dirs as system include dirs if and only if appending to
2937         system include path. If opts->verbose, print a notice when a
2938         dir is dropped from the include path because it doesn't
2939         exist.  Fix memory leak: this function is not supposed to copy
2940         its DIR argument.
2941
2942         (nreverse_pending, push_pending): Removed.
2943         (APPEND): New macro for adding to pending lists.
2944         (path_include): Can now add to any partial include path.
2945         (base_name): Bring over from cccp.c.
2946         (cpp_options_init): Allocate the pending block.
2947         (cpp_handle_option): Add --version.  Exit after --help.  Fix
2948         formatting.  Order -ifoo options by frequency of usage.
2949         (install_predefs): New function, simplified version of code
2950         that was in cpp_start_read.
2951         (initialize_dependency_output): Likewise.  Understand OBJECT_SUFFIX.
2952
2953         * cppfiles.c (simplify_pathname): Export.
2954         (merge_include_chains): Don't nreverse the lists.  If
2955         opts->verbose, print a notice when a duplicate dir is detected
2956         and dropped from the include path.
2957         (finclude): Fix excessive cleverness in setting
2958         fp->system_header_p.
2959         (actual_directory): Set x->sysp from
2960         CPP_BUFFER (pfile)->system_header_p so that one system header
2961         may include another with "".
2962         (deps_output): Fix double adjustment of deps_size which would
2963         cause all dependencies after the first two lines to be lost.
2964
2965         * cpplib.c (cpp_unassert): New function.
2966         * cpplib.h: Lay out struct cpp_pending here.  Adjust
2967         prototypes.  Add include_prefix_len to struct cpp_options.
2968
2969 Mon Mar 15 16:01:52 1999  Jim Wilson  <wilson@cygnus.com>
2970
2971         * config/misp/mips.h (REGISTER_MOVE_COST): Make the cost of moving
2972         from HI/LO/HILO/MD into general registers the same as for one
2973         of moving general registers to HI/LO/HILO/MD.
2974
2975 Mon Mar 15 12:39:38 1999  Nick Clifton  <nickc@cygnus.com>
2976
2977         * config/m32r/m32r.c (init_idents): New function.  Initialize
2978         static tree nodes for m32r specific attribute identifiers.  Remove
2979         leading and trailing double underscores from the attribute names.
2980         (m32r_valid_machine_decl_attribute): Call init_idents.
2981         (m32r_encode_section_info): Call init_idents.
2982
2983 Mon Mar 15 10:20:20 1999  Mark Mitchell  <mark@markmitchell.com>
2984
2985         * reload.c (find_reloads): Add a REG_LABEL note if we substitute a
2986         LABEL_REF for something else.
2987
2988 Mon Mar 15 08:24:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2989
2990         * fold-const.c (exact_real_inverse): Move variable `float_error'
2991         into the scope where it is used.
2992         (const_binop_1): New static function.
2993         (cb_args): New struct.
2994         (const_binop): Use them in call to `do_float_handler'.
2995         (fold_convert_1): New static function.
2996         (fc_args): New struct.
2997         (fold_convert): Use them in call to `do_float_handler'.
2998
2999 Mon Mar 15 22:50:18 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3000
3001         * rtlanal.c (auto_inc_p): New function.
3002         * rtl.h (auto_inc_p): Prototype it.
3003         * reload1.c (add_auto_inc_notes): New function.
3004         (reload): Strip REG_INC notes and call add_auto_inc_notes
3005         for each insn to restore them correctly.
3006
3007 1999-03-15  Manfred Hollstein  <manfred@s-direktnet.de>
3008
3009         * fixinc/Makefile.in (procopen.o): List the actual
3010         dependencies.
3011
3012 Sun Mar 14 16:22:10 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3013
3014         * cse.c (check_fold_consts): New static function.
3015         (cfc_args): New struct.
3016         (simplify_relational_operation): Use them in call to
3017         `do_float_handler'.
3018         
3019         * toplev.c (do_float_handler): New function to wrap calls to
3020         setjmp/set_float_handler.
3021
3022         * toplev.h (do_float_handler): Add extern prototype.
3023
3024         * tree.c (build_real_from_int_cst_1): New static function.
3025         (brfic_args): New struct.
3026         (build_real_from_int_cst): Use them in call to
3027         `do_float_handler'.
3028
3029 Sun Mar 14 01:15:06 1999  Jeff Law  (law@cygnus.com)
3030
3031         * version.c: Bump for snapshot.
3032
3033 Sat Mar 13 17:37:18 1999  Richard Henderson  <rth@cygnus.com>
3034
3035         * haifa-sched.c (sched_analyze_1): Only clear reg_last_uses on a SET.
3036
3037 Sat Mar 13 11:36:16 1999  Richard Earnshaw  (rearnsha@arm.com)
3038
3039         * arm.c (arm_split_constant): Don't try to force a constant to
3040         memory after arm_reorg has run.
3041         (after_arm_reorg): New static variable.
3042         (arm_reorg): Set it.
3043         (output_func_epilogue): Clear it.
3044
3045 Fri Mar 12 20:26:32 1999  David Edelsohn  <edelsohn@gnu.org>
3046
3047         * configure.in ({rs6000,powerpc}-ibm-aix*): Set float_format to none.
3048         * configure: Rebuilt.
3049
3050 Fri Mar 12 20:45:30 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3051
3052         * unroll.c (loop_iterations): Don't return a final value for EQ
3053         comparison loops.
3054
3055 Fri Mar 12 12:35:01 1999  Jim Wilson  <wilson@cygnus.com>
3056
3057         * reload1.c (calculate_needs_all_insns): When ignore equivalence
3058         setting insn, clear need_elim, need_reload, and need_operand_change.
3059
3060 Fri Mar 12 07:54:43 1999  Bruce Korb  <korb@datadesign.com>
3061
3062         * fixinc/fixinc.*: Some changes from the fixincl-branch
3063         were not applied (??!!).  Corrected.
3064
3065         * fixinc/Makefile.in: Same thing.
3066
3067 Fri Mar 12 00:51:43 1999  Jeffrey A Law  (law@cygnus.com)
3068
3069         * expr.c (expand_expr): Allow a CALL_EXPR with a mode wider than
3070         MAX_INTEGER_COMPUTATION_MODE.
3071
3072 Thu Mar 11 14:00:58 1999  Richard Henderson  <rth@cygnus.com>
3073
3074         * alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs.
3075         (MODES_TIEABLE_P): Update.
3076
3077         * alpha.md (ev5_e0): Conflict loads and stores.
3078
3079 Thu Mar 11 13:55:52 1999  Richard Henderson  <rth@cygnus.com>
3080
3081         * machmode.h (smallest_mode_for_size): Prototype.
3082         * stor-layout.c (smallest_mode_for_size): Remove static.
3083
3084 Thu Mar 11 21:25:59 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3085
3086         * loop.c (strength_reduce): Don't do biv increment -> DEST_REG giv
3087         conversion if we don't know the lifetime.
3088
3089 Thu Mar 11 20:37:59 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3090
3091         * reload.1c (delete_address_reloads_1): Check for reloads of
3092         CURRENT_INSN even if it sets DST.
3093
3094 Thu Mar 11 10:29:50 1999  Jason Merrill  <jason@yorick.cygnus.com>
3095
3096         * dwarf2out.c (add_AT_lbl_offset): Rename from add_AT_section_offset.
3097         (print_die, size_of_die, value_format, output_die): Adjust.
3098
3099 Thu Mar 11 10:27:42 1999  Robert Lipe  <robertlipe@usa.net>
3100
3101         * dwarf2out.c (TEXT_SECTION_LABEL, DEBUG_LINE_SECTION_LABEL,
3102         DEBUG_INFO_SECTION_LABEL, ABBREV_SECTION_LABEL,
3103         text_section_label, debug_line_section_label,
3104         debug_info_section_label, abbrev_section_label): New.
3105         (output_compilation_unit_header): Emit label associated
3106         with section instead of section name itself.
3107         (out_pubnames, output_aranges, output_line_info,
3108         dwarf2out_finish): Likewise.
3109         (dwarf2out_init): Build internal label names for sections
3110         from static labels.
3111
3112 Thu Mar 11 17:28:32 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3113
3114         * sh.md (mulsi3): End mul.l sequence with a no-op move.
3115
3116 Thu Mar 11 08:52:02 1999  Bruce Korb  <korb@datadesign.com>
3117
3118         * Makefile.in: Activated fixinc/mkfixinc.sh.
3119         * configure.in: Activated fixinc/mkfixinc.sh.
3120
3121 Thu Mar 11 01:38:02 1999  Mumit Khan  <khan@xraylith.wisc.edu>
3122
3123         * cppfiles.c (INO_T_EQ): Handle UWIN.
3124
3125         * c-common.c (decl_attributes): Flag unrecognized attribute
3126         functions as warnings instead of as errors.
3127
3128         Support for i386-pc-uwin.
3129         * i386/uwin.h: New file.
3130         * i386/xm-uwin.h: New file.
3131         * i386/t-uwin: New file.
3132         * i386/uwin.asm: New file.
3133         * configure.in (i[3456]86-*-uwin*): Define.
3134         Add Workaround for vfork bug when hosted on uwin.
3135         * configure: Regenerate.
3136
3137         * cccp.c (INO_T_EQ): Undefine. UWIN has inodes.
3138         (absolute_filename): UWIN uses POSIX pathnames only.
3139         * libgcc2.c (getpagesize): Do not define for UWIN.
3140         (mprotect): Likewise.
3141         * protoize.c (dirent.h): Conditionally include.
3142         (fputc): Prototype only if it's not a macro.
3143
3144 Wed Mar 10 02:49:04 1999  Jason Merrill  <jason@yorick.cygnus.com>
3145
3146         * configure.in: Remove init_priority stuff.
3147
3148 1999-03-11  Colin Smith  <colin@wrs.com>
3149
3150         * sdbout.c (plain_type_1): Make boolean types work better with sdb.
3151
3152 Thu Mar 11 00:20:52 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
3153
3154         * gcc.texi: Update bug reporting instructions to match
3155         current ezmlm list reality.
3156
3157 Wed Mar 10 23:11:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3158
3159         * gcc.c (print_file_name, print_prog_name, spec_machine,
3160         read_specs, set_spec, lookup_compiler, build_search_list,
3161         putenv_from_prefixes, find_a_file, record_temp_file,
3162         delete_if_ordinary, handle_braces, do_spec, do_spec_1, find_file,
3163         is_directory, validate_switches, used_arg, default_arg,
3164         pfatal_with_name, perror_with_name, pfatal_pexecute, fatal, error,
3165         notice, add_preprocessor_option, add_assembler_option,
3166         add_linker_option, process_command, execute,
3167         unused_prefix_warnings, clear_args, fatal_error,
3168         lang_specific_driver, user_specs, compiler, link_command_spec,
3169         option_map, translate_options, make_temp_file, temp_name,
3170         programname, path_prefix, machine_suffix, just_machine_suffix,
3171         gcc_exec_prefix, standard_exec_prefix, standard_exec_prefix_1,
3172         md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1,
3173         standard_startfile_prefix, standard_startfile_prefix_1,
3174         standard_startfile_prefix_2, tooldir_base_prefix, tooldir_prefix,
3175         multilib_dir, temp_filename, temp_file, command, switchstr,
3176         infile, outfiles, input_filename, input_basename, input_suffix,
3177         check_live_switch, main): Qualify a char* with the `const' keyword.
3178
3179 Wed Mar 10 20:28:29 1999  Jeffrey A Law  (law@cygnus.com)
3180
3181         * lcm.c: New file.
3182         * Makefile.in (OBJS): Add lcm.o.
3183         (lcm.o): Add dependencies.
3184
3185         * gcse.c (compute_pre_local_properties): Delete.
3186         (compute_pre_data): Use compute_local_properties instead of
3187         compute_pre_local_properties.
3188
3189         * gcse.c: More comments, whitespace and similar fixes.
3190         (dump_cuid_table, maybe_set_rd_gen, dump_cprop_data): Delete.
3191         (dump_pre_data, compute_cprop_local_properties): Likewise.
3192         (one_classic_gcse_pass): Lose unused argument.  All callers changed.
3193         (compute_hash_table, compute_expr_hash_table): Likewise.
3194         (compute_set_hash_table, one_pre_gcse_pass, mark_call): Likewise.
3195         (cprop_insn, cprop, one_cprop_pass): Add new argument ALTER_JUMPS.
3196         All callers changed.  Only alter jumps if ALTER_JUMPS is nonzero.
3197         Lose unused argument.
3198         (gcse_main): Always run a cprop pass after finishing global cse.
3199         (compute_local_properties): New function.
3200         (hash_scan_pat, hash_scan_insn): No longer call maybe_set_rd_gen.
3201         (compute_cprop_data): Use compute_local_properties.
3202
3203         * gcse.c: Update various comments.
3204         (current_function_calls_longjmp): Delete declaration.
3205
3206         * gcse.c (run_jump_opt_after_gcse): New variable.
3207         (gcse_main): Returns an integer.
3208         (hash_scan_set): Record initializations from CONST_DOUBLEs too.
3209         (try_replace_reg): Update some comments.
3210         (cprop_insn): Allow propagation into some JUMP_INSNs too.
3211         * rtl.h (gcse_main): Update prototype.
3212         * toplev.c (rest_of_compilation): If gcse_main returns nonzero,
3213         then run a jump optimization pass.
3214         * jump.c (delete_barrier_successors): Delete nop jumps too.
3215
3216 Wed Mar 10 19:04:31 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3217
3218         * sh.c (fp_arith_reg_operand): Actually test if reg is suitable
3219         for FP arithmetic.  Changed caller.
3220         * sh.md (subsf3, subsf_i): Use fp_arith_reg_operand.
3221
3222 Wed Mar 10 18:56:31 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3223
3224         * reload1.c (choose_reload_regs): When inheriting from the frame
3225         pointer, don't clobber it.
3226
3227 Wed Mar 10 08:01:52 1999  Bruce Korb  <korb@datadesign.com>
3228
3229         * fixinc/fixinc.*: Resync-ed with the files in this
3230         directory.
3231
3232         * fixinc/mkfixinc.sh: The machine case elements were
3233         out-of-order.  (the ix86-*-linux-gnu* entry needed to
3234         be earlier).
3235
3236 Wed Mar 10 00:01:24 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3237
3238         * reload1.c (reload_combine_note_store): Fix calculation of number
3239         of affected registers.
3240
3241 Tue Mar  9 15:48:15 1999  Richard Henderson  <rth@cygnus.com>
3242
3243         * flow.c (tidy_fallthru_edge): Be more careful finding the last
3244         BARRIER of a list.  Delete the cc0 setter as well as a cond jump.
3245
3246 Tue Mar  9 15:26:02 1999  Hans-Peter Nilsson  <hp@bitrange.com>
3247
3248         * i386.md (ashlsi3 splitter): Fix typo in last change.
3249
3250 Tue Mar  9 11:35:20 1999  Richard Henderson  <rth@cygnus.com>
3251
3252         * reg-stack.c (stack_reg_life_analysis): Use returnjump_p
3253         instead of an explicit test for RETURN.
3254
3255 Tue Mar  9 09:33:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3256
3257         * Makefile.in (toplev.o): Depend on $(BASIC_BLOCK_H).
3258
3259         * toplev.c: Include basic-block.h.
3260
3261 Tue Mar  9 02:08:17 1999  Jeffrey A Law  (law@cygnus.com)
3262
3263         * calls.c (load_register_parameters): New function.
3264         (expand_call): Use it.
3265
3266         * calls.c (expand_call): Slightly reorganize code.
3267
3268         * calls.c (compute_argument_addresses): New function.
3269         (rtx_for_function_call): New function.
3270         (expand_call): Use them.
3271
3272         * i386.md (zero_extendhisi2): Split into an expander and anonymous
3273         pattern.  Add new anonymous pattern for use when optimizing for
3274         size or for the PPro.
3275         (zero_extendqihi2, zero_extendqisi2): Likewise.
3276
3277 Mon Mar  8 23:43:47 1999  Richard Henderson  <rth@cygnus.com>
3278
3279         * haifa-sched.c (sched_analyze_1): Fix last change -- add clobber
3280         dependencies to sets in the non-hard-reg case too.
3281
3282 Mon Mar  8 18:55:21 1999  Marc Espie  <espie@cvs.openbsd.org>
3283
3284         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Define.
3285
3286 Mon Mar  8 16:04:44 1999  Jim Wilson  <wilson@cygnus.com>
3287
3288         * local-alloc.c (combine_regs): Don't combine if we have a hard reg
3289         for which CLASS_LIKELY_SPILLED_P is true.
3290
3291         * unroll.c (loop_iterations): Only call loop_find_equiv_value if we
3292         have a REG or SUBREG.
3293
3294 Mon Mar  8 15:27:42 1999  Jeffrey A Law  (law@cygnus.com)
3295
3296         * i386.md (ashlsi3): Revise comments.  Provide new anonymous
3297         pattern for Pentium and PPro/PII.  Reverse constraints in
3298         generic ashlsi3 anonymous pattern.
3299
3300         * calls.c (initialize_argument_info): Accept a pointer to
3301         CUMULATIVE_ARGS.
3302         (expand_call): Pass the address of CUMULATIVE_ARGS.
3303
3304         * rs6000/xm-sysv4.h (HOST_BITS_PER_LONGLONG): Remove #if 0.
3305
3306         * mn10300.h (CASE_DROPS_THROUGH): Delete.
3307         * mn10200.h (CASE_DROPS_THROUGH): Delete.
3308         * h8300.h (CASE_DROPS_THROUGH): Delete.
3309
3310         * flow.c (merge_blocks_nomove): For HAVE_cc0 targets, make sure
3311         to also delete the cc0 setter when deleting a conditional branch
3312         to the next block.
3313
3314 Mon Mar  8 18:47:11 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3315
3316         * regmove.c (copy_src_to_dest): New argument max_old_uid.
3317
3318 Mon Mar  8 08:23:00 1999  Bruce Korb  <korb@datadesign.com>
3319
3320         * ChangeLog: Merged entries from fixincl-branch.
3321
3322 Sun Mar  7 11:48:56 1999  Richard Henderson  <rth@cygnus.com>
3323
3324         * haifa-sched.c (ENCODE_BLOCKAGE): Don't shift unit too far.
3325         (print_exp): Special case addition of a constant.
3326         (print_value) [CONST_INT]: Use HOST_WIDE_INT_PRINT_HEX.
3327
3328 Sun Mar  7 11:21:02 1999  Richard Henderson  <rth@cygnus.com>
3329
3330         * haifa-sched.c (reg_last_clobbers): New.
3331         (reg_pending_clobbers, bb_reg_last_clobbers): New.
3332         (compute_block_backward_dependences): Allocate memory for them.
3333         (schedule_region): Likewise.
3334         (sched_analyze_1): Clobbers don't interfere with one another.
3335         They do interfere with sets ...
3336         (sched_analyze_2): ... and uses.
3337         (sched_analyze): Likewise.
3338         (sched_analyze_insn): Update reg_last_clobbers appropriately.
3339
3340 Sun Mar  7 08:30:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3341
3342         * gmon-sol2.c: Include config.h and system.h.  Don't redundantly
3343         include system header files.
3344         (sccsid): Remove.
3345         (moncontrol, monstartup, _mcleanup, internal_mcount): Prototype.
3346         (_mcleanup): Add the `const' keyword to a char*.
3347         (internal_mcount): Declare `etext' as a char[] not a function.
3348         Cast `etext' to char* when calling `monstartup'.
3349
3350         * sparc.c (frame_base_name, save_regs, restore_regs,
3351         build_big_number, sparc_cmodel_string, sparc_align_loops_string,
3352         sparc_align_jumps_string, sparc_align_funcs_string, code_model,
3353         cpu_default, cpu_table, output_function_prologue,
3354         output_function_epilogue, output_return,
3355         sparc_flat_output_function_prologue, ultra_code_names,
3356         sparc_flat_output_function_epilogue): Constify a char*.
3357         (hypersparc_adjust_cost): Add a default case in a switch.
3358
3359         * sparc.h (sparc_cmodel_string, OVERRIDE_OPTIONS,
3360         sparc_cpu_select, sparc_align_loops_string,
3361         sparc_align_jumps_string, sparc_align_funcs_string,
3362         output_return): Constify a char*.
3363
3364         * sparc.md (movdi): Change the comparison of HOST_BITS_PER_WIDE_INT
3365         so that we check "== 32", instead of "!= 64".  Cast a value to
3366         HOST_WIDE_INT when comparing against one.  Hide the declaration
3367         for variable `chain'.
3368
3369 Sun Mar  7 08:05:27 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3370
3371         * system.h (const, inline): Move the stage2 handling of these
3372         keywords-as-macros from here...
3373
3374         * gansidecl.h (const, inline): ...to here.
3375
3376 Sun Mar  7 02:44:15 1999  Richard Henderson  <rth@cygnus.com>
3377
3378         * recog.c (push_operand, pop_operand): VOIDmode needn't match modes.
3379
3380 Sun Mar  7 01:58:47 1999  Richard Henderson  <rth@cygnus.com>
3381
3382         * cse.c (canon_hash): Never reject hard regs in CCmode.
3383
3384 Sun Mar  7 01:15:04 1999  Jeff Law  (law@cygnus.com)
3385
3386         * version.c: Bump for snapshot.
3387
3388 Sat Mar  6 17:18:44 1999  Richard Earnshaw  (rearnsha@arm.com)
3389                           Richard Henderson  <rth@cygnus.com>
3390
3391         * flow.c (make_edges): Handle casesi that jump to default branch.
3392         If CASE_DROPS_THROUGH, force fallthru to block after casesi.
3393
3394 Sat Mar  6 07:49:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3395
3396         * c-aux-info.c (data_type, affix_data_type, gen_decl,
3397         gen_formal_list_for_type, gen_formal_list_for_func_def, gen_type):
3398         Qualify a char* with the `const' keyword.
3399
3400         * c-common.c (declare_hidden_char_array, add_attribute, if_elt,
3401         declare_function_name, decl_attributes, format_char_info,
3402         check_format_info, binary_op_error): Likewise.
3403         
3404         * cexp.y (yyerror, error, pedwarn, warning, token): Likewise.
3405
3406         * gcse.c (dump_hash_table): Likewise.
3407
3408         * integrate.c (function_cannot_inline_p): Likewise.
3409
3410         * optabs.c: Include insn-config.h earlier.
3411         (init_libfuncs, init_integral_libfuncs, init_floating_libfuncs):
3412         Qualify a char* with the `const' keyword.
3413         
3414         * real.c (asctoe24, asctoe53, asctoe64, asctoe113, asctoe,
3415         asctoeg, mtherr, ereal_atof): Likewise.
3416
3417         * real.h (ereal_atof): Likewise.
3418
3419         * sbitmap.c (dump_sbitmap_vector): Likewise.
3420
3421         * sbitmap.h (dump_sbitmap_vector): Likewise.
3422
3423         * stmt.c (nesting, n_occurrences, expand_start_case): Likewise.
3424
3425         * toplev.c (rest_of_compilation): Likewise.
3426
3427         * tree.h (function_cannot_inline_p, expand_start_case): Likewise.
3428         
3429 Fri Mar  5 23:16:42 1999  David Edelsohn  <edelsohn@gnu.org>
3430
3431         * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Add 64-bit support and do
3432         not overwrite AIX link register save area.
3433
3434 Fri Mar  5 23:08:01 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3435
3436         * reload.c (find_reloads_subreg_address): Actually create the USE
3437         for the register, not the new memory location.
3438
3439 Fri Mar  5 21:41:07 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3440
3441         * reload1.c (emit_reload_insns): If pseudo that can't be replaced
3442         with its equivalent constant, fall back to reload_in.
3443
3444 Fri Mar  5 13:20:39 1999  Richard Henderson  <rth@cygnus.com>
3445
3446         * Makefile.in: Delete .flow2 debugging files.
3447
3448 Fri Mar  5 11:36:11 1999  Nick Clifton  <nickc@cygnus.com>
3449
3450         * config/arm/arm.c (arm_override_options): Change default target
3451         cpu selection so that enabling TARGET_APCS_32 does not override
3452         default target CPU.
3453
3454 Fri Mar  5 19:26:23 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3455
3456         * sh.h (SLOW_BYTE_ACCESS): Define to 1.
3457         (BOOL_TYPE_SIZE): Define.
3458
3459 Fri Mar  5 02:14:54 1999  John Wehle  (john@feith.com)
3460
3461         * function.c (assign_stack_temp_for_type): Abort
3462         if mode == Blkmode and align is less than
3463         BIGGEST_ALIGNMENT / BITS_PER_UNIT.
3464         (assign_stack_temp_for_type): Round the size parameter
3465         passed to assign_stack_local instead of size itself.
3466
3467 Thu Mar  4 15:00:35 1999  Richard Henderson  <rth@cygnus.com>
3468
3469         * flow.c (delete_unreachable_blocks): Mark blocks as they
3470         are put on to the worklist, not as they are taken off.
3471
3472 Thu Mar  4 00:05:44 1999  Jeffrey A Law  (law@cygnus.com)
3473
3474         * function.c (current_function_has_computed_jump): Remove duplicate
3475         definition.
3476
3477 Wed Mar  3 19:09:11 1999  Jim Wilson  <wilson@cygnus.com>
3478
3479         * m68k/m68020-elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Undef.
3480         (STARTFILE_SPEC, ENDFILE_SPEC): Define to empty string.
3481
3482         * sparc/elf.h (MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL,
3483         MODDI3_LIBCALL, UMODDI3_LIBCALL, STDC_0_IN_SYSTEM_HEADERS): Undef.
3484         (INIT_SUBTARGET_OPTABS): Define to empty.       
3485
3486 Wed Mar  3 00:00:37 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3487
3488         * sh.c (force_into): New function.
3489         (expand_block_move): Use it.
3490
3491 Tue Mar  2 10:39:43 1999  Nick Clifton  <nickc@cygnus.com>
3492
3493         * cccp.c (struct default_include): Add 'included' field.
3494         (main): Set 'included' field when a default include directory
3495         is added to the chain.  If -v is specified list all default
3496         include directories which do not get appended to the chain.
3497
3498 Tue Mar  2 09:24:10 1999  Nick Clifton  <nickc@cygnus.com>
3499
3500         * configure.in (gxx_include_dir): Rename to
3501         gcc_gxx_include_dir in order to prevent it being overridden by
3502         a top level Makefile.
3503         (gcc_tooldir): If $exec_prefix != $prefix then use the
3504         difference between the two as the basis for gcc_tooldir.
3505
3506         * configure: Rebuild.
3507
3508         * Makefile.in: Rename gxx_include_dir to gcc_gxx_include_dir.
3509
3510 Tue Mar  2 16:45:31 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3511
3512         * unroll.c (copy_loop_body): Don't make extra copies of
3513         NOTE_INSN_LOOP_CONT notes.
3514
3515 Tue Mar  2 07:44:56 1999  Mark Mitchell  <mark@markmitchell.com>
3516
3517         * tree.c (save_tree_status): Don't treat functions with no context
3518         as nested.
3519
3520 Tue Mar  2 09:37:05 1999  Robert Lipe  <robertlipe@usa.net>
3521
3522         * Makefile.in (MAKEINFO): Use makeinfo built from sibling
3523         tree when available.
3524
3525 Tue Mar  2 10:12:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3526
3527         * alpha.c (alpha_cpu_name, alpha_cpu_string, alpha_tp_string,
3528         alpha_fprm_string, alpha_fptm_string, alpha_mlat_string,
3529         current_function_file): Add the `const' keyword.
3530         (normal_memory_operand): Mark parameter `mode' with
3531         ATTRIBUTE_UNUSED.
3532         (alpha_expand_unaligned_load): Add a default case to a switch.
3533
3534         * alpha.h (alpha_cpu_string, alpha_fprm_string, alpha_fptm_string,
3535         alpha_tp_string, alpha_mlat_string): Add the `const' keyword.
3536         (normal_memory_operand): Add prototype.
3537         
3538         * alpha.md: Cast an expression to `unsigned HOST_WIDE_INT' when
3539         comparing against one.
3540
3541 Tue Mar  2 10:00:21 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3542
3543         * mips.c (abort_with_insn): Make function static, add a prototype,
3544         constify 2nd parameter and mark with ATTRIBUTE_NORETURN.
3545         (current_function_file, mips_cpu_string, mips_isa_string,
3546         mips_abi_string, mips_no_mips16_string, mips_entry_string,
3547         mips_move_1word, mips_move_2words, output_block_move, load_store,
3548         override_options, make_temp_file, mips16_fp_args): Qualify a char*
3549         with the `const' keyword.
3550
3551         * mips.h (current_function_file, mips_cpu_string, mips_isa_string,
3552         mips_abi_string, mips_entry_string, mips_no_mips16_string,
3553         mips_move_1word, mips_move_2words, output_block_move): Likewise.
3554         (abort_with_insn): Remove extern prototype.
3555
3556         * mips.md: Qualify a char* with the `const' keyword.
3557         Remove many unused variables named `label'.
3558
3559 Tue Mar  2 01:27:52 1999  H.J. Lu  (hjl@gnu.org)
3560
3561         * Makefile.in (cpp_install_dir, INSTALL_CPP, UNINSTALL_CPP): New
3562         variables.
3563         (install-cpp, uninstall-cpp): New targets.
3564         (install-normal): Depend on $(INSTALL_CPP).
3565         (uninstall): Depend on $(UNINSTALL_CPP).
3566         * configure.in (cpp_install_dir): New, substitute.
3567         (tmake_file): Added t-install-cpp for --enable-cpp.
3568         * configure: Rebuilt.
3569         * cpp.sh: New cpp script.
3570         * config/t-install-cpp: New target fragment.
3571
3572 Tue Mar  2 01:40:01 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3573                           Jeffrey A Law  (law@cygnus.com)
3574
3575         * cse.c (fold_rtx): Update comments for (const (minus (label) (label)))
3576         case.
3577         (cse_insn): Avoid creating a bogus REG_EQUAL note for
3578         (const (minus (label) (label)))
3579         (record_jump_cond): Fix mismatched paren in comment.
3580
3581 Tue Mar  2 01:07:12 1999  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
3582
3583         * final.c (end_final): There are 11 words in the "main header"
3584         structure, not 10.
3585
3586 Tue Mar  2 00:09:18 1999  Marc Espie  <espie@cvs.openbsd.org>
3587
3588         * extend.texi: Reference __extension__ in the index.
3589
3590 Mon Mar  1 19:09:32 1999  Jim Wilson  <wilson@cygnus.com>
3591
3592         * Makefile.in (CROSS_FLOAT_H): Delete.
3593         (FLOAT_H): Use float_h_file.
3594         (rest.cross, stmp-int-hdrs): Delete gfloat.h dependency.
3595         (gfloat.h): Delete.
3596         (stmp-int-hdrs): Use FLOAT_H instead of gfloat.h.
3597         (mostlyclean): Delete gloat.h reference.
3598         (install-cross-rest, install-float-h-cross, stmp-headers): Update
3599         comments.
3600         * configure.in (sparcv9-*-solaris2*): Set float_format to none.
3601         (sparc-*-solaris2*): Set float_format to none for 2.5 and higher.
3602         (float_h_file): Set from float_format.  Substitute into Makefile.in.
3603         (float_format): No longer substitute into Makefile.in.  
3604         * cross-make (FLOAT_H): Delete.
3605         * config/mips/t-cross64 (FLOAT_H): Delete.
3606         * configure: Rebuilt.
3607         
3608 Mon Mar  1 16:36:18 1999  Jeffrey A Law  (law@cygnus.com)
3609
3610         * mips.md (div_trap_normal, div_trap_mips16): Require the dependent
3611         insn to be an INSN before looking at its pattern.
3612
3613 Mon Mar  1 15:03:51 1999  Jim Wilson  <wilson@cygnus.com>
3614
3615         * config/m68k/lb1sf68.asm (udivsi3): Change jmi to jcs.  Fix comments.
3616         * config/m68k/m68k.h (LEGITIMATE_INDEX_REG_P): Reject SIGN_EXTEND of
3617         HImode reg when TARGET_5200.
3618
3619 Mon Mar  1 21:44:30 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3620
3621         From Toshiyasu Morita:
3622         * sh.h (CACHE_LOG): SH2 has cache, too.
3623
3624 Mon Mar  1 14:23:36 1999  Catherine Moore  <clm@cygnus.com>
3625
3626         * toplev.c (compile_file): Disable -ffunction-sections and
3627         debugging warning if the object format is elf.
3628
3629 Mon Mar  1 11:46:25 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
3630
3631         * config/h8300/h8300.c (print_operand): Use 16 bit addressing
3632         when the data in 8-bit area and can not be addressed by 8-bit.
3633
3634 Sun Feb 28 16:40:00 1999  Richard Henderson  <rth@cygnus.com>
3635
3636         * flow.c (create_basic_block): Disregard integrated bb notes.
3637
3638 Sun Feb 28 15:57:06 1999  Richard Henderson  <rth@cygnus.com>
3639
3640         * sparc.md (blockage, nonlocal_goto_receiver): Set length to 0.
3641
3642 Sun Feb 28 14:47:53 1999  Arturo Montes  <mitosys@colomsat.com.co>
3643
3644         * config/i386/t-sco5gas (crti.o): New target.
3645
3646 Sun Feb 28 15:10:17 1999  David Edelsohn  <edelsohn@gnu.org>
3647
3648         * rs6000.md (elf_high, movsi_got, *movsi_got_internal,
3649         *movsi_got_internal_mem, GOT splitter, movdf_hardfloat32,
3650         movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64,
3651         load_multiple, allocate_stack, call_indirect_aix32,
3652         call_indirect_aix64, call_value_indirect_aix32,
3653         call_value_indirect_aix64, call_indirect_nt,
3654         call_value_indirect_nt): Use gpc_reg_operand instead of
3655         register_operand.
3656
3657 Sun Feb 28 15:10:17 1999  Michael Meissner  <meissner@cygnus.com>
3658
3659         * rs6000.md (one_cmplsi2, andsi3, iorsi3, xorsi3, *eqvsi3,
3660         *andcsi3, *iorcsi3, *nandsi3, *norsi3): Add alternatives to use CR
3661         other than cr0.
3662         * rs6000.c (and{,64}_operand): If the user did -ffixed-cr0, don't
3663         allow andi. or andis. which always set cr0.
3664
3665 Sun Feb 28 01:15:04 1999  Jeff Law  (law@cygnus.com)
3666
3667         * version.c: Bump for snapshot.
3668
3669 Sun Feb 28 02:00:38 1999  Jeffrey A Law  (law@cygnus.com)
3670
3671         * invoke.texi: Update information for PA scheduling.
3672
3673 Sat Feb 27 23:21:47 1999  Jerry Quinn  <jquinn@nortelnetworks.com>
3674                           Mike Stump  <mrs@wrs.com>
3675
3676         * pa.c (override_options): Change default to 7100LC.
3677
3678         * pa.h (REG_ALLOC_ORDER): Change order to allocate left half of
3679         float regs before right half of float regs.
3680
3681 Sat Feb 27 22:48:38 1999  H.J. Lu  (hjl@gnu.org)
3682                           Jeffrey A Law  (law@cygnus.com)
3683
3684         * frame.h: Update some comments.
3685         * defaults.h (TARGET_ATTRIBUTE_WEAK): Define.
3686         * crtstuff.c (__register_frame_info, __deregister_frame_info): Declare
3687         using TARGET_WEAK_ATTRIBUTE.
3688         (__do_global_dtors_aux): Check if __deregister_frame_info is
3689         zero before calling it.
3690         (__do_global_dtors): Likewise.
3691         (frame_dummy): Check if __register_frame_info is zero before
3692         calling it.
3693         (__frame_dummy): Likewise.
3694
3695 Sat Feb 27 19:18:24 1999  Jeffrey A Law  (law@cygnus.com)
3696
3697         * SERVICE: Update from the FSF.
3698
3699 Sat Feb 27 14:31:22 1999  Arturo Montes  <mitosys@colomsat.com.co>
3700
3701         * config/i386/t-sco5 (crti.o): New target.
3702         * config/i386/sco5.h (STARTFILE_SPEC): Include crti.o when
3703         linking -shared.
3704         * configure.in (i[34567]86-*-sco3.2v5*): Add crti.o.
3705
3706 Sat Feb 27 01:12:40 1999  Jeffrey A Law  (law@cygnus.com)
3707
3708         * md.texi (prologue,epilogue): Document named patterns.
3709
3710 Fri Feb 26 19:31:25 1999  Dave Love  <fx@gnu.org>
3711
3712         * md.texi, invoke.texi: Fix unterminated @xrefs.
3713
3714 Fri Feb 26 15:33:45 1999  Richard Henderson  <rth@cygnus.com>
3715
3716         * genattrtab.c (simplify_knowing): Fix uninitialized read
3717         in Feb 21 change.
3718
3719         * genextract.c (main): Clear recog_operands before extracting.
3720
3721 Fri Feb 26 02:24:57 1999  Jeffrey A Law  (law@cygnus.com)
3722
3723         * c-pragma.c (add_weak); Delete.  Moved into...
3724         * varasm.c (add_weak): New external function.
3725         (declare_weak): If HANDLE_PRAGMA_WEAK, then add the function to
3726         the list of weak functions.
3727         * c-pragma (add_weak): Declare.
3728
3729 Thu Feb 25 23:43:59 1999  Richard Henderson  <rth@cygnus.com>
3730
3731         Flow rewrite to use basic block structures and edge lists:
3732
3733         * basic-block.h (x_basic_block_head, x_basic_block_end): Kill.
3734         (basic_block_computed_jump_target, basic_block_live_at_start): Kill.
3735         (struct edge_def): New.
3736         (struct basic_block_def): New.
3737         (basic_block_info): New.
3738         (BLOCK_HEAD, BLOCK_END): Update.
3739         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): New.
3740         (uid_block_number): Kill.
3741         (basic_block_for_insn, BLOCK_FOR_INSN): New.
3742         (BLOCK_NUM): Update.
3743         * flow.c (XNMALLOC): Kill.
3744         (max_uid_for_flow): Kill.
3745         (uid_block_number): Kill.
3746         (uid_volatile): Turn into a bitmap.
3747         (SET_INSN_VOLATILE): New.
3748         (basic_block_info): New.
3749         (entry_exit_blocks): New.
3750         (x_basic_block_head, x_basic_block_end): Kill.
3751         (basic_block_computed_jump_target, basic_block_live_at_start): Kill.
3752         (flow_int_list_blocks, basic_block_succ, basic_block_pred): Kill.
3753         (basic_block_loop_depth): Kill.
3754         (basic_block_for_insn): New.
3755         (find_basic_blocks): Split out initial block counting into
3756         count_basic_blocks.  Call functions split out of find_basic_blocks_1.
3757         (count_basic_blocks): New.
3758         (find_basic_blocks_1): Split out edge recognition, unreachable
3759         block deletion.
3760         (create_basic_block): New.
3761         (compute_bb_for_insn): New.
3762         (clear_edges): New.
3763         (free_bb_memory): Kill.
3764         (add_edge, add_edge_to_label): Kill.
3765         (mark_label_ref): Kill.
3766         (make_edges): Rewrite to use edge lists.
3767         (make_edge, make_label_edge): New.
3768         (mark_critical_edges): New.
3769         (split_edge, insert_insn_on_edge): New.
3770         (commit_one_edge_insertion, commit_edge_insertions): New.
3771         (delete_unreachable_blocks): Rewrite to use edge lists.
3772         Split out EH region manipulation into delete_eh_regions.
3773         Call tidy_fallthru_edge and merge_blocks.
3774         (delete_eh_regions): New.
3775         (delete_note_p): New.
3776         (delete_insn_chain): New.
3777         (delete_block): Split out code into delete_insn_chain and
3778         tidy_fallthru_edge.  Update edge lists.
3779         (expunge_block): New.
3780         (flow_delete_insn): New?
3781         (can_delete_label_p): New?
3782         (merge_blocks_nomove, merge_blocks): New.
3783         (tidy_fallthru_edge): New.
3784         (calculate_loop_depth): New.
3785         (life_analysis): Allocate and free uid_volatile.
3786         (free_basic_block_vars): Update for new structures.
3787         (record_volatile_insns): Use SET_INSN_VOLATILE.
3788         (mark_regs_live_at_end): Tidy EXIT_IGNORE_STACK usage.
3789         (mark_used_regs): Likewise.
3790         (life_analysis_1): Use bb global_live_at_start, global_live_at_end,
3791         local_set regsets.  Use bb->aux to store new_live_at_end.  Begin
3792         life propagation from EXIT_BLOCK rather than last block.  Clear
3793         regs_ever_live after mark_regs_live_at_end.
3794         (allocate_for_life_analysis): Update for new structures.
3795         (propagate_block): Split out loop depth calculation to
3796         calculate_loop_depth.
3797         (regno_uninitialized): Use bb->global_live_at_start.
3798         (regno_clobbered_at_setjmp): Likewise.
3799         (dump_bb_data): Likewise.
3800         (find_auto_inc): Use BLOCK_FOR_INSN instead of BLOCK_NUM.
3801         (dump_flow_info): Update for new structures.
3802         (dump_edge_info): New.
3803         (print_rtl_with_bb): Update for new structures.
3804         (compute_preds_succs): Do no work -- convert edge lists.
3805         (set_block_for_insn): From corpse of old set_block_num.
3806         (set_block_num): Call it.
3807
3808         * rtl.c (note_insn_name): Add NOTE_INSN_BASIC_BLOCK.
3809         * rtl.h (rtunion_def): Add bb entry.
3810         (NOTE_BASIC_BLOCK): New.
3811         (NOTE_INSN_BASIC_BLOCK): New.
3812
3813         * varray.h (varray_data_tag): Add bb entry.
3814         (VARRAY_BB_INIT, VARRAY_BB): New.
3815
3816         * emit-rtl.c (emit_label_before): New.
3817
3818         * except.c (expand_rethrow): Delete insns following the call to
3819         rethrow.  Put the REG_EH_RETHROW on the call.
3820
3821         * jump.c (returnjump_p, returnjump_p_1): New.
3822
3823         * expr.h (nonlocal_goto_handler_labels): New declaration.
3824         * function.c (nonlocal_goto_handler_labels): Define it.
3825         (push_function_context_to): Save it.
3826         (pop_function_context_from): Restore it.
3827         (init_function_start): Clear it.
3828         (nonlocal_label_rtx_list): Kill.
3829         * function.h (struct function): Add storage space for it.
3830         * stmt.c (expand_nl_handler_label): Return the new label.
3831         (expand_nl_goto_receivers): Collect a list of them in
3832         nonlocal_goto_handler_labels.
3833
3834         * Makefile.in (print-rtl.o): Depend on basic-block.h.
3835         (flow.o): Depend on insn-flags.h.
3836
3837         * function.c (thread_prologue_and_epilogue_insns): Do not
3838         half-heartedly update bb structures.
3839
3840         * toplev.c: Add flow2 dump as -dw.
3841         (rest_of_compilation): Finish .greg before flow2.
3842
3843         * graph.c (draw_edge): Handle class 3.
3844         (print_rtl_graph_with_bb): Make abnormal edges red class 2,
3845         change non-fall-thru but adjacent to green class 3.  Update
3846         to use new structures.
3847
3848         * print-rtl.c (print_rtx): Handle NOTE_INSN_BASIC_BLOCK.
3849
3850         * reg-stack.c (BLOCK_NUM): Convert to function.  Abort if
3851         block_number is -1.
3852         (reg_to_stack): Initialize block_num to -1.
3853
3854         * combine.c (set_nonzero_bits_and_sign_copies): Update reference
3855         to basic_block_live_at_start to bb->global_live_at_start.
3856         (try_combine): Likewise.
3857         (reg_dead_at_p): Likewise.
3858         * global.c (global_conflicts): Likewise.
3859         Handle stack regs on all abnormal edges, not just computed jumps.
3860         (mark_elimination): Update reference to basic_block_live_at_start.
3861         (build_insn_chain): Likewise.
3862         * haifa-sched.c (haifa_edge): Rename from edge for conflict.
3863         (is_cfg_nonregular): Look at nonlocal_goto_handler_labels instead
3864         of nonlocal_label_rtx_list.
3865         (check_live_1): Update reference to basic_block_live_at_start.
3866         (update_live_1): Likewise.
3867         (find_pre_sched_live): Likewise.
3868         (find_post_sched_live): Likewise.
3869         * local-alloc.c (update_equiv_regs): Likewise.
3870         (block_alloc): Likewise.
3871         * reload1.c (reload, reload_combine): Likewise.
3872         * regmove.c (mark_flags_life_zones): Likewise.
3873         * resource.c (mark_target_live_regs): Likewise.
3874         * sched.c (schedule_block): Likewise.
3875
3876         * regclass.c (regset_release_memory): Don't free
3877         basic_block_live_at_start.
3878
3879         * unroll.c (copy_loop_body): Don't duplicate NOTE_INSN_BASIC_BLOCK.
3880
3881 Thu Feb 25 21:32:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
3882
3883         * fixinc.wrap: Also handle struct queue in sys/stream.h.
3884         * fixinc.svr4: Likewise.
3885
3886         * dwarf2out.c (scope_die_for): Set scope_die to comp_unit_die
3887         rather than asserting it.
3888
3889 Thu Feb 25 23:33:06 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3890
3891         * cppexp.c (left_shift, right_shift, parse_charconst, COMPARE,
3892         cpp_parse_expr): Replace uses of long/HOST_BITS_PER_LONG with
3893         HOST_WIDEST_INT/HOST_BITS_PER_WIDEST_INT.
3894
3895         * Makefile.in (cppmain.o, cpplib.o, cpphash.o, cppalloc.o,
3896         cpperror.o, cppexp.o, cppfiles.o, cppinit.o, fix-header.o,
3897         scan-decls.o): Don't depend on machmode.h.
3898         
3899         * cppexp.c: Don't define CHAR_BIT or HOST_BITS_PER_WIDE_INT anymore.
3900         Replace all instances of HOST_WIDE_INT with HOST_WIDEST_INT.
3901         
3902         * cppfiles.c: Likewise.
3903
3904         * cpplib.c: Likewise.
3905         
3906         * cpplib.h: Likewise.  Also don't include machmode.h anymore.
3907
3908 Thu Feb 25 18:46:26 1999  Richard Henderson  <rth@cygnus.com>
3909
3910         * gcc.c (default_compilers): Define __FAST_MATH__ when appropriate.
3911         * objc/lang-specs.h: Likewise.
3912
3913 Thu Feb 25 16:19:43 1999  Jeffrey A Law  (law@cygnus.com)
3914
3915         * pa.md (call patterns): Lose unused argument to output_call.
3916
3917         * print-rtl.c (print_rtl): Print /j and /c for the jump/call flags.
3918
3919 1999-02-25  Zack Weinberg  <zack@rabi.columbia.edu>
3920
3921         * cpphash.c (install): Rename to cpp_install, add cpp_reader*
3922         first argument.  All callers changed.
3923         (hashtab): Removed.
3924         (cpp_lookup, cpp_install): Change all refs to hashtab to
3925         pfile->hashtab.
3926         (cpp_hash_cleanup): Removed.
3927         * cpphash.h: Adjust prototypes.
3928         * cpplib.h (struct cpp_reader): Add hashtab pointer.
3929         * cppinit.c (cpp_reader_init): Also allocate space for the
3930         hashtab.
3931         (cpp_cleanup): Delete all macros and free the hashtab.
3932
3933 Thu Feb 25 21:52:54 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3934
3935         * sh.h (PASS_IN_REG_P): For TARGET_HITACHI, don't pass structures
3936         in registers.
3937
3938         * expr.h (PRETEND_OUTGOING_VARARGS_NAMED): Provide default definition.
3939         * function.c (assign_parms): Honour PRETEND_OUTGOING_VARARGS_NAMED.
3940         * calls.c (expand_call): Likewise.
3941
3942         * sh.c (sh_expand_prologue): For TARGET_HITACHI, don't push varargs /
3943         stdarg arguments.
3944         * sh.h (CPP_SPEC): Add -D__HITACHI__ for -mhitachi.
3945         (FUNCTION_ARG): For TARGET_HITACHI, don't pass unnamed
3946         arguments in registers.
3947         (PRETEND_OUTGOING_VARARGS_NAMED): Define.
3948         * va-sh.h (entire file): If __HITACHI__ is defined, use sh[123]
3949         flavor varargs.
3950
3951 Thu Feb 25 14:32:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3952
3953         * cse.c (dump_class): Revert last change and make the prototype
3954         extern.
3955
3956 Thu Feb 25 19:13:42 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3957
3958         * rtl.h (insn_first_p): Don't declare.
3959         * rtlanal.c (insn_first_p): Delete.
3960         * loop.c (loop_insn_first_p): Faster implementation.
3961
3962 Thu Feb 25 10:44:35 1999  Richard Earnshaw  (rearnsha@arm.com)
3963
3964         * arm.h (TARGET_SWITCHES): Delete deprecated switches -m[236].
3965         (TARGET_3, TARGET_6): Delete.
3966         (ARM_FLAG_ARM[36]): Delete.
3967         (CPP_CPU_ARCH_SPEC): No need to handle -m[236] any more.
3968         (CC1_SPEC): Don't expand -m[236] into new equivalents.
3969         (CPP_APCS_PC_SPEC): No need to handle -m[236] any more.
3970         * arm.c (arm_override_options): Delete warnings about deprecated
3971         options -m[236].
3972
3973         * arm.c (arm_finalize_pic): Build the label into the special pic
3974         adjustment insn instead of issuing it separately.
3975         * arm.md (pic_add_dot_plus_eight): Rework to contain the label
3976         that is needed.
3977
3978         * arm.md (*zeroextractqi_compare0_scratch): Delete.
3979         (*ne_zeroextractsi): New pattern.
3980
3981 Thu Feb 25 18:40:06 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3982
3983         * stmt.c (expand_end_loop): Grok code emitted by
3984         expand_exit_loop_if_false.
3985
3986 Thu Feb 25 10:17:32 1999  Nick Clifton  <nickc@cygnus.com>
3987
3988         * config/arm/arm.c (return_in_memory): Float fields in unions
3989         force a return in memory.
3990         (load_multiple_sequence): Add comment explaining why two LDR
3991         instructions can be better than an LDMIA instruction.
3992
3993         * config/arm/arm.h (TARGET_SHORT_BY_BYTES): Add comment
3994         describing the real meaning of this option.
3995         (FIXED_REGISTERS): Default r10 to not-fixed.
3996         (CALL_USED_REGISTERS): Default r10 to not-call-used.
3997         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): If not defined, define
3998         as empty.
3999         (CONDITIONAL_REGISTER_USAGE): Fix r10 if TARGET_APCS_STACK is
4000         true.  Invoke SUBTARGET_CONDITIONAL_REGISTER_USAGE after
4001         performing other checks.
4002
4003         * config/arm/arm.md (zero_extendhisi2): Undo previous change.
4004         (extendhisi2): Undo previous change.
4005         Also add comments describing why TARGET_SHORT_BY_BYTES can be
4006         ignored for armv4(t) architectures.
4007
4008         * config/arm/riscix.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE):
4009         Define to fix r10.
4010
4011         * config/arm/riscix1-1.h
4012         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define to fix r10.
4013
4014 Thu Feb 25 12:09:04 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4015
4016         * cse.c (dump_class): Make the function definition static to match
4017         the prototype.
4018
4019 Wed Feb 24 17:47:28 1999  Jim Wilson  <wilson@cygnus.com>
4020
4021         * dbxout.c (gstab.h): Use if CROSS_COMPILE.
4022
4023         * dwarf2out.c (add_location_or_const_value_attribute): Add big
4024         endian correction for parms passed in regs but living on the stack.
4025
4026 Wed Feb 24 14:03:54 1999  Jeffrey A Law  (law@cygnus.com)
4027
4028         * calls.c (initialize_argument_information): New function extracted
4029         from expand_call.
4030         (expand_call): Use initialize_argument_information.  Remove variables
4031         which are no longer used due to cleanups.
4032
4033         * calls.c (compute_argument_block_size): New function, extracted from
4034         expand_calls.
4035         (expand_calls): Use compute_argument_block_size.  Delete
4036         original_args_size, use unadjusted_args_size instead.
4037
4038         * calls.c (precompute_arguments): New function, extracted from
4039         expand_call.
4040         (expand_call): Use precompute_arguments.
4041
4042         * calls.c (finalize_must_preallocate): New function, extracted from
4043         expand_call.
4044         (expand_call): Use finalize_must_preallocate.
4045
4046         * calls.c (store_one_arg): Mark "variable_size" as possibly unused.
4047
4048         * regclass.c (record_reg_classes, case 'p'): Set classes appropriately.
4049         An alternative always fails if it needs a pseudo and no suitable
4050         register class can be found.
4051
4052 Wed Feb 24 19:47:56 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4053
4054         * loop.h (loop_insn_first_p): Declare.
4055         * loop.c (loop_insn_first_p): No longer static.
4056         * unroll.c (iteration_info): Fix comparison to
4057         reg_iv_type->num_elements.
4058         Before accessing reg_biv_class, check index against
4059         max_reg_before_loop.
4060         Fix and enable code for giv iterators.
4061         (loop_iterations): Compare with reg_iv_type->num_elements instead
4062         of with max_reg_before_loop.
4063
4064 Wed Feb 24 19:17:11 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4065
4066         * unroll.c (unroll_loop): Avoid out-of-bounds index for local_regno.
4067
4068 Wed Feb 24 11:26:41 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
4069
4070         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Don't use
4071         PIC_OFFSET_TABLE_REGNUM for register allocation when -fPIC.
4072
4073 Tue Feb 23 16:24:19 1999  Marc Lehmann  <pcg@goof.com>
4074
4075         * config/i386/i386.md: Fix typo.
4076
4077 Mon Feb 22 19:36:33 1999  Andrew Cagney  <cagney@b1.cygnus.com>
4078
4079         * config/mips/mips.c (mips_debugger_offset): When TARGET_MIPS16 &&
4080         frame_pointer_needed adjust frame size.
4081         (function_prologue): Don't MIPS16 .mask GPOFFSET. Already adjusted
4082         in .frame pseudo-op.
4083         Frm Jim Wilson  <wilson@cygnus.com>:
4084         * mips.c (function_prologue): Adjust frame size in .frame pseudo-op
4085         when TARGET_MIPS16 && frame_pointer_needed.
4086
4087 1999-02-22  Nick Clifton  <nickc@cygnus.com>
4088
4089         * config/arm/arm.h: Add TARGET_CPU_strongarm1100.
4090         Add -mno-sched command line switch to disable scheduling of
4091         instructions into the function's prologue.
4092         (enum processor_type): Remove.
4093         (TARGET_OPTIONS): Add "fpe=" option to match documentation.
4094         (struct arm_cpu_select): Replace 'set_tune_p' and 'set_arch_p'
4095         fields with 'processors' field.
4096         (CONDITIONAL_REGISTER_USAGE): Allow r10 to be used if stack
4097         checking is not enabled.
4098         (RETURN_IN_MEMORY): Always call arm_return_in_memory.
4099         
4100         * config/arm/arm.c (arm_cpu): Remove.
4101         (tune_flags): Remove.
4102         (arm_is_strong): New variable: true iff the target processor is a
4103         StrongARM.
4104         (arm_is_6_or_7): New variable: true iff the target processor is an
4105         ARM6 or and ARM7.
4106         (arm_select): Fields reorganised.
4107         (struct processors): processor_type field removed.
4108         (all_procs): Remove.
4109         (all_cores): New array: Definitions of all known ARM cpu cores.
4110         (all_architectures): New array: Definitions of all known ARM
4111         architectures.
4112         (streq): New macro.
4113         (FL_SCHED): New processor flag: processor required load
4114         scheduling.
4115         (FL_STRONG): New processor flag: processor is a StrongARM.
4116         (arm_override_options): Reorganized to make code clearer.
4117         (use_return_insn): Test for "not (TARGET_APCS and
4118         frame_pointer_needed)".
4119         (arm_return_in_memory): Improve handling of structures.
4120         
4121         * config/arm/arm.md: Remove "cpu" attribute.  Replace with
4122         "is_strongarm" and "is_arm_6_or_7" attributes.
4123         (zero_extendhisi2): Check for TARGET_SHORT_BY_BYTES before
4124         arm_arch4.
4125         (extendhisi2): Check for TARGET_SHORT_BY_BYTES before arm_arch4.
4126
4127         * invoke.texi (ARM Options): Document -mtune= and -mfp= options.
4128         
4129 1999-02-22  Philip Blundell  <philb@gnu.org>
4130
4131         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Replace default
4132         definition with one including cache synchronization.
4133         (CLEAR_INSN_CACHE): Correct syscall number and enable definition.
4134         Move definition of inhibit_libc to...
4135         * config/arm/xm-linux.h: ... here.
4136
4137         * config/arm/t-linux: Disable multilib configurations since the
4138         only effect for most people is to cause builds to fail.
4139         
4140         * config/arm/elf.h (ASM_FILE_START): Add .file directive.
4141         (ASM_SPEC): Translate -mapcs-float to -mfloat for the assembler.
4142
4143         * config/arm/linux-elf.h (DEFAULT_VTABLE_THUNKS): Define.
4144         (HANDLE_SYSV_PRAGMA): Likewise.
4145         (LIB_SPEC): Copy definition from generic Linux files.
4146         (LIBGCC_SPEC): Include -lfloat if -msoft-float was given.
4147         (FP_DEFAULT): Set to SOFT3 on 32-bit targets.
4148         (DWARF2_DEBUGGING_INFO): Define.
4149         (PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG.
4150
4151 Mon Feb 22 16:54:18 1999  Andrew MacLeod  <amacleod@cygnus.com>
4152
4153         * loop.c (libcall_other_regs): Make extern.
4154         * rtl.h (find_last_value): Add parameter to prototype.
4155         (libcall_other_reg): Add extern declaration.
4156         * rtlanal.c (find_last_value): Add another parameter to allow
4157         a definition using a hardware register to be found as well.
4158
4159 Mon Feb 22 13:33:47 1999  Mark Mitchell  <mark@markmitchell.com>
4160
4161         * cse.c (dump_class): New function.
4162         (invalidate_memory): Fix typo in comment.
4163         * function.c (temp_slot): Add an alias set field.
4164         (assign_stack_temp): Only reuse slots if they will have the
4165         same alias set as before.
4166         (combine_temp_slots): Don't combine if -fstrict-aliasing;
4167         that's unsafe.
4168         * rtl.c (copy_rtx): Copy all the flags (in particular,
4169         MEM_SCALAR_P).
4170
4171 Mon Feb 22 14:13:23 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
4172
4173         * configure.in (i[34567]86-*-linux-gnu*,
4174         i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*,
4175         i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as
4176         fixincludes.
4177
4178         * configure: Rebuilt.
4179
4180         * fixinc.x86-linux-gnu: New script for fixing asm-statements bug
4181         on x86 linux.
4182
4183         * fixinc/fixinc.x86-linux-gnu: Copy of the previous one.
4184
4185         * fixinc/mkfixinc.sh (i[34567]86-*-linux-gnu*,
4186         i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*,
4187         i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as
4188         fixincludes.
4189
4190 Mon Feb 22 08:55:05 1999  Ovidiu Predescu  <ovidiu@cup.hp.com>
4191
4192         * objc/objc-act.c (encode_type): Temporary revert to the old
4193         behavior of encoding types as the new one seems to break the
4194         encoding of bitfields.
4195
4196 Mon Feb 22 11:40:44 1999  Craig Burley  <craig@jcb-sc.com>
4197 Sat Feb 20 09:59:36 1999  Craig Burley  <craig@jcb-sc.com>
4198
4199         * Makefile.in (all.internal, all.cross): Depend on `doc'
4200         target, to ensure docs get made before installation.
4201
4202         Decrease spurious warnings from -fsyntax-only:
4203         * stmt.c (expand_expr_stmt): Expand expr even when -fsyntax-only.
4204
4205 Mon Feb 22 10:55:00 1999  Gavin Romig-Koch  <gavin@cygnus.com>
4206
4207         * c-lex.c (yylex): Replace warning about integer constants being
4208         larger than long-longs, with a warning about integer constants
4209         being larger than the largest target integer.
4210
4211 Mon Feb 22 08:35:38 1999  Craig Burley  <craig@jcb-sc.com>
4212
4213         Fix -fsyntax-only ICEs:
4214         * varasm.c (assemble_zeros, assemble_variable,
4215         output_constant_def): Do nothing when -fsyntax-only.
4216
4217 Fri Feb 19 18:18:56 1999  Don Bowman  <don@pixstream.com>
4218
4219         * configure.in (mips*-*-vxworks*): Enable gthreads vxworks support.
4220         * configure: Rebuilt.
4221
4222 Sun Feb 21 20:34:44 1999  Jeff Law  (law@cygnus.com)
4223
4224         * version.c: Bump for snapshot.
4225
4226 Sun Feb 21 20:35:10 1999  Jeffrey A Law  (law@cygnus.com)
4227
4228         * config/aoutos.h (ASM_OUTPUT_CONSTRUCTOR): Delete.
4229         (ASM_OUTPUT_DESTRUCTOR, ASM_OUTPUT_GC_ENTRY): Likewise.
4230         * tm.texi: Update docs for constructors and destructors.
4231
4232 Sun Feb 21 17:11:18 1999  Richard Henderson  <rth@cygnus.com>
4233
4234         * genattrtab.c (check_attr_value): Allow negative const_int if
4235         negative_ok.  Accept integral arithmetic operators.  Accept
4236         direct references to other attributes.  Accept symbol_ref in
4237         non-constant attributes.
4238         (max_attr_value): Add new argument `unknownp'.  Update all callers.
4239         (or_attr_value): Likewise.
4240         (simplify_knowing): Don't optimize if max_attr_value unknown.
4241         (write_length_unit_log): Likewise with or_attr_value.
4242         (find_and_mark_used_attributes): Don't fallthru case.
4243         (write_attr_set): Pass thru all non-cond expressions.
4244         (write_attr_value): Handle symbol_ref, attr, and arithmetic.
4245
4246 Sun Feb 21 13:16:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4247
4248         * regmove.c (discover_flags_reg): Use word_mode instead of SImode.
4249
4250 Sun Feb 21 13:15:40 1999  Richard Henderson  <rth@cygnus.com>
4251
4252         * regmove.c (discover_flags_reg): Remove cc0 code.
4253         (mark_flags_life_zones) [HAVE_cc0]: Force use of cc0; bail if
4254         a potential flags register was identified.
4255
4256 Sat Feb 20 16:16:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4257
4258         * rs6000.md (scc plus ltu): Fix typo in last change.
4259
4260 Sat Feb 20 09:08:44 1999  Richard Earnshaw  (rearnsha@arm.com)
4261
4262         * xm-arm.h (HOST_BITS_PER_LONGLONG): Define.
4263
4264 Fri Feb 19 23:02:02 1999  Richard Henderson  <rth@cygnus.com>
4265
4266         * regmove.c (discover_flags_reg): New function.
4267         (flags_set_1, mark_flags_life_zones): New functions.
4268         (regmove_optimize): Call them.
4269         (fixup_match_1): Use insn modes rather than sets_cc0_p.
4270
4271 Fri Feb 19 22:47:01 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4272
4273         * rtlanal.c (insn_first_p): Fix return value for insn == reference.
4274
4275         * loop.c (strength_reduce, check_final_value, check_dbra_loop):
4276         Use loop_insn_first_p.
4277
4278 Fri Feb 19 15:49:26 1999  Michael Meissner  <meissner@cygnus.com>
4279                           David Edelsohn  <edelsohn@gnu.org>
4280
4281         * rs6000.md (scc plus eq): Fix output template.
4282         (scc plus ltu): Fix output template and collapse variants
4283         correcting early clobbers.
4284         (scc plus geu): Fix output template.
4285         (scc plus gt): Fix output template.
4286         (scc plus gtu): Fix output template and collapse variants.
4287
4288 Fri Feb 19 15:43:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4289
4290         * cppinit.c (print_help): Remove unescaped newline in string.
4291
4292 Fri Feb 19 19:55:06 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4293
4294         * loop.c (strength_reduce): Check for intervening jumps when
4295         converting biv increment to giv.
4296
4297 Thu Feb 18 16:36:58 1999  Per Bothner  <bothner@cygnus.com>
4298
4299         * tree.def (TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR): New tree nodes,
4300         * expr.c (expand_expr): Support new tree nodes.
4301
4302 Fri Feb 19 10:17:56 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
4303
4304         * config/m68k/m68k.c (m68k_align_loops_string,
4305         m68k_align_jumps_string, m68k_align_funcs_string): Add const.
4306         * config/m68k/m68k.h (m68k_align_loops_string,
4307         m68k_align_jumps_string, m68k_align_funcs_string): Likewise.
4308
4309 Thu Feb 18 23:28:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4310
4311         * bitmap.c (bitmap_print): Qualify a char* with the `const' keyword.
4312         
4313         * bitmap.h (bitmap_print): Likewise.
4314         
4315         * c-decl.c (builtin_function, grokdeclarator, grokfield): Likewise.
4316         
4317         * c-lang.c (build_objc_string): Likewise.
4318         
4319         * c-lex.c (yyerror, extend_token_buffer): Likewise.  Don't include
4320         limits.h or ctype.h.  Remove unused variable `p'.
4321         
4322         * c-lex.h (yyerror): Qualify a char* with the `const' keyword.
4323         
4324         * c-pragma.c (handle_pragma_token): Likewise.
4325         
4326         * c-pragma.h (handle_pragma_token): Likewise.
4327         
4328         * c-tree.h (build_objc_string, builtin_function, grokfield,
4329         build_indirect_ref, lvalue_or_else, readonly_warning, error_init,
4330         pedwarn_init): Likewise.
4331         
4332         * c-typeck.c (convert_for_assignment, warn_for_assignment,
4333         push_string, warning_init, incomplete_type_error,
4334         build_indirect_ref, lvalue_or_else, readonly_warning,
4335         build_c_cast, spelling, push_member_name, print_spelling,
4336         error_init, pedwarn_init, start_init): Likewise.
4337         
4338         * objc/objc-act.c (build_objc_string): Likewise.
4339         
4340         * print-tree.c (print_node_brief, print_node): Likewise.
4341         
4342         * tree.h (lvalue_or_else, print_node, print_node_brief): Likewise.
4343
4344 Thu Feb 18 20:44:21 1999  David Edelsohn  <edelsohn@gnu.org>
4345
4346         * regclass.c (record_reg_classes): Correctly handle 'p' constraint.
4347
4348 Thu Feb 18 19:59:37 1999  Marc Espie  <espie@cvs.openbsd.org>
4349
4350         * configure.in :Handle OpenBSD platforms.
4351         * configure: Rebuilt.
4352         * config/openbsd.h: New file.
4353         * config/xm-openbsd.h: New file.
4354         * config/t-openbsd: New file.
4355         * config/t-openbsd-thread: New file.
4356
4357 Thu Feb 18 18:47:09 1999  Jeffrey A Law  (law@cygnus.com)
4358
4359         * function.c (assign_stack_temp_for_type): Round SIZE before calling
4360         assign_stack_local for BLKmode slots.
4361
4362 Fri Feb 19 01:45:06 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4363
4364         * loop.c (strength_reduce): For derived givs, replace the
4365         giv this was derived from with its new_reg.
4366         (recombine_givs): Don't set new_reg for derived giv.
4367         And don't print it, print SUM instead.
4368
4369 Thu Feb 18 15:52:49 1999  Jim Wilson  <wilson@cygnus.com>
4370
4371         * m68kelf.h (ASM_RETURN_CASE_JUMP): Add 5200 support.
4372
4373 1999-02-18  Zack Weinberg  <zack@rabi.columbia.edu>
4374
4375         * cpplib.c: Kill define of STDC_VALUE.  Don't include output.h
4376           or prefix.h. Change CPP_IS_MACRO_BUFFER to not refer to
4377           macro_cleanup.
4378           (GET_ENV_PATH_LIST, PATH_SEPARATOR, STANDARD_INCLUDE_DIR,
4379           predefs, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
4380           CPP_WCHAR_TYPE, USER_LABEL_PREFIX, REGISTER_PREFIX, struct
4381           cpp_pending, version_string, struct default_include,
4382           include_defaults_array, path_include, cpp_options_init,
4383           dump_special_to_buffer, initialize_builtins, cpp_start_read,
4384           cpp_reader_init, nreverse_pending, push_pending, print_help,
4385           cpp_handle_option, cpp_handle_options, cpp_finish,
4386           cpp_cleanup): Move to cppinit.c.
4387           (macro_cleanup, struct arglist, collect_expansion,
4388           create_definition, compare_defs, comp_def_part, ARG_BASE,
4389           struct argdata, macarg, change_newlines, timestamp,
4390           monthnames, special_symbol, unsafe_chars, macroexpand,
4391           push_macro_expansion): Move to cpphash.c.
4392           (quote_string, check_macro_name, cpp_expand_to_buffer,
4393           output_line_command, cpp_undef): Export.
4394           (null_underflow, null_cleanup, handle_directive): Make static.
4395
4396         * cpplib.h: Prototype now-exported functions.  Adjust decls of
4397           syntax tables so we can include cpplib.h in cppinit.c.
4398         * cpphash.h: Prototype all functions exported by cpphash.c.
4399         * cppinit.c: Make syntax tables initialized data if possible
4400           (uses GCC designated-initializer extension).
4401         * cppexp.c: Make cpp_lex static.
4402         * Makefile.in: Move -D switches for the various include dirs
4403           from cpplib.o rule to cppinit.o rule.  Adjust dependencies.
4404
4405 Thu Feb 18 13:15:56 1999  Marc Espie  <espie@cvs.openbsd.org>
4406
4407         * alpha/openbsd.h: New file.
4408         * alpha/xm-openbsd.h: New file.
4409         * sparc/openbsd.h: New file.
4410         * sparc/xm-openbsd.h: New file.
4411         * m68k/openbsd.h: New file.
4412         * m68k/xm-openbsd.h: New file.
4413         * i386/openbsd.h: New file, originally from netbsd.
4414         * i386/xm-openbsd.h: New file.
4415
4416 1999-02-17  Zack Weinberg  <zack@rabi.columbia.edu>
4417
4418         * Makefile.in: Correct dependencies for cpplib object files.
4419
4420 Wed Feb 17 14:04:18 1999  Michael Meissner  <meissner@cygnus.com>
4421
4422         * rs6000.md ({add,sub}si3 `.'): Add alternatives to use CR other
4423         than cr0.
4424
4425 Wed Feb 17 16:59:28 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4426
4427         * loop.c (strength_reduce): Don't move giv insn for biv turned giv
4428         below scan_start.
4429
4430 Wed Feb 17 10:56:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4431
4432         * tree.c (tree_node_kind_names, print_obstack_name,
4433         get_identifier, maybe_get_identifier, build_string,
4434         build_expr_wfl, is_attribute_p, lookup_attribute,
4435         print_obstack_statistics, get_file_function_name_long, tree_check,
4436         tree_class_check, expr_check): Qualify a char* with the `const'
4437         keyword.
4438
4439         * tree.h (get_identifier, maybe_get_identifier, build_string,
4440         build_expr_wfl, is_attribute_p, lookup_attribute,
4441         print_obstack_statistics, print_obstack_name, tree_check,
4442         tree_class_check, expr_check): Likewise.
4443
4444 Tue Feb 16 21:29:38 1999  Jeffrey A Law  (law@cygnus.com)
4445
4446         * i386/freebsd-elf.h, i386/gas.h, i386/linux.h: Fix minor spacing
4447         errors.
4448
4449         * calls.c (store_one_arg): Mark any slots used for the argument
4450         as in-use immediately after we're done saving any slots which
4451         will be overwritten by this argument.
4452
4453 Tue Feb 16 21:02:07 1999  Anton Hartl  <toni@devsoft.com>
4454
4455         * rs6000.md (call_value): Fix typo.
4456
4457 Wed Feb 17 01:29:07 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4458
4459         * loop.c (strength_reduce): Calculate maybe_dead before
4460         calling recombine_givs.
4461
4462 Wed Feb 17 00:43:12 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4463
4464         * loop.c (strength_reduce): Dump biv increment -> giv conversions.
4465
4466 Tue Feb 16 15:31:39 1999  Ovidiu Predescu  <ovidiu@cup.hp.com>
4467
4468         * objc/objc-act.c (encode_type): Encode the type instead of
4469         encoding the mode of the type (patch from Richard Frith-Macdonald
4470         <richard@brainstorm.co.uk>).
4471
4472 Tue Feb 16 10:53:51 1999  Richard Earnshaw  (rearnsha@arm.com)
4473
4474         * config/arm/arm.md (*zeroextractqi_compare0_scratch): Re-add load
4475         instruction killed in previous change.  Simplify mask generation.
4476         (*zeroextractsi_compare0_scratch): Simplify mask generation.
4477
4478 Tue Feb 16 09:52:26 1999  Nick Clifton  <nickc@cygnus.com>
4479
4480         * config/arm/arm.md (zeroextractqi_compare0_scratch): Ensure that
4481         bitfield does not overflow a byte boundary.
4482
4483 Tue Feb 16 01:37:33 1999  Charles G Waldman  <cgw@alum.mit.edu>
4484
4485         * c-common.c (shorten_compare): Get the min/max value from the
4486         underlying type of an enumeration, not the enumerated type itself.
4487
4488 Mon Feb 15 23:04:48 1999  Jeffrey A Law  (law@cygnus.com)
4489
4490         * jump.c: Include insn-attr.h.
4491         (delete_computation): If reload has completed and insn scheduling
4492         after reload is enabled, then do not depend on REG_DEAD notes.
4493         * Makefile.in (jump.o): Depend on insn-attr.h.
4494
4495 Mon Feb 15 16:57:38 1999  Richard Henderson  <rth@cygnus.com>
4496
4497         * i386.md (addsi3): Allow lea for any constant_p.
4498
4499 1999-02-15  Zack Weinberg  <zack@rabi.columbia.edu>
4500
4501         * toplev.c (documented_lang_options): Remove -fident and
4502           -fnoident, which are now handled by the language independent
4503           option parser.
4504
4505 1999-02-15  Zack Weinberg  <zack@rabi.columbia.edu>
4506
4507         * c-common.c (UNGETC [USE_CPPLIB=1]): Do nothing if c is EOF.
4508         * c-lex.c: Likewise.
4509         * cpplib.c (cpp_push_buffer, cpp_pop_buffer): Use a linked
4510         list in malloced memory for the buffer stack.
4511         (cpp_get_token): Don't pop the last buffer off the stack.
4512         Calls after CPP_EOF has been returned produce CPP_EOF with no
4513         state change.
4514         (cpp_finish): Pop last buffer here.
4515         (do_line): Don't free ip->last_nominal_fname if it is equal to
4516         ip->fname.
4517         (special_symbol): If a T_CONST is the empty string, push a
4518         single `@ ' escape instead.
4519         (macroexpand): Special symbol buffers have escapes too.
4520         * cpplib.h (struct cpp_buffer): Remove unused fields, add prev
4521         buffer pointer.
4522         (struct cpp_reader): Remove buffer_stack.  Add
4523         buffer_stack_depth.
4524         (CPP_PREV_BUFFER, CPP_NULL_BUFFER): Buffer stack is now a
4525         linked list.
4526
4527 Mon Feb 15 14:44:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4528
4529         * cccp.c: Don't define HOST_WIDE_INT.  Replace all occurrences of
4530         WIDE_INT with WIDEST_INT.
4531
4532         * cexp.y: Likewise.
4533         Don't define unsigned_HOST_WIDE_INT, CHAR_BIT or
4534         HOST_BITS_PER_WIDE_INT.  Replace occurrences of PRINTF_PROTO_1()
4535         style with PVPROTO() ATTRIBUTE_PRINTF_1 style macros.  Replace
4536         occurrences of "unsigned_HOST" with "unsigned HOST".  Provide a
4537         definition of variable `c89' when compiling a test binary and set it.
4538
4539         * system.h: Don't define the PRINTF_PROTO_* macros.
4540
4541 Mon Feb 15 11:33:51 1999  Jeffrey A Law  (law@cygnus.com)
4542
4543         * loop.c (mark_loop_jump): Handle LO_SUM.  If we encounter something
4544         we do not understand, mark the loop and containing loops as invalid.
4545
4546 Mon Feb 15 00:40:45 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4547
4548         * alias.c (init_alias_analysis): Avoid self-referential value
4549         when setting reg_known_value from REG_EQUAL notes.
4550
4551 Sun Feb 14 23:12:10 1999  Richard Henderson  <rth@cygnus.com>
4552
4553         * i386.c (legitimate_address_p): Verify modes of base and index.
4554
4555 Sun Feb 14 23:01:28 1999  Richard Henderson  <rth@cygnus.com>
4556
4557         * i386.c (legitimate_pic_address_disp_p): Remove static.
4558         * i386.h (LEGITIMATE_PIC_OPERAND_P): Use it instead of
4559         open-coding cases.
4560
4561 Sun Feb 14 21:03:28 1999  Jeffrey A Law  (law@cygnus.com)
4562
4563         * except.c (start_catch_handler): Use emit_cmp_and_jump_insns.
4564         * explow.c (probe_stack_range): Likewise.
4565         * expmed.c (do_cmp_and_jump): Likewise.
4566         * expr.c (store_expr, expand_expr, expand_builtin): Likewise.
4567         (do_tablejump): Likewise.
4568         * stmt.c (expand_expr_stmt, expand_end_case): Likewise.
4569         (do_jump_if_equal, emit_case_nodes): Likewise.
4570         * optabs.c (emit_cmp_and_jump_insns): Clarify comments.  If UNSIGNEDP,
4571         then convert comparison to an unsigned code before emitting the jump.
4572         (expand_float, expand_fix): Use emit_cmp_and_jump_insns.
4573
4574 Sun Feb 14 02:24:15 1999  Jeff Law  (law@cygnus.com)
4575
4576         * version.c: Bump for snapshot.
4577
4578 Sun Feb 14 01:15:04 1999  Jeff Law  (law@cygnus.com)
4579
4580         * version.c: Bump for snapshot.
4581
4582 Sun Feb 14 00:45:50 1999  Jeffrey A Law  (law@cygnus.com)
4583
4584         * loop.c: Disable recent loop changes.  Temporary as Joern
4585         continues to fix problems.
4586
4587 Sat Feb 13 23:29:42 1999  Richard Henderson  <rth@cygnus.com>
4588
4589         * loop.c (combine_givs_used_by_other): Delete.
4590         (combine_givs_benefit_from): Delete.
4591         (combine_givs): Deny combination of givs only used once.  Simplify
4592         code with the death of combine_givs_benefit_from.
4593
4594 Sun Feb 14 11:24:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4595
4596         * loop.c (scan_loop): Call reg_in_basic_block_p before
4597         loop_reg_used_before_p.
4598
4599 Sat Feb 13 05:32:00 1999  Richard Earnshaw  (rearnsha@arm.com)
4600
4601         * arm.md: Use gen_rtx_FOO instead of gen_rtx (FOO, ...).
4602         * arm.h: Likewise.
4603         * arm.c: Likewise.
4604
4605         * arm.h (TARGET_OPTIONS): Reformat for clarity.
4606         (GO_IF_LEGITIMATE_ADDRESS): When generating PIC, references to symbols
4607         in the constant pool aren't valid.
4608         (LEGITIMATE_PIC_OPERAND_P): Likewise.
4609
4610         * arm.c: Include "system.h", not stdio.h and string.h.
4611
4612 Fri Feb 12 13:06:28 1999  Jim Wilson  <wilson@cygnus.com>
4613
4614         * stmt.c (expand_return): Return if optimize_tail_recursion succeeded.
4615         (optimize_tail_recursion): Change return type from void to int.
4616         Add return statements.
4617         * tree.h (optimize_tail_recursion): Change prototype to match.
4618
4619 Fri Feb 12 21:09:51 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4620
4621         * reload.c (find_reloads_subreg_address): New function, broken out of
4622         find_reloads_toplev.
4623         (find_reloads_toplev, find_reloads_address_1): Use it.
4624
4625 Fri Feb 12 13:20:52 1999  Jeffrey A Law  (law@cygnus.com)
4626
4627         * h8300.md (zero_extendhisi2 H8/300 variant): Correctly handle
4628         extending a CONST_INT.
4629
4630         * h8300.md (peephole for combining memrefs): Delete incorrect peephole.
4631
4632 Fri Feb 12 18:29:11 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4633
4634         * loop.c (loop_insn_first_p, biv_elimination_giv_has_0_offset):
4635         New functions.
4636         (maybe_eliminate_biv_1): Use biv_elimination_giv_has_0_offset.
4637
4638 Fri Feb 12 16:56:10 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4639
4640         * loop.c (load_mems): Don't guess how to do a load / store, use
4641         emit_move_insn.
4642
4643 Fri Feb 12 09:24:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4644
4645         * system.h: Provide a definition for HOST_WIDEST_INT, etc.
4646
4647 Fri Feb 12 23:37:26 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4648
4649         * config/c4x/c4x.c (c4x_address_cost): Revert 9 Feb change.
4650
4651 Fri Feb 12 00:51:26 1999  Jeffrey A Law  (law@cygnus.com)
4652
4653         * reload.c (find_reloads_address_1): Fix handling of an autoincremented
4654         pseudo which is homed in the stack.
4655
4656         * mips.c (save_restore_insns): Fix loop to save/restore FP registers.
4657         (compute_frame_size): Change loop over FP regs to be consistent
4658         with the loop in save_restore_insns.
4659
4660 Thu Feb 11 17:38:40 1999  Jim Wilson  <wilson@cygnus.com>
4661
4662         * i960/i960.h (OVERRIDE_OPTIONS): Warn if -mlong-double-64 is used.
4663         (LONG_DOUBLE_TYPE_SIZE): Undef then unconditionally define to 96.
4664
4665 Thu Feb 11 15:11:35 1999  Jeffrey A Law  (law@cygnus.com)
4666
4667         * mn10200.md (bset); Re-enable.
4668
4669 Thu Feb 11 15:20:49 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4670
4671         * sh.md (is_sfunc): New attribute.
4672         * sh.h (INSN_SETS_ARE_DELAYED, INSN_REFERENCES_ARE_DELAYED): Use it.
4673
4674 Thu Feb 11 01:06:49 1999  Nathan Sidwell  <nathan@acm.org>
4675
4676         * fold-const.c (range_binop): Take account of the bounded nature
4677         of fixed length arithmetic when comparing unbounded ranges.
4678
4679 Thu Feb 11 00:08:17 1999  John Wehle  (john@feith.com)
4680
4681         * function.c (assign_stack_temp_for_type): Clear best_p
4682         when an exact match is found.
4683
4684         * i386.h (LOCAL_ALIGNMENT): Define.
4685         * function.c (assign_stack_local, assign_outer_stack_local): Use it.
4686         (assign_stack_temp_for_type): New function based on assign_stack_temp.
4687         (assign_stack_temp): Call it.
4688         (assign_temp): Use assign_stack_temp_for_type, not assign_stack_temp.
4689         * stmt.c: Use assign_temp, not assign_stack_temp.
4690         * tm.texi: Document LOCAL_ALIGNMENT.
4691
4692 Wed Feb 10 23:28:28 1999  Jeffrey A Law  (law@cygnus.com)
4693
4694         * reorg.c: Finish deleting half-deleted comment.
4695
4696 Wed Feb 10 17:12:21 1999  Jim Wilson  <wilson@cygnus.com>
4697
4698         * emit-rtl.c (operand_subword): Sign extend REAL_VALUE_TO_TARGET_SINGLE
4699         result.
4700         * final.c (split_double): Sign extend REAL_VALUE_TO_TARGET_DOUBLE
4701         result.
4702         * real.c (endian): Delete sign extension code.
4703         * config/m32r/m32r.md (movsf_insn+1): REAL_VALUE_TO_TARGET_SINGLE call
4704         replaced with operand_subword call.
4705
4706 Wed Feb 10 15:16:39 1999  Richard Henderson  <rth@cygnus.com>
4707
4708         * alpha.md (cmov compound patterns): Delete.  Jump can now
4709         create the correct constructs in the first place.
4710
4711 Wed Feb 10 11:03:22 1999  Richard Henderson  <rth@cygnus.com>
4712
4713         * configure.in (alphaev6*): Fix typo in target_cpu_default2.
4714
4715 Wed Feb 10 13:59:18 1999  Dave Brolley  <brolley@cygnus.com>
4716
4717         * mbchar.c (local_mb_cur_max): Handle the case where MB_CUR_MAX is 0.
4718
4719 Wed Feb 10 10:35:05 1999  Jim Wilson  <wilson@cygnus.com>
4720
4721         * tmp-emsgids.c: Delete.
4722
4723 Wed Feb 10 09:57:08 1999  Mark Mitchell  <mark@markmitchell.com>
4724
4725         * rtlanal.c (for_each_rtx): Fix declaration to conform to GNU
4726         coding standards.
4727
4728 Wed Feb 10 10:09:41 1999  Jeffrey A Law  (law@cygnus.com)
4729
4730         * mn10200.md (bset, bclr): Operand 0 is a read/write operand.
4731
4732         * reload1.c (reload_combine_note_store): Second argument is no
4733         longer unused/ignored.  Handle multi-register hard regs.
4734         (move2add_note_store): Simplify.
4735
4736 Wed Feb 10 10:05:23 1999  Mumit Khan  <khan@xraylith.wisc.edu>
4737
4738         * collect2.c (collect_execute): Remove cygwin-specific code.
4739
4740 Tue Feb  9 17:27:29 1999  Nathan Sidwell  <nathan@acm.org>
4741
4742         * system.h (_, N_): Remove dummy i18n macros.
4743         * protoize.c: Move inclusion of intl.h to after system.h.
4744         * cexp.y: Include intl.h.
4745         * cexp.c: Rebuilt.
4746
4747 Tue Feb  9 16:52:22 1999  Mumit Khan  <khan@xraylith.wisc.edu>
4748
4749         * i386/cygwin.h (SUBTARGET_OVERRIDE_OPTIONS): New macro to ignore
4750         fpic/fPIC for windows32 targets.
4751         * i386/xm-cygwin.h (GET_ENV_PATH_LIST): Replace '\\' in windows32
4752         paths with '/'.
4753         * i386/mingw32.h (CPP_SPEC): Define.
4754         (CPP_PREDEFINES): Add MINGW32 version id.
4755         * i386/crtdll.h (CPP_PREDEFINES): Likewise.
4756
4757         * Makefile.in (collect2$(exeext)): Delete redundant dependency and
4758         add missing exeext to target.
4759
4760         * gcc.c (convert_filename): Handle null filename argument.
4761
4762 Wed Feb 10 15:46:10 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4763
4764         * config/c4x/c4x.md (*movhf_noclobber, *movhi_noclobber): Use
4765         m constraint instead of QT.
4766
4767 1999-02-09  Brendan Kehoe  <brendan@cygnus.com>
4768
4769         * cpplib.c (special_symbol): Move IP to be declared in function
4770         scope, rather than individual case statements.
4771
4772 1999-02-09  Zack Weinberg  <zack@rabi.columbia.edu>
4773
4774         * cppfiles.c (finclude): Handle pipes properly under old BSD
4775           derivatives.
4776
4777 1999-02-09  Melissa O'Neill  <oneill@cs.sfu.ca>
4778
4779         * system.h: Provide fallback definitions for S_ISCHR,
4780           S_ISSOCK, S_ISFIFO, O_NONBLOCK, and O_NOCTTY.
4781
4782 1999-02-09  Zack Weinberg  <zack@rabi.columbia.edu>
4783
4784         * cpplib.c (do_define): Allow redefining __STDC__ with -D.
4785
4786 1999-02-09  Jim Blandy  <jimb@zwingli.cygnus.com>
4787
4788         * configure.in: For PowerPC configurations, accept "401", "ec603e",
4789         "740", and "750" as valid arguments to --with-cpu.
4790         * configure: Rebuilt.
4791
4792 Tue Feb  9 00:00:14 1999  Mark Kettenis  <kettenis@gnu.org>
4793
4794         * configure.in (i[34567]86-*gnu*): Set float_format to i386.
4795         * configure: Rebuilt.
4796
4797 Mon Feb  8 22:38:24 1999  Jeffrey A Law  (law@cygnus.com)
4798
4799         * rs6000.md: Revert "alternate use of crs if cr0 not available"
4800         patches from 01-22-1999, 01-24-1999, 01-26-1999, and 02-08-1999.
4801
4802 Mon Feb  8 21:36:44 1999  Richard Henderson  <rth@cygnus.com>
4803
4804         * output.h (current_function_has_computed_jump): Rename from
4805         current_function_addresses_labels.
4806         * function.h (struct function): Likewise for addresses_labels member.
4807         * rtl.h (FUNCTION_FLAGS_HAS_COMPUTED_JUMP): Likewise.
4808         * function.c (current_function_has_computed_jump): Likewise.
4809         Update all references.
4810         * integrate.c (function_cannot_inline_p):
4811         Test current_function_has_computed_jump instead of addresses_labels.
4812         (initialize_for_inline): Likewise save.
4813         (output_inline_function): Likewise restore.
4814
4815         * expr.c (expand_expr): Don't reference addresses_labels variables.
4816         * stmt.c (expand_computed_goto): Set has_computed_jump.
4817
4818 1999-02-08  Michael Meissner  <meissner@cygnus.com>
4819
4820         This is being installed only to get it into the repository to help
4821         with the revert, resubmit & review process for the massive rs6000.md
4822         changes.
4823         * rs6000.md (andsi3_internal1 splitter): Don't split if using the
4824         rlwinm instruction.
4825         (anddi3_internal1): Likewise.
4826         (andsi3_internal{2,3}): Correct some insn lengths.
4827         (anddi3*): Restore missing TARGET_POWERPC64, and don't emit old
4828         mnemonics.
4829
4830 Mon Feb  8 21:31:06 1999  Richard Henderson  <rth@cygnus.com>
4831
4832         * loop.c (reg_single_usage): New file-scope variable ...
4833         (scan_loop): ... moved out of here.  Always initialize.
4834         Test loop_has_call instead of reg_single_usage not zero.
4835         Free reg_single_usage after strength reduction.
4836         (count_loop_regs_set): Assume single_usage non-zero.
4837         (combine_givs_used_by_other): Test reg_single_usage.
4838         (load_mems_and_recount_loop_regs_set): Remove reg_single_usage
4839         as a parameter.  Assume non-zero.
4840         
4841 1999-02-08  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
4842
4843         * cpplib.c (special_symbol): Rewrite.  Don't copy things
4844           multiple times.  Handle __STDC__ specially.  T_CONST
4845           indicates a constant /string/.  Don't handle T_*_TYPE and
4846           T_SPEC_DEFINED.  Use cpp_buf_line_and_col instead of
4847           adjust_position.  Determine the file buffer only if needed.
4848           (initialize_builtins): Handle __SIZE_TYPE__,
4849           __PTRDIFF_TYPE__, __WCHAR_TYPE__, __USER_LABEL_PREFIX__, and
4850           __REGISTER_PREFIX__ with T_CONST special hashtab entries.
4851           Don't provide __OBJC__; the driver does that.  Provide
4852           __STDC_VERSION__, using T_CONST.  Use T_STDC for
4853           __STDC__.  Give install the length of all symbols defined.
4854           (eval_if_expression): Drop code to insert and remove the
4855           "defined" special symbol.
4856
4857         * cpplib.h: Remove SELF_DIR_DUMMY (no longer used).  Remove
4858           T_*_TYPE and T_SPEC_DEFINED from enum node_type; add T_STDC.
4859
4860         * cpphash.c (install): Drop the `ivalue' parameter.  Constify
4861           the `value' parameter.  All callers changed.
4862         * cpphash.h (install): Change prototype to match.
4863           (union hashval): Remove `ival' member.
4864         * cppexp.c (cpp_lex): Handle `defined' here.
4865
4866 Mon Feb  8 17:29:42 1999  Jeffrey A Law  (law@cygnus.com)
4867
4868         * pa.h (EXTRA_CONSTRAINT): Fix comment.
4869
4870 Mon Feb  8 18:57:45 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
4871
4872         * c-typeck.c (check_init_type_bitfields): Use nonincremental
4873         initialization of unions whose first member is a bitfield.
4874         Remove unnecessary code for checking the declaration mode
4875         after DECL_C_BIT_FIELD.
4876
4877         * varasm.c (output_constructor): Additional comment about the
4878         constructor of bitfield union initialization.
4879
4880 Tue Feb  9 11:55:04 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4881
4882         * config/c4x/c4x.md (*movhi_stik): New pattern.
4883         (movhi): Allow some immediate constants to be directly
4884         stored in memory.
4885
4886 Tue Feb  9 11:34:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4887
4888         * config/c4x/c4x.md (all call patterns): Add constraints "Ur".
4889         (call, call_value): Force address into a register if not valid
4890         for a call instruction.
4891         (load_immed_address): Emit a USE of the SYMBOL_REF that is
4892         forced into memory.
4893         * config/c4x/c4x.c (c4x_print_operand): Fix 'C' and 'U' modifiers.
4894
4895 Tue Feb  9 11:08:41 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4896
4897         * config/c4x/c4x.c (call_address_operand, symbolic_address_operand):
4898         Rename from call_operand and symbolic_operand respectively.  All
4899         callers changed.
4900         * config/c4x/c4x.md (call_address_operand, symbolic_address_operand):
4901         Likewise.
4902         * config/c4x/c4x.h (call_address_operand, symbolic_address_operand):
4903         Likewise.
4904         (PREDICATE_CODES): Allow CONST, LABEL_REF for call_address_operand.
4905
4906 Tue Feb  9 10:52:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4907
4908         * config/c4x/c4x.c (c4x_legitimize_address): Don't generate a
4909         LO_SUM address for HImode or HFmode but instead force address into
4910         a register so that it is offsettable.
4911         (c4x_emit_move_sequence): Handle LO_SUM immediate address.
4912
4913 Tue Feb  9 10:46:42 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4914
4915         * config/c4x/c4x.c (c4x_address_cost): Return cost of 1 for
4916         REG+REG addressing if strength reduction enabled.
4917
4918 Tue Feb  9 10:10:31 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4919
4920         * config/c4x/t-c4x  (LIBGCC2_CFLAGS): Delete.
4921         (TARGET_LIBGCC2_CFLAGS): Define.
4922         
4923 1999-02-08  Nick Clifton  <nickc@cygnus.com>
4924
4925         * config/v850/v850.md: Replace \\n\\t with \\;
4926         
4927         * config/v850/v850.md: Enforce TARGET_LONG_CALLS option.
4928         * config/v850/v850.c (construct_restore_jr, construct_save_jarl):
4929         Enforce TARGET_LONG_CALLS option.
4930
4931 Mon Feb  8 11:43:07 1999  Donn Terry  <donn@interix.com>
4932
4933         * real.c (PUT_REAL) [XFmode]: Zero the balance of the structure.
4934
4935 Mon Feb  8 11:37:24 1999  Marc Espie  (espie@cvs.openbsd.org)
4936
4937         * m88k/t-luna-gas: Remove bash dependency.
4938
4939 Mon Feb  8 11:34:44 1999  Graham  <grahams@rcp.co.uk>
4940
4941         * collect2.c (xrealloc): Fix typo in last change.
4942
4943 Mon Feb  8 09:13:38 1999  Jeff Law  (law@cygnus.com)
4944
4945         * version.c: Bump for snapshot.
4946
4947 Sun Feb  7 22:18:42 1999  Robert Lipe  <robertlipe@usa.net>
4948
4949         * tree.h (TYPE_CHECK): Make it clear to the preprocessor
4950         that we do not want macro replacement within a character constant.
4951         (TYPE_CHECK1): Likewise.
4952
4953 Sun Feb  7 15:37:10 1999  Jason Merrill  <jason@yorick.cygnus.com>
4954
4955         * tree.h (DECL_P): New macro.
4956
4957 Sun Feb  7 01:15:04 1999  Jeff Law  (law@cygnus.com)
4958
4959         * version.c: Bump for snapshot.
4960
4961 Sat Feb  6 18:14:46 1999  Jeffrey A Law  (law@cygnus.com)
4962
4963         * mn10300.md (reload_insi): Do not earlyclobber the output operand.
4964
4965         * README.g77, gcc.c, gcc.texi: Update email addresses.
4966         * invoke.texi system.h: Likewise.
4967
4968 Sat Feb  6 11:04:08 1999  Jim Wilson  <wilson@cygnus.com>
4969
4970         * unroll.c (find_splittable_givs): After express_from, call replace_rtx
4971         to convert dest_reg to new_reg.
4972
4973 Sat Feb  6 10:31:35 1999  Jeffrey A Law  (law@cygnus.com)
4974
4975         * reload1.c (reload_combine_note_store): Be more careful with
4976         STRICT_LOW_PART, ZERO_EXTRACT and SIGN_EXTRACT.
4977         (move2add_note_store): Likewise.
4978
4979 Sat Feb  6 10:18:01 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4980
4981         * cppfiles.c (read_and_prescan): Cast the result of `xrealloc' to
4982         U_CHAR* when assigning to one.  Ensure the values of a ?: operator
4983         have the same type.
4984
4985         * cppinit.c (initialize_char_syntax): Use K&R function definition.
4986
4987 Sat Feb  6 11:17:03 1999  Richard Earnshaw  <rearnsha@arm.com>
4988
4989         Support for ARM9
4990         * config/arm/arm.c (all_procs): Add arm9 and arm9tdmi.
4991         * config/arm/arm.h ((TARGET_CPU_arm9, TARGET_CPUD_arm9tdmi): Define.
4992         (TARGET_CPU_DEFAULT): Rework to support ARM9.
4993         (CPP_CPU_ARCH_SPEC): Likewise.
4994         (enum processor_type): Likewise.
4995         * config/arm/arm.md (attr cpu): Add arm9.
4996
4997         General scheduling changes
4998         * config/arm/arm.c (MAX_INSNS_SKIPPED): Delete.
4999         (max_insns_skipped): New variable.
5000         (arm_override_options): If generating hard floating point code for
5001         the FPA, emit code for version 3.
5002         When optimizing for space, don't synthesize constants.
5003         Reword several flags based on the requested processor and optimization
5004         level.
5005         (use_return_insn): New argument iscond, all callers changed.  Don't
5006         use a return insn if it will be conditional and that would be
5007         expensive; eg on StrongARM.
5008         (arm_adjust_cost): Anti- and output- dependencies normally have no
5009         cost.
5010         (load_multiple_sequence): Newer ARMs don't benefit from ldm if
5011         the sequence is short.
5012         (final_prescan_insn): Use max_insns_skipped instead of
5013         MAX_INSNS_SKIPPED.  Note whether we will make a return instruction
5014         conditional, and aviod this if it would be expensive.
5015         * config/arm/arm.md (scheduling attributes and function units):
5016         Rewrite to better describe ARM8, 9 and StrongARM.
5017
5018         * config/arm/arm.md (*movhi_insn_littleend): Make op0 predicate
5019         s_register_operand.
5020         (*ifcompare_plus_move): Use arm_rhs_operand in place of
5021         arm_rhsm_operand.  Rework constraints.
5022         (*if_plus_move): Likewise.
5023         (*ifcompare_move_plus): Likewise.
5024         (*if_move_plus): Likewise.
5025         (*ifcompre_arith_move): Likewise.
5026         (*if_arith_move): Likewise.
5027         (*ifcompare_move_arith): Likewise.
5028         (*if_move_arith): Likewise.
5029
5030         * config/arm/xm-netbsd.h: Don't include arm/xm-arm.h.
5031         
5032 1999-02-05  Michael Meissner  <meissner@cygnus.com>
5033
5034         * loop.c (check_dbra_loop): A store using an address giv for which
5035         we have no life information is not reversible.
5036
5037 Fri Feb  5 17:08:01 1999  Dave Brolley  <brolley@cygnus.com>
5038
5039         * function.c (fixup_var_refs): Scan catch_clauses too.
5040
5041 Fri Feb  5 11:49:49 1999  Benjamin Kosnik  <bkoz@loony.cygnus.com>
5042
5043         * c-common.c (decl_attributes): Fix reserved space for init_priority.
5044         * tree.h (MAX_RESERVED_INIT_PRIORITY): New macro.
5045
5046 Fri Feb  5 12:37:05 1999  Jeffrey A Law  (law@cygnus.com)
5047
5048         * loop.c (strength_reduce): Clear not_every_iteration when
5049         passing the NOTE_INSN_LOOP_CONT note.
5050
5051         * haifa-sched.c (add_dependence): Do not add a dependency on a
5052         note.
5053
5054 Fri Feb  5 10:55:43 1999  Nick Clifton  <nickc@cygnus.com>
5055
5056         * recog.c (split_block_insns): Only call update_flow_info if
5057         instruction scheduling is enabled.
5058
5059 1999-02-05  Zack Weinberg  <zack@rabi.columbia.edu>
5060
5061         * Makefile.in (gen-protos): Use libcpp.a like everyone else.
5062
5063 Fri Feb  5 07:09:29 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5064
5065         * loop.c (first_loop_store_insn): New file-scope variable.
5066         (prescan_loop): Set it.
5067         (check_dbra_loop): Check if a store depends on a register
5068         that is set after the store.
5069
5070 Fri Feb  5 06:55:15 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5071
5072         * unroll.c (entire file): Remove tabs / spaces at end of lines.
5073         Replace spaces with tabs where appropriate.
5074
5075 Thu Feb  4 15:12:41 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5076
5077         * loop.c (scan_loop): New argument loop_cont.  Changed caller.
5078         (strength_reduce): New argument loop_cont. Changed caller.
5079         Before clearing not_every_iteration after a label, check if
5080         we are not already past LOOP_CONT.
5081
5082 1999-02-04  Zack Weinberg  <zack@rabi.columbia.edu>
5083
5084         * cpperror.c (cpp_print_containing_files): Fix formatting
5085         bug induced by merge.
5086
5087 1999-02-04  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5088
5089         * cpplib.c (initialize_char_syntax): Move to cppinit.c.
5090         (cpp_define): Remove redundant syntax checks.
5091         (make_assertion): Rename cpp_assert, remove redundant syntax
5092         checks, export.
5093         (cpp_options_init): Don't init things to zero twice.
5094         (cpp_expand_to_buffer): Use memcpy, not a char-by-char loop.
5095         (do_include): Kill excessively verbose #import warning that
5096         snuck back in in the gcc2 merge.
5097         (convert_string): Removed.
5098         (do_line): Rewrite with simple last-name-used cache instead of
5099         private hashtable.
5100         (cpp_start_read): Call initialize_char_syntax here, not...
5101         (cpp_reader_init): ...here.
5102         (cpp_handle_options): Support the -std switch.
5103         * cpplib.h (cpp_buffer): Add last_nominal_fname member.
5104         (cpp_options): Add c9x flag.
5105         Declare all the is_* tables and trigraph table here, as const.
5106         Prototype cpp_assert and initialize_char_syntax.
5107         * cppinit.c: New file.
5108         * cppfiles.c (read_and_prescan): Optimize.
5109         * Makefile.in (LIBCPP_OBJS): Add cppinit.o.
5110
5111 Thu Feb  4 10:46:30 1999  Gavin Romig-Koch  <gavin@cygnus.com>
5112
5113         * config/mips/mips.md ([u]divmodsi4,[u]divmoddi4,[u]divsi3,[u]divdi3,
5114         [u]modsi3,[u]moddi3) : Don't copy the "zero" argument to a register
5115         before calling gen_div_trap.
5116
5117 Wed Feb  3 21:56:27 1999  Jeffrey A Law  (law@cygnus.com)
5118
5119         * configure.in (hppa1.1-*-*, hppa2*-*): Use symbolic value rather
5120         than numeric value for target_cpu_default..
5121         * configure: Rebuilt.
5122
5123 Wed Feb  3 21:55:56 1999  Marc Espie  <Marc.Espie@liafa.jussieu.fr>
5124
5125         * Makefile.in (xgcc$(exeext)): Remove choose-temp, pexecute and
5126         mkstemp.  Get them from libiberty.
5127         (COLLECT2_OBJS): Similarly for choose-temp, cplus-dem and mkstemp.
5128         (PROTO_OBJS): Similarly for choose-temp, getopt, getopt1 and pexecute.
5129         (cplus-dem.o, pexecute.o, choose-temp.o): Remove build rules.
5130         (mkstemp.o, getopt1.o, getopt.o): Likewise.
5131
5132         * pa-gas.h (TARGET_DEFAULT): Use symbolic values rather than numeric
5133         values.
5134         * pa-hpux.h (LINK_SPEC): Likewise.
5135         * pa-hpux10.h (LINK_SPEC): Likewise.
5136         * pa-hpux9.h (LINK_SPEC): Likewise.
5137         * pa-osf.h (LINK_SPEC): Likewise.
5138         * pa-pro.h (TARGET_DEFAULT): Likewise.
5139         * pa1.h (TARGET_DEFAULT): Likewise.
5140         * pa.h (MASK_*): New defines.
5141         (TARGET_*): Use symbolic values rather than numeric values.
5142         (TARGET_SWITCHES): Likewise.
5143         (TARGET_DEFAULT): Likewise.
5144         (CPP_SPEC): Likewise.
5145
5146 Wed Feb  3 21:07:38 1999  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
5147
5148         * reload1.c (reload_cse_regs_1): Undo Jan 16 patch.
5149         * reload.c (find_reusable_reload): New function, broken out of
5150         push_reload.  Add code to verify that none of the involved
5151         outputs are subject to earlyclobbers.
5152         (push_reload): Break out new function find_reusable_reload.
5153         Delete "register" keyword for IN, OUT args.
5154
5155 Wed Feb  3 15:51:04 1999  Gavin Romig-Koch  <gavin@cygnus.com>
5156
5157         * config/mips/mips.c (true_reg_or_0_operand) : New function.
5158         * config/mips/mips.h (PREDICATE_CODES): Add true_reg_or_0_operand.
5159         * config/mips/mips.md (div_trap,div_trap_normal,div_trap_mips16):
5160         Use true_reg_or_0_operand for div_trap.
5161
5162 Wed Feb  3 20:44:59 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5163
5164         * loop.h (express_from): Declare.
5165         (struct induction): Replace derived flag with derived_from pointer.
5166         * loop.c (strength_reduce, record_giv, recombine_givs): Likewise.
5167         (express_from): No longer static.
5168         * unroll.c (find_splittable_givs): Replace derived with derived_from.
5169         When processing an address giv with which another giv has been
5170         combined that has also been derived from a third giv, handle like
5171         having combined with the third giv.
5172         Set splittable_regs_updates appropriately for derived givs.
5173
5174 Wed Feb  3 15:26:58 1999  Gavin Romig-Koch  <gavin@cygnus.com>
5175
5176         * config/mips/mips.md (div_trap_mips16): Remove nop's after branches.
5177
5178 Wed Feb  3 11:56:23 1999  Jeffrey A Law  (law@cygnus.com)
5179
5180         * pa.c (insn_sets_and_refs_are_delayed): New function.
5181         * pa.h (INSN_SETS_ARE_DELAYED): Use it.
5182         (INSN_REFERENCES_ARE_DELAYED): Likewise.
5183
5184 Wed Feb  3 06:24:49 1999  Richard Earnshaw  (rearnsha@arm.com)
5185
5186         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Delete.
5187         * config/arm/t-linux (LIBGCC2_CFLAGS): Delete.
5188         (TARGET_LIBGCC2_CFLAGS): Define.
5189         (LIBGCC2_DEBUG_CFLAGS): Define.
5190         * config/arm/t-netbsd: Likewise.
5191         * config/arm/t-semi: Likewise.
5192         * config/arm/t-semiaof: Likewise.
5193         * config/arm/t-riscix: Likewise.
5194
5195 Wed Feb  3 10:59:07 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
5196
5197         * config/m68k/m68k.c (print_operand_address): When printing a
5198         SYMBOL_REF that ends in `.<letter>' put parentheses around it.
5199
5200 Tue Feb  2 23:38:35 1999  David O'Brien  <obrien@FreeBSD.org>
5201
5202         * i386/freebsd*.h now allows '$' in label names and does not use the
5203         PCC struct return method.
5204
5205 Tue Feb  2 22:38:23 1999  Jim Wilson  <wilson@cygnus.com>
5206
5207         * Makefile.in: Change all uses of AR to AR_FOR_TARGET.  Change all uses
5208         of HOST_AR to AR.  Likewise for AR_FLAGS, RANLIB, and RANLIB_TEST.
5209         (RANLIB_TEST): Test to see if ranlib exists.  Only test absolute file
5210         names if host == target.
5211         (HOST_AR, HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Delete.
5212         (AR_FLAGS_FOR_TARGET): Renamed from AR_FOR_TARGET_FLAGS.
5213         (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Delete rules
5214         setting them to *_FOR_TARGET.
5215         * cross-make (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST):
5216         Delete.
5217
5218 Tue Feb  2 22:38:19 1999  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
5219
5220         * toplev.h (read_integral_parameter): Declare.
5221         * toplev.c (read_integral_parameter): New function.
5222
5223 Fri Jan 29 21:00:56 1999  Bob Manson  <manson@charmed.cygnus.com>
5224
5225         * resource.c, resource.h: New files.
5226         * Makefile.in (OBJS): Add it.
5227
5228         * haifa-sched.c (regno_use_in): Moved to rtlanal.c.
5229         (split_block_insns): Moved to recog.c.
5230         (update_flow_info): Make public.
5231         * rtl.h: Declare them.
5232
5233         * reorg.c: Moved the functions dealing with computing resource
5234         usage to resource.c.
5235
5236         * sched.c (regno_use_in): Moved to rtlanal.c.
5237         (update_flow_info): Make public.
5238         (schedule_insns): Use split_block_insns.
5239
5240         * recog.c (split_block_insns): New function.
5241
5242 Tue Feb  2 22:03:26 1999  David Edelsohn  <edelsohn@gnu.org>
5243
5244         * rs6000/linux.h (LINK_START_DEFAULT_SPEC): Delete, unused.
5245         (LINK_OS_DEFAULT_SPEC): Delete, unused.
5246
5247 Tue Feb  2 20:29:34 1999  Catherine Moore  <clm@cygnus.com>
5248
5249         * configure.in (arm-*-oabi): Support.
5250         * configure: Regenerate.
5251         * config/arm/unknown-elf-oabi.h: New file.
5252
5253 Tue Feb  2 19:43:59 1999  Jeffrey A Law  (law@cygnus.com)
5254
5255         * i386.md (ashlsi3): Turn into a define_expand an anonymous pattern.
5256         Make the anonymous pattern match when ! optimize_size.
5257         (ashlsi3 size optimizer): New pattern.
5258
5259         * intl/Makefile.in (uninstall): Add missing "; \".
5260
5261 Tue Feb  2 18:21:23 1999  Stan Cox  <scox@cygnus.com>
5262
5263         * sparc.h (TARGET_CPU_sparc86x): Added. TARGET_CPU_sparclite86x
5264         synonym.
5265
5266 Tue Feb  2 20:24:11 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5267
5268         * loop.c (loop_optimize): Fix value max_uid_for_loop is reset
5269         to after find_and_verify_loops call.
5270
5271 Tue Feb  2 19:48:29 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5272
5273         * (recombine_givs): Don't use a giv that's likely to be dead to
5274         derive others.
5275
5276         * loop.c (recombine_givs): Fix test for lifetime overlaps / loop
5277         wrap around when deriving givs.
5278
5279 Mon Feb  1 20:00:40 1999  Richard Henderson  <rth@cygnus.com>
5280
5281         * recog.c (check_asm_operands): Treat indeterminate operand ok
5282         results as success.  Try harder to resolve a matching constraint.
5283         * stmt.c (expand_asm_operands): Recognize when an output operand's
5284         constraint does not allow memory.  Treat indeterminate operand ok
5285         results as failure.  Try harder to resolve a matching constraint.
5286         
5287 Mon Feb  1 15:00:02 1999  Ken Raeburn  <raeburn@cygnus.com>
5288
5289         Use varrays for constant-equivalence data:
5290
5291         * varray.h (struct const_equiv_data): New type.
5292         (union varray_data_tag): New element const_equiv.
5293         (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV): New macros.
5294         (VARRAY_SIZE): New macro, returns number of elements.
5295         * integrate.h: Include varray.h.
5296         (struct inline_remap): Replace const_equiv_map, const_age_map and
5297         const_equiv_map_size with a const_equiv_varray element.
5298         (MAYBE_EXTEND_CONST_EQUIV_VARRAY): New macro; grows varray if
5299         needed.
5300         (SET_CONST_EQUIV_DATA): New macro; sets rtx and age fields
5301         simultaneously, growing the varray if needed.
5302
5303         * integrate.c (global_const_equiv_map,
5304         global_const_equiv_map_size): Deleted, replaced by....
5305         (global_const_equiv_varray): New variable.
5306         (expand_inline_function): References changed.
5307         * integrate.h: Update declarations.
5308
5309         * integrate.c (process_reg_parm, expand_inline_function,
5310         copy_rtx_and_substitute, try_constants, subst_constants,
5311         mark_stores): Use varray allocation and accessor macros, new
5312         integrate.h macros, and global_const_equiv_varray.  Don't
5313         conditionalize non-NULL stores on array size; instead, expand the
5314         array as needed.
5315         * unroll.c (unroll_loop): Likewise.
5316
5317         * unroll.c (unroll_loop): Initialize const_equiv_varray element to
5318         zero.  After allocating varray, always exit through bottom of
5319         function, where it can be deallocated if needed.  Don't explicitly
5320         reallocate const_equiv_map storage; instead, just ensure the
5321         varray has been initialized, and update the global reference.
5322
5323 Mon Feb  1 09:40:25 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5324
5325         * system.h (inline, const): Handle these for stage2 (and later) gcc.
5326
5327         * dwarf2out.c (inline): Don't define.
5328
5329         * dwarfout.c (inline): Likewise.
5330
5331 Sun Jan 31 22:04:37 1999  Richard Henderson  <rth@cygnus.com>
5332
5333         * loop.c (recombine_givs): Dump recombination and derivation data.
5334
5335 Sun Jan 31 20:34:29 1999  Zack Weinberg  <zack@rabi.columbia.edu>
5336
5337         * flags.h: Declare flag_no_ident.
5338         * toplev.c: Define flag_no_ident.  Process -f(no-)ident here.
5339         * c-tree.h: Don't declare flag_no_ident.
5340         * c-decl.c: Don't define flag_no_ident.  Don't process
5341           -f(no-)ident switches here.
5342
5343         * config/elfos.h (ASM_FILE_END): Output final .ident directive
5344           only if !flag_no_ident.
5345         * config/ptx4.h: Likewise.
5346         * config/svr4.h: Likewise.
5347         * config/alpha/elf.h: Likewise.
5348         * config/arm/linux-elf.h: Likewise.
5349         * config/i386/sco5.h: Likewise.
5350         * config/i860/fx2800.h: Likewise.
5351         * config/mips/gnu.h: Likewise.
5352         * config/i386/osfrose.h: Likewise.
5353
5354         * gcc.c (C specs): Map -Qn to -fno-ident.
5355         * objc/lang-specs.h: Likewise.
5356
5357 Mon Feb  1 10:52:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5358
5359         * configure.in: Don't remove loop.o and unroll.o when
5360         enable-haifa is selected.
5361         * configure: Rebuilt.
5362
5363 Sun Jan 31 13:22:02 1999  John Wehle  (john@feith.com)
5364
5365         * i386.md (movsicc, movhicc, movsfcc, movdfcc,
5366         movxfcc, movdicc): Delete unconstrained alternatives.
5367         * i386.c (output_fp_conditional_move,
5368         output_int_conditional_move): Delete unused case.
5369
5370 Sun Jan 31 01:15:04 1999  Jeff Law  (law@cygnus.com)
5371
5372         * version.c: Bump for snapshot.
5373
5374 Sun Jan 31 00:52:37 1999  Richard Henderson  <rth@cygnus.com>
5375
5376         * alpha.md (mov patterns): Emit the assembler aliases mov and fmov
5377         instead of bis and cpys.  Combine alternatives where possible.
5378
5379 Sat Jan 30 23:14:13 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5380
5381         * gcov.c (fnotice): Add missing FILE* parameter.
5382         (function_summary): Fix format specifiers in calls to `fnotice'.
5383         (output_data): Likewise.
5384
5385         * toplev.c (fnotice): Constify char* parameter.
5386
5387         * toplev.h (fnotice): Add prototype.
5388         Wrap prototype with BUFSIZ to protect FILE* usage.
5389         
5390 Sun Jan 31 15:33:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5391
5392         * config/c4x/c4x.h (RTX_COSTS): Explicitly define c4x costs.
5393         
5394 Sat Jan 30 08:27:23 1999  Jeffrey A Law  (law@cygnus.com)
5395
5396         * combine.c (distribute_notes): Handle REG_EH_REGION notes.
5397
5398         * alias.c (fixed_scalar_and_varying_struct_p): Add "static" to
5399         function definition.
5400         (aliases_everything_p, write_dependence_p):Likewise.
5401
5402         * install.texi: Fix merge lossages.
5403
5404         * cccp.c (main): Only call setlocale (LC_MESSAGES, ...) if LC_MESSAGES
5405         is defined.
5406         * collect2.c (main): Likewise.
5407         * cppmain.c (main): Likewise.
5408         * gcc.c (main): Likewise.
5409         * gcov.c (main): Likewise.
5410         * protoize.c (main): Likewise.
5411         * toplev.c (main): Likewise.
5412
5413         * pa.md (parallel shift and shiftadd): Mark output of shift as an
5414         earlyclobber.
5415
5416         * loop.c: Disable recent loop changes.  Temporary as Joern
5417         continues to fix problems.
5418
5419 Sat Jan 30 03:24:37 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5420
5421         * loop.c (strength_reduce): Size reg_map according to reg_iv_type.
5422
5423 Fri Jan 29 18:26:07 1999  Dave Brolley  <brolley@cygnus.com>
5424
5425         * emit-rtl.c (remove_insn): New function.
5426         * rtl.h (remove_insn): Add prototype.
5427         * function.c (reposition_prologue_and_epilogue_notes): Call remove_insn.
5428
5429 Fri Jan 29 22:34:41 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5430
5431         * loop.c (recombine_givs): Don't try to derive givs that have combined.
5432
5433 Fri Jan 29 15:00:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5434
5435         * toplev.c (notice, fnotice): Check ANSI_PROTOTYPES, not __STDC__,
5436         when declaring arguments and calling va_arg() to initialize them.
5437
5438         * collect2.c (notice): Likewise.
5439
5440         * loop.c (find_life_end): Use PROTO() macro in the prototype.
5441
5442 Fri Jan 29 14:36:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5443
5444         * collect2.c (error): Fix typo in declaration.
5445
5446         * cpperror.c (cpp_message): Likewise.
5447
5448         * cpplib.c (cpp_warning): Likewise.
5449
5450         * cpplib.h (cpp_notice): Use PVPROTO not VPROTO, also add
5451         ATTRIBUTE_PRINTF_1.
5452
5453         * toplev.c (error): Fix typo in declaration.
5454
5455 Fri Jan 29 15:44:13 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5456
5457         * loop.c (strength_reduce): Fix HAVE_cc0 handling when scanning
5458         forward from cont dominator.
5459
5460 Fri Jan 29 07:10:27 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5461
5462         * cccp.c (eprint_string): Constify a char*.
5463         (notice): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
5464         (vnotice): Constify a char*.
5465         (error): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
5466         (verror): Constify a char*.
5467         (warning): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
5468         (vwarning): Constify a char*.
5469         (error_with_line): Likewise.  Use PVPROTO not VPROTO, add
5470         ATTRIBUTE_PRINTF_2.
5471         (verror_with_line): Constify a char*.
5472         (vwarning_with_line): Likewise.
5473         (warning_with_line): Likewise.  Use PVPROTO not VPROTO, add
5474         ATTRIBUTE_PRINTF_2.
5475         (pedwarn): Constify a char*.  Use PVPROTO not VPROTO, add
5476         ATTRIBUTE_PRINTF_1.
5477         (pedwarn_with_line): Likewise with ATTRIBUTE_PRINTF_2.
5478         (pedwarn_with_file_and_line): Likewise with ATTRIBUTE_PRINTF_4.
5479         Also correct typo in parameter name declaration.
5480         (make_assertion): Constify a char*.
5481         (quote_string_for_make): Likewise.
5482         (deps_output): Likewise.
5483         (fatal): Likewise.  Use PVPROTO not VPROTO, add
5484         ATTRIBUTE_PRINTF_1.  Use ATTRIBUTE_NORETURN not an explicit
5485         "__attribute__ ((noreturn))".
5486         (fancy_abort): Likewise for ATTRIBUTE_NORETURN.
5487         (pfatal_with_name): Likewise.
5488         (pipe_closed): Likewise.
5489         (memory_full): Likewise.
5490
5491 Fri Jan 29 00:14:55 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5492
5493         * loop.c (strength_reduce): Grow set_in_loop / n_times_set /
5494         may_not_optimize to proper size when converting biv increments
5495         into givs.
5496         If necessary, reallocate reg_iv_type / reg_iv_info before calling
5497         recombine_givs.
5498
5499 Thu Jan 28 23:24:08 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5500
5501         * loop.c (recombine_givs): New parameter unroll_p.  If set, don't
5502         generate complex adds.  Changed caller.
5503         Don't generate adds that cost more than the original one.
5504         (strength_reduce): Warning fixes.
5505
5506 Thu Jan 28 09:41:11 1999  Jeffrey A Law  (law@cygnus.com)
5507
5508         * configure.in (hppa1.0-hp-hpux10*): Use t-pa.
5509         * configure: Rebuilt.
5510
5511 Wed Jan 27 23:39:53 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5512
5513         * rtl.h (insn_first_p, no_jumps_between_p): Declare.
5514         * rtlanal.c (insn_first_p, no_jumps_between_p): New function.
5515         * loop.h (varray.h): Include.
5516         (struct induction): Change combined_with to unsigned.
5517         New members derived, ix and last_use.
5518         (reg_iv_type, reg_iv_info): Now varray_type.  All references changed.
5519         (REG_IV_TYPE, REG_IV_INFO): Define.
5520         (first_increment_giv, last_increment_giv): Declare.
5521         * loop.c (loop_number_loop_cont): New static variable.
5522         (loop_number_cont_dominator): Likewise.
5523         (reg_iv_type, reg_iv_info): Now varray_type.
5524         (first_increment_giv, last_increment_giv): New variables.
5525         (compute_luids, verify_dominator, find_life_end): New functions.
5526         (cmp_recombine_givs_stats, recombine_givs): Likewise.
5527         (loop_optimize): Allocate loop_number_loop_cont and
5528         loop_number_cont_dominator.  Use compute_luids.
5529         (find_and_verify_loops): Initialize loop_number_loop_cont and
5530         loop_number_cont_dominator.
5531         (strength_reduce): Try to find bivs that can be expressed as givs
5532         of another biv, and to convert biv increments into givs.
5533         Call recombine_givs.  Handle derived givs.
5534         (record_biv): New argument location.  All callers changed.
5535         (record_giv): Initialize derived and last_use fields.
5536         (basic_induction_var): New argument location.  All callers changed.
5537         (combine_givs): Don't combine a DEST_REG giv with a DEST_ADDR giv.
5538         Increment combined_with instead of setting to 1.
5539         * unroll.c (derived_regs): New static variable.
5540         (unroll_loop): Initialize it.
5541         Allocate local_regno according to max_reg_num.
5542         (copy_loop_body): Cope with derived givs.
5543         (find_splittable_givs): Check for Givs made from biv increments.
5544         Set derived_regs for givs.
5545         * Makefile.in (stmt.o, loop.o, unroll.o): Depend on loop.h .
5546
5547 Wed Jan 27 19:31:36 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5548
5549         * function.c (purge_addressof_1): Handle case when a register
5550         has been used in a wider mode.
5551
5552 1999-01-27  Bruce Korb  <autogen@linuxbox.com>
5553
5554         * fixinc/fixincl.c, fixinc/server.[ch]:
5555         Removed the last of the capitalized variable and proc names.
5556
5557         * fixinc/server.c: Removed the process open code.
5558         * fixinc/procopen.c: New file containing the proc open code.
5559         * fixinc/inclhack.tpl: Added code to bypass a readability test
5560         when a file is not present.  A problem on some systems.
5561         * fixinc/inclhack.sh, fixinc/fixincl.sh: Regenerated.
5562
5563 Wed Jan 27 11:58:18 1999  Dave Brolley  <brolley@cygnus.com>
5564
5565         * cpplib.h (cpp_notice): Add prototype.
5566
5567 Wed Jan 27 02:20:48 1999  Jeffrey A Law  (law@cygnus.com)
5568
5569         * Merge gcc2 snapshot 19980929.
5570
5571         * cccp.c (PRINTF_PROTO): Remove.
5572         (PRINTF_PROTO_{1,2,3,4}: Likewise.
5573         * cexp.y: Likewise.
5574         * system.h: Add PRINTF_PROTO and PRINTF_PROTO_{1,2,3,4}.
5575
5576         * fix-header.c (cpp_file_lin_for_message): Delete.  In libcpp.
5577         (cpp_print_containing_files, v_cpp_message, cpp_message): Likewise.
5578         (cpp_fatal, cpp-Pfatal_with_name): Likewise.
5579
5580         * gen-protos.c (hashf): Delete in cpphash.o.
5581         * gen-protos.c (hashf): Delete in cpphash.o.
5582
5583         * expr.c: Do not merge SAVE_STACKAREA_MODE changes.
5584         * expmed.c: Likewise.
5585         * rs6000.md: Likewise.
5586
5587         * rs6000.c, rs6000.md: Do not merge formatting changes yet.
5588
5589 Wed Jan 27 01:13:42 1999  Richard Henderson  <rth@cygnus.com>
5590
5591         * rs6000.c (input_operand): Don't expect CONST around CONSTANT_P_RTX.
5592         * rs6000.md (movsi, movdi): Likewise.
5593
5594 Tue Jan 26 13:31:38 1999  Jim Wilson  <wilson@cygnus.com>
5595
5596         * function.c (expand_function_end): Pass arg_pointer_save_area to
5597         validize_mem before using it.  Emit code into a sequence.
5598
5599 Tue Jan 26 13:41:38 1999  David Edelsohn  <edelsohn@gnu.org>
5600
5601         * rs6000.md (doz + set cr and or + set cr patterns): Add missing
5602         '#' to split patterns.  Correct indentation of some new patterns.
5603
5604 1999-01-26  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
5605
5606         * cppfiles.c (safe_read): Deleted.
5607         (read_and_prescan): New function, replaces safe_read, converts
5608         and/or warns about trigraphs, silently converts odd line
5609         terminators (\r, \n\r, \r\n).  Warns about no newline at EOF.
5610         (finclude): Use read_and_prescan; turn off nonblocking mode on
5611         the input descriptor; remove file-size-examination and
5612         no-newline-at-EOF gunk which is longer necessary; be more
5613         careful about checking that we've been handed a legitimate
5614         file to read (only real files, pipes, and ttys are acceptable).
5615         * cpplib.h (cpp_options): Rename no_trigraphs flag to
5616         `trigraphs' and invert its sense.
5617         (trigraph_table): Declare.
5618         (cpp_warning_with_line): Prototype.
5619         * cpplib.c: Remove all references to trigraph_pcp. Define
5620         trigraph_table; initialize it in initialize_char_syntax.  Open
5621         files in nonblocking mode.  s/no_trigraphs/trigraphs/
5622         throughout, and invert sense.  Put cpp_warning_with_line back
5623         in and export it.
5624
5625 Tue Jan 26 23:21:49 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5626
5627         * config/c4x/c4x.h (COUNTER_REGS): New register class.
5628         * config/c4x/c4x.md (*rptb_init): Change constraints.
5629         (rptb_end): Emit alternate looping instructions if
5630         RC register not allocated for loop counter.
5631         (decrement_and_branch_on_count): Allow other registers
5632         for loop counter.
5633
5634 1999-01-25  Zack Weinberg  <zack@rabi.columbia.edu>
5635
5636         * cppexp.c (struct arglist): Removed.
5637         (parse_number): Use HOST_WIDE_INT for the accumulator.
5638         Allow two `l' suffixes unless C89.  Clean up.  Make static.
5639         (parse_charconst): New function broken out of cpp_lex.
5640         Code cleaned up drastically.  Don't use a token_buffer.
5641         (token_buffer): Removed.
5642         (cpp_lex): Don't call parse_number on a constant string.
5643         Use parse_charconst.
5644         (cpp_parse_expr): Properly handle an ERROR op returned by
5645         cpp_lex.
5646
5647 1999-01-25  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5648
5649         * cpplib.c: Don't include signal.h, sys/times.h, or
5650         sys/resource.h. Don't declare localtime.
5651         (macroexpand): Handle special symbols here.
5652         (push_macro_expansion): Chop off the trailing '@ ' if possible
5653         here.
5654         (cpp_get_token): Don't do either of the above two things here.
5655         Move `string' label just after case '"' so that wide strings
5656         don't crash the preprocessor.
5657
5658 Sun Jan 24 20:13:45 1999  David Edelsohn  <edelsohn@gnu.org>
5659
5660         * rs6000.md (left shift + set cr patterns): Add missing '#' to
5661         split patterns.
5662         (move register + set cr pattern): Likewise.
5663         (movdi, !TARGET_POWERPC64 splitters): Add back in Jan. 15th patch,
5664         inadvertently deleted.
5665
5666 Sun Jan 24 08:07:59 1999  Jeffrey A Law  (law@cygnus.com)
5667
5668         * stmt.c (stmt_loop_nest_empty): New function.
5669         * tree.h (stmt_loop_nest_empty): Declare it.
5670         * rtl.def (CALL_PLACEHOLDER): New rtx code.
5671
5672 Sun Jan 24 21:24:43 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5673
5674         * config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info):
5675         New functions.
5676         (c4x_check_legit_addr): Remove USE and PLUS, allow
5677         LO_SUM, and disable SYMBOL_REF, LABEL_REF, and CONST cases.
5678         (c4x_legitimize_address): Penalize SYMBOL_REF, LABEL_REF, and
5679         CONST cases.  Add LO_SUM.
5680         (c4x_print_operand): Modified 'C' and 'R' cases for calls.
5681         Added 'U' case.  Remove dependence on SYMBOL_REF_FLAG.
5682         (c4x_print_operand_address): Handle LO_SUM.
5683         (c4x_scan_for_ldp): Delete.  Hooray!
5684         (c4x_process_after_reload): Remove call to c4x_scan_for_ldp.
5685         Split all insns.
5686         (c4x_immed_int_constant): Renamed from c4x_int_constant.  All callers
5687         changed.
5688         (c4x_immed_float_constant): Renamed from c4x_float_constant.  All
5689         callers changed.
5690         (c4x_T_constraint): Allow LO_SUM, disable SYMBOL_REF, LABEL_REF,
5691         and CONST.
5692         (c4x_U_constraint, symbolic_operand): New functions.
5693         (src_operand): Allow 'I' constants in HImode.  Allow LO_SUM,
5694         disable SYMBOL_REF, LABEL_REF, and CONST.
5695         (lsrc_operand, tsrc_operand): Call src_operand instead of
5696         general_operand.
5697         (c4x_operand_subword): Update comments.
5698
5699         * config/c4x/c4x.c (TARGET_LOAD_ADDRESS): New macro.
5700         (LEGITIMATE_CONSTANT_P): Allow SYMBOL_REF, LABEL_REF, CONST,
5701         plus HIGH and LO_SUM for the C40.
5702         (ENCODE_SECTION_INFO): Define macro.
5703         (symbolic_operand, c4x_U_constraint, c4x_emit_move_sequence): New
5704         prototypes.
5705         (PREDICATE_CODES): Add symbolic_operand.
5706
5707         * config/c4x/c4x.md (movqi, movgqf, movhi, movhi): Call
5708         c4x_emit_move_sequence.
5709         (floatunsqiqf2, fixuns_truncqfqi2): Rework emitted RTL
5710         to avoid symbol references.
5711         (all patterns with g constraint): Replace 'g' constraint with 'rIm'.
5712         (set_high): Renamed from set_high_use.
5713         (set_lo_sum): Renamed from set_ior_lo_use.
5714         (all call patterns): Make MEM explicit in call address operands.
5715         Modified output templates to use 'U' modifier.
5716         
5717 Sun Jan 24 01:15:05 1999  Jeff Law  (law@cygnus.com)
5718
5719         * version.c: Bump for snapshot.
5720
5721 Sat Jan 23 22:34:57 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5722
5723         * final.c (bb_str): Qualify a char* with the keyword `const'.
5724         (add_bb_string, final_scan_insn, output_asm_insn): Likewise.
5725
5726         * fix-header.c (read_scan_file): Likewise.
5727
5728         * genoutput.c (output_epilogue, process_template): Likewise.
5729         
5730         * local-alloc.c (requires_inout, block_alloc): Likewise.
5731
5732         * output.h (output_asm_insn, assemble_string): Likewise.
5733
5734         * recog.c (recog_constraints, check_asm_operands,
5735         decode_asm_operands, extract_insn, preprocess_constraints,
5736         constrain_operands): Likewise.
5737
5738         * recog.h (operand_alternative, recog_constraints, insn_template,
5739         insn_outfun, insn_operand_constraint, insn_name): Likewise.
5740
5741         * regclass.c (record_reg_classes, scan_one_insn): Likewise.
5742
5743         * regmove.c (find_matches): Likewise.
5744
5745         * reload.c (alternative_allows_memconst): Likewise.
5746
5747         * reload1.c (constraint_accepts_reg_p,
5748         reload_cse_simplify_operands): Likewise.
5749
5750         * rtl.h (decode_asm_operands): Likewise.
5751
5752         * scan.h (fn_decl): Likewise.
5753
5754         * varasm.c (assemble_string): Likewise.
5755
5756 Sat Jan 23 01:37:36 1999  Jeffrey A Law  (law@cygnus.com)
5757
5758         * configure.in (gcc_tooldir): Handle case where exec_prefix has
5759         not been explicitly set.
5760         * configure: Rebuilt.
5761
5762         * fold-const.c (lshift_double): Mark 'prec' arguments as possibly
5763         unused.
5764
5765         * bitmap.h (bitmap_head_def): Make indx field unsigned.
5766
5767         * configure.in (gcc_tooldir): When not making a relative gcc_tooldir,
5768         use $exec_prefix/$target_alias for gcc_tooldir.
5769         * configure: Rebuilt.
5770
5771 Fri Jan 22 11:48:56 1999  Richard Henderson  <rth@cygnus.com>
5772
5773         * cppp.c (xrealloc): Fix typo last change.
5774         * cppalloc.c, gcc.c, genattr.c, genattrtab.c, gencodes.c: Likewise.
5775         * genconfig.c, genemit.c, genextract.c, genflags.c: Likewise.
5776         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
5777
5778 1999-01-22  Michael Meissner  <meissner@cygnus.com>
5779
5780         * rs6000.h (CR0_REGNO_P): New macro to test if cr0.
5781         (CR_REGNO_NOT_CR0_P): New macro to test if cr, but not cr0.
5782         (PREDICATE_CODES): Add cc_reg_not_cr0_operand.
5783         (cc_reg_not_cr0_operand): Add declaration.
5784
5785         * rs6000.c (cc_reg_not_cr0_operand): Return true if register is a
5786         pseudo register, or a control register that is not CR0.
5787
5788         * rs6000.md (all combiner patterns building . instructions): For
5789         all `.' instructions that do something and set cr0, add an
5790         alternative that does the operation, and then sets a different
5791         flag, in order to avoid using the costly mcrf instruction and also
5792         allow cr0 to be clobbered in asm statements.  Also fix a few
5793         patterns that used the wrong register.
5794
5795         * rs6000.h (rs6000_cpu_select): Make string, names be const char *.
5796         (rs6000_debug_name): Make const char *, not char *.
5797
5798         * sysv4.h (rs6000_{abi,sdata}_name): Make const char *.
5799         
5800         * rs6000.c (rs6000_{debug,abi,sdata}_name): Make const char *.
5801         (rs6000_select): Use const char * in casts.
5802
5803 Fri Jan 22 07:43:01 1999  Jeffrey A Law  (law@cygnus.com)
5804         
5805         * Makefile.in (gcc_tooldir): Move before first reference.
5806         Let autoconf substitute in a value.
5807         * configure.in (gcc_tooldir): Only use a relative path to the
5808         tool directory if $exec_prefix == $prefix.
5809         * configure: Rebuilt.
5810
5811         * Makefile.in (tooldir): Replace with gcc_tooldir.
5812
5813 Thu Jan 21 23:21:57 1999  Jeffrey A Law  (law@cygnus.com)
5814
5815         * m68k.md (ashldi_const): Disable for !TARGET_5200.  Fix indentation.
5816         (ashldi3 expander): Similarly.  Update comments.
5817         (ashrdi_const, lshrdi_const): Fix indentation.
5818         (ashrdi3, lshrdi3): Fix indentation.  Update comments.
5819
5820 Thu Jan 21 21:53:36 1999  Richard Henderson  <rth@cygnus.com>
5821
5822         * emit-rtl.c (try_split): Don't try to split non-instructions.
5823
5824 Thu Jan 21 23:47:30 1999  Andrew MacLeod  <amacleod@cygnus.com>
5825
5826         * expr.c (emit_push_insn): Fix dumb typo.
5827
5828 Thu Jan 21 20:24:02 1999  Richard Henderson  <rth@cygnus.com>
5829
5830         * rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept
5831         transformations that we have performed earlier.
5832         * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
5833
5834         * alpha.md (prologue_stack_probe_loop): Don't do our own label
5835         handling, call gen_label_rtx instead.
5836
5837 Thu Jan 21 17:45:18 1999  Richard Henderson  <rth@cygnus.com>
5838
5839         * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): Add missing `then'.
5840
5841         * cccp.c (xrealloc): Call malloc given a NULL old pointer.
5842         * collect2.c, cppalloc.c, gcc.c, genattr.c, genattrtab.c: Likewise.
5843         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
5844         * genflags.c, genopinit.c, genoutput.c, genpeep.c: Likewise.
5845         * genrecog.c, mips-tfile.c, protoize.c: Likewise.
5846
5847 Thu Jan 21 19:44:55 1999  Michael Meissner  <meissner@cygnus.com>
5848
5849         * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): If
5850         --with-gnu-ld, use x-aix41-gld instead of x-aix41 to suppress
5851         adding -Wl,-bbigtoc to BOOT_LDFLAGS.
5852         * configure: Regenerate.
5853
5854         * config/rs6000/x-aix41-gld: New file, don't set BOOT_LDFLAGS.
5855
5856 Thu Jan 21 15:48:03 1999  Dave Brolley  <brolley@cygnus.com>
5857
5858         * cppexp.c (cpp_lex): Allocate token_buffer dynamically.
5859
5860 Thu Jan 21 14:18:04 1999  Andrew MacLeod  <amacleod@cygnus.com>
5861
5862         * expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use
5863         move_by_pieces.
5864         (MOVE_MAX_PIECES): Define maximum number of bytes to move at once.
5865         (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults.
5866         (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults.
5867         (move_by_pieces): Use new macros.
5868         (emit_block_move): Use new macros.
5869         (clear_by_pieces): Use new macros.
5870         (clear_storage): Use new macros.
5871         (emit_push_insn): Use new macros.
5872         (expand_expr): Use new macros.
5873         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT):
5874         Define.
5875         (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define.
5876         (MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE.
5877         (MOVE_MAX_PIECES): Move 8 bytes on SH4.
5878         * tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT,
5879         USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT,
5880         USE_STORE_PRE_DECREMENT): Describe new macros.
5881
5882 Thu Jan 21 14:13:31 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
5883
5884         * varasm.c (output_constant_pool): Use floor_log2 instead of
5885         exact_log2 for ASM_OUTPUT_ALIGN.
5886
5887         * stor-layout.c (layout_type): Do machine-dependent extra alignment.
5888
5889         * emit-rtl.c (operand_subword): Handle case when a subword outside
5890         the operand.
5891
5892         * tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of
5893         the macros.
5894
5895 Thu Jan 21 01:59:30 1999  Richard Henderson  <rth@cygnus.com>
5896
5897         * cse.c (fold_rtx): Revert 29 Dec change.
5898         (cse_insn): Revert 12 Jan change.
5899         * expr.c (expand_builtin): Don't emit CONST around CONSTANT_P_RTX.
5900         * regclass.c (reg_scan_mark_refs): Revert 29 Dec change.
5901         * rtl.def: Likewise.
5902         * rtl.h (CONSTANT_P): Likewise.
5903
5904         * expr.c (emit_move_insn): Never try to flush CONSTANT_P_RTX
5905         to memory.
5906         * recog.c (immediate_operand): Accept CONSTANT_P_RTX.
5907         * alpha.c (input_operand): Likewise.
5908         * c4x.c (const_operand): Likewise.
5909
5910         * explow.c (allocate_dynamic_stack_space): Use register_operand
5911         instead of arith_operand, which does not exist.
5912
5913         * 1750a.h: Fix comment closure.
5914         * a29k.c (a29k_set_memflags): Fix typo in 19 Jan change.
5915         * arc.md (one_cmplsi2_set_cc_insn): Fix set mode mismatch.
5916         * arm.h (TARGET_SWITCHES): Fix typo.
5917         * i370.md (anon mult and div patterns): Fix set mode mismatch.
5918         * i860.c (output_delayed_branch): Fix operands to constrain_operands.
5919         (output_delay_insn): Likewise.
5920         * m88k.md (anon rotate insns): Fix set mode mismatch.
5921         (anon BLKmode moves): Commonize and fix set mode mismatches.
5922         * ns32k.md (udivmoddi[shq]i4_internal): Fix mode mismatch.
5923         * romp.md (movdf): Fix typo.
5924
5925 Thu Jan 21 00:29:35 1999  Nathan Sidwell  <nathan@acm.org>
5926
5927         * Makefile.in (install-common): Remove extraneous chmod for gcov
5928         install.
5929
5930 Wed Jan 20 18:15:08 1999  Dave Brolley  <brolley@cygnus.com>
5931
5932         * function.c (assign_parms): Save and restore setting of
5933         TREE_USED (parm).
5934
5935 Wed Jan 20 12:51:42 1999  Mark Mitchell  <mark@markmitchell.com>
5936
5937         * arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout.
5938         Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate.
5939
5940 Tue Jan 19 21:20:52 1999  Richard Henderson  <rth@cygnus.com>
5941
5942         * recog.c (pop_operand): New function.
5943         * recog.h (pop_operand): Declare it.
5944         * genrecog.c (preds): Define it.
5945
5946         * expr.c (do_jump_for_compare): Handle conditional branch expanders
5947         emitting multiple jump instructions.
5948         * jump.c (condjump_label): New function.
5949         * rtl.h (condjump_label): Declare it.
5950
5951 Tue Jan 19 21:08:20 1999  Richard Henderson  <rth@cygnus.com>
5952
5953         * expr.c (emit_move_insn_1): Revert 17 Dec change.  Don't emit
5954         clobber during or after reload.
5955
5956 Tue Jan 19 16:56:03 1999  Richard Henderson  <rth@cygnus.com>
5957
5958         * genoutput.c (name_for_index): New function.
5959         (scan_operands, validate_insn_alternatives): Use it.
5960         * genrecog.c (insn_name_ptr_size): New variable.
5961         (make_insn_sequence): Fill in insn_name_ptr.
5962         (merge_trees): Use it.
5963
5964 Tue Jan 19 16:37:36 1999  Richard Henderson  <rth@cygnus.com>
5965
5966         * i386/isc.h (TARGET_DEFAULT): Define symbolicly.
5967         * i386/isccoff.h, i386/next.h, i386/sco.h, i386/sco5.h: Likewise.
5968         * i386/scodbx.h, i386/sequent.h, i386.unix.h: Likewise.
5969
5970 Tue Jan 19 15:00:10 1999  Jeffrey A Law  (law@cygnus.com)
5971
5972         * loop.c (NUM_STORES): Delete.
5973         (loop_store_mems): Turn into an EXPR_LIST of MEMs.
5974         (prescan_loop): Properly initialize loop_mems_idx.
5975         (note_addr_stored): Simplify using list structure instead of
5976         fixed sized array.
5977         (invariant_p, check_dbra_loop, load_mems): Similarly.
5978
5979         * flow.c (invalidate_from_autoinc): New function.
5980         (mark_set_1, mark_used_regs): Use it.
5981
5982         * Makefile.in (protoize.o, unprotoize.o): Depend on Makefile.
5983
5984 1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
5985
5986         * invoke.texi (-mlong-double-64): New option description.
5987
5988 1999-01-19  Jim Wilson  <wilson@cygnus.com>
5989
5990         * libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to
5991         LIBGCC2_LONG_DOUBLE_TYPE_SIZE.
5992         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.  Set to LONG_DOUBLE_TYPE_SIZE
5993         if not defined.
5994         * i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics.
5995         (CPP_SPECS): Add -mlong-double-64 support.
5996         (TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New.
5997         (TARGET_SWITCHES): Add -mlong-double-64 support.
5998         (LONG_DOUBLE_TYPE_SIZE): Likewise.
5999         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
6000         * i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float.
6001         (CPP_SPECS): Add -mlong-double-64 support.
6002         * i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64.
6003         (MULTILIB_DIRNAMES): Add ld64.
6004         * i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise.
6005
6006 Tue Jan 19 11:54:04 1999  Jason Merrill  <jason@yorick.cygnus.com>
6007
6008         * calls.c (expand_call): Strip a TARGET_EXPR if we're passing by
6009         invisible reference.
6010
6011 Tue Jan 19 14:51:36 1999  David Edelsohn  <edelsohn@gnu.org>
6012
6013         * rs6000.c (offsettable_addr_operand): Delete.
6014         (offsettable_mem_operand): New function.
6015         * rs6000.h (PREDICATE_CODES): Reflect function change.
6016         (RS6000_SAVE_TOC): Represent address as MEM.
6017         * win-nt.h (RS6000_SAVE_TOC): Same.
6018         * rs6000.md (indirect calls): Change offsettable address parameter
6019         to offsettable memory parameter.
6020
6021 Tue Jan 19 10:24:53 1999  Mark Mitchell  <mark@markmitchell.com>
6022
6023         * rtl.h (rtx_def): Update documentation.
6024         (MEM_IN_STRUCT_P): Likewise.
6025         (MEM_SCALAR_P): New macro.
6026         (MEM_COPY_ATTRIBUTES): Likewise.
6027         (MEM_SET_IN_STRUCT_P): Likewise.
6028         * rtl.texi (MEM_SCALAR_P): Document.
6029         * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES.
6030         (fixed_scalar_and_varying_struct_p): New function.  Use
6031         MEM_SCALAR_P rather than !MEM_IN_STRUCT_P.
6032         (aliases_everything_p): Likewise.
6033         (true_dependence): Use them.
6034         (write_dependence_p): New function, containing code common to
6035         anti_dependence and output_dependence.
6036         (anti_dependence): Use it.
6037         (output_dependence): Likewise.
6038         * calls.c (save_fixed_argument_area): Don't clear
6039         MEM_IN_STRUCT_P.
6040         (expand_call): Use MEM_SET_IN_STRUCT_P.
6041         (emit_library_call): Don't clear MEM_IN_STRUCT_P.
6042         (emit_library_call_value): Likewise.
6043         (store_one_arg): Use MEM_SET_IN_STRUCT_P.
6044         * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES.
6045         (make_extraction): Likewise.
6046         (simplify_shift_const): Likewise.
6047         (gen_lowpart_for_combine): Likewise.
6048         * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES.
6049         * emit-rtl.c (operand_subword): Likewise.
6050         (change_address): Likewise.
6051         * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES.
6052         * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES.
6053         (emit_group_store): Use MEM_SET_IN_STRUCT_P.
6054         (copy_blkmode_from_reg): Likewise.
6055         (store_field): Likewise.
6056         (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P
6057         heuristically.  Use MEM_SET_IN_STRUCT_P.
6058         (get_memory_rtx): Likewise.
6059         * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES.
6060         * function.c (assign_stack_temp): Clear MEM_SCALAR_P and
6061         MEM_ALIAS_SET on newly returned MEMs.
6062         (assign_temp): Use MEM_SET_IN_STRUCT_P.
6063         (put_reg_into_stack): Likewise.
6064         (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES.
6065         (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P.
6066         (assign_parms): Likewise.
6067         (expand_function): Likewise.
6068         * integrate.c (expand_inline_function): Likewise.
6069         (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES.
6070         * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P.
6071         * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES.
6072         * print-rtl.c (print_rtx): Print /f for frame_related.
6073         * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES.
6074         * reload1.c (reload): Copy MEM_SCALAR_P as well.
6075         * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P.
6076         (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES.
6077         * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P.
6078         (output_constant_def): Likewise.
6079         * a29k.c (a29k_set_memflags_1): Take scalar_p.
6080         Set MEM_SCALAR_P.
6081         (a29k_set_memflags): Use it.
6082         * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES.
6083         * c4x.c (c4x_scan_for_ld): Likewise.
6084         * h8300.c (fix_bit_operand): Likewise.
6085         * m88k.c (legitimize_address): Likewise.
6086         (block_move_loop): Likewise.
6087         (block_move_no_loop): Likewise.
6088         (block_move_sequence): Likewise.
6089         (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
6090         * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise.
6091         * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES.
6092         * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
6093         * arm.h (arm_gen_load_multiple): Take scalar_p.
6094         (arm_store_load_multiple): Likewise.
6095         * arm.c (arm_gen_load_multiple): Likewise.
6096         (arm_gen_store_multiple): Likewise.
6097         (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P.
6098         
6099 Tue Jan 19 12:30:37 1999  Andrew MacLeod  <amacleod@cygnus.com>
6100
6101         * optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all
6102         calls within a libcall block to indicate no throws are possible.
6103         * flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for
6104         libcall blocks. Don't add edges to exception handlers if we see
6105         a REG_EH_REGION note with a value of 0.
6106         (make_edges): Override active_eh_region vector if the call has a note
6107         indicating the call does not throw.
6108
6109 1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
6110
6111         * config/rs6000/sysv4.h (CC1_SPEC): Fix correct numbers of {}.
6112
6113 Tue Jan 19 06:26:30 1999  Jeffrey A Law  (law@cygnus.com)
6114
6115         * Makefile.in (cccp.o, cpplib.o): Depend on Makefile.
6116
6117 Mon Jan 18 09:56:41 1999  Jason Merrill  <jason@yorick.cygnus.com>
6118
6119         * invoke.texi (C++ Dialect Options): Document -fno-rtti.
6120
6121 1999-01-18  Vladimir N. Makarov  <vmakarov@cygnus.com>
6122
6123         *  invoke.texi (-mcpu=740, -mcpu=750): New options.
6124         (-m(no-)multiple, -m(no-)string): Describe cases for PPC740 &
6125         PPC750.
6126
6127 1999-01-18  Michael Meissner  <meissner@cygnus.com>
6128
6129         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
6130         supported with -mcpu=xxx.
6131         (processor_type): Add PROCESSOR_PPC750.
6132         (ADJUST_PRIORITY): Call rs6000_adjust_priority.
6133         (RTX_COSTS): Supply costs for 750 multiply/divide operations.
6134         (rs6000_adjust_priority): Add declaration.
6135         
6136         * rs6000.c (rs6000_override_options): -mcpu={750,740} now sets the
6137         processor type as 750, not 603.  Allow -mmultiple and -mstring on
6138         little endian 750 systems.
6139         (rs6000_adjust_priority): Stub for now.
6140         (get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle.
6141
6142         * rs6000.md (function/cpu attributes): Add initial ppc750 support.
6143
6144         * sysv4.h (STRICT_ALIGNMENT): Don't force strict alignment if
6145         little endian.
6146         (CC1_SPEC): Pass -mstrict-align if little endian, and not
6147         overridden.
6148         (CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs.
6149         (SUBTARGET_EXTRA_SPECS): Add cc1 endian specs.
6150
6151         * {sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC): Override, default is
6152         little endian.
6153
6154         * t-ppcgas (MULTILIB_*): Delete obsolete Solaris multilibs.
6155
6156 Mon Jan 18 12:03:08 1999  Gavin Romig-Koch  <gavin@cygnus.com>
6157
6158         * config/mips/mips.md (div_trap): Split div_trap_mips16
6159         from div_trap.
6160         (div_trap_normal,div_trap_mips16): Correct the length attributes.
6161
6162 Mon Jan 18 11:48:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6163
6164         * cpplib.c (special_symbol): Qualify a char* with the `const' keyword.
6165         Instead of writing to const char *buf directly, use a non-const
6166         variable `wbuf' to allocate and write a string, then set buf = wbuf.
6167
6168         * cppulp.c (user_label_prefix): Qualify a char* with the `const'
6169         keyword.
6170
6171         * dyn-string.c (dyn_string_append): Likewise.
6172
6173         * dyn-string.h (dyn_string_append): Likewise.
6174
6175         * final.c (end_final, output_operand_lossage, asm_fprintf): Likewise.
6176
6177         * output.h (end_final, output_operand_lossage, asm_fprintf,
6178         named_section, decode_reg_name, make_decl_rtl, user_label_prefix):
6179         Likewise.
6180
6181         * profile.c (init_branch_prob): Likewise.
6182
6183         * toplev.c (set_target_switch, vmessage,
6184         v_message_with_file_and_line, v_message_with_decl,
6185         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
6186         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
6187         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
6188         v_pedwarn_with_file_and_line, vsorry, v_really_sorry,
6189         open_dump_file, dump_rtl, clean_dump_file,
6190         print_version, print_single_switch, print_switch_values,
6191         dump_base_name, debug_args, lang_independent_options,
6192         user_label_prefix, documented_lang_options, target_switches,
6193         target_options, print_time, pfatal_with_name, fatal_io_error,
6194         fatal_insn, default_print_error_function, print_error_function,
6195         report_error_function, error_with_file_and_line, error_with_decl,
6196         error_for_asm, error, fatal, warning_with_file_and_line,
6197         warning_with_decl, warning_for_asm, warning, pedwarn,
6198         pedwarn_with_decl, pedwarn_with_file_and_line, sorry,
6199         really_sorry, botch, output_quoted_string, output_file_directive,
6200         open_dump_file, rest_of_decl_compilation, display_help, main):
6201         Likewise.
6202
6203         * toplev.h (print_time, fatal, fatal_io_error, pfatal_with_name,
6204         fatal_insn, warning, error, pedwarn, pedwarn_with_file_and_line,
6205         warning_with_file_and_line, error_with_file_and_line, sorry,
6206         really_sorry, default_print_error_function, report_error_function,
6207         rest_of_decl_compilation, pedwarn_with_decl, warning_with_decl,
6208         error_with_decl, error_for_asm, warning_for_asm, output_quoted_string,
6209         output_file_directive, botch): Likewise.
6210
6211         * tree.h (make_decl_rtl): Likewise.
6212
6213         * varasm.c (strip_reg_name, named_section, decode_reg_name,
6214         make_decl_rtl): Likewise.
6215         
6216 Mon Jan 18 11:35:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
6217
6218         * Makefile.in (TCL_LIBRARY): Use 'cd' to find the library
6219         directory logically rather than physically.
6220
6221 Mon Jan 18 09:05:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6222
6223         * loop.c (insert_bct): Hide the definition of variables
6224         `increment_direction', `compare_direction', `add_iteration' and
6225         `loop_var_mode'.
6226
6227         * recog.c (mode_dependent_address_p): Mark parameter `addr' with
6228         ATTRIBUTE_UNUSED.  Mark label `win' with ATTRIBUTE_UNUSED_LABEL.
6229         (mode_independent_operand): Mark label `lose' with
6230         ATTRIBUTE_UNUSED_LABEL.
6231
6232         * regclass.c (n_occurrences): Remove prototype and definition.
6233
6234         * reload.c (find_reloads_address_1): Mark variable `tem' with
6235         ATTRIBUTE_UNUSED.
6236
6237         * reload1.c (reload): Cast the first two arguments of `bcopy' to PTR.
6238
6239         * sbitmap.c (sbitmap_copy): Likewise.
6240
6241         * scan-decls.c (scan_decls): Hide label `handle_comma'.
6242
6243         * toplev.c (output_lang_identify): Mark prototype with
6244         ATTRIBUTE_UNUSED.
6245
6246         * tree.c (make_node): Cast the first argument of `bzero' to PTR.
6247         (make_tree_vec): Likewise.
6248         (build1): Likewise.
6249
6250         * varasm.c (assemble_static_space): Mark variable `tem' with
6251         ATTRIBUTE_UNUSED.
6252
6253 Mon Jan 18 04:28:36 1999  Nathan Sidwell  <nathan@acm.org>
6254
6255         * Makefile.in (GCOV_INSTALL_NAME): New macro.
6256         (install-common): Use it.
6257         (uninstall): Use it.
6258         (uninstall): Use correct names for protoize and unprotoize.
6259
6260 Mon Jan 18 03:52:56 1999  Christian Bruel  <Christian.Bruel@st.com>
6261                           Jeffrey A Law  (law@cygnus.com)
6262
6263         * flow.c (last_mem_set): Delete variable.  References removed.
6264         (mem_set_list): New variable.
6265         (life_analysis): Initialize and finalize alias analysis.
6266         (propagate_block); Initialize mem_set_list.  Clear for CALL_INSNs.
6267         (insn_dead_p): For a store to memory, search the entire mem_set_list
6268         for a match.
6269         (mark_set_1): Kill entries on the mem_set_list for aliased writes or
6270         changes to their addresses.  Add new entries to the mem_set_list for
6271         memory writes writes.
6272         (mark_used_regs): Kill entries on the mem_set_list which may be
6273         referenced by a load operation.
6274
6275 Mon Jan 18 01:01:02 1999  Jeffrey A Law  (law@cygnus.com)
6276
6277         * alias.c (base_alias_check): Add missing return for differing
6278         symbols case.
6279
6280 Mon Jan 18 00:36:13 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6281
6282         * mips-tdump.c (print_file_desc): Handle unknown filenames and
6283         missing local symbols.
6284
6285 Sun Jan 17 21:04:31 1999  Richard Henderson  <rth@cygnus.com>
6286
6287         * jump.c (rtx_renumbered_equal_p): Special case CODE_LABEL.
6288
6289         * system.h (bcopy): Implement with memmove not memcpy.
6290
6291 Sun Jan 17 19:23:20 1999  Jeffrey A Law  (law@cygnus.com)
6292
6293         * Makefile.in (cppulp.o): Add dependencies.
6294
6295         * i386.md (integer conditional moves): Add missing earlyclobbers.
6296
6297         * regmove.c (optimize_reg_copy_1): Undo Aug 18 change.  Update
6298         REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change
6299         where a register is live.
6300
6301 Sun Jan 17 03:20:47 1999  H.J. Lu  (hjl@gnu.org)
6302
6303         * reg-stack.c (subst_stack_regs_pat): Abort if the destination
6304         of a FP conditional move is not on the FP register stack.
6305
6306 Sun Jan 17 01:15:04 1999  Jeff Law  (law@cygnus.com)
6307
6308         * version.c: Bump for snapshot.
6309
6310 Sat Jan 16 23:40:33 1999  Jeffrey A Law  (law@cygnus.com)
6311
6312         * reload1.c (reload_cse_regs_1): Do not call
6313         reload_cse_simplify_operands for an insn with asm operands.
6314
6315         * cccp.c (print_help): Fix typos.
6316         * cpplib.c (print_help): Fix typos.
6317         * toplev.c (f_optiosn): Fix typos.
6318         (documented_lang_options): Fix typos.
6319
6320 Sat Jan 16 21:48:17 1999  Marc Espie  (Marc.Espie@openbsd.org)
6321
6322         * gcc.c (do_spec_1): Fix obvious typo.
6323
6324 Sat Jan 16 19:31:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6325
6326         * c-decl.c (duplicate_decls): If `warn_traditional', warn when
6327         a non-static function declaration follows a static one.
6328
6329         * invoke.texi (-Wtraditional): Document the extra check now done
6330         by this flag.
6331
6332 Sat Jan 16 15:13:46 1999  Jeffrey A Law  (law@cygnus.com)
6333
6334         * pa.md (shadd): Create shadd insns, even if the result of the shift is
6335         needed without the addition.
6336
6337 Sat Jan 16 10:48:16 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
6338
6339         * sh.md (movdf, movsf): Temporary workaround for no_new_pseudos lossage.
6340
6341 Fri Jan 15 23:44:37 1999  Richard Henderson  <rth@cygnus.com>
6342
6343         * sparc.c (sparc_issue): Add hypersparc/sparclite86x entries.
6344
6345 Fri Jan 15 22:30:04 1999  David Edelsohn  <edelsohn@gnu.org>
6346
6347         * rs6000.h (CONST_OK_FOR_LETTER_P): Do not assume 32-bit CONST_INT.
6348         * rs6000.c (u_short_cint_operand, add_operand, logical_operand,
6349         non_add_cint_operand, non_logical_cint_operand): Likewise.
6350         (get_issue_rate): Add CPU_PPC604E case.
6351         * rs6000.md (movdi, !TARGET_POWERPC64 splitters): Handle 64-bit hosts.
6352         
6353 Fri Jan 15 18:42:12 1999  Richard Henderson  <rth@cygnus.com>
6354
6355         * expr.c (queued_subexp_p): Make public.
6356         * expr.h (queued_subexp_p): Declare it.
6357         * recog.c (asm_operand_ok): New function.
6358         (check_asm_operands): Use it.  After reload, use constrain_operands
6359         instead.
6360         * recog.h (asm_operand_ok): Declare it.
6361         * stmt.c (expand_asm_operands): Use it to try harder to make
6362         asms initially satisfy their constraints.
6363
6364 Fri Jan 15 17:43:59 1999  Jeffrey A. Law  <law@rtl.cygnus.com>
6365
6366         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do not create
6367         (mem (lo_sum (...)) for TFmode unless TARGET_V9.
6368
6369 Sat Jan 16 12:47:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6370
6371         * config/c4x/c4x.md (not_repeat_reg): Allow ldp instruction
6372         in delay slot of RPTBD.
6373
6374 Sat Jan 16 12:26:40 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6375
6376         * config/c4x/libgcc.S (___divhi3, ___modhi3): Fix long long
6377         divide and modulo sign problem.
6378
6379 Fri Jan 15 11:02:31 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6380
6381         * unroll.c (loop_iterations): Return 0 if the last loop insn
6382         is not a jump insn or if the loop has multiple back edges.
6383
6384 1999-01-15  Manfred Hollstein  <manfred@s-direktnet.de>
6385
6386         * configure.in (fixinc_defs): Do not define for m[68]8k-motorola-sysv{,3};
6387         it's working properly now.  Remove comment saying "see m68k-motorola-sysv
6388         as an example".
6389         * configure: Regenerate using autoconf.
6390
6391         * fixinc/fixincl.c (main): Do not ignore SIGCHLD.
6392
6393 Thu Jan 14 22:38:41 1999  Jeffrey A Law  (law@cygnus.com)
6394
6395         * unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share
6396         a register with another DEST_ADDR giv if the address is not valid.
6397
6398         * pa.c (hppa_expand_epilogue): Save and restore the static chain
6399         around the call to mcount.
6400
6401         * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf.
6402
6403         * stmt.c (expand_end_case): Use emit_cmp_and_jump_insns to avoid
6404         generating non-canonical rtl.
6405
6406 1999-01-14  Vladimir N. Makarov  <vmakarov@cygnus.com>
6407
6408         * config/i960/i960.c (i960_output_move_double_zero,
6409         i960_output_move_quad_zero): New functions for moving zeros.
6410         (i960_output_move_double, i960_output_move_quad): Additional code
6411         for situation when moving unaligned register group.
6412         
6413         * config/i960/i960.h (i960_output_move_double_zero,
6414         i960_output_move_quad_zero): The function definitions.
6415
6416         * config/i960/i960.md (movdi+1, movti+1): Usage of the functions.
6417
6418 1999-01-13  Vladimir N. Makarov  <vmakarov@cygnus.com>
6419
6420         * config/i960/i960.c (i960_function_prologue): New code (optimal
6421         solution) for saving global registers in local registers.
6422         (form_reg_groups, reg_group_compare, split_reg_group): New
6423         functions used by the code.
6424         (reg_group): New structure definition for the new code.
6425
6426 1999-01-13  Manfred Hollstein  <manfred@s-direktnet.de>
6427
6428         * fixinc/fixincl.c (create_file): Pass file creation mask as
6429         third parameter to "open".  Use O_TRUNC flag to open instead of
6430         explicitly unlink'ing the file.
6431         (process): and forget about the "chmod" stuff.
6432
6433 Wed Jan 13 20:12:37 1999  Richard Henderson  <rth@cygnus.com>
6434
6435         * integrate.c (expand_inline_function): Recognize (mem (addressof))
6436         and substitute.  Copy the return value from there into a new pseudo.
6437
6438 Wed Jan 13 16:47:00 1999  Catherine Moore  <clm@cygnus.com>
6439
6440         * config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN
6441         before generating a call to abort for volatile functions.
6442         * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define.
6443         (TARGET_ABORT_NORETURN): Define.
6444         (abort-on-noreturn): New option.
6445
6446 Thu Jan 14 13:52:42 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6447
6448         * config/c4x/c4x.md (in_annul_slot_3): Correctly allow unarycc
6449         and binarycc operations in 3rd annulled delay slot!
6450
6451 Wed Jan 13 16:16:44 1999  Catherine Moore  <clm@cygnus.com>
6452
6453         * config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN
6454         before generating a call to abort for volatile functions.
6455         * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define.
6456         (TARGET_ABORT_NORETURN): Define.
6457         (abort-on-noreturn): New option.
6458
6459 Wed Jan 13 13:30:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6460
6461         * cccp.c (xstrdup): Renamed from `savestring'.  All callers changed.
6462         Remove prototype which we get from libiberty.h.
6463
6464         * collect2.c (xstrdup): Likewise.
6465
6466         * genextract.c (xstrdup): Likewise for `copystr'.
6467         (mybzero): Remove it and use `memset' instead.
6468
6469         * genoutput.c (mybcopy, mybzero): Remove these.  All callers changed
6470         to use `memcpy' and `memset' instead.
6471
6472         * genrecog.c (xstrdup): Renamed from `copystr'.  All callers
6473         changed.  Remove prototype.
6474         (mybcopy, mybzero): Remove these and use memcpy/memset.
6475
6476 Wed Jan 13 00:59:04 1999  Jeffrey A Law  (law@cygnus.com)
6477
6478         * mips.h (LOAD_EXTEND_OP): Correct for SImode and CCmode moves when
6479         generating code for TARGET_64BIT.
6480
6481 Tue Jan 12 14:05:37 1999  David Edelsohn  <edelsohn@gnu.org>
6482
6483         * rs6000.c (print_operand, cases 'm' and 'M'): Do not depend on
6484         HOST_WIDE_INT word-size.
6485         (rs6000_stack_info): Remove redundant alignment of fpmem.
6486
6487 Tue Jan 12 14:05:37 1999  Richard Henderson  <rth@cygnus.com>
6488
6489         * rs6000.c (short_cint_operand): Remove CONSTANT_P_RTX handling.
6490         (u_short_cint_operand, reg_or_cint_operand, logical_operand): Likewise.
6491         (input_operand): Adjust CONSTANT_P_RTX handling.
6492         * rs6000.h (PREDICATE_CODES): Remove CONSTANT_P_RTX references.
6493         * rs6000.md (movsi): Adjust CONSTANT_P_RTX handling.
6494         (movhi, movqi): Remove CONSTANT_P_RTX handling.
6495         (movdi): Adjust CONSTANT_P_RTX handling.
6496
6497 1999-01-12  Manfred Hollstein  <manfred@s-direktnet.de>
6498
6499         * configure: Regenerate using autoconf.
6500
6501         * fixinc/Makefile.in (INCLUDES): Add -I$(srcdir)/../../include.
6502         * fixinc/fixincl.c (SIGCHLD): Use SIGCLD on (very) old systems.
6503         (process): "fchmod" isn't available on all systems, use "chmod"
6504         instead.
6505         * fixinc/server.c: Add #include <sys/types.h>.
6506         (STDIN_FILENO): Add default definition if no include file defines
6507         it already.
6508         (STDOUT_FILENO): Likewise.
6509
6510 Tue Jan 12 10:23:24 1999  Stan Cox  <scox@cygnus.com>
6511
6512         * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls.
6513
6514 1999-01-12  Manfred Hollstein  <manfred@s-direktnet.de>
6515
6516         * m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to
6517         ensure all prototypes necessary for building libio will be available.
6518         * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Remove
6519         definitions here as they are not host specific.
6520         * m88k/sysv3.h, m88k/xm-sysv3.h: Likewise.
6521
6522 Tue Jan 12 02:53:46 1999  Richard Henderson  <rth@cygnus.com>
6523
6524         * cse.c (cse_insn): Never prefer (const (constant_p_rtx)).
6525
6526 Tue Jan 12 02:36:10 1999  Jeff Law  (law@cygnus.com)
6527
6528         * version.c: Bump for snapshot.
6529
6530 Tue Jan 12 01:30:19 1999  Richard Henderson  <rth@cygnus.com>
6531
6532         * rtl.c (rtx_alloc): Use memset instead of inline loop.
6533
6534         * recog.h (recog_op_alt): Declare extern.
6535
6536 Tue Jan 12 00:23:31 1999  Richard Henderson  <rth@cygnus.com>
6537
6538         * function.c (purge_addressof_1): If the note accesses a mem+addressof
6539         in a wider mode than any replacement, adjust the cached replacement.
6540         Cache trivial substitutions as well.
6541
6542 Tue Jan 12 00:06:00 1999  Richard Henderson  <rth@cygnus.com>
6543
6544         * Makefile.in (OBJECTS): Add sbitmap.o.
6545         (BASIC_BLOCK_H): Add sbitmap.h.
6546         * basic-block.h: Move simple bitmap code to sbitmap.h.
6547         * flow.c: Move simple bitmap code to sbitmap.c.
6548         * sbitmap.h, sbitmap.c: New files.
6549
6550 Mon Jan 11 23:51:50 1999  Richard Henderson  <rth@cygnus.com>
6551
6552         * alpha.h (TARGET_SWITCHES): Document switches.
6553         (TARGET_OPTIONS): Likewise.
6554
6555         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Use HOST_WIDE_INT_PRINT_DEC.
6556
6557 Mon Jan 11 22:54:14 1999  Richard Henderson  <rth@cygnus.com>
6558
6559         * tree.c (new_alias_set): Return zero if !flag_strict_aliasing.
6560
6561 Mon Jan 11 22:36:01 1999  Richard Henderson  <rth@cygnus.com>
6562
6563         * basic-block.h (basic_block_head): Rename to x_basic_block_head.
6564         (basic_block_end): Rename to x_basic_block_end.
6565         (BLOCK_HEAD, BLOCK_END): Update.
6566
6567         * caller-save.c: Change basic_block_head/end references to
6568         BLOCK_HEAD/END.
6569         * combine.c, flow.c, function.c, gcse.c, global.c: Likewise.
6570         * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise.
6571         * regmove.c, reload1.c, reorg.c, sched.c: Likewise.
6572
6573 Sat Jan  9 23:54:09 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6574
6575         * gcc.c (xstrerror): Renamed from my_strerror.  All callers
6576         changed.  Remove prototype since we get that from libiberty.h.
6577
6578         * protoize.c (xstrerror): Likewise.
6579
6580 Sat Jan  9 23:22:04 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6581
6582         * gcc.c (read_specs): Ensure format specifiers match their arguments.
6583
6584 Sat Jan  9 20:04:24 1999  Richard Henderson  <rth@cygnus.com>
6585
6586         * tree.c (copy_node): Oops.  That would be copy not zero
6587         in that last change.
6588
6589 Sun Jan 10 15:35:41 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6590
6591         * config/c4x/c4x.c: Include system.h.
6592         (c4x_caller_save_map): Disable caller save for RC.
6593         (c4x_optimization_options): Disable scheduling before reload.
6594         (valid_parallel_load_store) : Define return type as int.
6595         Remove unused variable regs.
6596         * config/c4x/c4x.h (REGISTER_MOVE_COST): Make independent of register
6597         class.
6598         * config/c4x/c4x.md (rotlqi3, rotrqi3): Fix up emitted RTL to
6599         handle rotations.
6600         (*db, decrement_and_branch_until_zero): Fix up constraints
6601         to keep reload happy.
6602
6603 Sat Jan  9 18:35:29 1999  Richard Henderson  <rth@cygnus.com>
6604
6605         * tree.c (make_node): Call bzero instead of inline clear.
6606         (copy_node, make_tree_vec, build1): Likewise.
6607         (get_identifier): Call strlen instead of inline count.
6608         (maybe_get_identifier): Likewise.
6609
6610 Sun Jan 10 14:04:51 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6611
6612         * config/c4x/c4x.md (in_annul_slot_3): Allow unarycc and binarycc
6613         operations in 3rd annulled delay slot.
6614         (*lshrqi3_const_set): Disallow c constraint for operand0.
6615         (modhi3+1, modhi3+2): Set attribute type to multi.
6616         * config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of
6617         != operator.
6618
6619 Sat Jan  9 11:44:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6620
6621         * gansidecl.h: Allow attribute unused on labels only when we are
6622         version 2.93 or higher.  Not all versions of 2.92 have this feature.
6623
6624         * version.c: Bump minor number to 93.
6625
6626 Fri Jan  8 10:51:13 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
6627
6628         * config/m68k/m68k.h: Declare output_function_epilogue.
6629         * recog.h: Declare next_insn_tests_no_inequality.
6630
6631 Fri Jan  8 01:43:53 1999  Jeffrey A Law  (law@cygnus.com)
6632
6633         * stmt.c (optimize_tail_recursion): New function, extracted from ...
6634         (expand_return): Use optimize_tail_recursion.
6635         * tree.h (optimize_tail_recursion): Declare.
6636
6637         * toplev.c (compile_file): Move call to output_func_start_profiler
6638         to after the loop to emit deferred functions.
6639
6640 Thu Jan  7 19:52:53 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6641
6642         * system.h (abort): Supply more detailed information on how to
6643         report an Internal Compiler Error.
6644
6645 Thu Jan  7 09:25:58 1999  Bruce Korb  (korb@datadesign.com)
6646
6647         * fixinc/fixincl.c (*): More decapitalization of variables
6648         plus some explanatory comments.
6649
6650         * fixinc/Makefile.in fixinc/mkfixinc.sh:
6651         When the fixincl program does not work for a certain system,
6652         we substitute a shell script.  Added user commentary when
6653         this happens.
6654
6655 Thu Jan  7 11:26:17 1999  Mark Mitchell  <mark@markmitchell.com>
6656
6657         * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to
6658         allocate memory that will live beyond this function.
6659         (expand_call): Free it here.
6660
6661 Thu Jan  7 03:08:17 1999  Richard Henderson  <rth@cygnus.com>
6662
6663         * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for
6664         integer data not destined for fp regs.
6665         (LEGITIMIZE_RELOAD_ADDRESS): New.
6666
6667 Thu Jan  7 03:03:42 1999  Stan Cox  <scox@cygnus.com>
6668                           Richard Henderson  <rth@cygnus.com>
6669
6670         Support for Hypersparc and Sparclite86x:
6671         * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New.
6672         (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets.
6673         (ASM_CPU32_DEFAULT_SPEC): Likewise.
6674         (TARGET_CPU_DEFAULT): Likewise.
6675         (enum processor_type): Likewise.
6676         (CPP_ENDIAN_SPEC): Handle little endian data.
6677         (LIBGCC2_WORDS_BIG_ENDIAN): Likewise.
6678         (ADJUST_COST): Call sparc_adjust_cost.
6679         * sparc.c (sparc_override_options): Fix up for the new targets.
6680         (supersparc_adjust_cost): Make static.
6681         (hypersparc_adjust_cost): New.
6682         (ultrasparc_adjust_cost): Make static.
6683         (sparc_adjust_cost): New.
6684         * sparc.md (attr cpu): Add hypersparc and sparclite86x.
6685         (function_unit): Add hypersparc scheduling rules.
6686
6687         * configure.in (with_cpu handler): Recognize hypersparc.
6688
6689 Thu Jan  7 23:54:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6690
6691         * config/c4x/c4x.c: Added space after negation operator.
6692         * config/c4x/c4x.h: Likewise.
6693         * config/c4x/c4x.md: Likewise.
6694
6695 Thu Jan  7 23:39:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6696
6697         * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class.
6698
6699 Thu Jan  7 00:29:25 1999  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
6700
6701         * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases,
6702         when a test can't be performed due to limited width of
6703         HOST_BITS_PER_WIDE_INT, use the more conservative approximation.
6704         Fix UDIV case for cases where the first operand has the highest bit
6705         set.
6706
6707 Thu Jan  7 00:01:38 1999  Lutz Vieweg  <lkv@mania.robin.de>
6708
6709         * pa.h (reg_class): Add FPUPPER_REGS.
6710         (REG_CLASS_NAMES): Similarly.
6711         (REG_CLASS_CONTENTS): Similarly.
6712         (REGNO_REG_CLASS): Handle FPUPPER_REGS.
6713         (FP_REG_CLASS_P): Likewise.
6714         (REG_CLASS_FROM_LETTER): Similarly.
6715         (CLASS_MAX_NREGS): Similarly.
6716
6717 1999-01-06  Brendan Kehoe  <brendan@cygnus.com>
6718
6719         * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h
6720         for a typedef of bool.  Make sure to have a copy of the file is
6721         in place before we look to fix it.  Fix typo in variable name to
6722         FILE.
6723
6724 Wed Jan  6 07:51:05 1999  Richard Henderson  <rth@cygnus.com>
6725
6726         * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use
6727         value_mode for the return mode.
6728
6729 Wed Jan  6 17:55:19 1999  Robert Lipe  <robertlipe@usa.net>
6730
6731         * configure.in: New flag --with-dwarf2.  If set, enables DWARF-2
6732         debugging as default.
6733
6734         * config/tm-dwarf2.h: New file.
6735
6736 Wed Jan  6 16:08:54 1999  Jeffrey A Law  (law@cygnus.com)
6737
6738         * h8300.h (ASM_OUTPUT_LABELREF): Define.
6739
6740         * pa.h (DONT_RECORD_EQUIVALENCE): Kill.
6741         * local-alloc.c (update_equiv_regs): Corresponding changes.
6742         * tm.texi (DONT_RECORD_EQUIVALENCE): Kill.
6743
6744         * calls.c (special_function_p): Push alloca test inside the large
6745         conditional which excludes functions not at file scope or not
6746         extern.
6747
6748         * calls.c (special_function_p): New function broken out of
6749         expand_call.
6750         (precompute_register_parameters): Likewise.
6751         (store_one_arg): Likewise.
6752         (store_unaligned_argumetns_into_pseudos): Likewise.
6753         (save_fixed_argument_area): Likewise.
6754         (restore_fixed_argument_area): Likewise.
6755         (expand_call): Corresponding changes.
6756
6757 Thu Jan  7 00:12:24 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6758
6759         * config/c4x/c4x.md (addqi3): If the destination operand is
6760         a hard register other than an extended precision register,
6761         emit addqi3_noclobber.
6762         (*addqi3_noclobber_reload): New pattern added so that reload
6763         will recognize a store of a pseudo, equivalent to the sum
6764         of the frame pointer and a constant, as an add insn.
6765
6766 1999-01-06  Manfred Hollstein  <manfred@s-direktnet.de>
6767
6768         * fixinc/fixincl.c: Re-indent according to the GNU standards.
6769         fixinc/server.c: Likewise.
6770         fixinc/server.h: Likewise.
6771
6772 Wed Jan  6 10:43:29 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
6773
6774         * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX
6775         handling.
6776         (const_sint32_operand): Likewise.
6777
6778 Wed Jan  6 09:44:51 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6779
6780         * toplev.h: In addition to checking _JBLEN, also check if `setjmp'
6781         is a macro when deciding if we can use `jmp_buf' in prototypes.
6782
6783 Wed Jan  6 03:18:53 1999  Mark Elbrecht  <snowball3@usa.net>
6784
6785         * configure.in (pc-msdosdjgpp): Set x_make to x-go32.
6786         * configure: Rebuilt.
6787         * i386/xm-go32.h: Define LIBSTDCXX.
6788         * i386/x-go32: New.
6789         * i386/go32.h (MD_EXEC_PREFIX): Define.
6790         (FILE_NAME_ABSOLUTE_P): Define.
6791         (LINK_COMMAND_SPEC): Define.
6792
6793 Wed Jan  6 02:23:36 1999  "Charles M. Hannum"  <root@ihack.net>
6794
6795         * expr.c (store_expr): If the lhs is a memory location pointed
6796         to be a postincremented (or postdecremented) pointer, always
6797         force the rhs to be evaluated into a pseudo.
6798
6799 Wed Jan  6 00:54:21 1999  Geoff Keating  <geoffk@ozemail.com.au>
6800
6801         * real.c (mtherr): Print more reasonable warning messages.
6802
6803 Tue Jan  5 21:57:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6804
6805         * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h.
6806
6807         * cccp.c: Include prefix.h, don't prototype prefix.c functions.
6808         (new_include_prefix): Constify char* parameters.
6809
6810         * cppfiles.c (read_name_map): Likewise.
6811         (append_include_chain): Likewise.  Also, use a writable char* copy
6812         of parameter `dir' which we then modify, rather than using the
6813         parameter itself to store the new writable string.
6814         (remap_filename): Constify some variables.  Also, use a writable
6815         char* to store an allocated string which we will be modifying.
6816
6817         * cpplib.c: Include prefix.h, don't prototype prefix.c functions.
6818         (cpp_start_read): Constify variable `str'.
6819
6820         * cpplib.h (append_include_chain): Constify a char* parameter.
6821
6822         * gcc.c Include prefix.h, don't prototype prefix.c functions.
6823         (add_prefix, save_string): Constify char* parameters.
6824         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
6825
6826         * prefix.c: Include prefix.h.
6827         (get_key_value, translate_name, save_string, update_path,
6828         set_std_prefix): Constify various char* parameters and variables.
6829         (save_string): Use xmalloc, not malloc.
6830         (translate_name): Use a writable temporary variable to create and
6831         modify a string before setting it to a const char*.
6832         
6833         * prefix.h: New file to prototype functions exported from prefix.c.
6834
6835 Tue Jan  5 08:52:18 1999  Bruce Korb  (korb@datadesign.com)
6836
6837         * fixinc/fixincl.c (various): Added debug code so
6838         Manfred can trace the processing.
6839
6840         * fixinc/inclhack.def (sys/utsname.h): Provide forward declaration of
6841         struct utsname on Ultrix V4.[35].
6842
6843         * fixinc/{fixincl.x|fixincl.sh|inclhack.sh} : Regenerated.
6844
6845 Mon Jan  4 15:37:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
6846
6847         * cpplib.c (skip_if_group): Split out the logic that handles
6848         directive recognition to its own function.  Don't use
6849         parse markers; use a bare pointer into the buffer.  Use
6850         copy/skip_rest_of_line instead of doing it by hand.  Remove
6851         `return on any directive' mode which was never used, and take
6852         only one argument.
6853         (consider_directive_while_skipping): New function, subroutine
6854         of skip_if_group.  Logic streamlined a bit.
6855         (conditional_skip, do_elif, do_else): Call skip_if_group with
6856         only one argument.
6857
6858 Mon Jan  4 15:27:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
6859
6860         * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an
6861         error.
6862
6863 Mon Jan  4 11:55:51 1999  Jason Merrill  <jason@yorick.cygnus.com>
6864
6865         * extend.texi (Bound member functions): Document.
6866
6867 Mon Jan  4 11:01:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6868
6869         * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string,
6870         lang_to_string, type_to_string): Make return type const char*.
6871         (print_symbol): Apply `const' keyword to a char*.
6872         (print_file_desc): Cast structure member `crfd' to ulong when
6873         comparing against one.
6874
6875         * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*.
6876         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
6877         (progname, input_name): Apply `const' keyword to a char*.
6878         Don't redundantly include sys/stat.h.
6879         (alloc_info): Apply `const' keyword to a char*.
6880         (st_to_string, sc_to_string): Likewise.
6881         (hash_string): Cast variable `hash_string' to a symint_t when
6882         comparing against one.
6883         (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one.
6884         Likewise cast it to long when comparing against one.
6885         (add_local_symbol): Apply `const' keyword to a char*.
6886         (add_ext_symbol): Likewise.
6887         (add_unknown_tag): Likewise.
6888         (add_procedure): Cast a printf-style field width to an int.
6889         (add_file): Cast PAGE_USIZE to long when comparing against one.
6890         (parse_begin): Cast a printf-style field width to an int.
6891         (parse_bend): Likewise.
6892         (parse_def): Likewise.
6893         (parse_end): Likewise.
6894         (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED.
6895         (parse_stabs_common): Fix format specifier.
6896         (parse_input): Change type of variable `i' to Size_t.
6897         (write_object): Fix arguments to match format specifiers.
6898         Cast variable `num_write' to long when comparing against one.
6899         (read_seek): Cast variable `sys_read' to symint_t when comparing
6900         against one.  Fix arguments to match format specifiers.  Cast
6901         variable `size' to long when comparing against one.
6902         (copy_object): Cast result of `sizeof' to int when comparing
6903         against one.  Fix arguments to match format specifiers.  Cast
6904         variable `ifd' to long when comparing against a signed value.
6905         Likewise, likewise.
6906         
6907 Mon Jan  4 10:30:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6908
6909         * c-common.c (decl_attributes): Allow applying attribute `unused'
6910         on a LABEL_DECL.
6911
6912         * c-parse.in (label): Parse attributes after a label, and call
6913         `decl_attributes' to handle them.
6914
6915         * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
6916
6917         * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
6918         generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
6919
6920         * invoke.texi: Note that labels can be marked `unused'.
6921
6922 Sun Jan  3 23:32:18 1999  Jeff Law  (law@cygnus.com)
6923
6924         * version.c: Bump for snapshot.
6925
6926 Sun Jan  3 23:00:42 1999  Jeffrey A Law  (law@cygnus.com)
6927
6928         * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing
6929         RTL for a compare/jump sequence.
6930         
6931 Sun Jan  3 22:58:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6932
6933         * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL
6934         for a target with HAVE_cc0 defined.
6935         (emit_cmp_and_jump_insns): New function.
6936         * expr.h (emit_cmp_and_jump_insns): Prototype it.
6937         * loop.c (check_dbra_loop): Use it to replace calls
6938         to emit_cmp_insn and emit_jump_insn and to canonicalize
6939         the comparison if necessary.
6940         * unroll.c (unroll_loop): Likewise.
6941
6942 Sun Jan  3 21:01:04 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6943
6944         * fixincludes (sys/utsname.h): Provide forward declaration of
6945         struct utsname on Ultrix V4.[35].
6946
6947         * mips.md (div_trap): Use local labels instead of dot-relative
6948         branches.
6949
6950 Sun Jan  3 20:40:34 1999  Jeffrey A Law  (law@cygnus.com)
6951
6952         * pa.md (branch, negated branch): Handle (const_int 0) as first
6953         source operand.
6954         * pa.c (output_cbranch): Likewise.
6955
6956 Sun Jan  3 03:20:38 1999  David Edelsohn  <edelsohn@gnu.org>
6957
6958         * rs6000.c (rs6000_stack_info): Undo spurious part of last
6959         change.
6960
6961 1999-01-01  Manfred Hollstein  <manfred@s-direktnet.de>
6962
6963         * extend.texi (__builtin_constant_p): Add missing @smallexample.
6964
6965 Fri Jan  1 11:48:20 1999  Jeffrey A Law  (law@cygnus.com)
6966
6967         * i386.md (doubleword shifts): Fix dumb mistakes in previous change.
6968
6969 Wed Dec 30 23:38:55 1998  Jeffrey A Law  (law@cygnus.com)
6970
6971         * m68k.md (adddi_dilshr32): Allow all operands to be registers too.
6972         (adddi_dishl32): Similarly.
6973
6974         * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
6975         for each insn in the skipped block.
6976
6977         * reload1.c (reload_as_needed): Verify that the insn satisfies its
6978         constraints after replacing a register address with an autoincrement
6979         address for reload inheritance purposes.
6980
6981         * i386.md (doubleword shifts): Avoid namespace pollution.
6982
6983 Wed Dec 30 23:00:28 1998  David O'Brien  <obrien@NUXI.com>
6984
6985         * configure.in (FreeBSD ELF): Needs special crt files.
6986
6987 Wed Dec 30 22:50:13 1998  Geoffrey Noer  <noer@cygnus.com>
6988
6989         * i386/xm-cygwin.h: Change DIR_SEPARATOR to forward slash.
6990
6991 1998-12-30  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
6992
6993         * loop.c (check_dbra_loop): While reversing the loop, if the
6994         comparison value has a VOID mode use the mode of the other operand
6995         to compute the mask.
6996
6997 Wed Dec 30 22:24:00 1998  Michael Meissner  <meissner@cygnus.com>
6998
6999         * rs6000.md ({save,restore}_stack_function): Take 2 operands to
7000         avoid warnings in compiling explow.c.
7001
7002         (patch from Ken Raeburn, raeburn@cygnus.com)
7003         * rs6000.c (rs6000_stack_info): Force 8-byte alignment of
7004         fpmem_offset.  Compute total size after that, and then
7005         rs6000_fpmem_offset using both values.
7006
7007 Mon Dec 28 19:26:32 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7008
7009         * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in
7010         the future; indeed that already happens in some cases.
7011
7012 Tue Dec 29 11:58:53 1998  Richard Henderson  <rth@cygnus.com>
7013
7014         * sparc.c (input_operand): Recognize (const (constant_p_rtx)).
7015         (arith_operand): Remove constant_p_rtx handling.
7016         (const64_operand, const64_high_operand): Likewise.
7017         (arith11_operand, arith10_operand, arith_double_operand): Likewise.
7018         (arith11_double_operand, arith10_double_operand, small_int): Likewise.
7019         (small_int_or_double, uns_small_int, zero_operand): Likewise.
7020         * sparc.h (PREDICATE_CODES): Likewise.
7021
7022         * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX.
7023
7024 Tue Dec 29 11:32:54 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7025
7026         * rtl.def (CONSTANT_P_RTX): Clarify commentary.
7027         * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to
7028         consider constant CONSTRUCTOR constant and to defer some cases
7029         to cse.
7030         * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX.
7031         * regclass.c (reg_scan_mark_refs, case CONST): Likewise.
7032
7033 Tue Dec 29 11:30:10 1998  Richard Henderson  <rth@cygnus.com>
7034
7035         * expr.c (init_expr_once): Kill can_handle_constant_p recognition.
7036         * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code.
7037
7038         * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling.
7039         (reg_or_8bit_operand, cint8_operand, add_operand): Likewise.
7040         (sext_add_operand, and_operand, or_operand): Likewise.
7041         (reg_or_cint_operand, some_operand, input_operand): Likewise.
7042         * alpha.h (PREDICATE_CODES): Likewise.
7043
7044 Sat Dec 26 23:26:26 1998  Jeff Law  (law@cygnus.com)
7045
7046         * version.c: Bump for snapshot.
7047
7048 Sat Dec 26 09:17:04 1998  Jeffrey A Law  (law@cygnus.com)
7049
7050         * gengenrtl.c (gencode): Always use bzero to clear memory instead
7051         of dangerous casts and stores.
7052
7053         * Makefile.in (compare, gnucompare): Add missing else true clauses.
7054
7055 Fri Dec 25 23:00:56 1998  Jeffrey A Law  (law@cygnus.com)
7056
7057         * alpha.md (builtin_longjmp): Add missing "DONE".
7058
7059 Thu Dec 24 10:39:57 1998  Stan Cox  <scox@cygnus.com>
7060
7061         * gcc.c (execute): Enable -pipe with win32.
7062
7063 Wed Dec 23 10:27:44 1998  Nick Clifton  <nickc@cygnus.com>
7064
7065         * config/arm/t-arm-elf: Add multiplib option for leading
7066         underscores.
7067
7068         * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable
7069         'user_label_prefix' rather than macro USER_LABEL_PREFIX.
7070
7071         (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather
7072         than variable 'reload_address_base_reg_class'.  [Note this
7073         change is unrelated to the others in this patch].
7074
7075         * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no
7076         leading underscore.
7077
7078 Wed Dec 23 09:51:32 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7079
7080         * alias.c (record_alias_subset): Remove ignored `&'.
7081         (init_alias_once): Likewise.
7082
7083         * c-lex.c (UNGETC): Cast first argument of comma expression to void.
7084
7085         * config/mips/mips.c (mips_asm_file_end): Cast the result of
7086         fwrite to `int' when comparing against one.
7087
7088         * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
7089         (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
7090
7091         * cse.c (rehash_using_reg): Change type of variable `i' to
7092         unsigned int.
7093
7094         * dwarf2out.c (initial_return_save): Cast -1 to unsigned before
7095         assigning it to one.
7096
7097         * except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
7098
7099         * final.c (final_scan_insn): Likewise for variable `i'.
7100         (output_asm_insn): Cast a char to unsigned char when used as an
7101         array index.
7102
7103         * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
7104         assigning it to one.
7105
7106         * loop.c (strength_reduce): Remove unused variables `count' and `temp'.
7107
7108         * recog.c (preprocess_constraints): Cast a char to unsigned char
7109         when used as an array index.
7110
7111         * regmove.c (find_matches): Likewise.
7112
7113         * reload1.c (calculate_needs): Add default case in switch.
7114         (eliminate_regs_in_insn): Initialize variable `offset'.
7115         (set_offsets_for_label): Change type of variable `i' to unsigned.
7116         (reload_as_needed): Wrap variable `i' in macro check on
7117         AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
7118
7119         * scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
7120         with ATTRIBUTE_UNUSED.  Cast variable `start_written' to size_t
7121         when comparing against one.
7122
7123         * stor-layout.c (layout_decl): Cast maximum_field_alignment to
7124         unsigned when comparing against one.  Likewise for
7125         GET_MODE_ALIGNMENT().
7126         (layout_record): Cast record_align to int when comparing against a
7127         signed value.
7128         (layout_type): Cast TYPE_ALIGN() to int when comparing against a
7129         signed value.
7130
7131         * tree.c (get_identifier): Cast variable `len' to unsigned when
7132         comparing against one.
7133         (maybe_get_identifier): Likewise
7134
7135 Wed Dec 23 00:10:01 1998  Jeffrey A Law  (law@cygnus.com)
7136
7137         * toplev.c (rest_of_compilation): Do not set reload_completed.
7138         * reload1.c (reload): Set reload_completed before calling
7139         cleanup_subreg_operands.
7140
7141 Tue Dec 22 23:58:31 1998  Richard Henderson  <rth@cygnus.com>
7142
7143         * reload1.c (emit_reload_insns): Check `set' not null before use.
7144
7145 Tue Dec 22 15:15:45 1998  Nick Clifton  <nickc@cygnus.com>
7146
7147         * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to
7148         'int'.
7149
7150 Tue Dec 22 13:55:44 1998  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
7151
7152         * halfpic.c (half_pic_encode): Delete redundant code.
7153
7154 Tue Dec 22 13:02:22 1998  Michael Meissner  <meissner@cygnus.com>
7155
7156         * toplev.c (main): Delete handling of -dM as a preprocessor
7157         option.
7158
7159 Mon Dec 21 17:39:38 1998  Michael Meissner  <meissner@cygnus.com>
7160
7161         * toplev.c (main): Don't emit any warnings when using -dD, -dM, or
7162         -dI, which are handled by the preprocessor.
7163
7164 Sun Dec 20 16:13:44 1998  John F. Carr  <jfc@mit.edu>
7165
7166         * configure.in: Handle Digital UNIX 5.x the same as 4.x.
7167         * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".".
7168
7169 Sun Dec 20 07:39:52 1998  Jeff Law  (law@cygnus.com)
7170
7171         * version.c: Bump for snapshot.
7172
7173 Sat Dec 19 22:24:22 1998  Jeff Law  (law@cygnus.com)
7174
7175         * version.c: Bump for snapshot.
7176
7177 Sat Dec 19 21:41:32 1998  Jeff Law  (law@cygnus.com)
7178
7179         * version.c: Bump for snapshot.
7180
7181 Sat Dec 19 09:52:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7182
7183         * genattr.c (fatal): Qualify a char* with the `const' keyword.
7184         
7185         * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set,
7186         write_unit_name, write_eligible_delay, expand_units,
7187         make_length_attrs, write_attr_case, find_attr,
7188         make_internal_attr): Likewise.
7189         * gencheck.c (tree_codes): Likewise.
7190         * gencodes.c (fatal): Likewise.
7191         * genconfig.c (fatal): Likewise.
7192         * genemit.c (fatal): Likewise.
7193         * genextract.c (fatal, walk_rtx, copystr): Likewise.
7194         * genflags.c (fatal): Likewise.
7195         * genopinit.c (fatal, optabs, gen_insn): Likewise.
7196         * genoutput.c (fatal, error, predicates): Likewise.
7197         * genpeep.c (fatal): Likewise.
7198         * genrecog.c (fatal, decision, pred_table, add_to_sequence,
7199         write_tree_1, write_tree, change_state, copystr, indents): Likewise.
7200
7201 Thu Dec 17 18:21:49 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7202
7203         * configure.in (with-fast-fixincludes): Fix whitespace.
7204         * configure: Rebuilt.
7205
7206         * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific
7207         asm() etc. function declarations in __DECC.
7208
7209 Thu Dec 17 13:57:23 1998  Nick Clifton  <nickc@cygnus.com>
7210
7211         * expr.c (emit_move_insn_1): Only emit a clobber if the target
7212         is a pseudo register.
7213
7214 Thu Dec 17 13:50:29 1998  Nick Clifton  <nickc@cygnus.com>
7215
7216         * gcse.c: Include expr.h in order to get the prototype for
7217         get_condition() which is used in delete_null_pointer_checks().
7218
7219 Thu Dec 17 15:58:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7220
7221         * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros.
7222
7223 Thu Dec 17 12:31:12 1998  Jim Wilson  <wilson@cygnus.com>
7224
7225         * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS.
7226         (ALL_CFLAGS): Delete SCHED_CFLAGS.
7227
7228 1998-12-17  Vladimir N. Makarov  <vmakarov@cygnus.com>
7229
7230         * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of
7231         ';').
7232
7233 1998-12-17  Michael Tiemann  <tiemann@axon.cygnus.com>
7234
7235         * i960.md (extend*, zero_extend*): Don't generate rtl that looks
7236         like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides
7237         optimizations from the combiner.
7238
7239 Thu Dec 17 08:27:03 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7240
7241         * loop.c (combine_givs_used_by_other): Don't depend on n_times_set.
7242
7243 Wed Dec 16 17:30:35 1998  Nick Clifton  <nickc@cygnus.com>
7244
7245         * toplev.c (main): Disable optimize_size if a specific
7246         optimization level is requested.  Always set optimization
7247         level to 2 if -Os is specified.
7248
7249 Wed Dec 16 16:33:04 1998  Dave Brolley  <brolley@cygnus.com>
7250
7251         * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
7252         cpplib.
7253         * cpplib.c (cpp_start_read): If in_fname is not initialized, try to
7254         initialize it using fname.
7255
7256 1998-12-16  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7257
7258         * cpplib.c (do_include): Treat #include_next in the
7259         primary source file as #include plus warning.  Treat
7260         #include_next in a file included by absolute path as an
7261         error.  fp == CPP_NULL_BUFFER is a fatal inconsistency.
7262
7263 Wed Dec 16 12:28:54 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7264
7265         * cccp.c: Don't define MIN/MAX anymore.
7266         * cpplib.c: Likewise.
7267         * machmode.h: Likewise.
7268         * system.h: Provide definitions for MIN/MAX.
7269
7270 Tue Dec 15 23:47:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7271
7272         * fix-header.c: Don't define xstrdup here.
7273
7274 Wed Dec 16 05:11:04 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7275
7276         * loop.c (consec_sets_giv): New argument last_consec_insn.
7277         (strength_reduce): Provide / use it.
7278
7279 Wed Dec 16 17:24:07 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7280
7281         * loop.h (loop_info): New field 'vtop'.
7282         * loop.c (check_dbra_loop): Use loop_info->vtop rather than
7283         scanning loop for vtop.
7284         * unroll.c (subtract_reg_term, find_common_reg_term): New functions.
7285         (loop_iterations): Use them to determine if loop has a constant
7286         number of iterations.  Set loop_info->vtop.  Don't subtract
7287         common reg term from initial_value and final_value if have a
7288         do-while loop.
7289
7290 Tue Dec 15 13:49:55 1998  Jeffrey A Law  (law@cygnus.com)
7291
7292         * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2.
7293
7294         * mn10300.md (bset, bclr): Operand 0 is a read/write operand.
7295
7296         * mn10200.md (abssf2, negsf2): New expanders.
7297
7298         * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders.
7299
7300 Tue Dec 15 11:55:30 1998  Nick Clifton  <nickc@cygnus.com>
7301
7302         * integrate.c (copy_rtx_and_substitute): If a SUBREG is
7303         replaced by a CONCAT whose components do not have the same
7304         mode as the original SUBREG, use a new SUBREG to restore the
7305         mode.
7306
7307         * emit-rtl.c (subreg_realpart_p): Cope with subregs containing
7308         multiword complex values.
7309
7310 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7311
7312         * cppalloc.c: Add xstrdup here.
7313         * cpplib.h: Remove savestring prototype.
7314         * cpplib.c: Remove savestring function. s/savestring/xstrdup/
7315           throughout.
7316         * cppfiles.c: s/savestring/xstrdup/ throughout.
7317
7318 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7319
7320         * cpplib.c: Make all directive handlers read their own
7321           arguments.
7322           (struct directive): Remove last two arguments from FUNC
7323           member prototype. Remove `command_reads_line' member
7324           entirely.
7325           (directive_table): Remove initializations of
7326           command_reads_line flag.  Pretty-print.
7327           (eval_if_expression, do_define, do_line, do_include,
7328           do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef,
7329           do_else, do_elif, do_sccs, do_assert, do_unassert,
7330           do_warning): Take only two args.
7331
7332           (cpp_define): Call do_define with two args and the text to
7333           define stuffed into a buffer.
7334           (make_assertion): Call do_assert with two args.
7335           (handle_directive): Call do_line with two args. Call
7336           kt->func with two args.  Remove command_reads_line
7337           processing.
7338           (do_define, do_undef, do_error, do_warning, do_pragma,
7339           do_sccs): Read the rest of the line here.
7340           (do_ident): Gobble rest of line, as cccp does.
7341           (cpp_undef): New function.
7342           (cpp_start_read): Call cpp_undef instead of do_undef.
7343
7344 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7345
7346         * cpphash.h (union hash_value): Remove `keydef' member, add a
7347           `struct hashnode *aschain' member for #assert.
7348
7349         * cpplib.c (struct tokenlist_list, struct
7350           assertion_hashnode): Delete structure definitions.
7351           (assertion_install, assertion_lookup, delete_assertion,
7352           check_assertion, compare_token_lists, reverse_token_list,
7353           read_token_list, free_token_list): Delete functions.
7354           (parse_assertion): New function.
7355           (cpp_cleanup): Don't destroy the assertion_hashtable.
7356
7357           (do_assert): Gut and rewrite.  #assert foo (bar) places
7358           entries for `#foo' and `#foo(bar)' in the macro hash table,
7359           type T_ASSERT.  The value union's `aschain' member is used
7360           to chain all answers for a given predicate together.
7361           (do_unassert): Also rewritten.  Take an un-asserted
7362           answer off the chain from its predicate and call
7363           delete_macro on the hashnode, or walk a predicate chain
7364           calling delete_macro on all the entries.
7365           (cpp_read_check_assertion): Simply call parse_assertion to
7366           get the canonical assertion name, and look that up in the
7367           hash table.
7368
7369         * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab):
7370         Removed.
7371
7372         * cpphash.c (install): Use bcopy instead of an explicit loop
7373           to copy the macro name.
7374
7375         * cppexp.c (cpp_lex): Convert the result of
7376           cpp_read_check_assertion to a `struct operation' directly;
7377           don't go through parse_number.
7378
7379 Tue Dec 15 18:27:39 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7380
7381         * loop.h (struct induction): Delete times_used member.
7382         * loop.c (n_times_set): Rename to set_in_loop.  Changed all users.
7383         (n_times_used): Rename to n_times_set.  Changed all users.
7384         (scan_loop): Free reg_single_usage before strength reduction.
7385         (record_giv, combine_givs): Remove handling of times_used member.
7386         (combine_givs_used_once): Rename to:
7387         (combine_givs_used_by_other) .  Changed all callers.
7388
7389 Tue Dec 15 01:45:26 1998  Jason Merrill  <jason@yorick.cygnus.com>
7390
7391         * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P
7392         instead of TREE_CODE_CLASS == 't'.
7393         (gen_type_die): Likewise.
7394         (scope_die_for): Ignore FUNCTION_TYPE "scopes".
7395
7396 Mon Dec 14 16:23:27 1998  Jim Wilson  <wilson@cygnus.com>
7397
7398         * real.c (endian): Disable last change unless
7399         HOST_BITS_PER_WIDE_INT is greater than 32.
7400
7401 Mon Dec 14 17:13:36 1998  Andrew MacLeod  <amacleod@cygnus.com>
7402
7403         * output.h (force_data_section): New prototype.
7404         * varasm.c (force_data_section): New function to force the
7405         data section, regardless of what in_section thinks.
7406         * dwarf2out.c (output_call_frame_info): Call force_data_section
7407         since varasm may not realize we've changes sections.
7408
7409 Mon Dec 14 14:09:34 1998  Nick Clifton  <nickc@cygnus.com>
7410
7411         * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes
7412           after completing reload.
7413
7414         * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are
7415           deleted after reload.
7416
7417 Mon Dec 14 01:39:28 1998  Jeffrey A Law  (law@cygnus.com)
7418
7419         * rtl.h (multiple_sets): Fix prototype.
7420         * rtlanal.c (multiple_sets): Fix return type.
7421
7422 Sun Dec 13 12:43:58 1998  Jeff Law  (law@cygnus.com)
7423
7424         * version.c: Bump for snapshot.
7425
7426 Sun Dec 13 01:05:22 1998  Jeff Law  (law@cygnus.com)
7427
7428         * version.c: Bump for snapshot.
7429
7430 1998-12-13  Manfred Hollstein  <manfred@s-direktnet.de>
7431
7432         * protoize.c (fputs): Wrap extern declaration in #ifndef fputs.
7433
7434 Sun Dec 13 00:24:14 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7435
7436         * rtl.h (recompute_reg_usage): Add second argument.
7437         * flow.c (recompute_reg_usage): Likewise.
7438         * toplev.c (rest_of_compilation): Supply second argument to
7439         recompute_reg_usage.
7440
7441         * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0
7442         after reload.
7443
7444 Sat Dec 12 23:39:10 1998  Jeffrey A Law  (law@cygnus.com)
7445
7446         * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32.
7447         (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000.
7448         (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000,
7449         mcpu32 or m5200.
7450
7451         * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character.
7452
7453         * rtlanal.c (multiple_sets): New function.
7454         * rtl.h (multiple_sets): Declare it.
7455         * local-alloc.c (wipe_dead_reg): Use it.
7456         * global.c (global_conflicts): Likewise.
7457
7458 Sat Dec 12 22:13:02 1998  Mark Mitchell  <mark@markmitchell.com>
7459
7460         * global.c (record_conflicts): Don't use an array of shorts to
7461         store an array of ints.
7462         (global_conflicts): Likewise.
7463
7464 Sat Dec 12 16:49:24 1998  Richard Henderson  <rth@cygnus.com>
7465
7466         * alpha.c (alpha_expand_block_move): mode_for_size expects
7467         bits, not bytes.  Infer extra alignment from addressof.
7468
7469 1998-12-11  Michael Meissner  <meissner@cygnus.com>
7470
7471         * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the
7472         .sbss section, not .sdata.
7473
7474 1998-12-11  Manfred Hollstein  <manfred@s-direktnet.de>
7475
7476         * cccp.c: Do not #include <sys/stat.h> here; this is already done
7477         by "system.h".
7478         * collect2.c: Likewise.
7479         * cpplib.h: Likewise.
7480         * gcc.c: Likewise.
7481         * gcov.c: Likewise.
7482         * getpwd.c: Likewise.
7483         * protoize.c: Likewise.
7484         * toplev.c: Likewise.
7485
7486         * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h"
7487         and don't try to define it here.
7488         * Makefile.in (cppmain.o): Depend on machmode.h.
7489         (cpplib.o): Likewise.
7490         (cpperror.o): Likewise.
7491         (cppexp.o): Likewise.
7492         (cppfiles.o): Likewise.
7493         (cpphash.o): Likewise.
7494         (cppalloc.o): Likewise.
7495         (fix-header.o): Likewise.
7496         (scan-decls.o): Likewise.
7497
7498 Fri Dec 11 11:02:49 1998  Stan Cox  <scox@cygnus.com>
7499
7500         * sh.c (print_operand): Lookup interrupt_handler attribute instead
7501         of relying on static variable.
7502         * (calc_live_regs): Likewise.
7503         * (sh_pragma_insert_attributes): Create interrupt_handler
7504         attribute if a pragma was specified.
7505         * (sh_valid_machine_decl_attribute): Don't set static flag.
7506         * sh.h (PRAGMA_INSERT_ATTRIBUTES): New.
7507
7508 Fri Dec 11 12:56:07 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7509
7510         * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START
7511         to determine if a register is live at a jump destination.
7512         Everything is dead at a BARRIER.
7513
7514 Thu Dec 10 16:02:06 1998  Jim Wilson  <wilson@cygnus.com>
7515
7516         * cse.c (simplify_unary_operation): Sign-extend constants when
7517         they have the most significant bit set for the target.
7518         * real.c (endian): Sign-extend 32 bit output values on a 64 bit
7519         host.
7520         * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in
7521         HOST_WIDE_INT temporary before negating it.
7522         * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000.
7523
7524 Thu Dec 10 15:05:59 1998  Dave Brolley  <brolley@cygnus.com>
7525
7526         * objc/objc-act.c (lang_init_options): Enclose cpplib related code in
7527         #if USE_CPPLIB.
7528
7529 Thu Dec 10 13:39:46 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7530
7531         * collect2.h: New header file for prototypes.
7532
7533         * Makefile.in (collect2.o, tlink.o): Depend on collect2.h.
7534
7535         * collect2.c: Include collect2.h.
7536         * tlink.c: Likewise.
7537
7538 Wed Dec  9 23:55:11 1998  Jeffrey A Law  (law@cygnus.com)
7539
7540         * flow.c: Update some comments.
7541
7542 Wed Dec  9 15:29:26 1998  Dave Brolley  <brolley@cygnus.com>
7543
7544         * objc/objc-act.c (cpp_initialized): Removed.
7545         (lang_init_options): Initialize cpplib.
7546         (lang_decode_option): Move initialization of cpplib to
7547         lang_init_options.
7548         * c-lang.c (parse_options,parse_in): Added.
7549         (lang_init_options): Initialized cpplib here.
7550         * c-decl.c (parse_options,cpp_initialized): Removed.
7551         (c_decode_option): Move initialization of cpplib to
7552         lang_init_options.
7553
7554 Wed Dec  9 19:36:57 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7555
7556         * reload1.c (reload_combine, reload_combine_note_store):
7557         Make STORE_RUID always valid.
7558         (reload_combine): Check if BASE is clobbered too early.
7559
7560 Wed Dec  9 09:53:58 1998  Nick Clifton  <nickc@cygnus.com>
7561
7562         * reload.c (find_reloads): Display the insn that cannot be
7563         reloaded.
7564
7565 Wed Dec  9 12:15:26 1998  Dave Brolley  <brolley@cygnus.com>
7566
7567         * cccp.c (create_definition): Fix end of buffer logic.
7568
7569 Wed Dec  9 10:15:45 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7570
7571         * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function
7572         pointer parameters changed to use the PARAMS() macro.
7573
7574 Wed Dec  9 09:12:40 1998  Andrew MacLeod  <amacleod@cygnus.com>
7575
7576         * except.h (struct handler_info): Add handler_number field.
7577         * except.c (gen_exception_label): EH labels no longer need to be
7578         on the permanent obstack.
7579         (get_new_handler): Set the label number field.
7580         (output_exception_table_entry): Regenerate handler label reference
7581         from the label number field.
7582         (init_eh): Remove a blank line.
7583         * integrate.c (get_label_from_map): Labels no longer need to be
7584         on the permanent obstack.
7585
7586 Tue Dec  8 22:04:33 1998  Jim Wilson  <wilson@cygnus.com>
7587
7588         * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand
7589         only when OUTER_CODE is SET.
7590
7591 Tue Dec  8 22:47:15 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7592
7593         * loop.c (strength_reduce): If scan_start points to the loop exit
7594         test, be wary of subversive use of gotos inside expression statements.
7595         Don't set maybe_multiple for a backward jump that does not
7596         include the label under consideration into its range.
7597         * unroll.c (biv_total_increment): Make use of maybe_multiple field.
7598
7599 Tue Dec  8 22:33:18 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7600
7601         * explow.c (plus_constant_wide): Don't immediately return with
7602         result of recursive call.
7603
7604 Tue Dec  8 15:32:56 1998  Andrew MacLeod  <amacleod@cygnus.com>
7605
7606         * eh-common.h (struct eh_context): Add table_index for rethrows.
7607
7608         * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes.
7609         (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be
7610         processed when inlined or unrolled (ie duplicated in some way).
7611
7612         * rtl.c (reg_note_name): Add strings for new reg_note enums.
7613
7614         * expr.h (rethrow_libfunc): New library decl.
7615
7616         * optabs.c (rethrow_libfunc): Initialize.
7617
7618         * except.h (struct eh_entry): Add new field 'rethrow_label'.
7619         (new_eh_region_entry): No longer exported from except.c.
7620         (duplicate_handlers): Renamed to duplicate_eh_handlers and
7621         different prototype.
7622         (rethrow_symbol_map, rethrow_used): New exported functions.
7623         (eh_region_from_symbol): New exported function.
7624
7625         * except.c (create_rethrow_ref): New function to create a single
7626         SYMBOL_REF for a rethrow region.
7627         (push_eh_entry): Initialize a rethrow ref.
7628         (func_eh_entry): Add a rethrow_label field.
7629         (new_eh_region_entry): Make static, and initialize the rethrow entry.
7630         (duplicate_eh_handlers): Create a new region, and remap labels/symbols.
7631         (eh_region_from_symbol): Find an EH region based on its rethrow symbol.
7632         (rethrow_symbol_map): Given a label map, maps a rethrow symbol for
7633         a region into an appropriate new symbol.
7634         (rethrow_used): Indicate whether a rethrow symbol has been referenced.
7635         (expand_eh_region_end): Don't issue jump around code for new-exceptions.
7636         (end_catch_handler): Emit a barrier for new-exceptions since
7637         control can never drop through the end of a catch block.
7638         (expand_end_all_catch): new-exceptions never fall through a catch
7639         block.
7640         (expand_rethrow): Use __rethrow routine for new exceptions.
7641         (output_exception_table_entry): Generate rethrow labels, if needed.
7642         (output_exception_table): Generate start and end rethrow labels.
7643         (init_eh): Create rethrow symbols for beginning and end of table.
7644         (scan_region): Don't eliminate EH regions which are the targets of
7645         rethrows.
7646
7647         * flow.c (make_edges): Add different edges for rethrow calls,
7648         identified by having the REG_EH_RETHROW reg label.
7649         (delete_unreachable_blocks): Don't delete regions markers which are
7650         the target of a rethrow.
7651
7652         * integrate.c (save_for_inline_eh_labelmap): New callback routine to
7653         allow save_for_inline_copying to call duplicate_eh_handlers.
7654         (save_for_inline_copying): Call duplicate_eh_handlers instead of
7655         exposing internal details of exception regions.
7656         (copy_for_inline): Check if SYMBOL_REFs need adjustment.
7657         (expand_inline_function_eh_labelmap): New callback routine to
7658         allow expand_inline_function to call duplicate_eh_handlers.
7659         (expand_inline_function): Call duplicate_eh_handlers instead of
7660         exposing internal details of exception regions.
7661         (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST
7662         flag is set.
7663
7664         * libgcc2.c (find_exception_handler): Generalize to enable it to
7665         pick up processing where it left off last time for a rethrow.
7666         (__unwinding_cleanup): New function. debug hook which is called before
7667         unwinding when __throw finds there is nothing but cleanups left.
7668         (throw_helper): Common parts of __throw extracted out for reuse.
7669         (__throw): Common parts moved to throw_helper.
7670         (__rethrow): New function for performing rethrows.
7671
7672 Tue Dec  8 13:11:04 1998  Jeffrey A Law  (law@cygnus.com)
7673
7674         * reload1.c (current_function_decl): Tweak declaration.
7675
7676 Tue Dec  8 10:23:52 1998  Richard Henderson  <rth@cygnus.com>
7677
7678         * c-decl.c (flag_isoc9x): Default off.
7679         (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x.
7680         * cccp.c (print_help, main): Likewise.
7681         * gcc.c (default_compilers): Update for -std=gnu*.
7682
7683 Tue Dec  8 01:14:46 1998  Jeffrey A Law  (law@cygnus.com)
7684
7685         * Makefile.in (DEMANGLE_H): Change location to shared demangle.h.
7686         * demangle.h: Deleted.
7687
7688         * reload1.c (current_function_decl): Declare.
7689
7690 Tue Dec  8 11:58:51 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7691
7692         * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'.
7693
7694 Tue Dec  8 09:28:36 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7695
7696         * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set.
7697
7698 1998-12-08  Ulrich Drepper  <drepper@cygnus.com>
7699
7700         * configure.in: Test for availability of putc_unlocked, fputc_unlocked,
7701         and fputs_unlocked.
7702         * configure: Rebuilt.
7703         * system.h: If the *_unlocked functions are available use them
7704         instead of the locked counterparts by defining macros.
7705         * config.in: Regenerated.
7706
7707 Tue Dec  8 00:34:05 1998  Mike Stump  <mrs@wrs.com>
7708
7709         * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is
7710         wrong and should only be used for dump related things, not
7711         debugging information, instead main_input_filename should be used.
7712         Also, reuse output_file_directive if possible.
7713         * i386/aix386ng.h (ASM_FILE_START): Likewise.
7714         * i386/isc.h (ASM_FILE_START): Likewise.
7715         * i386/win-nt.h (ASM_FILE_START): Likewise.
7716         * i386/sun386.h (ASM_FILE_START): Likewise.
7717
7718 Mon Dec  7 23:56:28 1998  Robert Lipe  <robertl@dgii.com>
7719
7720         * configure.in (mips*-*-linux*): Handle big and little endian
7721         systems.
7722         * configure: Rebuilt.
7723
7724 Mon Dec  7 23:14:51 1998  Mike Stump  <mrs@wrs.com>
7725
7726         * emit-rtl.c: Fix typo.
7727
7728 Mon Dec  7 23:07:38 1998  Nathan Sidwell  <nathan@acm.org>
7729
7730         * reload1.c (eliminate_regs): Don't do anything, if we're not
7731         generating code.
7732
7733 Mon Dec  7 15:27:09 1998  DJ Delorie  <dj@cygnus.com>
7734
7735         * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA.
7736         Add comment.
7737         * mips/mips.c (mips_select_section): Add comment.
7738
7739 Mon Dec  7 17:55:06 1998  Mike Stump  <mrs@wrs.com>
7740
7741         * cccp.c (ignore_escape_flag): Add support for \ as `natural'
7742         characters in file names in #line to be consistent with #include
7743         handling.  We support escape processing in the # 1 "..." version of
7744         the command.  See also support in cp/lex.c.
7745         (handle_directive): Likewise.
7746         (do_line): Likewise.
7747         
7748 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7749
7750         * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM
7751           so it'll work on non-ASCII platforms.  Always consider $ an
7752           identifier character.  Take no arguments.
7753           (cpp_reader_init): Call initialize_char_syntax with no
7754           arguments.
7755           (cpp_start_read): Don't call initialize_char_syntax again.
7756           Clear is_idchar['$'] and is_idstart['$'] if not
7757           opts->dollars_in_ident.
7758
7759         * cpplib.h (struct cpp_reader): Replace void *data element by
7760           cpp_options *opts.  Rearrange elements to make gdb printout
7761           less annoying (put buffer stack at end).
7762           (CPP_OPTIONS): Get rid of now-unnecessary cast.
7763
7764         * cppmain.c: s/data/opts/ when initializing cpp_reader
7765           structure.
7766         * c-decl.c: Likewise.
7767         * objc/objc-act.c: Likewise.
7768         * fix-header.c: Likewise.
7769
7770 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7771
7772         * cpplib.h (struct cpp_buffer): Replace dir and dlen members
7773         with a struct file_name_list pointer.
7774         (struct cpp_reader): Add pointer to chain of `actual
7775         directory' include searchpath entries.
7776         (struct file_name_list): Add *alloc pointer for the sake of
7777         the actual-directory chain.
7778
7779         Move definition of HOST_WIDE_INT here.
7780         (cpp_parse_escape): Change prototype to match changes in
7781         cppexp.c.
7782
7783         * cppfiles.c (actual_directory): New function.
7784         (finclude): Use it to initialize the buffer's actual_dir
7785         entry.
7786         (find_include_file): We don't need to fix up max_include_len
7787         here.
7788
7789         * cpplib.c (do_include): Don't allocate a file_name_list on
7790         the fly for current directory "" includes, use the one that's
7791         been preallocated in pfile->buffer->actual_dir.  Hoist out
7792         duplicate code from the search_start selection logic.
7793         (cpp_reader_init): Initialize pfile->actual_dirs.
7794
7795         Remove definition of HOST_WIDE_INT.  Change calls
7796         to cpp_parse_escape to match changes in cppexp.c (note
7797         hardcoded MASK, which is safe since this is the source
7798         character set).
7799
7800         * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c
7801         to handle wide character constants in #if directives.  The
7802         function now returns a HOST_WIDE_INT, and takes a third
7803         argument which is a binary mask for all legal values (0x00ff
7804         for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.)  Define
7805         MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK.  Change callers of
7806         cpp_parse_escape to match.  [Fixes c-torture/execute/widechar-1.c]
7807
7808 Mon Dec  7 15:38:25 1998  Dave Brolley  <brolley@cygnus.com>
7809
7810         * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1.
7811
7812 Mon Dec  7 15:38:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7813
7814         * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB.
7815         * cppalloc.c: Move function `xcalloc' from cpplib.c to here.
7816         * cpplib.c: Move function `xcalloc' from here to cppalloc.c.
7817
7818 Mon Dec  7 11:30:49 1998  Nick Clifton  <nickc@cygnus.com>
7819
7820         * final.c (output_asm_name): Use tabs to separate comments from
7821         assembly text.
7822         
7823         Include instruction lengths (if defined) in output.
7824
7825 Mon Dec  7 10:53:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7826
7827         * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value
7828         in the loop_info structure.
7829         
7830 Mon Dec  7 11:04:40 1998  Catherine Moore  <clm@cygnus.com>
7831
7832         * configure.in (arm*-*-ecos-elf): New target.
7833         * configure: Regenerated.
7834         * config/arm/elf.h (ASM_WEAKEN_LABEL): Define.
7835         * config/arm/ecos-elf.h: New file.
7836         * config/arm/unknown-elf.h (TARGET_VERSION): Check
7837         for redefinition.
7838
7839 Mon Dec  7 16:15:51 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7840
7841         * sh.c (output_far_jump): Emit braf only for TARGET_SH2.
7842
7843 Sun Dec  6 04:19:45 1998  Jeff Law  (law@cygnus.com)
7844
7845         * version.c: Bump for snapshot.
7846
7847 Sun Dec  6 05:16:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7848
7849         * loop.c (check_dbra_loop): New argument loop_info.  Update fields
7850         as needed.
7851
7852 Sun Dec  6 03:40:13 1998  Jeff Law  (law@cygnus.com)
7853
7854         * version.c: Bump for snapshot.
7855
7856 Sun Dec  6 07:49:29 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
7857
7858         * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger
7859         compressed reports are ok and preferred over URLs.
7860
7861 Sun Dec  6 07:45:33 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
7862
7863         * invoke.texi (Warning Options): Soften the tone of -pedantic.
7864
7865 Sun Dec  6 00:20:44 1998  H.J. Lu  (hjl@gnu.org)
7866
7867         * print-rtl.c (print_rtx): Add prototype.
7868
7869         * unroll.c (iteration_info): Make it static.
7870
7871 Sun Dec  6 01:19:46 1998  Richard Henderson  <rth@cygnus.com>
7872
7873         * alias.c (memrefs_conflict_p): A second ANDed address
7874         disables the aligned address optimization.
7875
7876 Sat Dec  5 18:48:25 1998  Richard Henderson  <rth@cygnus.com>
7877
7878         * alpha.c (alpha_emit_set_const_1): Fix parenthesis error
7879         in -c << n case.
7880
7881 Sat Dec  5 15:14:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
7882
7883         * i960.h (BOOL_TYPE_SIZE): Define.
7884
7885 Sun Dec  6 00:28:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7886
7887         * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality
7888         from old valid_parallel_operands_4.
7889         (valid_parallel_operands_4): Check that operands for 4 operand
7890         parallel insns are valid, excluding load/store insns.
7891         * config/c4x/c4x.h (valid_parallel_load_store): Add prototype.
7892         * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use
7893         valid_parallel_load_store instead of valid_parallel_operands_4.
7894         (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber,
7895         *negqf2_movqf_clobber, *absqi2_movqi_clobber,
7896         *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber,
7897         *notqi_movqi_clobber): Use valid_parallel_operands_4.
7898         (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber,
7899         *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber,
7900         *subqi3_movqi_clobber): Use valid_parallel_operands_5.
7901
7902 Sat Dec  5 23:52:01 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7903
7904         * config/c4x/c4x.c (iteration_info): Delete extern.
7905
7906 Fri Dec  4 20:15:57 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
7907
7908         * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality.
7909
7910         * final.c (cleanup_subreg_operands): Delete some unused code.
7911
7912         * recog.h (MAX_RECOG_ALTERNATIVES): New macro.
7913         (struct insn_alternative): New structure definition.
7914         (recog_op_alt): Declare variable.
7915         (preprocess_constraints): Declare function.
7916         * recog.c (recog_op_alt): New variable.
7917         (extract_insn): Verify number of alternatives is in range.
7918         (preprocess_constraints): New function.
7919         * reg-stack.c: Include recog.h.
7920         (constrain_asm_operands): Delete.
7921         (get_asm_operand_lengths): Delete.
7922         (get_asm_operand_n_inputs): New function.
7923         (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and
7924         N_OUTPUTS args.  All callers changed.
7925         Compute number of inputs and outputs here by calling
7926         get_asm_operand_n_inputs.
7927         Instead of constrain_asm_operands, call extract_insn,
7928         constrain_operands and preprocess_constraints.  Use information
7929         computed by these functions throughout.
7930         (record_reg_life): Delete code that is unused due to changes in
7931         record_asm_reg_life.
7932         (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS,
7933         N_INPUTS and N_OUTPUTS args.  All callers changed.
7934         Similar changes as in record_asm_reg_life.
7935         (subst_stack_regs): Move n_operands declaration into the if statement
7936         where it's used.
7937         Delete code that is unused due to changes in subst_asm_stack_regs.
7938         * stmt.c (expand_asm_operands): Verify number of alternatives is in
7939         range.
7940         * Makefile.in (reg-stack.o): Depend on recog.h.
7941
7942 Fri Dec  4 02:23:24 1998  Jeffrey A Law  (law@cygnus.com)
7943
7944         * except.c (set_exception_version_code): Argument is an "int".
7945
7946 Fri Dec  4 01:29:28 1998  Jeffrey A Law  (law@cygnus.com)
7947
7948         * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now.
7949         * configure: Rebuilt.
7950
7951 Fri Dec  4 01:29:28 1998  Robert Lipe  <robertl@dgii.com>
7952
7953         * configure.in (mipsel-*-linux*): New target.
7954         * mips/linux.h: New file, based on other Linux targets.
7955
7956 Thu Dec  3 11:19:50 1998  Mike Stump  <mrs@wrs.com>
7957
7958         * gthr-vxworks.h (__ehdtor): Fix memory leak.  The delete hook
7959         runs in the context of the deleter, not the deletee, so we must
7960         use taskVarGet to find the correct memory to free.
7961         (__gthread_key_create): Initialize the task
7962         variable subsystem so that the task variable is still active when
7963         the delete hook is run.
7964
7965 1998-12-03  Joseph S. Myers  <jsm28@cam.ac.uk>
7966
7967         * pdp11.h: Use optimize_size for space optimizations.
7968         * pdp11.c: Likewise.
7969         * pdp11.md: Likewise.
7970
7971         * pdp11.h (TARGET_40_PLUS): Fix typo.
7972
7973 Thu Dec  3 11:48:32 1998  Jeffrey A Law  (law@cygnus.com)
7974
7975         * local-alloc.c (block_alloc): Slightly retune heuristic to widen
7976         qty lifetimes.
7977
7978 Thu Dec  3 22:30:18 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7979
7980         * alias.c (addr_side_effect_eval): New function.
7981         (memrefs_conflict_p): Use it.
7982         * rtl.h (addr_side_effect_eval): Prototype it.
7983
7984 1998-12-02  Joseph S. Myers  <jsm28@cam.ac.uk>
7985
7986         * pdp11.md (extendsfdf2): Fix mode mismatch in SET.
7987
7988 Wed Dec  2 11:23:07 1998  Jim Wilson  <wilson@cygnus.com>
7989
7990         * reload.c (find_reloads): When force const to memory, put result
7991         in substed_operand not *recog_operand_loc.
7992
7993 1998-12-02  Ulrich Drepper  <drepper@cygnus.com>
7994
7995         * c-lex.c: Fix indentation from last patch.
7996         Remove trailing whitespace.
7997         * real.c: Likewise.
7998
7999 Wed Dec  2 10:11:12 1998  Jeffrey A Law  (law@cygnus.com)
8000
8001         * flow.c (delete_block): Call set_last_insn after we have reset
8002         NEXT_INSN (kept_tail).
8003
8004 Wed Dec  2 00:47:31 1998  Jeffrey A Law  (law@cygnus.com)
8005
8006         * mips.md (trap_if): Use "$0" for the value zero.
8007
8008 Tue Dec  1 20:49:49 1998  Ulrich Drepper  <drepper@cygnus.com>
8009                           Stephen L Moshier  <moshier@world.std.com>
8010                           Richard Henderson  <rth@cygnus.com>
8011
8012         * c-common.c (declare_function_name): Declare predefined variable
8013         `__func__'.
8014
8015         * c-decl.c (flag_isoc9x): Set to 1 by default.
8016         (c_decode_option): Handle -std= option.  Remove -flang-isoc9x.
8017         (grokdeclarator): Always emit warning about implicit int for ISO C 9x.
8018
8019         * c-parse.in: Allow constructors in ISO C 9x.
8020         Rewrite designator list handling.
8021         Allow [*] parameters.
8022         Don't warn about comma at end of enum definition for ISO C 9x.
8023
8024         * cccp.c (c9x): New variable.
8025         (rest_extension): New variable.
8026         (print_help): Document new -std= option.
8027         (main): Recognize -std= option.  Set c9x appropriately.
8028         (create_definition): Recognize ISO C 9x vararg macros.
8029
8030         * gcc.c (default_compilers): Adjust specs for -std options.
8031         (option_map): Add --std.
8032         (display_help): Document -std.
8033
8034         * toplev.c (documented_lang_options): Add -std and remove
8035         -flang-isoc9x.
8036         
8037         * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
8038         or REAL_VALUE_HTOF based on base of the constants.
8039         * fold-const.c (real_hex_to_f): New function.  Replacement function
8040         for hex FP conversion if REAL_ARITHMETIC is not defined.
8041         * real.c (asctoeg): Add handling of hex FP constants.
8042         * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
8043         real_hex_to_f.
8044
8045 Tue Dec  1 16:45:49 1998  Stan Cox  <scox@cygnus.com>
8046
8047         * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add
8048         -mcheck-range-division/-mcheck-zero-division checking.  Avoid as macro
8049         expansion.  Use hi/lo as destination register.
8050         (div_trap): New.
8051         (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*,
8052         umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking.
8053         Avoid as macro expansion.  Use hi/lo as destination register.
8054
8055         * mips.h (MASK_CHECK_RANGE_DIV): New.
8056         (MASK_NO_CHECK_ZERO_DIV): New.
8057         (ELIMINABLE_REGS): Added GP_REG_FIRST + 31.
8058         (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting
8059         return address for leaf functions out of r31 to support
8060         builtin_return_address.
8061         
8062 Tue Dec  1 15:03:30 1998  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
8063
8064         * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x),
8065         NEXT_INSN(x) to check insn x.
8066         
8067 Tue Dec  1 15:20:44 1998  Jeffrey A Law  (law@cygnus.com)
8068
8069         * flow.c (delete_block): Call set_last_insn if we end up deleting the
8070         last insn in the rtl chain.
8071
8072         * reload1.c (reload): Do not set reload_completed or split insns
8073         here.  Instead...
8074         * toplev.c (rest_of_compilation): Set reload_completed after
8075         reload returns.  Split insns after reload_cse has run.
8076
8077 Tue Dec  1 11:55:04 1998  Richard Henderson  <rth@cygnus.com>
8078
8079         * final.c (final_scan_insn): Abort if block_depth falls below 0.
8080
8081 Tue Dec  1 10:23:16 1998  Nick Clifton  <nickc@cygnus.com>
8082
8083         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc.
8084
8085 Tue Dec  1 10:22:18 1998  Nick Clifton  <nickc@cygnus.com>
8086
8087         * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove
8088         use of user-label_prefix.
8089
8090 Tue Dec  1 17:58:26 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
8091
8092         * reload1.c (emit_reload_insns): Clear spill_reg_store
8093         when doing a new non-inherited reload from the same pseudo.
8094
8095         * local-alloc.c (function_invariant_p): New function.
8096         (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P
8097         to decide if an equivalence should be recorded.
8098         * reload1.c (num_eliminable_invariants): New static variable.
8099         (reload): Set it.  Use function_invariant_p instead of CONSTANT_P
8100         to decide if an equivalence should be recorded.
8101         Unshare PLUS.
8102         (calculate_needs_all_insns): Skip insns that only set an equivalence.
8103         Take num_eliminable_invariants into account when deciding
8104         if register elimination should be done.
8105         (reload_as_needed): Take num_eliminable_invariants into account
8106         when deciding if register elimination should be done.
8107         (eliminate_regs): Handle non-constant reg_equiv_constant.
8108         * rtl.h (function_invariant_p): Declare.
8109
8110 Mon Nov 30 02:00:08 1998  Jeff Law  (law@cygnus.com)
8111
8112         * version.c: Bump for snapshot.
8113
8114 Mon Nov 30 00:42:59 1998  Jeff Law  (law@cygnus.com)
8115
8116         * version.c: Bump for snapshot.
8117
8118 Sun Nov 29 22:59:40 1998  Jason Merrill  <jason@yorick.cygnus.com>
8119
8120         * except.c (add_new_handler): Complain about additional handlers
8121         after one that catches everything.
8122
8123 Sat Nov 28 10:56:32 1998  Jeffrey A Law  (law@cygnus.com)
8124
8125         * configure.in (alpha*-*-netbsd): Fix typo.
8126         * configure: Rebuilt.
8127
8128 Fri Nov 27 12:28:56 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8129
8130         * system.h: Include libiberty.h.
8131
8132         * c-aux-info.c: Remove prototypes for concat/concat3.  Change
8133         function `concat' from fixed parameters to variable parameters,
8134         as is done in libiberty.  All callers of concat/concat3
8135         changed to use the new `concat' with variable args.
8136
8137         * cccp.c: Remove things made redundant by libiberty.h and/or
8138         conform to libiberty standards.
8139         * cexp.y: Likewise.
8140         * collect2.c: Likewise.
8141         * config/1750a/1750a.h: Likewise.
8142         * cppalloc.c: Likewise.
8143         * cppexp.c: Likewise.
8144         * cppfiles.c: Likewise.
8145         * cpphash.c: Likewise.
8146         * cpplib.c: Likewise.
8147         * dyn-string.c: Likewise.
8148         * fix-header.c: Likewise.
8149         * gcc.c: Likewise.
8150         * gcov.c: Likewise.
8151         * genattr.c: Likewise.
8152         * genattrtab.c: Likewise.
8153         * gencheck.c: Likewise.
8154         * gencodes.c: Likewise.
8155         * genconfig.c: Likewise.
8156         * genemit.c: Likewise.
8157         * genextract.c: Likewise.
8158         * genflags.c: Likewise.
8159         * gengenrtl.c: Likewise.
8160         * genopinit.c: Likewise.
8161         * genoutput.c: Likewise.
8162         * genpeep.c: Likewise.
8163         * genrecog.c: Likewise.
8164         * getpwd.c: Likewise.
8165         * halfpic.c: Likewise.
8166         * hash.c: Likewise.
8167         * mips-tdump.c: Likewise.  Wrap malloc/realloc/calloc prototypes
8168         in NEED_DECLARATION_* macros.
8169
8170         * mips-tfile.c: Remove things made redundant by libiberty.h and/or
8171         conform to libiberty standards.
8172         (fatal): Fix const-ification of variable `format' in
8173         !ANSI_PROTOTYPES case.
8174
8175         * prefix.c: Remove things made redundant by libiberty.h and/or
8176         conform to libiberty standards.
8177
8178         * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid
8179         conflicting with function `spaces' from libiberty.
8180
8181         * profile.c: Remove things made redundant by libiberty.h and/or
8182         conform to libiberty standards.
8183         * protoize.c: Likewise.
8184         * rtl.h: Likewise.
8185         * scan.h: Likewise.
8186         * tlink.c: Likewise.
8187         * toplev.c: Likewise.
8188         * toplev.h: Likewise.
8189         * tree.h: Likewise.
8190
8191 Thu Nov 26 08:38:06 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8192
8193         * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition.
8194
8195 Thu Nov 26 23:45:37 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8196
8197         * README.C4X: Updated URLs.
8198         * config/c4x/c4x.c (c4x_address_conflict): Fix typo.
8199         (valid_parallel_operands_5): Remove unused variable.
8200
8201 Thu Nov 26 23:40:03 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8202
8203         * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo.
8204
8205 1998-11-26  Manfred Hollstein  <manfred@s-direktnet.de>
8206
8207         * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages
8208         which can be configured.
8209         (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@
8210         (Makefile): Pass actual LANGUAGES through the environment when
8211         re-configuring.
8212         (cstamp-h): Likewise.
8213         (config.status): Likewise.
8214
8215         * configure.in (enable_languages): Add new configuration parameter
8216         "--enable-languages=lang1,lang2,...".
8217         (${srcdir}/*/config-lang.in): Change handling to configure only
8218         those directories, that the user might have enabled; default to
8219         "all" existing languages.
8220         * configure: Regenerate.
8221
8222 Thu Nov 26 00:19:19 1998  Richard Henderson  <rth@cygnus.com>
8223
8224         * rtlanal.c (regs_set_between_p): New function.
8225         * rtl.h (regs_set_between_p): Prototype it.
8226         * jump.c (jump_optimize): Use it instead of modified_between_p
8227         in the Sep 2 change.
8228
8229 Wed Nov 25 23:32:02 1998  Ian Dall  <Ian.Dall@dsto.defence.gov.au>
8230                           Matthias Pfaller  <leo@dachau.marco.de>
8231
8232         * invoke.texi (Option Summary, NS32K Options): Add description
8233         of NS32K specific options.
8234
8235         * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2,
8236         fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2,
8237         fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3,
8238         negdf2, absdf2): Use l instead of f since the double class and
8239         float class are no longer the same.
8240         (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3,
8241         divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2,
8242         ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...):
8243         Use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been
8244         fixed.
8245         (cmpsi, cmphi, cmpqi): Use general_operand instead of
8246         non_immediate_operand. Removes erroneous assumption that can't
8247         compare constants.
8248         (movsf, movsi, movhi, movqi,...): New register numbering scheme.
8249         (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded
8250         constants.
8251         (movstrsi, movstrsi1, movstrsi2): Completely new block move
8252         scheme.
8253         (...): Patterns to exploit multiply-add instructions.
8254         (udivmodsi4, udivmodsi_internal4, udivmodhi4,
8255         udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): New
8256         patterns to exploit extended divide insns.
8257         (udivsi3, udivhi3, udivqi3): Remove since superseded by udivmodsi
8258         etc patterns.
8259
8260         * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex
8261         float return values as well as simple scalar floats.
8262         (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES):
8263         Support new flag to denote 32381 fpu.
8264         (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081.
8265         (CONDITIONAL_REGISTER_USAGE): Disable extra 32381 registers if not
8266         compiling for 32381.
8267         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
8268         REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES,
8269         REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM,
8270         L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
8271         LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES,
8272         REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS,
8273         REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE,
8274         REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P,
8275         REG_OK_FOR_BASE_P, MEM_REG): New register scheme to include 32381
8276         fpu registers and special register classes for new 32381
8277         instructions dotf and polyf.
8278         (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to
8279         be tieable.
8280         (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX,
8281         INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is
8282         required.
8283         (SMALL_REGISTER_CLASSES): Make dependent on -mmult-add option.
8284         (MOVE_RATIO): Set to zero because of smart movstrsi implementation.
8285         (REGISTER_MOVE_COST): Move code to register_move_cost function for
8286         ease of coding and debugging.
8287         (CLASS_LIKELY_SPILLED_P): Under new register scheme class
8288         LONG_FLOAT_REGO is likely spilled but not caught by default
8289         definition.
8290         (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): Use macro
8291         instead of hard coded numbers in range check.
8292         (ASM_OUTPUT_LABELREF_AS_INT): Delete since unused.
8293         (...): Add prototypes for functions in ns32k.c but disable because
8294         of problems when ns32k.h is included in machine independent files.
8295         
8296         * ns32k.c: Include "system.h", "tree.h", "expr.h", "flags.h".
8297         (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names,
8298         hard_regno_mode_ok, secondary_reload_class,
8299         print_operand, print_operand_address): New register scheme to
8300         include 32381 fpu registers and special register classes for new
8301         32381 instructions dotf and polyf.
8302         (gen_indexed_expr): Make static to keep namespace clean.
8303         (check_reg): Remove since never called.
8304         (move_tail, expand_block_move): Helper functions for "movstrsi"
8305         block move insn.
8306         (register_move_cost): Helper function for REGISTER_MOVE_COST macro.
8307         Increase cost of moves which go via memory.
8308         * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag.
8309         (CPP_PREDEFINES): No longer predefine "unix".
8310
8311         * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...):
8312         Remove erroneous %$. print_operand() can work out from the rtx is
8313         an immediate prefix is required.
8314
8315         * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE,
8316         VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES,
8317         SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling
8318         convention.
8319         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of
8320         pic operands.
8321
8322         * ns32k.c (symbolic_reference_mentioned_p, print_operand):
8323         Correct handling of pic operands.
8324         (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p,
8325         ns32k_comp_type_attributes, ns32k_return_pops_args): Support for
8326         -mrtd calling convention.
8327
8328 Wed Nov 25 23:42:20 1998  Tom Tromey  <tromey@cygnus.com>
8329
8330         * gcc.c (option_map): Recognize --output-class-directory.
8331
8332 Thu Nov 26 18:26:21 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8333
8334         * loop.h (precondition_loop_p): Added new mode argument.
8335         * unroll.c (precondition_loop_p): Likewise.
8336         (approx_final_value): Function deleted and subsumed
8337         into loop_iterations.
8338         (loop_find_equiv_value): New function.
8339         (loop_iterations): Use loop_find_equiv_value to find increments
8340         too large to be immediate constants.  Also use it to find terms
8341         common to initial and final iteration values that can be removed.
8342
8343 Thu Nov 26 18:05:04 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8344
8345         * loop.h (struct loop_info): Define new structure.
8346         (precondition_loop_p): Added prototype.
8347         (unroll_loop): Added new argument loop_info to prototype.
8348         (final_biv_value, final_giv_value): Added new argument n_iterations
8349         to prototype.
8350         * loop.c (strength_reduce): Declare new structure loop_iteration_info
8351         and new pointer loop_info.
8352         (loop_n_iterations): Replace global variable by element in
8353         loop_info structure.
8354         (check_final_value): New argument n_iterations.
8355         (insert_bct): New argument loop_info.
8356         (loop_unroll_factor): Replace global array by element in
8357         loop_info structure.
8358         (loop_optimize): Remove code to allocate and initialize
8359         loop_unroll_factor_array.
8360         * unroll.c (precondition_loop_p): No longer static since
8361         used by branch on count optimization.
8362         (precondition_loop_p, unroll_loop): New argument loop_info.
8363         (final_biv_value, final_giv_value, find_splittable_regs): New
8364         argument n_iterations.
8365         (loop_iteration_var, loop_initial_value, loop_increment,
8366         loop_final_value, loop_comparison_code, loop_unroll_factor):
8367         Replaced global variables by loop_info structure.
8368         (loop_unroll_factor): Replace global array by element in
8369         loop_info structure.
8370
8371 Thu Nov 26 17:49:29 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8372
8373         * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn
8374         when loop reversed.
8375
8376         * unroll.c (precondition_loop_p): Return loop_initial_value
8377         for initial_value instead of loop_iteration_var.
8378
8379 Thu Nov 26 17:15:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8380
8381         * config/c4x/c4x.md: Fix minor formatting problems.  Update docs.
8382         (*b, *b_rev, *b_noov, *b_noov_rev, *db,
8383         decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch
8384         to output the instruction sequences.
8385         (rpts): Delete.
8386         (rptb_top): Provide alternatives to use any register or memory
8387         for loop counter.
8388         (rptb_end): Emit use of operands rather than assigning them
8389         explicitly to the RS and RE registers.
8390
8391 Thu Nov 26 16:37:59 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8392
8393         * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p,
8394         c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p,
8395         c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg,
8396         c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after,
8397         c4x_merge_notes, c4x_parallel_process,
8398         c4x_combine_parallel_independent, c4x_combine_parallel_dependent,
8399         c4x_combine_parallel): Delete.
8400
8401 Thu Nov 26 15:16:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8402
8403         * config/c4x/c4x.c (c4x_override_options): For compatibility
8404         with old target options clear flag_branch_on_count_reg if
8405         -mno-rptb specified and set flag_argument_alias is -mno-aliases
8406         specified.
8407         (c4x_output_cbranch): Handle a sequence of insns rather than a
8408         single insn.
8409         (c4x_rptb_insert): Do not emit a RPTB insn if the RC register
8410         has not been allocated as the loop counter.
8411         (c4x_address_conflict): Do not allow two volatile memory references.
8412         (valid_parallel_operands_4, valid_parallel_operands_5,
8413         valid_parallel_operands_6): Reject pattern if the register destination
8414         of the first set is used as part of an address in the second set.
8415
8416 Thu Nov 26 14:56:32 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8417
8418         * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG.
8419         (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES
8420         is no longer enabled if PARALLEL_MPY_FLAG set.
8421         (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity.
8422         (REG_CLASS_CONTENTS): Add braces around initializers.
8423         (HAVE_MULTIPLE_PACK): Define.
8424         (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with
8425         REAL_VALUE_TO_DECIMAL.
8426         (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with
8427         REAL_VALUE_TO_DECIMAL.
8428         (ar0_reg_operand): Add prototype.
8429         (ar0_mem_operand): Likewise.
8430         (ar1_reg_operand): Likewise.
8431         (ar1_mem_operand): Likewise.
8432         (ar2_reg_operand): Likewise.
8433         (ar2_mem_operand): Likewise.
8434         (ar3_reg_operand): Likewise.
8435         (ar3_mem_operand): Likewise.
8436         (ar4_reg_operand): Likewise.
8437         (ar4_mem_operand): Likewise.
8438         (ar5_reg_operand): Likewise.
8439         (ar5_mem_operand): Likewise.
8440         (ar6_reg_operand): Likewise.
8441         (ar6_mem_operand): Likewise.
8442         (ar7_reg_operand): Likewise.
8443         (ar7_mem_operand): Likewise.
8444         (ir0_reg_operand): Likewise.
8445         (ir0_mem_operand): Likewise.
8446         (ir1_reg_operand): Likewise.
8447         (ir1_mem_operand): Likewise.
8448         (group1_reg_operand): Likewise.
8449         (group1_mem_operand): Likewise.
8450         (ir1_reg_operand): Likewise.
8451         (arx_reg_operand): Likewise.
8452         (not_rc_reg): Likewise.
8453         (not_modify_reg): Likewise.
8454         (c4x_group1_reg_operand): Remove prototype.
8455         (c4x_group1_mem_operand): Likewise.
8456         (c4x_arx_reg_operand): Likewise.
8457
8458 Wed Nov 25 19:02:55 1998  (Stephen L Moshier)  <moshier@world.std.com>
8459
8460         * emit-rtl.c (gen_lowpart_common): Remove earlier change.
8461         * real.c (make_nan): Make SIGN arg actually specify the sign bit.
8462
8463 Thu Nov 26 14:12:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8464
8465         * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern
8466         during reload.
8467
8468 Wed Nov 25 22:05:28 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
8469
8470         * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1
8471         unless FMOVD_WORKS is defined.
8472
8473 Wed Nov 25 20:11:04 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
8474
8475         * regclass.c (init_reg_sets): Move code that calculates tables
8476         dependent on reg_class_contents from here...
8477         (init_reg_sets_1): To here.
8478
8479 Wed Nov 25 14:54:46 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
8480
8481         * cpplib.h: Delete struct import_file.  Add ihash element to
8482         struct cpp_buffer.  Delete dont_repeat_files and
8483         import_hash_table elements from cpp_reader; change
8484         all_include_files to a hash table.  Delete all foobar_include
8485         / last_foobar_include elements from struct cpp_options; put
8486         back four such: quote_include, bracket_include,
8487         system_include, after_include.  Redo struct file_name_list
8488         completely.  Add new structure type include_hash.  Add
8489         prototypes for merge_include_chains and include_hash.  Change
8490         prototypes for finclude, find_include_file, and
8491         append_include_chain to match changes below.
8492
8493         * cppfiles.c (simplify_pathname, include_hash,
8494         remap_filename, merge_include_chains): New functions.
8495         (add_import, lookup_import, open_include_file): Removed.
8496         (INO_T_EQ): Define this (copied from cccp.c).
8497         (hack_vms_include_specification): Remove all calls and #if 0
8498         out the definition.  It was being called incorrectly and at
8499         the wrong times.  Until a VMSie can look at this, it's better
8500         to not pretend to support it.
8501         (append_include_chain): Change calling convention; now takes
8502         only one directory at a time, and sets up the data structure
8503         itself.
8504         (redundant_include_p): Rewritten - this is now used for all
8505         include redundancy, whether by #ifndef, #import, or #pragma
8506         once.  Looks up things in the include hash table.
8507         (file_cleanup): Decrement pfile->system_include_depth here if
8508         it's >0.
8509         (find_include_file): Calling convention changed; now passes
8510         around a struct include_hash instead of 3 separate parameters.
8511         Guts ripped out and replaced with new include_hash mechanism.
8512         (finclude): Calling convention changed as for
8513         find_include_file.  Error exits pulled out-of-line.  Reformat.
8514         (safe_read): Return a long, not an int.
8515         (deps_output): Don't recurse.
8516
8517         * cpplib.c (is_system_include): Deleted.
8518         (path_include): Fix up call to append_include_chain.
8519         (do_include): Fix up calls to find_include_file and finclude.
8520         Clean up dependency output a bit.  Shorten obnoxiously lengthy
8521         #import warning message.  Don't decrement
8522         pfile->system_include_depth here.
8523         (do_pragma): Understand the include_hash structure.  Reformat.
8524         (do_endif): Correct handling of control macros.  Understand
8525         the include_hash.
8526         (cpp_start_read): Fix up calls to finclude.  Call
8527         merge_include_chains.
8528         (cpp_handle_option): Fix up calls to append_include_chain.
8529         Understand the four partial include chains.
8530         (cpp_finish): Add debugging code (#if 0-ed out) for the
8531         include_hash.
8532         (cpp_cleanup): Free the include_hash, not the import hash and
8533         the all_include and dont_repeat lists which no longer exist.
8534
8535 Wed Nov 25 11:26:19 1998  Jeffrey A Law  (law@cygnus.com)
8536
8537         * toplev.c (no_new_pseudos): Define.
8538         (rest_of_compilation): Set no_new_pseudos as needed.
8539         * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
8540         if no_new_pseudos is set.
8541         * rtl.h (no_new_pseudos): Declare it.
8542         * reload1.c (reload): Update comments.
8543         * md.texi: Corresponding changes.
8544
8545 Wed Nov 25 11:26:17 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
8546
8547         * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
8548         (choose_reload_regs): Rename it here as well.  When computing it,
8549         also merge in used hardregs.
8550
8551 1998-11-25  Zack Weinberg  <zack@rabi.phys.columbia.edu>
8552
8553         * gcc.c: Split out Objective-C specs to...
8554         * objc/lang-specs.h: here. (New file.) Make the specs cpplib
8555         aware.
8556
8557         * c-lex.c (init_parse): Always initialize the filename global.
8558         * objc/objc-act.c (lang_init): Always call check_newline at
8559         beginning of file.
8560
8561 Wed Nov 25 00:48:29 1998  Graham  <grahams@rcp.co.uk>
8562
8563         * reload1.c (reload): Remove unused variable.
8564         (reload_reg_free_for_value_p): Add missing parameter definition.
8565
8566         * jump.c (jump_optimize): Remove unused variable.
8567
8568 Wed Nov 25 00:07:11 1998  Jeffrey A Law  (law@cygnus.com)
8569
8570         * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h.
8571
8572         * cse.c (fold_rtx): Make autoincrement addressing mode tests be
8573         runtime selectable.
8574         * expr.c (move_by_pieces): Similarly.
8575         (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly.
8576         * flow.c (find_auto_inc): Similarly.
8577         (try_pre_increment): Similarly.
8578         * loop.c (strength_reduce): Similarly.
8579         * regclass.c (auto_inc_dec_reg_p): Similarly.
8580         * regmove.c (try_auto_increment): Similarly.
8581         (fixup_match_1): Similarly.
8582         * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined.
8583         (HAVE_PRE_DECREMENT): Similarly.
8584         (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly.
8585         * Corresponding changes to all target header files.
8586         * tm.texi: Update docs for autoinc addressing modes.
8587
8588 Tue Nov 24 20:24:59 1998  Jim Wilson  <wilson@cygnus.com>
8589
8590         * configure.in (m68020-*-elf*, m68k-*-elf*): New targets.
8591         * configure: Rebuild.
8592         * config/elfos.h: New file.
8593         * config/m68k/m68020-elf.h, config/m68k/m68kelf.h,
8594         config/m68k/t-m68kelf: New file.
8595         
8596 Tue Nov 24 13:40:06 1998  Jeffrey A Law  (law@cygnus.com)
8597
8598         * Makefile.in (HOST_AR): Define.
8599         (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly.
8600         (libcpp.a): Use the host tools explicitly.
8601         (STAGESTUFF): Add libcpp.a.
8602
8603 Tue Nov 24 09:33:49 1998  Nick Clifton  <nickc@cygnus.com>
8604
8605         * config/m32r/m32r.md (movstrsi_internal): Describe changes made
8606         to source and destination registers.
8607
8608 Mon Nov 23 20:28:02 1998  Mike Stump  <mrs@wrs.com>
8609
8610         * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
8611         The strategy we now use is to pre allocate the top_elt along
8612         with the EH context so that each thread has its own top_elt.
8613         This is necessary as the dynamic cleanup chain is used on the
8614         top element of the stack and each thread MUST have its own.
8615         (eh_context_static): Likewise.
8616         (new_eh_context): Likewise.
8617         (__sjthrow): Likewise.
8618
8619 Mon Nov 23 20:25:03 1998  Jason Merrill  <jason@yorick.cygnus.com>
8620
8621         * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while.
8622         * i386.md (prologue_get_pc): Remove unused variable.
8623
8624 Mon Nov 23 17:05:40 1998  Geoffrey Noer  <noer@cygnus.com>
8625
8626         * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_.
8627
8628 Mon Nov 23 16:40:00 1998  Ulrich Drepper  <drepper@cygnus.com>
8629
8630         * Makefile.in (OBJS): Add graph.o.
8631         (graph.o): New dependency list.
8632         * flags.h: Declare dump_for_graph and define graph_dump_types type.
8633         * print-rtl.c (dump_for_graph): Define new variable.
8634         (print_rtx): Rewrite to allow use in graph dumping functions.
8635         * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file,
8636         finish_graph_dump_file.
8637         Define graph_dump_format.
8638         (compile_file): If graph dumping is enabled also clear these files.
8639         Finish graph dump files.
8640         (rest_of_compilation): Also dump graph information if enabled.
8641         (main): Recognize -dv to enabled VCG based graph dumping.
8642         * graph.c: New file.  Graph dumping functions.
8643
8644 Mon Nov 23 16:39:04 1998  Richard Henderson  <rth@cygnus.com>
8645
8646         * configure.in: Look for <sys/stat.h>.
8647         * system.h: Include it before substitute S_ISREG definitions.
8648
8649 Mon Nov 23 17:40:37 1998  Gavin Romig-Koch  <gavin@cygnus.com>
8650
8651         * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage.
8652         * config/mips/iris6.h: Same.
8653         * config/mips/mips.md: Same.
8654         * config/mips/mips.c: Same; also add "-mabi=o64" option.
8655         * config/mips/mips.h: Same; also define ABI_O64.
8656
8657 Mon Nov 23 17:02:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8658
8659         *  configure.in: Use AC_PREREQ(2.12.1).
8660
8661 Mon Nov 23 10:16:38 1998  Melissa O'Neill  <oneill@cs.sfu.ca>
8662
8663         * cccp.c (S_ISREG, S_ISDIR): Delete defines.
8664         * cpplib.c, gcc.c: Likewise.
8665         * system.h (S_ISREG, S_ISDIR): Define if not already defined.
8666
8667 Mon Nov 23 09:53:44 1998  Richard Henderson  <rth@cygnus.com>
8668
8669         * local-alloc.c (local_alloc): Use malloc not alloca for
8670         reg_qty, reg_offset, ref_next_in_qty.
8671
8672 Mon Nov 23 16:46:46 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
8673
8674         * caller-save.c (insert_one_insn): Initialize the live_before and
8675         live_after register sets.
8676
8677         Add SH4 support:
8678
8679         * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define.
8680         (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define.
8681         * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS.
8682         (fp_reg_names, assembler_dialect): New variables.
8683         (print_operand_address): Handle SUBREGs.
8684         (print_operand): Added 'o' case.
8685         Don't use adj_offsettable_operand on PRE_DEC / POST_INC.
8686         Name of FP registers depends on mode.
8687         (expand_block_move): Emit different code for SH4 hardware.
8688         (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate.
8689         (from_compare): Likewise.
8690         (add_constant): New argument last_value.  Changed all callers.
8691         (find_barrier): Don't try HImode load for FPUL_REG.
8692         (machine_dependent_reorg): Likewise.
8693         (sfunc_uses_reg): A CLOBBER cannot be the address register use.
8694         (gen_far_branch): Emit a barrier after the new jump.
8695         (barrier_align): Don't trust instruction lengths before
8696         fixing up pcloads.
8697         (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG.
8698         Use auto-inc addressing for fp registers if doubles need to
8699         be loaded in two steps.
8700         Set sh_flag_remove_dead_before_cse.
8701         (push): Support for TARGET_FMOVD.  Use gen_push_fpul for fpul.
8702         (pop): Support for TARGET_FMOVD.  Use gen_pop_fpul for fpul.
8703         (calc_live_regs): Support for TARGET_FMOVD.  Don't save FPSCR.
8704         Support for FIRST_XD_REG .. LAST_XD_REG.
8705         (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG.
8706         (sh_expand_epilogue): Likewise.
8707         (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4.
8708         (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account.
8709         (arith_reg_operand): FPUL_REG is OK for SH4.
8710         (fp_arith_reg_operand, fp_extended_operand): New functions.
8711         (tertiary_reload_operand, fpscr_operand): Likewise.
8712         (commutative_float_operator, noncommutative_float_operator): Likewise.
8713         (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise.
8714         (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise.
8715         (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise.
8716         (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise.
8717         * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only.
8718         (CONDITIONAL_REGISTER_USAGE): Likewise.
8719         (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define.
8720         (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define.
8721         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define.
8722         (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd.
8723         (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer
8724         to -1 and sh_flag_remove_dead_before_cse to 1.
8725         (ASSEMBLER_DIALECT): Define to assembler_dialect.
8726         (assembler_dialect, fp_reg_names): Declare.
8727         (OVERRIDE_OPTIONS): Add code for TARGET_SH4.
8728         Hide names of registers that are not accessible.
8729         (CACHE_LOG): Take TARGET_CACHE32 into account.
8730         (LOOP_ALIGN): Take TARGET_HARWARD into account.
8731         (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define.
8732         (FIRST_PSEUDO_REGISTER: Now 49.
8733         (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers.
8734         (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG.
8735         (HARD_REGNO_MODE_OK): Update.
8736         (enum reg_class): Add DF_REGS and FPSCR_REGS.
8737         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise.
8738         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update.
8739         (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define.
8740         (NPARM_REGS): Eight floating point parameter registers on SH4.
8741         (BASE_RETURN_VALUE_REG): SH4 also passes double values
8742         in floating point registers.
8743         (GET_SH_ARG_CLASS): Likewise.
8744         Complex float types are also returned in float registers.
8745         (BASE_ARG_REG): Complex float types are also passes in float registers.
8746         (FUNCTION_VALUE): Change mode like PROMOTE_MODE does.
8747         (LIBCALL_VALUE): Remove trailing semicolon.
8748         (ROUND_REG): Round when double precision value is passed in floating
8749         point register(s).
8750         (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are
8751         passed on the stack.
8752         (FUNCTION_ARG): Little endian adjustment for SH4 SFmode.
8753         (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4.
8754         (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account.
8755         (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD.
8756         (MODE_DISP_OK_8): Not for SH4 DFmode.
8757         (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode.
8758         Allow indexed addressing for PSImode after reload.
8759         (LEGITIMIZE_ADDRESS): Not for SH4 DFmode.
8760         (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode.
8761         Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS.
8762         (DOUBLE_TYPE_SIZE): 64 for SH4.
8763         (RTX_COSTS): Add PLUS case.
8764         Increase cost of ASHIFT, ASHIFTRT, LSHIFTRT case.
8765         (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS,
8766         MAC_REGS, PR_REGS, DF_REGS.
8767         (REGISTER_NAMES): Use fp_reg_names.
8768         (enum processor_type): Add PROCESSOR_SH4.
8769         (sh_flag_remove_dead_before_cse): Declare.
8770         (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare.
8771         (PREDICATE_CODES): Add binary_float_operator,
8772         commutative_float_operator, fp_arith_reg_operand, fp_extended_operand,
8773         fpscr_operand, noncommutative_float_operator.
8774         (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR.
8775         (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4.
8776         * sh.md (attribute cpu): Add value sh4.
8777         (attrbutes fmovd, issues): Define.
8778         (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv.
8779         (function units memory, int, mpy, fp): Make dependent on issue rate.
8780         (function units issue, single_issue, load_si, load): Define.
8781         (function units load_store, fdiv, gp_fpul): Define.
8782         (attribute hit_stack): Provide proper default.
8783         (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4.
8784         (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns.
8785         (udivsi3, divsi3): Emit special patterns for SH4 hardware,
8786         (mulsi3_call): Now uses match_operand for function address.
8787         (mulsi3): Also emit code for SH1 case.  Wrap result in REG_LIBCALL /
8788         REG_RETVAL notes.
8789         (push, pop, push_e, pop_e): Now define_expands.
8790         (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders.
8791         (movsi_ie): Added y/i alternative.
8792         (ic_invalidate_line_i, movdf_i4): New insns.
8793         (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters.
8794         (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders.
8795         (movdf): Add special code for SH4.
8796         (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible.
8797         (call_valuei, calli, call_value): Likewise.
8798         (movsf): Emit no-op move.
8799         (mov_nop, movsi_y): New insns.
8800         (blt, sge): Generalize to handle DFmode.
8801         (return predicate): Call emit_fpscr_use and remove_dead_before_cse.
8802         (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4.
8803         (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns.
8804         (fpu_switch0, fpu_switch1, movpsi): New expanders.
8805         (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters.
8806         (toggle_sz): New insn.
8807         (addsf3, subsf3, mulsf3, divsf3): Now define_expands.
8808         (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns.
8809         (macsf3): Make use of fpscr visible.  Disable for SH4.
8810         (floatsisf2): Make use of fpscr visible.
8811         (floatsisf2_i4): New insn.
8812         (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4.
8813         (ieee_ccmpeqsf_t): Likewise.
8814         (fix_truncsfsi2): Emit different code for SH4.
8815         (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns.
8816         (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns.
8817         (negsf2, sqrtsf2, abssf2): Now expanders.
8818         (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders.
8819         (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns.
8820         (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns.
8821         (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders.
8822         (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns.
8823         (fix_truncdfsi2_i4_2+1): New splitters.
8824         (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns.
8825         (extendsfdf2, truncdfsf2): New expanders.
8826         (truncdfsf2_i4): New insn.
8827         * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4.
8828         (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4.
8829         * float-sh.h: When testing for __SH3E__, also test for
8830         __SH4_SINGLE_ONLY__ .
8831         * va-sh.h (__va_freg): Define to float.
8832         (__va_greg, __fa_freg, __gnuc_va_list, va_start):
8833         Define for __SH4_SINGLE_ONLY__ like for __SH3E__ .
8834         (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise.
8835         (__PASS_AS_FLOAT): Use different definition for __SH4__ and
8836          __SH4_SINGLE__.
8837         (TARGET_SH4_P): Define.
8838         (va_arg): Use it.
8839
8840         * sh.md (movdf_k, movsf_i): Tweak the condition so that
8841         init_expr_once is satisfied about the existence of load / store insns.
8842
8843         * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie):
8844         Change m constraint in source operand to mr / mf.
8845
8846         * va-sh.h (__va_arg_sh1): Use __asm instead of asm.
8847
8848         * (__VA_REEF): Define.
8849         (__va_arg_sh1): Use it.
8850
8851         * va-sh.h (va_start, va_arg, va_copy): Add parentheses.
8852
8853 Sun Nov 22 21:34:02 1998  Jeffrey A Law  (law@cygnus.com)
8854
8855         * i386/dgux.c (struct option): Add new "description field".
8856         * m88k/m88k.c (struct option): Likewise.
8857
8858 Sun Nov 22 16:07:57 1998  Jeff Law  (law@cygnus.com)
8859
8860         * version.c: Bump for snapshot.
8861
8862 Sun Nov 22 13:40:02 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
8863
8864         * regmove.c (regmove_profitable_p): Use return value of find_matches
8865         properly.
8866
8867 Sun Nov 22 02:47:37 1998  Jeff Law  (law@cygnus.com)
8868
8869         * version.c: Bump for snapshot.
8870
8871 Sat Nov 21 22:12:09 1998  Jeffrey A Law  (law@cygnus.com)
8872
8873         * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called
8874         without reload having been called earlier.
8875
8876         * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP
8877         addressing modes.
8878         (v850_reorg): Similarly.
8879
8880         * loop.c (check_dbra_loop): Avoid using gen_add2_insn.
8881
8882 Sat Nov 21 02:18:38 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
8883
8884         * loop.c (move_movables): Start of libcall might be new loop start.
8885
8886 Fri Nov 20 12:14:16 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8887
8888         * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS().
8889
8890 Fri Nov 20 08:34:00 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
8891
8892         * function.c (nonlocal_goto_handler_slots): Renamed from
8893         nonlocal_goto_handler_slot; now an EXPR_LIST chain.
8894         (push_function_context_to): Adjust for this change.
8895         (pop_function_context_from): Likewise.
8896         (init_function_start): Likewise.
8897         (expand_function_end): Likewise.
8898         * function.h (struct function): Likewise.
8899         * calls.c (expand_call): Likewise.
8900         * explow.c (allocate_dynamic_stack_space): Likewise.
8901         * expr.h (nonlocal_goto_handler_slots): Rename its declaration.
8902         * stmt.c (declare_nonlocal_label): Make a new handler slot for each
8903         label.
8904         (expand_goto): When doing a nonlocal goto, find corresponding handler
8905         slot for it.  Don't put the label address in the static chain register.
8906         (expand_end_bindings): Break out nonlocal goto handling code into
8907         three new functions.
8908         (expand_nl_handler_label, expand_nl_goto_receiver,
8909         expand_nl_goto_receivers): New static functions, broken out of
8910         expand_end_bindings and adapted to create one handler per nonlocal
8911         label.
8912         * function.c (delete_handlers): Delete insn if it references any of
8913         the nonlocal goto handler slots.
8914         * i960.md (nonlocal_goto): Comment out code that modifies
8915         static_chain_rtx.
8916         * sparc.md (nonlocal_goto): Likewise.
8917         (goto_handler_and_restore_v9): Comment out.
8918         (goto_handler_and_restore_v9_sp64): Comment out.
8919
8920 Thu Nov 19 23:44:38 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
8921
8922         * expr.c (STACK_BYTES): Delete unused macro.
8923         * calls.c: Provide default for PREFERRED_STACK_BOUNDARY.
8924         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
8925         (expand_call): Likewise.
8926         (emit_library_call): Likewise.
8927         (emit_library_call_value): Likewise.
8928         * function.c: Provide default for PREFERRED_STACK_BOUNDARY.
8929         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
8930         * explow.c: Provide default for PREFERRED_STACK_BOUNDARY.
8931         (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
8932         (allocate_dynamic_stack_space): Likewise.
8933         * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro.
8934         (STACK_BOUNDARY): Update description to reflect the new situation.
8935
8936 Thu Nov 19 22:20:51 1998  Jeffrey A Law  (law@cygnus.com)
8937
8938         * reorg.c (relax_delay_slots): When optimizing for code size, if a
8939         return with a filled delay slot is followed by a return with an
8940         unfilled delay slot, delete the first return and reemit the insn
8941         that was previously in its delay slot.
8942
8943         * i860.c (single_insn_src_p): Add missing parens.
8944         * ginclude/math-3300.h: Likewise.
8945
8946 Thu Nov 19 20:55:59 1998  H.J. Lu  (hjl@gnu.org)
8947
8948         * regclass.c (init_reg_sets_1): Add prototype.
8949         (init_reg_modes): Likewise.
8950
8951 1998-11-19  Zack Weinberg  <zack@rabi.phys.columbia.edu>
8952
8953         * c-common.c: Change warning messages to say `comparison is
8954         always true' or `comparison is always false' instead of the
8955         confusing `is always 0', `is always 1'.
8956
8957 Thu Nov 19 19:05:49 1998  Per Bothner  <bothner@cygnus.com>
8958
8959         * print-tree.c (print_node): After printing BLOCK or BIND_EXPR,
8960         break instead of return (which loses closing '>').
8961
8962 Thu Nov 19 19:34:13 1998  Jeffrey A Law  (law@cygnus.com)
8963
8964         * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not
8965         standard 387 constants.
8966
8967         * i386.md (jump): Explicitly set "memory" attribute.
8968         (indirect_jump, prologue_set_stack_ptr): Likewise.
8969         (prologue_get_pc_and_set_got, pop): Likewise.
8970         (allocate_stack_worder, blockage, return_internal): Likewise.
8971         (return_pop_internal, nop): Likewise.
8972         (epilogue_set_stack_ptr, leave): Likewise.
8973
8974 Thu Nov 19 15:42:54 1998  Nick Clifton  <nickc@cygnus.com>
8975
8976         * config/arm/coff.h: Set USER_LABEL_PREFIX to "_".
8977
8978 Thu Nov 19 23:20:59 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
8979
8980         * reload1.c (reload_reg_free_for_value_p):
8981         Early auto_inc reloads don't conflict with outputs.
8982
8983 Thu Nov 19 12:58:55 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8984
8985         * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h).
8986         Instead call AC_HEADER_SYS_WAIT.
8987
8988         * collect2.c: Don't provide defaults for sys/wait.h macros.
8989         * gcc.c: Likewise.
8990         * protoize.c: Likewise.  Also, don't include sys/wait.h.
8991
8992         * system.h: Include sys/wait.h and provide macro defaults.
8993
8994 1998-11-19  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
8995
8996         * Makefile.in (mandir): Set to @mandir@.
8997         (man1dir): New variable to hold the former value of $(mandir).
8998         Replace all uses of $(mandir) by $(man1dir).
8999
9000 Wed Nov 18 16:31:28 1998  Jim Wilson  <wilson@cygnus.com>
9001
9002         * reload.c (find_reloads_address_part): If have a CONST_INT, create
9003         a new one before passing it to force_const_mem.
9004
9005         * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in
9006         find_reloads_address call.
9007
9008 Wed Nov 18 22:13:00 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9009
9010         * expr.c (store_expr): Don't generate load-store pair
9011         if TEMP is identical (according to ==) with TARGET.
9012
9013 Tue Nov 17 22:25:16 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9014
9015         * reload1.c (reload_reg_free_for_value_p): When considered reload
9016         has an output, matching inputs are not sufficient to avoid conflict.
9017
9018 Tue Nov 17 11:51:16 1998  Mark Mitchell  <mark@markmitchell.com>
9019
9020         * hash.h (hash_table_key): New type.
9021         (hash_entry): Change `string' field to generic `key'.
9022         (hash_table): Add `comp' and `hash' functions.
9023         (hash_table_init): Take them as input.
9024         (hash_table_init_n): Likewise.
9025         (hash_lookup): Modify for generic keys.
9026         (hash_newfunc): Likewise.
9027         (hash_traverse): Likewise.
9028         (string_hash): New function.
9029         (string_compare): Likewise.
9030         (string_copy): Likewise.
9031         * hash.c (hash_table_init_n): Modify for generic keys.
9032         (hash_table_init): Likewise.
9033         (hash_lookup): Likewise.
9034         (hash_newfunc): Likewise.
9035         (hash_traverse): Likewise.
9036         (string_hash): Split out from hash_lookup.
9037         (string_compare): New function.
9038         (string_copy): Split out from hash_lookup.
9039         * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash
9040         tables.
9041         (symbol_hash_lookup): Likewise.
9042         (file_hash_newfunc): Likewise.
9043         (file_hash_lookup): Likewise.
9044         (demangled_hash_newfunc): Likewise.
9045         (demangled_hash_lookup): Likewise.
9046         (tlink_int): Likewise.
9047         (read_repo_file): Likewise.
9048         (recompile_files): Likewise.
9049         (demangle_new_symbols): Likewise.
9050         (scan_linker_output): Likewise.
9051         
9052 Tue Nov 17 17:13:53 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9053
9054         * flow.c (insn_dead_p): New argument NOTES.  Changed all callers.
9055
9056 Mon Nov 16 17:56:07 1998  David Edelsohn  <edelsohn@gnu.org>
9057
9058         * rs6000.c (output_mi_thunk): Improve test for local branch.
9059
9060 Mon Nov 16 17:56:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9061
9062         * rs6000.c (output_mi_thunk): Correct test for aggregate values.
9063
9064 Mon Nov 16 21:02:52 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9065
9066         * reload1.c (reload_reg_free_before_p): Delete.
9067         Changed all callers to use reload_reg_free_for_value_p instead.
9068         (reload_reg_free_for_value_p): Handle more reload types.
9069         A RELOAD_FOR_INPUT doesn't conflict with its
9070         RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS.
9071         Add special case for OUT == const0_rtx.
9072         Added ignore_address_reloads argument.  Changed all callers.
9073
9074 Mon Nov 16 02:22:29 1998  Jason Merrill  <jason@yorick.cygnus.com>
9075
9076         * toplev.c (compile_file): Don't pedwarn about undefined static
9077         functions just because we passed -Wunused.
9078
9079 Mon Nov 16 04:41:41 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9080
9081         * function.c (purge_addressof_1): Unshare rtl created by
9082         store_bit_field.
9083
9084 Mon Nov 16 04:23:06 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9085
9086         * regmove.c (regmove_optimize): Don't do anything but
9087         optimize_reg_copy[123] when flag_regmove is not set.
9088
9089 Sat Nov 14 15:05:07 1998  Richard Henderson  <rth@cygnus.com>
9090
9091         * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode
9092         value in paradoxical SImode result, rather than truncating midpoint.
9093
9094 Fri Nov 13 22:19:23 1998  Richard Henderson  <rth@cygnus.com>
9095
9096         * alpha.c (reg_not_elim_operand): New.
9097         * alpha.h (PREDICATE_CODES): Add it.
9098         * alpha.md (s48addq, s48subq patterns): Use it as the predicate
9099         for the multiplicand.
9100
9101 Fri Nov 13 22:50:37 1998  David Edelsohn  <edelsohn@gnu.org>
9102
9103         * rs6000.md (movsf): Remove explicit secondary-reload-like
9104         functionality.  Only truncate SFmode store if in FPR.
9105         (movsf splitters): Combine const_double splitters.
9106         (movsf_hardfloat): Add GPR support.
9107
9108 Fri Nov 13 11:02:11 1998  Stan Cox  <scox@cygnus.com>
9109
9110         * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to
9111         deprecate -mlive-g0 and -mbroken-saverestore.
9112         * t-splet (MULTILIB_OPTIONS): Likewise.
9113         
9114         * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size
9115         in a leaf function.  Clarify total_size/extra_size relationship.
9116
9117 Thu Nov 12 19:20:57 1998  Geoffrey Noer  <noer@cygnus.com>
9118
9119         * i386/cygwin32.asm: Delete.
9120         * i386/cygwin.asm: New file, renamed from cygwin32.asm.
9121         * i386/cygwin32.h: Delete.
9122         * i386/cygwin.h: New file, renamed from cygwin32.h.
9123         * i386/t-cygwin32: Delete.
9124         * i386/t-cygwin: New file, renamed from t-cygwin32.  Include
9125         cygwin.asm instead of cygwin32.asm.  Remove "32" from comment.
9126         * i386/x-cygwin32: Delete.
9127         * i386/x-cygwin: New file, renamed from x-cygwin32.
9128         * i386/xm-cygwin32: Delete.
9129         * i386/xm-cygwin: New file, renamed from xm-cygwin32.  Use newly
9130         renamed cygwin_ funcs for path translations.
9131         * i386/win32.h: Define __CYGWIN__ when -mcygwin given.
9132         * i386/winnt.c: Remove "32" from comment about cygwin.
9133         * i386/mingw32.h: Fix references to cygwin32.h in light of above.
9134         * rs6000/cygwin32.h: Delete.
9135         * rs6000/cygwin.h: New file, renamed from cygwin32.h.  Add
9136         -D__CYGWIN__ to CPP_PREDEFINES.
9137         * rs6000/x-cygwin32: Delete.
9138         * rs6000/x-cygwin: New file, renamed from x-cygwin32.
9139         * rs6000/xm-cygwin32: Delete.
9140         * rs6000/xm-cygwin: New file, renamed from xm-cygwin32.
9141
9142         * configure.in: Check for cygwin* instead of cygwin32.  Account
9143         for the rename of cygwin-related config files to lose the "32"s.
9144         * configure: Regenerate.
9145
9146         * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c,
9147         toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__.
9148
9149 Wed Nov 11 12:25:19 1998  Tom Tromey  <tromey@cygnus.com>
9150
9151         * Makefile.in (JAVAGC): New macro.
9152         * configure: Rebuilt.
9153         * configure.in: Recognize --enable-java-gc argument.  Subst
9154         `JAVAGC' variable.
9155
9156 Thu Nov 12 03:32:16 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9157
9158         Handle equivalences that have been obscured by gcse:
9159
9160         * reload1.c (reload): Handle equivalences set up in multiple places.
9161         * local-alloc.c (reg_equiv_init_insns): New variable.
9162         (no_equiv): New function.
9163         (update_equiv_regs): Handle equivalences set up in multiple places.
9164         Don't ignore an insn just because its destination is likely to be
9165         spilled.
9166
9167 Wed Nov 11 13:46:13 1998  Jim Wilson  <wilson@cygnus.com>
9168
9169         * except.c (expand_eh_return): Readd force_operand call lost in
9170         Sept 15 change.
9171
9172 Tue Nov 10 17:04:11 1998  David Edelsohn  <edelsohn@gnu.org>
9173
9174         * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case.
9175
9176 1998-11-09  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
9177
9178         * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H.
9179
9180 Mon Nov  9 20:15:19 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
9181
9182         * regmove.c (regmove_optimize): Fix error in last change.
9183
9184 Mon Nov  9 16:37:52 1998  Andrew Cagney  <cagney@b1.cygnus.com>
9185
9186         * mips.c (function_prologue): When TARGET_MIPS16, adjust the register
9187         offset in the .mask pseudo to compensate for frame pointer adjustments.
9188         (mips16_fp_args, build_mips16_call_stub): For little endian, do not
9189         word swap arguments moved to/from FP registers.
9190         * mips16.S (DFREVCMP): Reverse arguments to OPCODE.
9191         
9192 Mon Nov  9 09:47:06 1998  Jeff Law  (law@cygnus.com)
9193
9194         * version.c: Bump for snapshot.
9195
9196 Mon Nov  9 02:14:14 1998  Jeff Law  (law@cygnus.com)
9197
9198         * version.c: Bump for snapshot.
9199
9200 Mon Nov  9 03:06:24 1998  Jeffrey A Law  (law@cygnus.com)
9201
9202         * reload1.c (delete_output_reload_insn): If a pseudo is set multiple
9203         times, then it can not be completely replaced.
9204
9205 Mon Nov  9 00:39:02 1998  Richard Henderson  <rth@cygnus.com>
9206
9207         * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length.
9208
9209 Sun Nov  8 17:50:30 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9210
9211         * gansidecl.h: Prepend a "G" to the macro wrapping this file
9212         (to distinguish it from the macro wrapping ansidecl.h.)
9213         Include libiberty's ansidecl.h.  Remove all redundant definitions.
9214         Define the PROTO() style macros in terms of the PARAMS() ones.
9215
9216         
9217         * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not
9218         __STDC__, when deciding whether to use ANSI variable args.
9219         (emit_library_call_value): Likewise.
9220
9221         * cccp.c (error): Likewise.
9222         (warning): Likewise.
9223         (error_with_line): Likewise.
9224         (warning_with_line): Likewise.
9225         (pedwarn): Likewise.
9226         (pedwarn_with_line): Likewise.
9227         (pedwarn_with_file_and_line): Likewise.
9228         (fatal): Likewise.
9229
9230         * cexp.y (error): Likewise.
9231         (pedwarn): Likewise.
9232         (warning): Likewise.
9233
9234         * collect2.c (fatal_perror): Likewise.
9235         (fatal): Likewise.
9236         (error): Likewise.
9237
9238         * combine.c (gen_rtx_combine): Likewise.
9239
9240         * cpperror.c (cpp_message): Likewise.
9241         (cpp_fatal): Likewise.
9242
9243         * cpplib.c (cpp_error): Likewise.
9244         (cpp_warning): Likewise.
9245         (cpp_pedwarn): Likewise.
9246         (cpp_error_with_line): Likewise.
9247         (cpp_warning_with_line): Likewise.
9248         (cpp_pedwarn_with_line): Likewise.
9249         (cpp_pedwarn_with_file_and_line): Likewise.
9250
9251         * cpplib.h: Don't define PARAMS() macro.
9252
9253         * demangle.h: Likewise.
9254
9255         * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__,
9256         when deciding whether to use ANSI variable args.
9257
9258         * emit-rtl.c (gen_rtx): Likewise.
9259         (gen_rtvec): Likewise.
9260
9261         * final.c (asm_fprintf): Likewise.
9262
9263         * fix-header.c (cpp_message): Likewise.
9264         (fatal): Likewise.
9265         (cpp_fatal): Likewise.
9266
9267         * gcc.c (concat): Likewise.
9268         (fatal): Likewise.
9269         (error): Likewise.
9270
9271         * genattr.c (fatal): Likewise.
9272
9273         * genattrtab.c (attr_rtx): Likewise.
9274         (attr_printf): Likewise.
9275         (fatal): Likewise.
9276
9277         * gencodes.c (fatal): Likewise.
9278
9279         * genconfig.c (fatal): Likewise.
9280
9281         * genemit.c (fatal): Likewise.
9282
9283         * genextract.c (fatal): Likewise.
9284
9285         * genflags.c (fatal): Likewise.
9286
9287         * genopinit.c (fatal): Likewise.
9288
9289         * genoutput.c (fatal): Likewise.
9290         (error): Likewise.
9291
9292         * genpeep.c (fatal): Likewise.
9293
9294         * genrecog.c (fatal): Likewise.
9295
9296         * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when
9297         deciding whether to declare `tree_node' and `rtx_def'.
9298
9299         * hash.h: Don't define stuff we get from gansidecl.h.
9300
9301         * mips-tfile.c: Likewise.  Define __proto() in terms of PARAMS().
9302         (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
9303         whether to use ANSI variable args.
9304         (error): Likewise.
9305
9306         * prefix.c (concat): Likewise.
9307
9308         * scan.h: Likewise.
9309
9310         * system.h: Likewise.
9311
9312         * toplev.c (error_with_file_and_line): Likewise.
9313         (error_with_decl): Likewise.
9314         (error_for_asm): Likewise.
9315         (error): Likewise.
9316         (fatal): Likewise.
9317         (warning_with_file_and_line): Likewise.
9318         (warning_with_decl): Likewise.
9319         (warning_for_asm): Likewise.
9320         (warning): Likewise.
9321         (pedwarn): Likewise.
9322         (pedwarn_with_decl): Likewise.
9323         (pedwarn_with_file_and_line): Likewise.
9324         (sorry): Likewise.
9325         (really_sorry): Likewise.
9326
9327         * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
9328         whether to declare `tree_node' and `rtx_def'.
9329
9330         * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when
9331         deciding whether to use ANSI variable args.
9332         (build_nt): Likewise.
9333         (build_parse_node): Likewise.
9334
9335 Sun Nov  8 13:10:55 1998  Jeff Law  (law@cygnus.com)
9336
9337         * version.c: Bump for snapshot.
9338
9339 Sat Nov  7 23:34:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9340
9341         * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB.
9342
9343 Sat Nov  7 22:26:19 1998  David Edelsohn  <edelsohn@gnu.org>
9344
9345         * collect2.c (main, case 'b'): Use else if.
9346
9347 Sat Nov  7 15:35:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9348
9349         * configure.in (host_xm_file, build_xm_file, xm_file, tm_file):
9350         Arrange to include gansidecl.h in {ht}config.h & tm.h just
9351         before the config/ directory headers.
9352         (tm_file_list, host_xm_file_list, build_xm_file_list): Handle
9353         gansidecl.h in the list of dependencies.
9354
9355         * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h.
9356         (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib,
9357         mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o,
9358         gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o,
9359         dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o,
9360         cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o):
9361         Likewise.
9362
9363         * cccp.c: Don't include gansidecl.h.
9364         * cexp.y: Likewise.
9365         * collect2.c: Likewise.
9366         * config/c4x/c4x.c: Likewise.
9367         * config/v850/v850.h: Likewise.
9368         * cppalloc.c: Likewise.
9369         * cpperror.c: Likewise.
9370         * cppexp.c: Likewise.
9371         * cppfiles.c: Likewise.
9372         * cpphash.c: Likewise.
9373         * cpplib.c: Likewise.
9374         * cppmain.c: Likewise.
9375         * cppulp.c: Likewise.
9376         * demangle.h: Likewise.
9377         * doprint.c: Likewise.
9378         * dyn-string.c: Likewise.
9379         * eh-common.h: Likewise.
9380         * fix-header.c: Likewise.
9381         * frame.c: Likewise.
9382         * gcc.c: Likewise.
9383         * gcov.c: Likewise.
9384         * gen-protos.c: Likewise.
9385         * gencheck.c: Likewise.
9386         * halfpic.h: Likewise.
9387         * hash.c: Likewise.
9388         * machmode.h: Likewise.
9389         * mbchar.c: Likewise.
9390         * prefix.c: Likewise.
9391         * protoize.c: Likewise.
9392         * recog.h: Likewise.
9393         * rtl.h: Likewise.
9394         * scan-decls.c: Likewise.
9395         * tree.h: Likewise.
9396         * varray.h: Likewise.
9397         
9398 Sat Nov  7 11:37:53 1998  Richard Henderson  <rth@cygnus.com>
9399
9400         * i386.md (call_value_pop): If we're not popping anything,
9401         defer to call_value.
9402         (call_pop): Likewise defer to call.
9403
9404 Sat Nov  7 02:49:56 1998  Richard Henderson  <rth@cygnus.com>
9405
9406         * function.c (purge_addressof): Clear purge_addressof_replacements
9407         only after processing the whole function.
9408
9409 Sat Nov  7 00:54:55 1998  Jeffrey A Law  (law@cygnus.com)
9410
9411         * reload1.c (reload): If we can not perform a particular elimination
9412         when we thought we could earlier, then we must always iterate through
9413         the loop at least one more time.
9414
9415 Fri Nov  6 19:37:33 1998  Richard Henderson  <rth@cygnus.com>
9416
9417         * alpha.c (add_operand): Simplify the CONST_INT match.
9418         (sext_add_operand): Correct typo in comparison by using
9419         CONST_OK_FOR_LETTER_P.
9420         * alpha.md (s?addq): Use sext_add_operand to allow the negative
9421         constant alternatives to be generated.
9422         (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow
9423         small constants, since the hw instructions do.
9424
9425 Fri Nov  6 20:15:19 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
9426
9427         * reload1.c (emit_reload_insns): When rewriting the SET_DEST of a
9428         previous insn to store directly into our reload register, make sure
9429         that if the source of the previous insn is a reload register, its
9430         spill_reg_store and spill_reg_stored_to values are cleared.
9431
9432 Fri Nov  6 16:35:10 1998  David Edelsohn  <edelsohn@gnu.org>
9433
9434         * rs6000.md (floatunssidf2_internal splitter): Use base register
9435         operand, not hard-coded SP.
9436
9437 Fri Nov  6 04:07:53 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9438
9439         * jump.c (calculate_can_reach_end): Fix thinko.
9440
9441 Fri Nov  6 00:16:04 1998  Jeffrey A Law  (law@cygnus.com)
9442
9443         * reorg.c (fill_simple_delay_slots): Fix typo.
9444
9445         * romp.h (LEGITIMIZE_ADDRESS): Fix typo.
9446
9447 Fri Nov  6 00:10:00 1998  Jan Hubicka  (hubicka@freesoft.cz)
9448
9449         * i386.md (extendsidi2): Use # in the output template.
9450         (extendsidi splitters): New splitters.
9451
9452 Thu Nov  5 11:13:27 1998  Nick Clifton  <nickc@cygnus.com>
9453
9454         * configure.in: Use unknown-elf.h as tm_file for arm-elf
9455         configurations.
9456         * configure: Regenerate.
9457
9458 Thu Nov  5 07:59:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9459
9460         * jump.c (init_label_info, delete_barrier_successors,
9461         mark_all_labels, delete_unreferenced_labels,
9462         delete_noop_moves, calculate_can_reach_end): New functions broken
9463         out of jump_optimize.
9464         (jump_optimize): Use them.
9465
9466 Thu Nov  5 07:57:45 1998  Andrew MacLeod  <amacleod@cygnus.com>
9467
9468         * except.c (expand_fixup_region_end): Make sure outer context labels
9469         are not issued in an inner context during cleanups.
9470
9471 Thu Nov  5 04:03:06 1998  Richard Henderson  <rth@cygnus.com>
9472
9473         * alpha.md (addsi3, subsi3): No new temporaries once cse is
9474         no longer expected.
9475
9476 Thu Nov  5 03:29:19 1998  Richard Henderson  <rth@cygnus.com>
9477
9478         * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as
9479         to expose this midpoint to CSE.
9480
9481 Thu Nov  5 03:42:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9482
9483         * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again.
9484
9485 Thu Nov  5 10:53:01 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
9486
9487         * configure.in: Bring over gcc2 change of Nov 19 1997.
9488
9489 Wed Nov  4 23:43:08 1998  Graham  <grahams@rcp.co.uk>
9490
9491         * toplev.c (output_lang_identify): Make definition dependent on
9492         ASM_IDENTIFY_LANGUAGE.
9493
9494         * print-rtl.c (spaces): Make static.
9495
9496 Wed Nov  4 22:16:36 1998  Hans-Peter Nilsson  <hp@axis.se>
9497
9498         * extend.texi: Clarify proper uses for register clobbers in asms.
9499
9500 Wed Nov  4 22:16:36 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
9501
9502         * recog.h (enum op_type): Define.
9503         (constrain_operands): Adjust prototype.
9504         (recog_op_type): Declare new variable.
9505         * recog.c (recog_op_type): New variable.
9506         (insn_invalid_p): Allow modifying an asm statement after reload.
9507         (extract_insn): Set up recog_op_type.
9508         (constrain_operands): Lose INSN_CODE_NUM arg.  All callers changed.
9509         Don't compute operand types, use recog_op_type.
9510         Use the information computed by extract_insn instead of the previous
9511         method of finding it by insn code number.
9512         * caller-save.c (init_caller_save): Use extract_insn, not insn_extract.
9513         * reorg.c (fill_slots_from_thread): Likewise.
9514         * reload1.c (reload_as_needed): Likewise.
9515         (gen_reload): Likewise.
9516         (inc_for_reload): Likewise.
9517         (reload_cse_simplify_operands): Likewise.
9518         Use the information computed by extract_insn instead of the previous
9519         method of finding it by insn code number.
9520         * genattrtab.c (write_attr_case): Generate call to extract_insn, not
9521         insn_extract.
9522         * final.c (final_scan_insn): Use extract_insn, not insn_extract.
9523         (cleanup_operand_subregs): Use extract_insn, not insn_extract.
9524         Use the information computed by extract_insn instead of the previous
9525         method of finding it by insn code number.
9526         * regmove.c (find_matches): Likewise.  Change meaning of the return
9527         value to be nonzero if the optimization can be performed, zero if
9528         not.  All callers changed.
9529         Shorten some variable names to fix formatting problems.
9530         (regmove_optimize): Shorten some variable names to fix formatting
9531         problems.
9532         Use the information computed by extract_insn instead of the previous
9533         method of finding it by insn code number.
9534         * regclass.c (scan_one_insn): Likewise.
9535         (record_reg_classes): Don't compute operand types, use recog_op_type.
9536         * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use
9537         recog_constraints instead.
9538
9539 Wed Nov  4 21:37:46 1998  Jeffrey A Law  (law@cygnus.com)
9540
9541         * rtl.h (flow2_completed): Declare.
9542         * flow.c (flow2_completed): Definition.
9543         * toplev.c (rest_of_compilation): Set and clear flow2_completed
9544         as necessary.
9545
9546 Wed Nov  4 19:15:37 1998  Melissa O'Neill  <oneill@cs.sfu.ca>
9547
9548         * Makefile.in (libcpp.a): Ranlib libcpp.a.
9549
9550         * cppulp.c (user_label_prefix): Initialize.
9551         
9552 Wed Nov  4 19:07:08 1998  John Wehle  (john@feith.com)
9553
9554         * flow.c (mark_regs_live_at_end): Mark the stack pointer as live
9555         at a RETURN if current_function_sp_is_unchanging is set.
9556
9557 Wed Nov  4 18:16:29 1998  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
9558
9559         * emit-rtl.c (try_split): Fixed error in Oct 10 patch.
9560
9561 Wed Nov  4 15:11:15 1998  Geoffrey Noer  <noer@cygnus.com>
9562
9563         * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL,
9564         TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New.
9565         (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options.
9566         (CPP_PREDEFINES): Don't define __CYGWIN32__ here.
9567         (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options.
9568         (CPP_SPEC): Handle -mno-cygwin option.  Define __CYWIN__ in addition
9569         to __CYGWIN32__.
9570         (LIB_SPEC): Handle -mno-cygwin option.
9571         (LINK_SPEC): Handle -mdll.
9572
9573 Wed Nov  4 22:56:14 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9574
9575         * reload.c (find_reloads): Fix test for usage by other reload
9576         to handle secondary reloads properly.
9577
9578 Wed Nov  4 17:25:10 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9579
9580         * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an
9581         intermediate structure which has exactly the members provided by
9582         ELIMINABLE_REGS.  Define NUM_ELIMINABLE_REGS in terms of the
9583         static intermediate structure.
9584         
9585         (init_elim_table): Xmalloc() `reg_eliminate', and initialize it
9586         from the intermediate structure.  Do the same analogous fix in
9587         the case where ELIMINABLE_REGS is not defined.
9588
9589 Tue Nov  3 20:50:03 1998  Jeffrey A Law  (law@cygnus.com)
9590
9591         * pa.h (SELECT_SECTION): Fix thinko.
9592
9593 Tue Nov  3 17:51:36 1998  Jim Wilson  <wilson@cygnus.com>
9594
9595         * dwarf2out.c (output_call_frame_info): Comments on last change.
9596
9597 Tue Nov  3 07:51:43 1998  Richard Earnshaw  (rearnsha@arm.com)
9598
9599         * arm.c (add_constant): When taking the address of an item in the
9600         pool, get the mode of the item addressed.
9601
9602         * arm.c (final_prescan_insn case INSN): If an insn doesn't
9603         contain a SET or a PARALLEL, don't consider it for conditional
9604         execution.
9605
9606         Restore ABI compatibility for NetBSD.
9607         * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in
9608         arm.h.
9609         (RETURN_IN_MEMORY): Likewise.
9610
9611 Mon Nov  2 11:46:17 1998  Doug Evans  <devans@canuck.cygnus.com>
9612
9613         * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations.
9614         (m32r_output_block_move): Rewrite bytes < 4 handling.
9615
9616 Mon Nov  2 10:10:35 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9617
9618         * configure.in: Call AC_FUNC_VFORK.
9619
9620         * collect2.c: Define VFORK_STRING as a printable string for
9621         error messages (either "vfork" or "fork".)  If HAVE_VFORK_H is
9622         defined, include vfork.h.  If VMS is defined, define vfork()
9623         appropriately.  Remove vfork check on USG, we're using autoconf.
9624         (collect_execute): Pass VFORK_STRING to fatal_perror instead of
9625         checking locally what string to pass.
9626         (scan_prog_file): Likewise.
9627         (scan_libraries): Likewise.
9628
9629         * gcc.c: Remove vfork check on USG, we're using autoconf.
9630         Besides, no calls to vfork/fork occur in this file.
9631
9632         * protoize.c: Likewise.
9633
9634 Mon Nov  2 07:52:28 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
9635
9636         * configure.in (DEFAULT_LINKER): Renamed from LD.
9637         (DEFAULT_ASSEMBLER): Renamed from AS; reverted Schwab's patch.
9638         (gcc_cv_as): Try $DEFAULT_ASSEMBLER before $AS.
9639         * configure: Rebuilt.
9640
9641 Mon Nov  2 01:48:10 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
9642
9643         * BUGS: Fix the regexp for `more' to find the appropriate node.
9644         Reported by Joerg Pietschmann  <joerg_pietschmann@zkb.ch>
9645
9646         * BUGS: Added link to the WWW FAQ.
9647
9648 Sun Nov  1 18:27:15 1998  Jeff Law  (law@cygnus.com)
9649
9650         * version.c: Bump for snapshot.
9651
9652 Sun Nov  1 11:04:32 1998  Jeffrey A Law  (law@cygnus.com)
9653
9654         * From Christian Gafton:
9655         * i386/linux.h (CPP_PREDEFINES): Add -D__i386__.
9656         * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__.
9657         * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__.
9658
9659 Sat Oct 31 21:42:39 1998  Mark Mitchell  <mark@markmitchell.com>
9660
9661         * c-common.c (c_get_alias_set): Allow all type-punning through
9662         unions.  Don't get confused about the type of a bit-field, despite
9663         the antics of build_modify_expr.
9664
9665 Sat Oct 31 22:35:29 1998  Jean-Pierre Radley  <jpr@jpr.com>
9666
9667         * fixinc.sco: Parameterize #include_next values.
9668         * fixinc/fixinc.sco: Likewise.
9669
9670 Sat Oct 31 20:39:35 1998  Jeffrey A Law  (law@cygnus.com)
9671
9672         * toplev.c (rest_of_compilation): No longer set reload_completed.
9673         * reload1.c (reload): Set it here.  Perform instruction splitting
9674         after reload has completed if we will be running the scheduler
9675         again.
9676
9677 Sat Oct 31 12:30:02 1998  Jeffrey A Law  (law@cygnus.com)
9678
9679         * jump.c (jump_optimize): Initialize mappings from INSN_UID to
9680         EH region if exceptions are enabled and we're performing cross
9681         jump optimizations.
9682         (find_cross_jump): Exit loop if the insns are in different EH regions.
9683
9684 Sat Oct 31 10:02:48 1998  Mark Mitchell  <mark@markmitchell.com>
9685
9686         * dwarf2out.c (output_call_frame_info): Use
9687         ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c.
9688
9689 Sat Oct 31 10:23:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9690
9691         Reinstall Apr 24th fix, lost during May 6th gcc2 merge:
9692         * c-common.c (check_format_info): Don't check for the 'x'
9693         format character twice, instead check for 'x' and 'X'
9694
9695 Fri Oct 30 14:50:25 1998  Jeffrey A Law  (law@cygnus.com)
9696
9697         * configure.in (assembler features): Also make gas is configured if
9698         we find it in the source tree.
9699
9700 Fri Oct 30 13:23:20 1998  Richard Henderson  <rth@cygnus.com>
9701
9702         * i386.c (i386_comp_type_attributes): Compare whether the
9703         attributes are defined, not their tree nodes.
9704
9705 Fri Oct 30 11:39:47 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
9706
9707         * configure.in (gxx_include_dir): Bitten by autoconf quoting
9708         characters.  :-(
9709         * configure: Rebuilt.
9710
9711 Fri Oct 30 10:43:29 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
9712
9713         * configure.in: Ignore non-absolute value in $AS.
9714
9715 Fri Oct 30 00:54:25 1998  Peter Jakubek  <pjak@snafu.de>
9716
9717         * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.
9718
9719 Fri Oct 30 00:42:34 1998  Mark Elbrecht  <snowball3@usa.net>
9720
9721         * configure.in (msdosdjgpp): Set exeext and target_alias.
9722
9723 Thu Oct 29 23:55:43 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
9724
9725         * flow.c (XNMALLOC): New macro.
9726         (flow_int_list_blocks, basic_block_succ, basic_block_pred): New
9727         static variables.
9728         (add_edge, add_edge_to_label): New static functions.
9729         (free_bb_memory): New function.
9730         (flow_delete_insn): Delete function.
9731         (basic_block_drops_in): Delete variable.
9732         (find_basic_blocks): Allocate and initialize basic_block_head,
9733         basic_block_succ.  Don't allocate basic_block_drops_in.
9734         Call free_bb_memory at the beginning.
9735         (find_basic_blocks_1): Don't do multiple passes.
9736         Delete code to compute basic_block_drops_in.
9737         After calling make_edges, mark blocks reached by current block live.
9738         Update test for unreachable live blocks.
9739         (mark_label_ref): Delete args X, CHECKDUP.  Add PRED arg.  All callers
9740         changed.
9741         Simplify to call add_edge_to_label when a LABEL_REF is found.
9742         (make_edges): Simplify to call add_edge_to_label instead of
9743         mark_label_ref most of the time.
9744         Compute here whether control drops into the next block.
9745         (delete_unreachable_blocks): Return void.  All callers changed.
9746         Delete unreachable blocks in reverse order.
9747         After deleting all unreachable blocks, renumber the remaining ones
9748         and update n_basic_blocks.
9749         (delete_block): Speed up deletion a bit.
9750         Don't set basic_block_drops_in for deleted blocks.
9751         (free_basic_block_vars): Don't free basic_block_drops_in.
9752         (life_analysis_1): Update to use new edge representation.
9753         (dump_flow_info): Delete code to print basic block info; call
9754         dump_bb_data instead.
9755         (compute_preds_succs): Delete code to recompute basic_block_drops_in
9756         and uid_block_number.
9757         Simply copy the previously computed cfg.
9758         (dump_bb_data): New arg LIVE_INFO.  All callers changed.
9759         Print register lifetime information if LIVE_INFO is nonzero.
9760         * basic-block.h (dump_bb_data): Adjust prototype.
9761         * gcse.c (gcse_main): Update call to dump_bb_data.
9762         * rtl.h (free_bb_memory): Declare.
9763         * toplev.c (rest_of_compilation): Call free_bb_memory.
9764
9765         * reload1.c (struct elim_table): Delete MAX_OFFSET member.
9766         (update_eliminable_offsets): Don't compute it.
9767         (set_initial_elim_offsets): Don't initialize it.
9768         Break out some code into set_initial_label_offsets so the rest of
9769         this function can be called from reload_as_needed.
9770         Assume that INITIAL_FRAME_POINTER_OFFSET is defined when
9771         ELIMINABLE_REGS isn't.
9772         (set_initial_label_offsets): New function, broken out of
9773         set_initial_elim_offsets.
9774         (set_offsets_for_label): New function, broken out of set_label_offsets
9775         and reload_as_needed.
9776         (reload): Call the two new functions.
9777         (reload_as_needed): Call set_initial_elim_offsets instead of
9778         duplicating the code.  Likewise for set_offsets_for_label.
9779
9780         * reload1.c (choose_reload_regs): Fix typo in Oct 17 change.
9781         (emit_reload_insns): Ensure that when we set reg_reloaded_valid for
9782         any hard reg, reg_reloaded_dead contains valid data.
9783
9784 Thu Oct 29 22:30:54 1998  Marcus Meissner  <Marcus.Meissner@informatik.uni-erlangen.de>
9785
9786         * i386.c (i386_comp_type_attributes): Return nonzero for mismatched
9787         "stdcall" and "cdecl" attributes.
9788
9789 Thu Oct 29 19:05:17 1998  Jim Wilson  <wilson@cygnus.com>
9790
9791         * sched.c (update_flow_info): Add code to ! found_orig_dest case to
9792         handle deleted no-op moves of hard registers.
9793         * haifa-sched.c (update_flow_info): Likewise.
9794
9795 Thu Oct 29 18:07:47 1998  Jeffrey A Law  (law@cygnus.com)
9796
9797         * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end
9798         of the sequences to reload the HILO register which do not actually
9799         reference HILO.
9800
9801 Thu Oct 29 12:39:35 1998  Jim Wilson  <wilson@cygnus.com>
9802
9803         * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field.
9804
9805 Thu Oct 29 14:10:22 1998  Andrew MacLeod  <amacleod@cygnus.com>
9806
9807         * except.c (emit_eh_context): Make the EH context register stay alive
9808         at -O0 so stupid.c doesn't get confused.
9809
9810 1998-10-29  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
9811
9812         * emit-rtl.c (try_split): Do not try to split a BARRIER.
9813
9814 Thu Oct 29 01:33:54 1998  Jan Hubicka  <hubicka@freesoft.cz>
9815                           Jeffrey A Law  (law@cygnus.com)
9816
9817         * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM.
9818         (zero_extendsidi2): Use # in output template and handle completely by
9819         splits.
9820         (zero_extend splitters): New define_splits.
9821         (ashiftrt_32): New pattern.
9822
9823 Wed Oct 28 22:58:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
9824
9825         * tree.c (append_random_chars): New fn.
9826         (get_file_function_name_long): Use it.
9827
9828 Wed Oct 28 22:27:05 1998  Richard Henderson  <rth@cygnus.com>
9829
9830         * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
9831         (LIBCPP_OBJS): New.  Add cppulp.o.
9832         (cppmain, fix-header): Depend on and use libcpp.a.
9833         * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead
9834         of the individual object files.
9835         * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@,
9836         last.
9837
9838         * cccp.c (user_label_prefix): New.
9839         (main): Set it off -f*leading-underscore.
9840         (special_symbol): Use it.
9841         * cpplib.c (special_symbol): Likewise.
9842         (cpp_handle_option): Handle -f*leading-underscore.
9843         * cppulp.c: New file.
9844
9845         * output.h (user_label_prefix): Declare it.
9846         * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix.
9847         * toplev.c (f_options, main): Handle -f*leading-underscore.
9848
9849         * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of
9850         referencing USER_LABEL_PREFIX directly.
9851         * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise.
9852         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
9853         * final.c (asm_fprintf): Use user_label_prefix instead.
9854         * arm/thumb.c (thumb_print_operand): Likewise.
9855
9856         * gcc.c (default_compilers): Pass -f*leading-underscore on to
9857         cpp wherever appropriate.
9858
9859 Wed Oct 28 23:09:25 1998  Robert Lipe  <robertl@dgii.com>
9860
9861         * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer-
9862         specific compiler switches.
9863
9864 Wed Oct 28 21:05:53 1998  Jeffrey A Law  (law@cygnus.com)
9865
9866         * Makefile.in (c-common.o): Depend on c-pragma.h.  Use $(RTL_H) instead
9867         of rtl.h.
9868
9869 Wed Oct 28 20:52:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9870
9871         * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
9872         structure which has exactly the members provided by EXTRA_SPECS.
9873         Xmalloc() the real `extra_specs', and initialize it from this
9874         intermediate structure.
9875
9876         * alpha.h (EXTRA_SPECS): Revert change for missing initializers.
9877
9878         * mips.h  (EXTRA_SPECS): Likewise.
9879
9880         * sparc.h (EXTRA_SPECS): Likewise.
9881
9882 Wed Oct 28 16:46:07 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
9883
9884         * function.c (purge_addressof_1): Instead of aborting when a
9885         bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
9886         work just put the ADDRESSOF on stack.  Otherwise remember all such
9887         successful replacements, so that exactly the same replacements
9888         can be made on the REG_NOTEs.  Remove the special case for CALL
9889         insns again.
9890         (purge_addressof_replacements): New variable.
9891         (purge_addressof): Clear it at end.
9892
9893 1998-10-28  Zack Weinberg  <zack@rabi.phys.columbia.edu>
9894
9895         * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB.
9896           (lang_init): Call check_newline always.
9897         * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling
9898           cpp_start_read, set yy_cur and yy_lim to read from
9899           parse_in.token_buffer, so that we'll see the first #line
9900           directive.
9901         * cpplib.c (cpp_start_read): finclude the main input file
9902           before processing -include/-imacros.   Process -imacros and
9903           -include separately, and handle -include by stacking a
9904           buffer for the file in question as if it'd been #included.
9905         * toplev.c (documented_lang_options): Recognize -H when
9906           USE_CPPLIB is on.
9907
9908 1998-10-28  Zack Weinberg  <zack@rabi.phys.columbia.edu>
9909
9910         * cpplib.c: Merge do_once into do_pragma.  Break file handling
9911           code out of do_include.
9912           Move append_include_chain, deps_output,
9913           file_cleanup, redundant_include_p, import_hash,
9914           lookup_import, add_import, read_filename_string, read_name_map,
9915           open_include_file, finclude, safe_read to cppfiles.c.
9916           Move prototypes for deps_output, append_include_chain,
9917           finclude to cpplib.h.  Move definition of struct
9918           file_name_list there also.
9919
9920         * cppfiles.c: New file.  Contains all the above functions
9921           broken out of cpplib.c; also hack_vms_include_specification
9922           from cccp.c and find_include_file, a new function broken out of
9923           do_include.
9924
9925         * Makefile.in (cppmain): Depend on cppfiles.o.
9926           (fix-header): Likewise.
9927           (cppfiles.o): New target.
9928         * configure.in (--enable-c-cpplib): Add cppfiles.o to
9929           extra_c_objs.  Add ../cppfiles.o to extra_cxx_objs.
9930
9931 Wed Oct 28 14:06:49 1998  Jim Wilson  <wilson@cygnus.com>
9932
9933         * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
9934         if pending_types is non-zero.
9935         (dwarfout_finish): Verify pending_types is zero before finishing.
9936
9937 Wed Oct 28 10:29:09 1998  Nick Clifton  <nickc@cygnus.com>
9938
9939         * expr.c (convert_move): Use shifts to perform the move if a
9940         suitable extend pattern cannot be found.  Code written by
9941         Richard Henderson <rth@cygnus.com>.
9942
9943 Wed Oct 28 03:59:29 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
9944
9945         * regclass.c (renumber, regno_allocated): New static variables, moved
9946         out of allocate_reg_info.
9947         (allocate_reg_info): Move these two variables outside the function.
9948         Move code to free memory into new function free_reg_info.
9949         (free_reg_info): New function, broken out of allocate_reg_info.
9950         * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info.
9951         * rtl.h (allocate_reg_info): Don't declare.
9952         (free_reg_info): Declare.
9953
9954         * final.c (cleanup_subreg_operands): ASM_INPUTs need no treatment.
9955
9956 Wed Oct 28 02:38:12 1998  Jason Merrill  <jason@yorick.cygnus.com>
9957
9958         * toplev.c (compile_file): Temporarily revert last change.
9959
9960 Wed Oct 28 00:00:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
9961
9962         * c-typeck.c (convert_for_assignment): Parenthesize.
9963
9964 1998-10-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
9965
9966         * reload1.c (delete_output_reload): Avoid ambigous else.
9967
9968 Wed Oct 28 00:10:35 1998  Jeffrey A Law  (law@cygnus.com)
9969
9970         * toplev.c (compile_file): Call allocate_reg_info to free register
9971         table memory.
9972         * rtl.h (allocate_reg_info): Declare.
9973
9974         * PROJECTS: Remove entry for local spilling.
9975
9976         * final.c (cleanup_subreg_operands): New function.
9977         (final_scan_insn): Use it.
9978         (alter_subreg): Clear the "used" field when we turn a SUBREG into
9979         a REG.
9980         * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG
9981         operands when reload has finished.
9982         * reload.h (cleanup_subreg_operands): Declare..
9983         * flow.c (life_analysis_1): No longer delete CLOBBER insns after
9984         reload.  Handled in reload itself.
9985
9986 Tue Oct 27 23:32:34 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
9987
9988         * reload1.c (verify_initial_offsets): New function.
9989         (reload): Call it after reload_as_needed.  Also verify that the frame
9990         size stays constant during reload_as_needed.
9991         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change.
9992
9993         * reload.h (struct insn_chain): Add need_operand_change element.
9994         * reload1.c (new_insn_chain): Clear it.
9995         (calculate_needs_all_insns): Set it; don't overload need_reload.
9996         (reload_as_needed): Use it.
9997
9998         * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of
9999         reload_address_base_reg_class throughout.  Similar for INDEX_REG_CLASS
10000         and reload_address_index_reg_class.
10001         (find_reloads_address_1): Likewise.
10002         * reload.h (reload_address_base_reg_class,
10003         reload_address_index_reg_class): Don't declare.
10004         * reload1.c (reg_old_renumber, pseudo_previous_regs,
10005         pseudo_forbidden_regs, bad_spill_regs_global): New static variables.
10006         (used_spill_regs): Now static.
10007         (reload_address_base_reg_class, reload_address_index_reg_class,
10008         regs_explicitly_used, counted_for_groups, counted_for_nongroups,
10009         basic_block_needs, max_needs, group_size, group_mode, max_groups,
10010         max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn,
10011         forbidden_regs):
10012         Deleted variables.
10013         (init_reload): Delete code to compute base/index reg classes.
10014         (reload): Delete variable J.
10015         Delete code to manage basic_block_needs.
10016         Don't compute regs_explicitly_used.
10017         Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs,
10018         pseudo_previous_regs.
10019         Initialize bad_spill_regs_global.
10020         Don't call order_regs_for_reload here.
10021         Don't initialize spill_reg_order and n_spills.
10022         Don't forbid explicitly used regs to be used for spill regs.
10023         Change main loop to infinite loop, with explicit break statements.
10024         Make SOMETHING_CHANGED variable local to that loop.
10025         Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn,
10026         max_groups_insn, max_nongroups_insn, group_size, group_mode.
10027         Make sure spilled_pseudos is cleared before calling spill_hard_reg or
10028         new_spill_reg.
10029         Don't call dump_needs.
10030         Delete code to reset potential_reload_regs.
10031         Delete code to terminate loop conditional on the global needs variables
10032         showing no further needs.
10033         (calculate_needs_all_insns): Return void.  All callers changed.
10034         Initialize something_needs_elimination here, not in reload.
10035         Delete avoid_return_reg kludge.
10036         (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void.
10037         All callers changed.
10038         Initialize the group_mode and group_size elements of the arg CHAIN.
10039         Delete code to manage basic_block_needs.
10040         Operate on elements of CHAIN instead of global variables.
10041         Delete avoid_return_reg kludge.
10042         (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void.
10043         All callers changed.
10044         Operate on elements of CHAIN instead of global variables.
10045         Delete special SMALL_REGISTER_CLASSES code.
10046         Delete spill_failure code; now in new_spill_reg.
10047         (find_group): Lose GLOBAL arg, take CHAIN arg, return void.
10048         All callers changed.
10049         Operate on elements of CHAIN instead of global variables.
10050         (maybe_mark_pseudo_spilled): New static function.
10051         (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void.
10052         All callers changed.
10053         Operate on elements of CHAIN instead of global variables.
10054         Call order_regs_for_reload here, not in reload.
10055         Initialize spill_reg_order and n_spills.
10056         Simplify test whether an asm insn is involved.
10057         Delete spill_failure code; now in new_spill_reg.
10058         Call maybe_mark_pseudo_spilled for everything marked as live in
10059         CHAIN.  Merge CHAIN's used_spill_regs into the global variable
10060         used_spill_regs.
10061         (dump_needs): Take CHAIN arg.  No longer static, to prevent the
10062         compiler from optimizing this function (now unused) away.
10063         Operate on elements of CHAIN instead of global variables.
10064         (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg.  All callers
10065         changed.
10066         Operate on elements of CHAIN instead of global variables.
10067         (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args,
10068         take CHAIN arg.  All callers changed.
10069         Operate on elements of CHAIN instead of global variables.
10070         (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take
10071         CHAIN, NONGROUP args.  Return void.  All callers changed.
10072         Verify caller isn't trying to spill a pseudo.
10073         Simplify test for illegal reg, just use bad_spill_regs.
10074         Generate better error messages.
10075         Operate on elements of CHAIN instead of global variables.
10076         Mark spilled register in CHAIN's used_spill_regs element.
10077         Don't call spill_hard_reg.
10078         (spill_hard_reg): Lose GLOBAL arg, return void.  All callers changed.
10079         Mark spilled hard regs in bad_spill_regs_global.
10080         Mark affected pseudos in spilled_pseudos, but don't spill them.
10081         (ior_hard_reg_set): New static function.
10082         (finish_spills): Return int.  All callers changed.
10083         Compute spill_reg_order, n_spills and spill_regs here.  Also update
10084         regs_ever_live for regs used as spills.
10085         For every pseudo in spilled_pseudos, spill it and mark the previous
10086         hard reg it had in pseudo_previous_regs.  Compute which hard regs
10087         are used as spills in insns during which it is live, and retry global
10088         register allocation.  Update all life information in the
10089         reload_insn_chain not to include pseudos without hard regs.
10090         Call alter_reg for all affected speudos.
10091
10092         (scan_paradoxical_subregs): Disable SMALL_REGISTER_CLASSES special
10093         case, it's not clear what it's supposed to do.
10094
10095         (hard_reg_use_compare): Take bad_spill_regs into account.
10096         (pseudos_counted): New static variable.
10097         (count_pseudo): New static function.
10098         (order_regs_for_reload): Take CHAIN arg.  All callers changed.
10099         Initialize bad_spill_regs from bad_spill_regs_global, then merge any
10100         hard registers explicitly used across the current insn into the set.
10101         Compute hard_reg_n_uses taking only pseudos live across this insn
10102         into account.
10103         Tweak sorting of potential_reload_regs.
10104         (compare_spill_regs): Delete function.
10105         (reload_as_needed): Don't sort the spill_regs array, it's computed
10106         in proper order in finish_spills.
10107         Delete avoid_return_reg kludge.
10108         Delete code to manage basic_block_needs.
10109         (allocate_reload_reg): Minor speed/readability tweaks.
10110         Operate on elements of CHAIN instead of global variables.
10111         (choose_reload_regs): Lose AVOID_RETURN_REG arg.  All callers changed.
10112         Delete avoid_return_reg kludge.
10113         Initialize reload_reg_used from CHAIN's used_spill_regs element.
10114         Delete unused label FAIL.
10115         (reload_combine): Replace reload_address_index_reg_class with
10116         INDEX_REGS.
10117         Don't use used_spill_regs to determine information about lifetime of
10118         hard regs.
10119
10120 Tue Oct 27 13:15:02 1998  Nick Clifton  <nickc@cygnus.com>
10121         
10122         * toplev.c (display_help): Ignore empty target specific
10123         options, and if -W is also specified on the command line then
10124         display undocumented options.
10125
10126         * config/arm/arm.c: Updated with changes in devo sources.
10127         * config/arm/arm.h: Updated with changes in devo sources.
10128         * config/arm/lib1funcs.asm: Updated with changes in devo sources.
10129         * config/arm/lib1thumb.asm: Add ELF support.
10130
10131 Tue Oct 27 16:11:43 1998  David Edelsohn  <edelsohn@gnu.org>
10132
10133         * collect2.c (aix64_flag): New variable.
10134         (main, case 'b'): Parse it.
10135         (GCC_CHECK_HDR): Object magic number must match mode.
10136         (scan_prog_file): Only check for shared object if valid header.
10137         Print debugging if header/mode mismatch.
10138
10139 Tue Oct 27 10:15:02 1998  Nick Clifton  <nickc@cygnus.com>
10140
10141         Added support for arm-elf-linux configuration, submitted by Philip
10142         Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf
10143         code developed by Catherine Moore <clm@cygnus.com>.  The following
10144         files are affected:
10145
10146         * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf
10147         targets.
10148
10149         * configure: Regenerated.
10150         
10151         * config/arm/aout.h: Add default definitions of REGISTER_PREFIX,
10152         USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX.  Make other macro
10153         definitions conditional on their not having been already defined.
10154
10155         * config/arm/lin1funcs.asm: Add ELF only macros to generate .size
10156         and .type directives, and add "(PLT)" qualification to function
10157         calls.
10158
10159         * config/arm/linux.h: Deleted.  This file is now superseded by
10160         either linux-elf.h or linux-aout.h.
10161
10162         * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling.
10163         (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel
10164         support).
10165         Move definitions from old linux.h file here.
10166         
10167         * config/arm/elf.h: New file.  Generic ARM/ELF support.
10168         
10169         * config/arm/linux-aout.h: New file.  Support for Linux with a.out.
10170         
10171         * config/arm/linux-elf.h: New file.  Support for Linux with ELF.
10172         
10173         * config/arm/linux-elf26.h: New file.  Support for Linux with ELF
10174         using the 26bit APCS.
10175         
10176         * config/arm/unknown-elf.h: New file.  Support for OS'es other
10177         than Linux with ELF.
10178
10179         * config/arm/t-arm-elf: New file.  makefile fragment for arm-elf
10180         builds.
10181         
10182         * config/arm/coff.h: Include aout.h for basic assembler macros.
10183         Add support for -mstructure_size_boundary=<n> command line option.
10184         
10185         * config/arm/arm.h: Add support for -mstructure_size_boundary=<n>
10186         command line option.  Make macro definitions conditional on their
10187         not having been already defined.
10188
10189         * config/arm/arm.c: Add support for -mstructure_size_boundary=<n>
10190         command line option.
10191
10192         
10193 Tue Oct 27 08:56:46 1998  Andrew MacLeod  <amacleod@cygnus.com>
10194
10195         * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING
10196         has been changed to not include a newline. Use this macro instead.
10197         (output_enumeral_list, const_value_attribute, name_attribute,
10198         comp_dir_attribute, prototyped_attribute, producer_attribute,
10199         inline_attribute, pure_or_virtual_attribute, output_inheritance_die,
10200         dwarfout_file_scope_decl, generate_new_sfname_entry,
10201         generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use
10202         ASM_OUTPUT_DWARF_STRING_NEWLINE macro.
10203
10204 Mon Oct 26 13:35:02 1998  Richard Henderson  <rth@cygnus.com>
10205
10206         * combine.c (subst): Process the inputs to a parallel asm_operands
10207         only once.
10208
10209 Mon Oct 26 13:32:31 1998  Richard Henderson  <rth@cygnus.com>
10210
10211         * stmt.c (expand_asm_operands): Accept `=' or `+' at any position.
10212
10213 Mon Oct 26 12:53:14 1998  Jeffrey A Law  (law@cygnus.com)
10214
10215         * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document.
10216
10217 Mon Oct 26 00:36:58 1998  Jeff Law  (law@cygnus.com)
10218
10219         * version.c: Bump for snapshot.
10220
10221 Sun Oct 25 23:36:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
10222
10223         * stmt.c (expand_fixup): Set fixup->before_jump to a
10224         NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
10225
10226 Sun Oct 25 15:49:57 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10227
10228         * Makefile.in (recog.o): Depend on toplev.h.
10229         (insn-emit.o): Depend on recog.h.
10230         (insn-peep.o): Depend on recog.h and insn-config.h.
10231
10232         * combine.c (simplify_set): Remove unused variable `scratches'.
10233
10234         * final.c (final_scan_insn): Wrap declaration of variables `vlen'
10235         and `idx' in macro conditional controlling their use.
10236
10237         * genemit.c (main): Make the generated output file include
10238         recog.h.  Don't have it declare `insn_operand_constraint', since
10239         we get it from recog.h.
10240
10241         * genpeep.c (main): Make the generated output file include
10242         insn-config.h and recog.h.
10243
10244         * recog.c: Include toplev.h.
10245         (extract_insn): Remove unused variable `p'.
10246
10247         * regclass.c (fix_register): Add missing braces around initializer
10248         for `what_option'.
10249         (allocate_reg_info): Move variable `i' into the scope where it is
10250         used.  Change its type to `size_t'.
10251
10252 Sun Oct 25 13:10:15 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10253
10254         * reload.c (push_reload): When merging reloads, make sure
10255         that reload_in_reg and reload_in are from the same reload in
10256         all cases.
10257
10258 Sun Oct 25 12:07:00 1998  Mumit Khan  <khan@xraylith.wisc.edu>
10259
10260         * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
10261         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
10262
10263 Fri Oct 23 23:42:03 1998  David Edelsohn  <edelsohn@gnu.org>
10264
10265         * loop.c (loop_has_tablejump): New variable.
10266         (prescan_loop): Scan for it.
10267         (insert_bct): Replace explicit scan with use of it.
10268         * regclass.c (regclass): Restore loop variable j.
10269         (record_reg_classes): Deterine op_types modifiers and initialize
10270         classes[i] before matching constraints.  Handle matching
10271         constraints 5-9.
10272         
10273 Fri Oct 23 13:55:48 1998  Jim Wilson  <wilson@cygnus.com>
10274
10275         * m32r/m32r.c (gen_split_move_double): Call alter_subreg.  Delete
10276         subreg support.
10277
10278 Fri Oct 23 16:19:24 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10279
10280         * mips.h (EXTRA_SPECS): Add missing initializers.
10281
10282 Fri Oct 23 16:08:39 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10283
10284         * sparc.h (EXTRA_SPECS): Add missing initializers.
10285         (sparc_defer_case_vector): Provide a prototype.
10286
10287         * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when
10288         comparing it to the result of a pointer subtraction.
10289
10290 Fri Oct 23 15:34:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10291
10292         * alpha.c (override_options): Use ISDIGIT(), not isdigit().  Cast
10293         the argument to (unsigned char).
10294
10295         * alpha.h (EXTRA_SPECS): Add missing initializers.
10296         (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
10297         format specifier.
10298
10299 Fri Oct 23 13:12:35 1998  Jeffrey A Law  (law@cygnus.com)
10300
10301         * flow.c (life_analysis_1): Enable "rescan" code after reload.
10302         (propagate_block): Delete dead code after reload.
10303
10304         * sched.c (update_flow_info): Revert Oct 19, 1998 change.  Brings
10305         back Oct 15, 1998 change.
10306         * haifa-sched.c (update_flow_info): Likewise.
10307         * flow.c (life_analysis_1): Delete CLOBBER insns after reload.
10308
10309         * mn10200.md (truncated shift): Accept constant inputs too.
10310
10311 Fri Oct 23 04:06:57 1998  Richard Earnshaw  (rearnsha@arm.com)
10312
10313         * machmode.h (mode_mask_array): No longer const.
10314         * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined.
10315
10316 Fri Oct 23 11:19:06 1998  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10317
10318         * frame.c: Somewhat explain `FDE'.
10319         Suggested by Brendan Kehoe
10320
10321 Fri Oct 23 00:56:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
10322
10323         * expr.c (pending_chain): Move up.
10324         (save_expr_status): Do save pending_chain.
10325         (restore_expr_status): And restore it.
10326         * function.h (struct function): Add pending_chain.
10327
10328 1998-10-23  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
10329
10330         * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The
10331         did not match the code.
10332
10333 Fri Oct 23 00:07:01 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10334
10335         * regclass.c (regclass): Break out some code into new function
10336         scan_one_insn, and into regclass_init.
10337         (init_cost): New static variable, moved out of regclass.
10338         (regclass_init): Initialize it here, not in .
10339         (scan_one_insn): New static function, broken out of regclass.
10340         * recog.c (apply_change_group): Break out some code into new
10341         function insn_invalid_p.
10342         (insn_invalid_p): New static fn, broken out of apply_change_group.
10343
10344 Thu Oct 22 22:34:42 1998  Jim Wilson  <wilson@cygnus.com>
10345
10346         * reload1.c (reload_as_needed): When rewrite POST_INC, verify
10347         reg_reloaded_contents matches incremented pseudo.
10348
10349         * v850/v850.c (v850_reorg): Call alter_subreg.  Delete subreg support.
10350
10351 Fri Oct 23 11:11:56 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10352
10353         * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for
10354         addressing modes with side effects.  These are currently
10355         placeholders for the C4x target.
10356
10357 Thu Oct 22 16:46:35 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10358
10359         * loop.c (express_from): Make sure that when generating a PLUS of
10360         a PLUS, any constant expression appears on the outermost PLUS.
10361
10362 Thu Oct 22 15:46:23 1998  Per Bothner  (bothner@cygnus.com)
10363
10364         * Makefile.in (distdir-cvs, distdir-start): Clean up so it
10365         works if "$(srcdir)" != ".".
10366
10367 Wed Oct 21 19:23:59 1998  Jim Wilson  <wilson@cygnus.com>
10368
10369         * expmed.c (store_bit_field): If need to add a SUBREG, then remove
10370         existing SUBREG if we can, otherwise abort.
10371
10372 Wed Oct 21 09:58:51 1998  Mark Mitchell  <mark@markmitchell.com>
10373
10374         * c-common.c (c_apply_type_quals_to_decl): Don't crash when
10375         `restrict' is applied to a non-pointer variable.
10376
10377 Wed Oct 21 09:18:58 1998  Mark Mitchell  <mark@markmitchell.com>
10378
10379         * invoke.texi: Document -flang-isoc9x.
10380
10381         * Makefile.in (OBJS): Add splay-tree.o.
10382         (c-common.o): Depend on rtl.h.
10383         (splay-tree.o): List dependencies and provide build rule.
10384         
10385         * rtl.h (record_alias_subset): New function.
10386         * alias.c: Include splay-tree.h.
10387         (alias_set_entry): New type.
10388         (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove.
10389         (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p.
10390         (mems_in_disjoin_alias_sets_p): New function.
10391         (alias_set_compare): Likewise.
10392         (insert_subset_children): Likewise.
10393         (get_alias_set_entry): Likewise.
10394
10395         * tree.h (TYPE_RESTRICT): New macro.
10396         (TYPE_UNQUALIFIED): New manifest constant.
10397         (TYPE_QUAL_CONST): Likewise.
10398         (TYPE_QUAL_VOLATILE): Likewise.
10399         (TYPE_QUAL_RESTRICT): Likewise.
10400         (tree_type): Add restrict_flag.  Reduce count of free bits.
10401         (DECL_POINTER_ALIAS_SET): New macro.
10402         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
10403         (tree_decl): Add pointer_alias_set.
10404         (build_qualified_type): New function.
10405         (build_type_variant): Define in terms of build_qualified_type.
10406         * tree.c (set_type_quals): New function.
10407         (make_node): Initialize DECL_POINTER_ALIAS_SET.
10408         (build_type_attribute_variant): Use build_qualified_type and
10409         set_type_quals.
10410         (build_type_variant): Rename, and modify, to become...
10411         (build_qualified_type): New function.
10412         (build_complex_type): Use set_type_quals.
10413
10414         * c-tree.h (C_TYPE_OBJECT_P): New macro.
10415         (C_TYPE_FUNCTION_P): Likewise.
10416         (C_TYPE_INCOMPLETE_P): Likewise.
10417         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
10418         (c_apply_type_quals_to_decl): New function.
10419         (c_build_qualified_type): New function.
10420         (c_build_type_variant): Define in terms of c_build_qualified_type.
10421         (flag_isoc9x): Declare.
10422         * c-typeck.c (qualify_type): Use c_build_qualified_type.
10423         (common_type): Change to use TYPE_QUALS.
10424         (comptypes): Likewise.
10425         (convert_for_assignment): Likewise.
10426         * c-aux-info.c (gen_type): Likewise.  Deal with `restrict'.
10427         * c-decl.c (flag_isoc9x): Define.
10428         (c_decode_option): Handle -flang-isoc9x.
10429         (grokdeclarator): Update to handle restrict.  Use TYPE_QUALS,
10430         c_build_qualified_type, etc.  Use c_apply_type_quals_to_decl.
10431         * c-lex.c (init_lex): Deal with restrict.
10432         (init_lex): Don't treat restrict as a reserved word in
10433         -traditional mode, or without -flang-isoc9x.
10434         * c-lex.h (rid): Add RID_RESTRICT.
10435         * c-parse.gperf (restrict, __restrict, __restrict__): Make
10436         equivalent to RID_RESTRICT.
10437         * c-parse.in (TYPE_QUAL): Update comment.
10438         * c-common.c: Include rtl.h.
10439         (c_find_base_decl): New function.
10440         (c_build_type_variant): Rename, and modify, to become ...
10441         (c_build_qualified_type): New function.
10442         (c_apply_type_quals_to_decl): Likewise.
10443         (c_get_alias_set): For INDIRECT_REFs, check to see if we can find
10444         a particular alias set for the reference.
10445         * toplev.c (documented_lang_options): Add -flang-isoc9x.
10446
10447 Wed Oct 21 09:15:06 1998  Nick Clifton  <nickc@cygnus.com>
10448
10449         * config/arm/arm.h (TARGET_SWITCHES): Document arm specific
10450         command line switches.
10451
10452 Tue Oct 20 10:04:51 1998  Graham  <grahams@rcp.co.uk>
10453
10454         * reload.c (loc_mentioned_in_p): Add missing braces to bind
10455         else to correct if.
10456
10457 Mon Oct 19 16:34:05 1998  Tom Tromey  <tromey@cygnus.com>
10458
10459         * gcc.c (option_map): Added --classpath and --CLASSPATH.
10460
10461 Tue Oct 20 10:59:02 1998  Gavin Romig-Koch  <gavin@cygnus.com>
10462
10463         * regclass.c (fix_register): Add error message.
10464         * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the
10465           new error message.
10466
10467 Tue Oct 20 10:12:17 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10468
10469         * c-decl.c (warn_missing_noreturn): New global variable.
10470         (c_decode_option): Check for new flags -W{no-}missing-noreturn.
10471         (finish_function): Implement missing noreturn warning.
10472
10473         * c-tree.h (warn_missing_noreturn): Declare extern.
10474
10475         * invoke.texi: Document new flags.
10476
10477         * toplev.c (documented_lang_options): Add description.
10478
10479 Tue Oct 20 22:16:11 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10480
10481         * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT
10482         loop optimization stable for the C4x.
10483         (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop,
10484         c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get,
10485         c4x_rptb_emit_init, c4x_rptb_process): Deleted (superseded by BCT
10486         loop optimization).
10487         (c4x_address_conflict): Be more paranoid when packing a volatile
10488         memref in a parallel load/store.
10489
10490 Tue Oct 20 21:56:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10491
10492         * config/c4x/c4x.md (repeat_block_top, repeat_block_end,
10493         repeat_block_filler): Deleted.
10494         (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber):
10495         Condition code not set if destination register from 'c' class.
10496         (*subbqi3_carry_clobber): Fix typo.
10497
10498 1998-10-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
10499
10500         * reorg.c (steal_delay_list_from_target): Check for insns that
10501         modify the condition codes and effect the direction of the jump
10502         in the sequence.
10503
10504 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
10505
10506         * function.c (purge_addressof_1): Replace call to
10507         emit_insns_before() with emit_insn_before().
10508
10509 Mon Oct 19 19:34:03 1998  Mike Stump  <mrs@wrs.com>
10510
10511         * libgcc2.c (__pure_virtual): Call __terminate instead of _exit.
10512
10513 Mon Oct 19 13:26:24 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10514
10515         * jump.c (sets_cc0_p): Compile only if HAVE_cc0.
10516
10517 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
10518
10519         * gcse.c (compute_hash_table): Correctly identify hard regs which are
10520         clobbered across calls.
10521
10522         * loop.c (scan_loop): Be more selective about what invariants are
10523         moved out of a loop.
10524
10525 Mon Oct 19 10:46:58 1998  Jeff Law  (law@cygnus.com)
10526
10527         * version.c: Bump for snapshot.
10528
10529 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
10530
10531         * libgcc2.c (eh_context_static): Do not call malloc to allocate the
10532         static eh_context structure.
10533
10534 Mon Oct 19 10:45:40 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10535
10536         * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.  All
10537         callers changed.
10538         (try_combine): Don't update max_scratch.
10539         * flow.c (max_scratch, num_scratch): Delete variables.
10540         (life_analysis_1): Don't initialize max_scratch.
10541         (propagate_block): Don't update max_scratch.
10542         (mark_set_1): Don't increment num_scratch.
10543         * regs.h (max_scratch): Delete declaration.
10544
10545 Mon Oct 19 10:28:15 1998  Jeffrey A Law  (law@cygnus.com)
10546
10547         * reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
10548         is nonzero.  This is temporary!
10549
10550         * sched.c (update_flow_info): Handle death notes made invalid by
10551         instruction splitting.  Partially reverts Oct 15, 1998 patch.
10552         * haifa-sched.c (update_flow_info): Likewise.
10553
10554 Sun Oct 18 17:31:26 1998  Jeffrey A Law  (law@cygnus.com)
10555
10556         * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL
10557         if it has a nonzero DECL_INITIAL.
10558
10559 Sat Oct 17 23:18:08 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10560
10561         * Makefile.in (flow.o): Depend on recog.h.
10562
10563         * cpplib.h (directive_table): Add missing initializiers.
10564         (finclude): Change type of variable `bsize' to size_t.
10565         
10566         * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
10567
10568         * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
10569
10570         * fix-header.c (lookup_std_proto): Cast the result of `strlen' to
10571         `int' when comparing against one.
10572         (cpp_file_line_for_message): Mark parameter `pfile' with
10573         ATTRIBUTE_UNUSED.
10574         (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
10575
10576         * flow.c: Include recog.h.
10577         (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
10578
10579         * function.c (thread_prologue_and_epilogue_insns): Mark parameter
10580         `f' with ATTRIBUTE_UNUSED.
10581         (reposition_prologue_and_epilogue_notes): Likewise.
10582
10583         * genopinit.c (gen_insn): Cast argument of ctype functions to
10584         `unsigned char'.
10585
10586         * haifa-sched.c: Include recog.h.
10587         (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
10588         comparing against one.
10589
10590         * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
10591
10592         * mips-tfile.c (parse_end): Cast the argument of ctype function to
10593         `unsigned char'.
10594         (parse_ent): Likewise.
10595         (parse_input): Likewise.
10596
10597         * optabs.c (init_libfuncs): Likewise.
10598
10599         * protoize.c (find_rightmost_formals_list): Likewise.
10600
10601         * recog.h (const_double_operand): Fix typo in prototype.
10602
10603         * tlink.c (scan_linker_output): Cast the argument of ctype
10604         function to `unsigned char'.
10605
10606         * toplev.c (check_lang_option): Cast the result of `strlen' to
10607         `int' when comparing against one.
10608
10609 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
10610
10611         * gcse.c (dump_cuid_table): Correct typo.
10612
10613 Sat Oct 17 11:02:47 1998  Nick Clifton  <nickc@cygnus.com>
10614
10615         * toplev.c (display_help): Prepend '-m' to target specific
10616         options.
10617         (check_lang_option): Ignore text after end of first word of a
10618         language specific option.
10619
10620 Sat Oct 17 02:26:03 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10621
10622         * reload1.c (reg_used_by_pseudo): New static variable.
10623         (choose_reload_regs): Initialize it.
10624         Use it instead of testing spill_reg_order to determine whether a
10625         pseudo is live in a hard register across the current insn.
10626         Fix a typo in a reference to reload_reg_rtx.
10627
10628         * flow.c (propagate_block): Replace code that computes and uses
10629         regs_sometimes_live with simpler code that just walks the set of
10630         currently live registers.
10631
10632         * Makefile.in (insn-extract.o): Fix dependencies.
10633         * genextract.c (main): Generate includes for insn-config.h and
10634         recog.h.
10635         Delete generation of declarations which are now in recog.h.
10636         * genrecog.c (main): Delete generation of definitions which are
10637         now in recog.c.
10638         * local-alloc.c (block_alloc): Use extract_insn and the variables
10639         it sets up instead of looking up values by insn_code.
10640         * recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
10641         recog_dup_num): Define here instead of generating the definition in
10642         genrecog.c.
10643         (recog_n_operands, recog_n_dups, recog_n_alternatives,
10644         recog_operand_mode, recog_constraints, recog_operand_address_p):
10645         New variables.
10646         (extract_insn): New function.
10647         * recog.h (extract_insn): Declare function.
10648         (which_alternative, recog_n_operands, recog_n_dups,
10649         recog_n_alternatives, recog_operand_mode, recog_constraints,
10650         recog_operand_address_p): Declare variables.
10651         * regclass.c (n_occurrences): New static function.
10652         * reload.c (n_occurrences): Delete function.
10653         (find_reloads): Use extract_insn.
10654         * reload.h (n_occurrences): Delete declaration.
10655
10656 Sat Oct 17 01:17:51 1998  Jeffrey A Law  (law@cygnus.com)
10657
10658         * reload1.c (reload_as_needed): Fix test for when to call
10659         update_eliminable_offsets.
10660
10661 Fri Oct 16 20:40:50 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
10662
10663         Fix consistency problems with reg_equiv_{mem,address};
10664         Improve reload inheritance;
10665
10666         * reload.c (reload_out_reg): New variable.
10667         (loc_mentioned_in_p, remove_address_replacements): New functions.
10668         (remove_replacements): Deleted.
10669         (push_reload): Set reload_out_reg[i].
10670         When merging, also set reload_{in,out}_reg[i], and remove
10671         duplicate address reloads.
10672         (combine_reloads): Copy reload_out_reg[i].
10673         (find_reloads): Do make_memloc substitution also when
10674         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
10675         are both nonzero.
10676         Include *recog_operand_loc in commutativity operand changes.
10677         Generate optional output reloads.
10678         Delete reference to n_memlocs.  Don't set *recog_operand_loc before
10679         processing operands.  Call make_memloc in reg_equiv_address code.
10680         Set *recog_operand_loc only after processing operands, and only
10681         if replace is true.  Return a value.
10682         When changing address reload types for operands that didn't get
10683         reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
10684         RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
10685         Don't emit USEs for pseudo SUBREGs when not replacing.
10686         (find_reloads_address): Do make_memloc substitution also when
10687         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
10688         are both nonzero.
10689         (find_reloads_toplev): Likewise.
10690         Call make_memloc in reg_equiv_address code.
10691         (debug_reload_to_stream): Add code to output reload_out_reg.
10692         (make_memloc): Delete local variable i, ifdefed out code, and
10693         references to memlocs and n_memlocs.
10694         (memlocs, n_memlocs): Delete.
10695         (push_secondary_reload): Clear reload_out_reg.
10696         (find_reloads_address_1): Provide memrefloc argument to all calls
10697         to find_reloads_address.
10698         In AUTO_INC code, handle non-directly addressable equivalences properly.
10699         * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
10700         (find_reloads): Add return type.
10701         (remove_address_replacements, deallocate_reload_reg): Declare.
10702         * reload1.c (num_not_at_initial_offset): No longer static.
10703         (delete_address_reloads, delete_address_reloads_1): Likewise.
10704         (deallocate_reload_reg): New function.
10705         (spill_reg_stored_to): New array.
10706         (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
10707         (eliminate_regs_in_insn): Move assignments of previous_offset and
10708         max_offset fields, and recalculation of num_not_at_initial_offset
10709         into new static function:
10710         (update_eliminable_offsets) .
10711         (reload_as_needed): Call update_eliminable_offsets after calling
10712         find_reloads.
10713         Call forget_old_reloads_1 with contents of reloaded auto_inc
10714         expressions if the actual addressing can't be changed to match the
10715         auto_inc.
10716         (choose_reload_regs): For inheritance, replace
10717         reload_reg_free_before_p test with reload_reg_used_at_all test, and
10718         remove stand-alone reload_reg_used_at_all test.
10719         Use reload_out_reg to determine which reload regs have output reloads.
10720         Treat reload_override_in more similar to inherited reloads.
10721         Handle (subreg (reg... for inheritance.
10722         For flag_expensive_optimizations, add an extra pass to remove
10723         unnecessary reloads from known working inheritance.
10724         Delete obsolete code for pseudos replaced with MEMs.
10725         Handle inheritance from auto_inc expressions.
10726         (emit_reload_insns): If reload_in is a MEM, set OLD to
10727         reload_in_reg[j].
10728         Don't reload directly from oldequiv; if it's a pseudo with a
10729         stack slot, use reload_in[j].
10730         Check that reload_in_reg[j] is a MEM before replacing reload_in
10731         from reg_reloaded_contents.
10732         Include non-spill registers in reload inheritance processing.
10733         Also try to use reload_out_reg to set spill_reg_store /
10734         reg_last_reload_reg.
10735         In code to set new_spill_reg_store, use single_set to find out if
10736         there is a single set.
10737         Add code that allows to delete optional output reloads.
10738         Add code to allow deletion of output reloads that use no spill reg.
10739         At the end, set reload_override_in to oldequiv.
10740         Also call delete_output_reload if reload_out_reg is equal to old
10741         in oldequiv code.
10742         Add code to call delete_output_reload for stores with no matching load.
10743         Set / use spill_reg_stored_to.
10744         Handle case where secondary output reload uses a temporary, but
10745         actual store isn't found.
10746         When looking for a store of a value not loaded in order to call
10747         delete_output_reload, count_occurrences should return 0 for no
10748         loads; but discount inherited input reloadill_reg_stored_to.
10749         Do checks for extra uses of REG.  Changed all
10750         callers.
10751         Use delete_address_reloads.
10752         (reload): Take return value of find_reloads into account.
10753         If a no-op set needs more than one reload, delete it.
10754         (reload_reg_free_before_p): RELOAD_FOR_INPUT
10755         can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
10756         for the same operand.
10757         (clear_reload_reg_in_use): Check for other reloads that keep a
10758         register in use.
10759         (reload_reg_free_for_value_p): Handle RELOAD_FOR_OPERAND_ADDRESS /
10760         RELOAD_FOR_OPADDR_ADDR.
10761         Take into account when an address address reload is only needed
10762         for the address reload we are considering.
10763         (count_occurrences): Use rtx_equal_p for MEMs.
10764         (inc_for_reload): Return instruction that stores into RELOADREG.
10765         New argument two, IN, and rtx.  Changed all callers.
10766         (calculate_needs_all_insns, reload_as_needed):
10767         Don't clear after_call for a CLOBBER.
10768         Keep track of how many hard registers need to be copied from
10769         after_call, and don't clear after_call before we have seen
10770         that much copies, or we see a different instruction.
10771
10772 Fri Oct 16 10:58:23 1998  Jeffrey A Law  (law@cygnus.com)
10773
10774         * flow.c (find_basic_blocks_1): Do not delete unreachable blocks
10775         after reload has completed.
10776
10777 Fri Oct 16 17:26:10 1998  Dave Brolley  <brolley@cygnus.com>
10778
10779         * cpplib.c (cpp_get_token): Replace whitespace that occurs between
10780         a macro name and the next token with a single blank if that whitespace
10781         is in a macro buffer and the next token is not '('.
10782
10783 Fri Oct 16 15:44:02 1998  Dave Brolley  <brolley@cygnus.com>
10784
10785         * cccp.c (rescan): Handle multibyte characters ending in backslash.
10786         (rescan): Likewise.
10787         (skip_if_group): Likewise.
10788         (skip_to_end_of_comment): Likewise.
10789         (macarg1): Likewise.
10790         (discard_comments): Likewise.
10791         (change_newlines): Likewise.
10792
10793 Fri Oct 16 15:26:24 1998  Dave Brolley  <brolley@cygnus.com>
10794
10795         * c-lex.c (yylex): Fix unaligned access of wchar_t.
10796
10797 Fri Oct 16 10:47:53 1998  Nick Clifton  <nickc@cygnus.com>
10798
10799         * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation.
10800         (TARGET_OPTIONS): Add --help documentation.
10801
10802 Fri Oct 16 11:49:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10803
10804         * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change.
10805
10806 Fri Oct 16 07:08:46 1998  Bruce Korb  <korb@datadesign.com>
10807         
10808         * fixinc/* Moved in from ../contrib directory in preparation
10809         for integrating it into the normal build process.  In particular,
10810         fixinc/Makefile.in must be config-ed into the build directory
10811         as fixinc/Makefile.  Proposed patches to ./Makefile.in and
10812         ./configure.in will be "in the mail" momentarily.
10813
10814 Fri Oct 16 08:13:46 1998  David S. Miller  <davem@pierdol.cobaltnet.com>
10815
10816         * cse.c (cse_basic_block): Fixup hash flushing loop so we do not
10817         accidently walk into the free list.  Comment how that can happen.
10818         (invalidate): Fix indentation.
10819
10820 Thu Oct 15 23:53:29 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10821                           Jeffrey A Law  (law@cygnus.com)
10822
10823         * flow.c (life_analysis_1): Do not clobber regs_ever_live after
10824         reload.  Never perform rescans of the insn chain after reload.
10825         (propagate_block): Do not delete insn or create new autoinc addressing
10826         modes after reload.
10827
10828         * jump.c (jump_optimize): Unconditionally use the code that was
10829         previously conditional on PRESERVE_DEATH_INFO_REGNO_P.
10830         * reload1.c (reload): When reloading is finished, delete all
10831         REG_DEAD and REG_UNUSED notes.
10832         (emit_reload_insns): Delete all code that was conditional on
10833         PRESERVE_DEATH_INFO_REGNO_P.
10834         (no_longer_dead_regs): Delete variable.
10835         (reload_cse_delete_death_notes): Delete function.
10836         (reload_cse_no_longer_dead): Delete function.
10837         (reload_cse_regs_1): Delete all code to handle deletion of death
10838         notes.
10839         (reload_cse_noop_set_p): Likewise.
10840         (reload_cse_simplify_set): Likewise.
10841         (reload_cse_simplify_operands): Likewise.
10842         (reload_cse_move2add): Likewise.
10843         * reorg.c (used_spill_regs): Delete declaration.
10844         (max_label_num_after_reload): Delete declaration.
10845         (find_dead_or_set_registers): Don't assume that spill regs are
10846         dead at a CODE_LABEL.
10847         * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate,
10848         even after reload.
10849         * sched.c (sched_analyze_insn): Likewise.
10850         (update_flow_info): Likewise.
10851         * haifa-sched.c (sched_analyze_insn): Likewise.
10852         (update_flow_info): Likewise.
10853         * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation.
10854         * toplev.c (max_label_num_after_reload): Delete variable.
10855         (rest_of_compilation): Don't set max_label_num_after_reload.
10856         Call life_analysis after reload_cse_regs if optimizing.
10857         * config/gmicro/gmicro.h: Delete comment referring to
10858         PRESERVE_DEATH_INFO_REGNO_P.
10859         * config/i386/i386.h: Likewise.
10860         * config/m88k/m88k.h: Likewise.
10861         * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition.
10862         * config/sh/sh.h: Likewise.
10863
10864 Thu Oct 15 19:48:41 1998  David Edelsohn  <edelsohn@gnu.org>
10865
10866         * loop.c (strength_reduce): Restore marking bct_p as
10867         ATTRIBUTE_UNUSED.
10868         * rs6000.c (optimization_options): Change #ifdef HAIFA to
10869         HAVE_decrement_and_branch_on_count.
10870         (small_data_operand): Remove TARGET_ELF condition for marking
10871         parameters ATTRIBUTE_UNUSED.
10872         
10873 Thu Oct 15 11:45:51 1998  Robert Lipe  <robertl@dgii.com>
10874
10875         * config/i386/sco5.h (MAX_OFILE_ALIGNMENT): Define.
10876         (SELECT_SECTION): Resync with svr4.h.
10877
10878 Thu Oct 15 12:42:13 1998  David Edelsohn  <edelsohn@gnu.org>
10879
10880         * loop.c (strength_reduce): Undo Oct 14 change marking bct_p
10881         ATTRIBUTE_UNUSED.
10882
10883 Thu Oct 15 00:57:55 1998  Robert Lipe  <robertl@dgii.com>
10884
10885         * c-pragma.c (handle_pragma_token): Test for null tree before
10886         dereferencing TREE_CODE.
10887
10888 Thu Oct 15 17:36:48 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10889
10890         * config/c4x/c4x.c: Convert to use GEN_INT.
10891         (c4x_parallel_process): Rework to handle new repeat loop structure.
10892
10893         * config/c4x/c4x.md: Convert to use GEN_INT.
10894         (rptb_end): Convert to use GE test.  Replace uses with clobbers.
10895         (decrement_and_branch_on_count): Likewise.
10896
10897         * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that
10898         loop.c has the desired functionality.
10899         (rc_reg_operand): New prototype.
10900
10901         * config/c4x/t-c4x: Can now build all front ends.
10902
10903 Wed Oct 14 23:27:08 1998  Didier FORT  (didier.fort@fedex.com)
10904
10905         * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
10906
10907 Wed Oct 14 22:13:28 1998  Joel Sherrill  (joel@OARcorp.com)
10908
10909         * Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
10910         * config/t-rtems: Do not install assert.h -- use newlib's.
10911
10912 Wed Oct 14 21:57:08 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
10913
10914         * combine.c (combine_instructions): When finished, call init_recog.
10915         * regmove.c (optimize_reg_copy_3): Reject volatile MEMs.
10916
10917 Wed Oct 14 16:10:22 1998  Per Bothner  <bothner@cygnus.com>
10918
10919         * toplev.c: If flag_syntax_only, don't open or write assembler file.
10920
10921 Wed Oct 14 13:26:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10922
10923         * cppalloc.c (memory_full): Mark function prototype with
10924         ATTRIBUTE_NORETURN.
10925
10926         * demangle.h (collect_exit): Likewise.
10927
10928         * fix-header.c (v_fatal, fatal): Likewise.
10929
10930         * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort):
10931         Likewise.
10932
10933         * gcov.c (print_usage): Likewise.
10934
10935         * genattr.c (fatal, fancy_abort): Likewise.
10936
10937         * genattrtab.c (fatal, fancy_abort): Likewise.
10938
10939         * gencodes.c (fatal, fancy_abort): Likewise.
10940
10941         * genconfig.c (fatal, fancy_abort): Likewise.
10942
10943         * genemit.c (fatal, fancy_abort): Likewise.
10944
10945         * genextract.c (fatal, fancy_abort): Likewise.
10946
10947         * genflags.c (fatal, fancy_abort): Likewise.
10948
10949         * genopinit.c (fatal, fancy_abort): Likewise.
10950
10951         * genoutput.c (fatal, fancy_abort): Likewise.
10952
10953         * genpeep.c (fatal, fancy_abort): Likewise.
10954
10955         * genrecog.c (fatal, fancy_abort): Likewise.
10956
10957         * libgcc2.c (__eprintf, __default_terminate, __sjthrow,
10958         __sjpopnthrow, __throw): Likewise.
10959
10960         * objc/objc-act.c (objc_fatal): Likewise.
10961
10962         * protoize.c (usage, aux_info_corrupted,
10963         declare_source_confusing): Likewise.
10964
10965         * rtl.c (dump_and_abort): Likewise.
10966
10967         * rtl.h (sets_cc0_p): Likewise.
10968
10969         * toplev.c (float_signal, pipe_closed): Likewise.
10970         
10971 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
10972
10973         * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges
10974         when generating the decision tree for the general case.
10975
10976         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes
10977         wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs.
10978
10979 Wed Oct 14 11:14:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10980
10981         * Makefile.in (sched.o): Depend on recog.h.
10982
10983         * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to
10984         (unsigned) when comparing against one.
10985         (find_base_value): Likewise.
10986         (record_base_value): Cast variable `regno' to (unsigned) when
10987         comparing against one.  Cast the result of REGNO() macro to
10988         (unsigned) when comparing against one.
10989         (memrefs_conflict_p): Change type of variables `r_x' and `r_y'  to
10990         unsigned.
10991         (init_alias_analysis): Add unsigned variable `ui'.  Use it as loop
10992         variable where an unsigned index is needed.
10993
10994         * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code)
10995         before comparing against one.
10996
10997         * collect2.c: Add prototypes for functions `error', `fatal' and
10998         `fatal_perror'.  Make these functions take variable arguments
10999         instead of faking it with a fixed number of args.
11000         (write_c_file_stat): Cast the argument of ctype macro to (unsigned
11001         char).
11002
11003         * combine.c (can_combine_p): Mark parameter `pred' with
11004         ATTRIBUTE_UNUSED.
11005         (find_split_point): Cast variable `src' to (unsigned
11006         HOST_WIDE_INT) when comparing against one.
11007         (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift.
11008         (simplify_logical): Likewise.
11009         (force_to_mode): Cast result of INTVAL() macro to (unsigned
11010         HOST_WIDE_INT) when comparing against one.  Cast 1 to (unsigned
11011         HOST_WIDE_INT) in shift.
11012         (simplify_and_const_int): Cast result of INTVAL() macro to
11013         `unsigned HOST_WIDE_INT' when comparing against one.
11014         (merge_outer_ops): Cast variable const0 to `unsigned
11015         HOST_WIDE_INT' when comparing against the result of
11016         GET_MODE_MASK() macro.
11017         (simplify_comparison): Likewise for variable `c0'.  Cast variable
11018         `const_op' to `unsigned HOST_WIDE_INT' when comparing against
11019         one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast the
11020         result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing
11021         against one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast
11022         result of INTVAL() macro to `unsigned HOST_WIDE_INT' when
11023         comparing against one.
11024         (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'.
11025
11026         config/mips/mips.c (gen_int_relational): Cast result of INTVAL()
11027         macro to `unsigned HOST_WIDE_INT' when comparing against one.
11028         (output_block_move): Cast `sizeof' expression to (int) when
11029         comparing against one.
11030         (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing
11031         against one.
11032         (save_restore_insns): Cast `base_offset' to `long' to match format
11033         specifier in fprintf.
11034
11035         * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro
11036         to `enum machine_mode'.
11037
11038         * flow.c (life_analysis_1): Remove unused variable `insn'.
11039
11040         * gcc.c (translate_options): Move variables `j' and `k' into the
11041         scope in which they are used.  Change their types to `size_t'.
11042         (set_spec): Cast the argument of ctype macro to `unsigned char'.
11043         (read_specs): Likewise.
11044         (process_command): Cast `sizeof' to (int) when comparing against one.
11045         (do_spec_1): Cast the argument of ctype macro to `unsigned char'.
11046         (handle_braces): Cast both sides of `==' expression to `long' to
11047         ensure sign matching.
11048         (main): Cast variable `i' to `int' when comparing against one.
11049
11050         * gcov-io.h (__fetch_long): Change type of parameter `bytes' from
11051         int to size_t.  Cast variable `i' to size_t when comparing against
11052         one.
11053
11054         * genattrtab.c (convert_set_attr_alternative): Remove unused
11055         parameter `insn_code'.  All callers changed.
11056         (convert_set_attr): Likewise.
11057
11058         * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to
11059         size_t when comparing against one.  Likewise for variable `len'.
11060
11061         * global.c (global_alloc): Cast variable `max_regno' to size_t
11062         when comparing against one.  Likewise for variable `max_allocno'.
11063
11064         * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED.
11065
11066         * local-alloc.c (validate_equiv_mem_from_store): Mark parameter
11067         `set' with ATTRIBUTE_UNUSED.
11068         (find_free_reg): Cast `sizeof' expression to (int) when comparing
11069         against one.
11070
11071         * loop.c (count_loop_regs_set): Remove unused variable `dest'.
11072         (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED.
11073         (get_condition): Cast variable `const_val' to `unsigned
11074         HOST_WIDE_INT' when comparing against one.  Cast unsigned
11075         expression to HOST_WIDE_INT when comparing against one.
11076         (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED.
11077         (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to
11078         `unsigned' when comparing against one.
11079
11080         * protoize.c (is_id_char): Change type of parameter `ch' to
11081         unsigned char.
11082         (munge_compile_params): Cast argument of ctype macro to (const
11083         unsigned char).
11084         (process_aux_info_file): Cast variable `aux_info_size' to int when
11085         comparing against one.
11086         (forward_to_next_token_char): Cast argument of ctype macro to
11087         `const unsigned char'.
11088         (edit_formals_lists): Likewise.
11089         (find_rightmost_formals_list): Likewise.
11090         (add_local_decl): Likewise.
11091         (add_global_decls): Likewise.
11092         (edit_fn_definition): Likewise.
11093         (do_cleaning): Likewise.
11094         (scan_for_missed_items): Likewise.
11095         (edit_file): Cast variable `orig_size' to (int) when comparing
11096         against one.
11097         (main): Cast argument of ctype macro to `const unsigned char'.
11098
11099         * recog.c (const_int_operand): Mark parameter `mode' with
11100         ATTRIBUTE_UNUSED.
11101
11102         * regclass.c (record_reg_classes): Change type of variable `c' to
11103         `unsigned char'.  Cast `char' array index to `unsigned char'.
11104
11105         * reload.c (push_secondary_reload): Cast argument to
11106         REG_CLASS_FROM_LETTER() macro to `unsigned char'.
11107
11108         * reload1.c (calculate_needs): Cast `char' array index to
11109         `unsigned char'.
11110         (set_label_offsets): Change type of variable `i' to unsigned int.
11111         Cast result of XVECLEN() macro to unsigned when comparing against
11112         one.
11113         (mark_not_eliminable): Change type of variable `i' to unsigned.
11114         (order_regs_for_reload): Likewise.  Cast `max_regno' to unsigned
11115         when comparing against one.
11116         (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when
11117         comparing against one.
11118         (choose_reload_regs): Hide unused label `fail'.
11119         (reload_cse_simplify_operands): Cast `char' array index to
11120         `unsigned char'.
11121         (reload_combine_note_store): Mark parameter `set' with
11122         ATTRIBUTE_UNUSED.  Cast UNITS_PER_WORD to unsigned when comparing
11123         against one.
11124         (reload_cse_move2add): Remove unused variable `src2'.
11125
11126         * sched.c: Include recog.h.
11127         (sched_note_set): Remove unused parameter `b'.  All callers
11128         changed.
11129         (split_hard_reg_notes): Likewise for parameter `orig_insn'.
11130         (blockage_range): Cast result of UNIT_BLOCKED() macro to (int)
11131         when comparing against one.
11132
11133         * stupid.c (stupid_find_reg): Mark parameter `changes_size' with
11134         ATTRIBUTE_UNUSED.  Cast `sizeof' expression to (int) when
11135         comparing against one.
11136
11137         * unroll.c (precondition_loop_p): Remove unused parameter
11138         `loop_end'.  All callers changed.
11139
11140 Tue Oct 13 22:12:11 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
11141
11142         * reload1.c (maybe_fix_stack_asms): New static function.
11143         (reload): Call it.
11144
11145         * reload.h (compute_use_by_pseudos): Declare.
11146
11147         * reload1.c (spilled_pseudos, insns_need_reload): New variables.
11148         (something_needs_reloads): Delete variable.
11149         (finish_spills): New function.
11150         (compute_use_by_pseudos): New function.
11151
11152         (delete_caller_save_insns): Lose argument FIRST.  All callers changed.
11153         Use the reload_insn_chain instead of walking the rtl directly.
11154
11155         (reload): Allocate and free spilled_pseudos.
11156         Ensure that all calls of spill_hard_reg are followed by a call to
11157         finish_spills.
11158         Use the insns_need_reload list instead of something_needs_reloads
11159         to find out if reload_as_needed must be called.
11160         Clear unused_insn_chains at the end.
11161
11162         (calculate_needs_all_insns): Lose FIRST parameter.  All callers
11163         changed.
11164         Delete code to keep track of current basic block.
11165         Walk reload_insn_chain instead of the rtl structure.  Build the
11166         insns_need_reload chain.
11167         Remember which insns need reloading/elimination by setting the
11168         appropriate fields in struct insn_chain, not by putting modes on the
11169         insn.
11170
11171         (calculate_needs): Lose THIS_BLOCK arg.  Accept arg CHAIN instead of
11172         arg INSN.  All callers changed.
11173         Delete declaration of struct needs.
11174         Don't set something_needs_reloads.
11175         Record insn needs in the CHAIN argument.
11176
11177         (spill_hard_reg): Record the affected pseudos in spilled_pseudos.
11178
11179         (reload_as_needed): Lose FIRST arg.  All callers changed.
11180         Walk the reload_insn_chain instead of the rtx structure.
11181         Delete code to keep track of current basic block.
11182         Rename one of the NEXT variables to OLD_NEXT.
11183
11184         (allocate_reload_reg): Accept arg CHAIN instead of arg INSN.  All
11185         callers changed.
11186         (choose_reload_regs): Likewise.
11187
11188         (emit_reload_insns): Replace INSN and BB args with arg CHAIN.  All
11189         callers changed.
11190         
11191         * caller-save.c (MOVE_MAX_WORDS): New macro.  Use it throughout
11192         instead of (MOVE_MAX / UNITS_PER_WORD) computation.
11193         (hard_regs_live, hard_regs_need_restore): Delete variables.
11194         (n_regs_saved): Now static.
11195         (referenced_regs, this_insn_sets): New variables.
11196
11197         (setup_save_areas): Restructure the code a bit.
11198
11199         (restore_referenced_regs): Delete function.
11200         (mark_referenced_regs): New function, similar to the old
11201         restore_referenced_regs, but mark registers in referenced_regs.
11202
11203         (clear_reg_live): Delete function.
11204         (mark_set_regs): Renamed from set_reg_live.  All callers changed.
11205         Only mark registers in this_insn_sets.
11206
11207         (save_call_clobbered_regs): Rework this function to walk the
11208         reload_insn_chain instead of using the list of instructions directly.
11209         Delete code to keep track of register lives, compute live regs on the
11210         fly from information in the chain.
11211         Instead of calling restore_referenced_regs, use mark_referenced_regs,
11212         then walk the set it computes and call insert_restore as appropriate.
11213
11214         (insert_restore): Lose INSN and BLOCK args.  Add CHAIN arg.  All
11215         callers changed.
11216         Restructure the code a bit.  Test hard_regs_saved instead of
11217         hard_regs_need_restore.
11218         (insert_save): Lose INSN and BLOCK args.  Add CHAIN and TO_SAVE
11219         args.  All callers changed.
11220         Restructure the code a bit.  Use TO_SAVE to determine which regs to
11221         save instead of more complicated test.
11222         (insert_one_arg): Lose INSN and BLOCK args.  Add CHAIN arg.  All
11223         callers changed.
11224         Create a new insn_chain structure for the new insn and place it
11225         into the chain.
11226
11227         * rtl.texi: Update documentation to reflect that reload no longer
11228         puts modes on the insns.
11229
11230 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
11231
11232         * function.c (purge_addressof_1): Force the first argument of a
11233         CALL insn to memory.
11234
11235 Wed Oct 14 00:38:40 1998  Jeffrey A Law  (law@cygnus.com)
11236
11237         * rtl.h: Delete duplicate prototypes.  Add some missing
11238         prototypes.
11239         * rtlanal.c (for_each_rtx): Formatting tweak.
11240
11241 1998-10-13  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
11242
11243         * real.c (emdnorm and etoasc): Disable round to even for c4x target
11244         to be compatible with TI compiler.
11245
11246         * Makefile.in (USER_H): Add va-c4x.h to definition.
11247
11248 Tue Oct 13 23:03:37 1998  Richard Henderson  <rth@cygnus.com>
11249
11250         * function.c (purge_addressof_1): Fix typo in inequality: do
11251         bitfield optimization for equal mode sizes.
11252         * expmed.c (store_bit_field): Don't take subregs of subregs in
11253         the movstrict case.  Tidy a potential problem in the multi-word case.
11254         (extract_bit_field): Likewise.
11255
11256 Tue Oct 13 22:12:11 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
11257
11258         * flow.c (find_basic_blocks): Emit NOPs after normal calls in this
11259         function.
11260         Compute max_uid_for_flow by calling get_max_uid after the scan.
11261         (find_basic_blocks_1): Don't emit NOPs here.
11262
11263 Tue Oct 13 22:05:49 1998  Richard Henderson  <rth@cygnus.com>
11264
11265         * alias.c (base_alias_check): Accept new args for the modes of the
11266         two references.  Use them to determine if an AND can overlap.  Update
11267         all callers.
11268         (memrefs_conflict_p): Assume sizes are aligned, and uses them
11269         to determine if an AND can overlap.
11270
11271 Tue Oct 13 17:51:04 1998  Jim Wilson  <wilson@cygnus.com>
11272
11273         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16
11274         check.  Add comment to document problems with TARGET_SUN_FPA version
11275         of this macro.
11276         * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves.
11277
11278 Tue Oct 13 17:46:18 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11279
11280         * Makefile.in (gencheck.o): Depend on gansidecl.h.
11281
11282         * c-common.c (print_char_table): Add missing initializers.
11283         (scan_char_table): Likewise.
11284         (time_char_table): Likewise.
11285
11286         * c-decl.c (c_decode_option): Mark parameter `argc' with
11287         ATTRIBUTE_UNUSED.
11288         (declare_parm_level): Mark parameter `definition_flag' with
11289         ATTRIBUTE_UNUSED.
11290
11291         * c-lex.c (readescape): Use `(unsigned)1' in shift.
11292         (yylex): Likewise.  Cast `sizeof' to an (int) when comparing
11293         against one.
11294
11295         * calls.c (store_one_arg): Remove unused parameter `fndecl'.  All
11296         callers changed.
11297         (emit_call_1): Mark parameters `fndecl' and `funtype' with
11298         ATTRIBUTE_UNUSED.
11299         (expand_call): Cast result of MIN() to (unsigned int) when
11300         comparing against an unsigned value.
11301
11302         * cccp.c (pcfinclude): Remove unused parameter `limit'.  All
11303         callers changed.
11304         (make_definition): Remove unused parameter `op'.  All callers
11305         changed.
11306         (create_definition): Cast REST_EXTENSION_LENGTH to (long) when
11307         comparing against the result of pointer arithmetic.
11308
11309         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned)
11310         when comparing against one.
11311
11312         * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and
11313         HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against
11314         one.
11315         (output_die): Move variable `i' into the scope in which it is
11316         used.  Change its type to `unsigned'.
11317         (output_die): Cast the result of `strlen' to (int) when passing it
11318         to ASM_OUTPUT_ASCII().
11319         (output_pubnames): Likewise.
11320         (output_line_info): Likewise.
11321
11322         * emit-rtl.c (global_rtl): Add missing initializers.
11323
11324         * explow.c (promote_mode): Mark parameter `for_call' with
11325         ATTRIBUTE_UNUSED.
11326
11327         * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to
11328         `unsigned HOST_WIDE_INT' when comparing against one.
11329         (synth_mult): Change type of variable `cost' to int.
11330         (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift.
11331
11332         * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned)
11333         when comparing against one.
11334         (get_inner_reference): Change variable `alignment' to unsigned.
11335         (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned
11336         int) when comparing against one.
11337         (expand_builtin_setjmp): Change type of variable `i' to size_t.
11338
11339         * fold-const.c (div_and_round_double): Cast BASE to
11340         (HOST_WIDE_INT) when comparing against one.
11341
11342         * gencheck.c: Include gansidecl.h.
11343         (main): Mark parameter `argv' with ATTRIBUTE_UNUSED.
11344
11345         * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and
11346         `tcode' with ATTRIBUTE_UNUSED.
11347
11348         * real.c (edivm): Cast constant value to (unsigned long) in
11349         expression compared against an unsigned value.
11350
11351         * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when
11352         comparing against one.
11353         (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int)
11354         when comparing against one.
11355
11356         * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to
11357         (unsigned int) when comparing against one.  Likewise for
11358         GET_MODE_BITSIZE.
11359         (smallest_mode_for_size): Likewise.
11360         (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED.
11361         (restore_storage_status): Likewise.
11362         
11363         * toplev.c (debug_args): Add missing initializer.
11364         (f_options): Spelling correction.  Add missing initializers.
11365         (documented_lang_options): Likewise.
11366         (debug_end_source_file): Mark parameter `lineno' with
11367         ATTRIBUTE_UNUSED.
11368
11369         * tree.c (valid_machine_attribute): Mark parameters `attr_args',
11370         `decl' and `type' with ATTRIBUTE_UNUSED.
11371
11372         * varasm.c (decode_reg_name): Cast `sizeof' expression to (int)
11373         when comparing against one.
11374         (assemble_variable): Mark parameter `top_level' with
11375         ATTRIBUTE_UNUSED.
11376         (assemble_external_libcall): Mark parameter `fun' with
11377         ATTRIBUTE_UNUSED.
11378         (output_constant_pool): Mark parameters `fnname' and `fndecl' with
11379         ATTRIBUTE_UNUSED.
11380
11381 Tue Oct 13 12:51:04 1998  Nick Clifton  <nickc@cygnus.com>
11382
11383         * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration.
11384         Replace use of r5 with use of r19.
11385
11386         * config/v850/v850.h (LINK_POINTER_REGNUM): Define.
11387
11388         * config/v850/v850.c (compute_register_save_size): Allow for the
11389         fact that helper functions save all registers, not just those used
11390         by the function.
11391         
11392         Replace constant 31 with macro LINK_POINTER_REGNUM.
11393
11394         * config/v850/v850.md: Use 'indirect_operand' rather than
11395         'memory_operand' for bit test/set/clear patterns.
11396
11397 Tue Oct 13 11:49:14 1998  Jason Merrill  <jason@yorick.cygnus.com>
11398
11399         * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL.
11400         * varasm.c (assemble_start_function et al): Don't call
11401         ASM_GLOBALIZE_LABEL for weak symbols.
11402
11403 Tue Oct 13 11:37:45 1998  Nick Clifton  <nickc@cygnus.com>
11404
11405         * cse.c (equiv_constant): Check for NULL return from
11406         gen_lowpart_if_possible().
11407
11408 Tue Oct 13 11:24:51 1998  Jeffrey A Law  (law@cygnus.com)
11409
11410         * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands.
11411
11412         * collect2.c (main): Pass -EL/-EB through to the compiler.
11413
11414 1998-10-12  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
11415         
11416         * expr.c (push_block): Handle targets where the stack grows
11417         to higher addresses, but args grow to lower addresses and
11418         ACCUMULATE_OUTGOING_ARGS is not defined.
11419
11420 Tue Oct 13 08:00:52 1998  Catherine Moore  <clm@cygnus.com>
11421
11422         * config/v850/v850.c (print_operand): Extend meaning
11423         of 'c' operands to support .vtinherit.
11424
11425 Tue Oct 13 21:38:35 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11426
11427         * config/c4x/c4x.c: Convert to gen_rtx_FOO.
11428         Added ATTRIBUTE_UNUSED to unused function arguments.
11429         (rc_reg_operand): New predicate.
11430         (c4x_rptb_insert): New function.
11431         (c4x_rptb_nop_p): Recognize modified rptb_top pattern.
11432         (c4x_optimization_options): New function.
11433
11434         * config/c4x/c4x.md: Convert to gen_rtx_FOO.
11435          (decrement_and_branch_on_count): New pattern.
11436          (rptb_top): Modified pattern to work with BCT optimization.
11437         
11438         * config/c4x/c4x.h (RC_REG): New register class.
11439         (rc_reg_operand): Define prototype.
11440         (IS_RC_REG): New macro.
11441         (IS_RC_OR_PSEUDO_REG): New macro.
11442         (IS_RC_OR_PSEUDO_REGNO): New macro.
11443         (OPTIMIZATION_OPTIONS): Define.
11444
11445 Mon Oct 12 19:57:34 1998  Jason Merrill  <jason@yorick.cygnus.com>
11446
11447         * collect2.c (extract_init_priority): No priority is 65535.
11448
11449 Mon Oct 12 12:10:37 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
11450         
11451         * Makefile.in (build_tooldir): New variable, same as old
11452         $(tooldir), but without depending on $(libdir)/$(unlibsubdir).
11453         (GCC_FOR_TARGET): Add -B$(build_tooldir)/bin/.
11454         (bootstrap, bootstrap2, bootstrap3, bootstrap4): Likewise.
11455         
11456         * configure.in (gxx_include_dir): Set default based on unlibsubdir.
11457         * Makefile.in (tooldir): Likewise.
11458         (cccp.o, cpplib.o): Use unlibsubdir implicitly through
11459         gxx_include_dir, includedir and tooldir.
11460         (protoize.o, unprotoize.o): Likewise.
11461         
11462 Mon Oct 12 10:50:44 1998  Nick Clifton  <nickc@cygnus.com>
11463
11464         * config/arm/arm.md: Replace (reg 24) with (reg:CC 24).
11465
11466         * config/arm/thumb.c (thumb_override_options): Add warning about
11467         PIC code not being supported just yet.
11468
11469 Sun Oct 11 16:49:15 1998  John Wehle  (john@feith.com)
11470
11471         * flow.c: Update comment.
11472         (notice_stack_pointer_modification): New static function.
11473         (record_volatile_insns): Use it.
11474         (mark_regs_live_at_end): Mark the stack pointer as alive
11475         at the end of the function if current_function_sp_is_unchanging
11476         is set.
11477         (life_analysis_1): Set current_function_sp_is_unchanging.
11478         * function.c: Define it.
11479         (init_function_start): Initialize it.
11480         * output.h: Declare it.
11481         * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark
11482         the stack pointer as alive at the end of the function if
11483         current_function_sp_is_unchanging is set.
11484         * i386.c (ix86_epilogue): Optimize the restoring
11485         of the stack pointer.
11486
11487 Mon Oct 12 01:22:53 1998  Jeff Law  (law@cygnus.com)
11488
11489         * version.c: Bump for snapshot.
11490
11491 Sun Oct 11 23:04:30 1998  Robert Lipe  <robertl@dgii.com>
11492
11493         * c-pragma.c (handle_pragma_token): If passed a token instead
11494         of a tree, use that as the pack value.
11495
11496 Sun Oct 11 14:21:14 1998  Mark Mitchell  <mark@markmitchell.com>
11497
11498         * flow.c (find_basic_blocks_1): Fix prototype.
11499
11500 Sun Oct 11 05:03:41 1998  Ken Raeburn  <raeburn@cygnus.com>
11501
11502         * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros.
11503         (struct tree_decl): New fields no_check_memory_usage.
11504         * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE.
11505         (init_attributes): Register it as a new attribute.
11506         (decl_attributes): Set flags on functions given that attribute.
11507         * c-decl.c (duplicate_decls): Merge new attribute.
11508         * expr.h (current_function_check_memory_usage): Declare new var.
11509         * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c,
11510         pa.c, sparc.c: Replace uses of flag_check_memory_usage with
11511         current_function_check_memory_usage.
11512         * function.h: Add field to struct function.
11513         * function.c (current_function_check_memory_usage): Define it.
11514         (push_function_context_to, pop_function_context_from): Save and
11515         restore it.
11516         (expand_function_start): Set it, based on global flag and function
11517         attribute.
11518
11519         * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do
11520         check non-automatic variables, to permit detection of writes to
11521         read-only locations in embedded systems without memory management.
11522         * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument
11523         when emitting chkr_set_right_libfunc call, even if the argument is
11524         BLKmode or variable-sized; don't abort.
11525
11526         * optabs.c (init_optabs): Create Checker and __cyg_profile_*
11527         symbols in Pmode, not VOIDmode.
11528
11529 Sun Oct 11 01:03:05 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
11530
11531         * cppexp.c: When forcing unsigned comparisons, cast both sides
11532         of the operation.
11533
11534         * cpphash.h: Move static declaration of hashtab[]...
11535         * cpphash.c: ...here.
11536
11537         * cpplib.c: Cast difference of two pointers to size_t before
11538         comparing it to size_t.  Cast signed to unsigned
11539         before comparing to size_t. (FIXME: struct argdata should use
11540         unsigned buffer sizes.)
11541         * cpplib.h (struct cpp_reader): Declare token_buffer_size as
11542         unsigned int. (CPP_WRITTEN): Cast return value to size_t.
11543         (CPP_RESERVE): Parenthesize N for evaluation order, cast to
11544         size_t before comparison.
11545
11546 Sun Oct 11 00:15:29 1998  Jeffrey A Law  (law@cygnus.com)
11547
11548         * flow.c (find_basic_blocks): Delete "live_reachable_p" argument.
11549         (find_basic_blocks_1): Similarly.
11550         * output.h (find_basic_blocks): Fix prototype.
11551         * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to
11552         find_basic_blocks anymore.
11553
11554 Sat Oct 10 22:00:34 1998  Richard Henderson  <rth@cygnus.com>
11555
11556         * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro.
11557         (sbitmap_free, sbitmap_vector_free): New macros.
11558         * output.h (rtl_dump_file): Declare.
11559
11560 Sat Oct 10 17:01:42 1998  Jeffrey A Law  (law@cygnus.com)
11561
11562         * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION.
11563
11564 Fri Oct  9 22:08:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11565
11566         * fp-bit.c (SFtype): Don't implicitly use int in declaration.
11567         (DFtype): Likewise.
11568         (_fpdiv_parts): Remove unused parameter `tmp', all callers changed.
11569         (divide): Remove unused variable `tmp'.
11570         (si_to_float): Cast numeric constant to (SItype) before comparing
11571         it against one.
11572
11573 Fri Oct  9 16:03:19 1998  Graham  <grahams@rcp.co.uk>
11574
11575         * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use.
11576         * gcc.c (add_preprocessor_option): Correct typo when allocating
11577         memory, sizeof() argument had one too many `*'.
11578         (add_assembler_option): Likewise.
11579         (add_linker_option): Likewise.
11580         * gcov.c (output_data): Likewise.
11581         * local-alloc.c (memref_used_between_p): Likewise.
11582         (update_equiv_regs): Likewise.
11583         * loop.c (strength_reduce): Likewise.
11584         * reg-stack.c (record_asm_reg_life): Likewise.
11585         (subst_asm_stack_reg): Likewise.
11586         * reorg.c (dbr_schedule): Likewise.
11587
11588 Fri Oct  9 15:57:51 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
11589
11590         * flow.c (life_analysis_1): Break out some functions.
11591         (find_basic_blocks_1): Likewise.  Also move some variables out and
11592         make them static.
11593         Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize
11594         new static var nonlocal_label_list with it.
11595         (active_eh_region, nested_eh_region, label_value_list,
11596         nonlocal_label_list): New static variables.
11597         (make_edges, delete_unreachable_blocks, delete_block): New static
11598         functions, broken out of find_basic_blocks_1.
11599         (record_volatile_insns, mark_regs_live_at_end, set_noop_p,
11600         noop_move_p): New static functions, broken out of life_analysis_1.
11601
11602 Fri Oct  9 15:49:29 1998  Richard Henderson  <rth@cygnus.com>
11603
11604         * expmed.c (store_bit_field): Pun non-integral str_rtx modes.
11605         Take extra care for op0 now possibly being a subreg.
11606         (extract_bit_field): Likewise.
11607         * function.c (purge_addressof_1): Revert Oct 4 change.  Drop
11608         the reg to memory if there is no equal sized integral mode.
11609         * stor-layout.c (int_mode_for_mode): New function.
11610         * machmode.h: Prototype it.
11611
11612 Fri Oct  9 14:26:44 1998  Jeffrey A Law  (law@cygnus.com)
11613
11614         * global.c (build_insn_chain): Verify no real insns exist past the
11615         end of the last basic block, then exit the loop.
11616
11617 Fri Oct  9 11:44:47 1998  David Edelsohn  <edelsohn@gnu.org>
11618
11619         * loop.c (insert_bct): Ensure loop_iteration_var non-zero before use.
11620
11621 Thu Oct  8 21:59:47 1998  Dave Brolley  <brolley@cygnus.com>
11622
11623         * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS.
11624
11625 Thu Oct  8 22:03:45 1998  David Edelsohn  <edelsohn@gnu.org>
11626
11627         * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases.
11628
11629 Thu Oct  8 17:00:18 1998  Richard Henderson  <rth@cygnus.com>
11630
11631         * flow.c (find_basic_blocks): Correctly determine when a call
11632         is within an exception region.
11633
11634 Thu Oct  8 17:15:04 1998  Jeffrey A Law  (law@cygnus.com)
11635
11636         * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'.
11637
11638         * cpplib.h: Protect from multiple inclusions.
11639         * cpplib.c: Fix minor formatting problems.
11640
11641         * i386/xm-cygwin32.h: Only define POSIX if it is not already defined.
11642
11643         * jump.c (jump_optimize): Revert accidental patch.
11644
11645         * Makefile.in (cpplib.o): Use unlibsubdir.
11646
11647 Thu Oct  8 12:50:47 1998  Jim Wilson  <wilson@cygnus.com>
11648
11649         * loop.c (get_condition): Allow combine when either compare is
11650         VOIDmode.
11651
11652 Thu Oct  8 11:31:01 1998  Jeff Law  (law@cygnus.com)
11653
11654         * version.c: Bump for snapshot.
11655
11656 Thu Oct  8 12:21:14 1998  Richard Frith-Macdonald  <richard@brainstorm.co.uk>
11657
11658         * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF.
11659         (init_lex): Initialize ridpointers[RID_BYREF].
11660         * c-lex.h (enum rid): Add RID_BYREF.
11661         * c-parse.gperf: Add RID_BYREF as a type qualifier.
11662         * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF.
11663         (encode_type_qualifiers): Similarly.
11664         * c-gperf.h: Rebuilt.
11665
11666 Thu Oct  8 05:56:00 1998  Jeffrey A Law  (law@cygnus.com)
11667
11668         * c-common.c (type_for_mode): Only return TItype nodes when
11669         HOST_BITS_PER_WIDE_INT is >= 64 bits.
11670         * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
11671         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
11672         (init_decl_processing): Only create TItype nodes when
11673         HOST_BITS_PER_WIDE_INT is >= 64 bits.
11674         * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
11675         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
11676
11677 Thu Oct  8 05:05:34 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
11678
11679         * stmt.c (n_occurrences): New static function.
11680         (expand_asm_operands): Verify that all constrains match in the
11681         number of alternatives.
11682         Verify that '+' or '=' are at the beginning of an output constraint.
11683         Don't allow '&' for input operands.
11684         Verify that '%' isn't written for the last operand.
11685         * reload.c (find_reloads): Abort if an asm is found with invalid
11686         constraints; all possible problems ought to be checked for earlier.
11687
11688 Thu Oct  8 04:26:20 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11689
11690         * flags.h (flag_branch_on_count_reg): Always declare.
11691         * toplev.c (flag_branch_on_count_reg): Likewise.
11692         * toplev.c: Fix typos.
11693
11694         * real.c (c4xtoe): Remove unused variables.  Add some missing parens.
11695         (toc4x): Similarly.
11696
11697 Thu Oct  8 01:25:22 1998  Richard Henderson  <rth@cygnus.com>
11698
11699         * flow.c (find_basic_blocks): Calc upper bound for extra nops in
11700         max_uids_for_flow.
11701         (find_basic_blocks_1): Add a nop to the end of a basic block when
11702         a trailing call insn does not have abnormal control flow.
11703         * gcse.c (pre_transpout): New variable.
11704         (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it.
11705         (compute_pre_transpout): Calculate it.
11706         (compute_pre_ppinout): Use it to eliminate impossible placements
11707         due to abnormal control flow through calls.
11708         (compute_pre_data): Call compute_pre_transpout.
11709
11710 Wed Oct  7 21:40:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11711
11712         * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo.
11713
11714 Wed Oct  7 21:19:46 1998  Ken Raeburn  <raeburn@cygnus.com>
11715
11716         * config/mips/mips.md (tablejump_internal3, tablejump_internal4
11717         and matching define_insns): Tack on a `use' of the table label, so
11718         flow analysis will recognize a tablejump.
11719
11720 Wed Oct  7 17:33:39 1998  Richard Henderson  <rth@cygnus.com>
11721
11722         * gcse.c (pre_insert_insn): Tweek to notice that calls do not
11723         always end basic blocks for abnormal edge reasons.
11724
11725 Wed Oct  7 14:40:43 1998  Nick Clifton  <nickc@cygnus.com>
11726
11727         * config/i386/i386.h: Remove definition of
11728         HANDLE_PRAGMA_PACK_PUSH_POP.
11729         
11730         * config/i386/go32.h: Add definition of
11731         HANDLE_PRAGMA_PACK_PUSH_POP.
11732         
11733         * config/i386/win32.h: Add definition of
11734         HANDLE_PRAGMA_PACK_PUSH_POP.
11735         
11736         * config/i386/cygwin32.h: Add definition of
11737         HANDLE_PRAGMA_PACK_PUSH_POP.
11738
11739         * c-pragma.c (insert_pack_attributes): Do not insert
11740         attributes unless #pragma pack(push,<n>) is in effect.
11741
11742 Wed Oct  7 12:10:46 1998  Jim Wilson  <wilson@cygnus.com>
11743
11744         * expr.c (emit_group_store): Handle a PARALLEL destination.
11745
11746 Wed Oct  7 10:07:29 1998  Richard Henderson  <rth@cygnus.com>
11747
11748         * gcse.c (pre_insert_insn): When a call ends a bb, insert
11749         the new insns before the argument regs are loaded.
11750
11751 Wed Oct  7 12:55:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11752
11753         * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf.
11754         (c-parse.gperf): Update comments describing invocation flags.
11755         (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs).
11756
11757 1998-10-07  Manfred Hollstein  <manfred@s-direktnet.de>
11758
11759         * reload1.c (reload): Call free before clobbering the memory
11760         locations or constants pointers.
11761
11762 Wed Oct  7 02:05:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11763
11764         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework
11765         for efficiency by checking whether we need to modify the current
11766         stack permission at all.
11767         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define.
11768         * config/sparc/sparc.c (sparc_initialize_trampoline): Emit
11769         __enable_execute_stack libcall here too if
11770         TRANSFER_FROM_TRAMPOLINE is defined.
11771         * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if
11772         IN_LIBGCC2.
11773
11774 Wed Oct  7 02:27:52 1998  Jeffrey A Law  (law@cygnus.com)
11775
11776         * Makefile.in (DRIVER_DEFINES): Remove last change.
11777         
11778 Wed Oct  7 01:08:43 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
11779
11780         * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all
11781         insns we're going to copy.
11782         * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX.
11783
11784         * loop.c (count_one_set): Add prototype.
11785
11786         * caller-save.c (restore_referenced_regs): Lose mode argument.
11787         (insert_save): Lose mode argument.
11788         (insert_restore): Lose mode argument.
11789         (insert_one_insn): Lose mode argument.
11790         (save_call_clobbered_regs): Lose mode argument.
11791         (setup_save_areas): Take no argument and return void.  All callers
11792         changed.
11793         Don't verify validity of memory addresses.
11794         * reload.h (setup_save_ares): Adjust prototype.
11795         (save_call_clobbered_regs): Likewise.
11796         * reload1.c (delete_caller_save_insns): New function.
11797         (caller_save_spill_class): Delete variable.
11798         (caller_save_group_size): Delete variable.
11799         (reload): Call setup_save_areas and save_call_clobbered_regs
11800         in the main loop, before calling calculate_needs_all_insns.
11801         Don't call save_call_clobbered_regs after the loop.
11802         Call delete_caller_save_insns at the end of an iteration if
11803         something changed.
11804         Delete code to manage caller_save_spill_class.
11805         Emit the final note before setting reload_first_uid.
11806         Simplify test that determines whether reload_as_needed gets run.
11807         (calculate_needs): Delete code to manage caller_save_spill_class.
11808
11809 Tue Oct  6 15:42:27 1998  Richard Henderson  <rth@cygnus.com>
11810
11811         * collect2.c (main): Initialize ld_file_name.
11812
11813 Tue Oct  6 15:45:15 1998  Catherine Moore  <clm@cygnus.com>
11814
11815         * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Don't
11816         check for flag_function_sections.
11817
11818 Tue Oct  6 20:02:31 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
11819
11820         * cse.c (insert_regs): Fix bug in Sep 24 change.
11821
11822 Tue Oct  6 17:00:42 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
11823
11824         * flags.h (flag_dump_unnumbered): Declare.
11825         * toplev.c (flag_dump_unnumbered): Don't declare.
11826         * print-rtl.c (flags.h): Include.
11827         (print_rtl_single): Add return value.
11828         * rtl.h (print_rtl_single): Update declaration.
11829         * flow.c (flag_dump_unnumbered): Don't declare.
11830         (print_rtl_with_bb): Use return value of print_rtl_single.
11831
11832 Tue Oct  6 01:36:00 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
11833
11834         * loop.c (count_one_set): New static function, broken out of
11835         count_loop_regs_set.
11836         (count_loop_regs_set): Call it.
11837         * global.c (mark_reg_store): Handle clobbers here by not calling
11838         set_preference.
11839         (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER
11840         is in fact a clobber.
11841         * integrate.c (process_reg_param): New function, broken out of
11842         expand_inline_function.
11843         (expand_inline_function): Call it.
11844
11845         * i386.md (addsidi3_1): Delete unused variable temp.
11846         (addsidi3_2): Likewise.
11847         (clstrstrsi): Delete unused variable addr1.
11848
11849         * rtl.h: Don't declare any functions also declared in recog.h.
11850
11851         * Makefile.in (stupid.o): Update dependencies.
11852         (global.o): Likewise.
11853
11854         * global.c: Include reload.h.
11855         (reg_becomes_live): New function.
11856         (reg_dies): New function.
11857         (build_insn_chain): New function.
11858         (global_alloc): Call build_insn_chain before calling reload.
11859
11860         * reload.h (struct needs): New structure definition.
11861         (struct insn_chain): Likewise.
11862         (reload_insn_chain): Declare variable.
11863         (new_insn_chain): Declare function.
11864
11865         * reload1.c (reload_startobj): New variable.
11866         (reload_insn_chain): New variable.
11867         (unused_insn_chains): New variable.
11868         (new_insn_chain): New function.
11869         (init_reload): Initialize reload_startobj, not reload_firstobj.
11870         (reload): Initialize reload_firstobj.
11871         Before returning, free everything on the reload_obstack.
11872
11873         * stupid.c: Include insn-config.h, reload.h and basic-block.h.
11874         (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber,
11875         current_chain): New variables.
11876         (reg_where_born): Delete variable.
11877         (REG_WHERE_BORN): New macro.
11878         (find_clobbered_regs): New function.
11879         (stupid_life_analysis): Don't allocate/free reg_where_born.
11880         Allocate and free reg_where_born_exact, reg_where_born_clobber,
11881         reg_where_dead_chain.
11882         Use REG_WHERE_BORN instead of reg_where_born.
11883         While processing the insns, build the reload_insn_chain with
11884         information about register lifetimes.
11885         (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born.
11886         (stupid_mark_refs): Replace arg INSN with arg CHAIN.  All callers
11887         changed.
11888         Compute and information about birth and death of pseudo registers in
11889         reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber.
11890         Delete code to set elements of reg_where_born.  
11891
11892 Mon Oct  5 22:34:30 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11893
11894         * tree.def (GOTO_EXPR): Modified documentation.
11895         * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed
11896         goto.
11897
11898 Mon Oct  5 22:43:36 1998  David Edelsohn  <edelsohn@gnu.org>
11899
11900         * unroll.c (loop_iteration_var, loop_initial_value, loop_increment
11901         loop_final_value, loop_comparison_code): No longer static.
11902         (unroll_loop): Delete loop_start_value update.
11903         * loop.h (loop_iteration_var, loop_initial_value, loop_increment,
11904         loop_final_value, loop_comparison_code): Extern.
11905         (loop_start_value): Delete extern.
11906         * loop.c (loop_can_insert_bct, loop_increment, loop_start_value,
11907         loop_comparison_value, loop_comparison_code): Delete.
11908         (loop_optimize): Remove initialization for deleted variables.
11909         (strength_reduce): Delete analyze_loop_iterations call.  Only call
11910         insert_bct if flag_branch_count_on_reg set.
11911         (analyze_loop_iterations): Delete.
11912         (insert_bct): Remove iteration count calculation.  Move checks for
11913         viable BCT optimization to here.  Obtain iteration count from
11914         loop_iterations and correct for unrolling.  Check for enough
11915         iteration to be beneficial.  Comment out runtime iteration count
11916         case.
11917         (insert_bct): Print iteration count in dump file.  Remove
11918         loop_var_mode and use word_mode directly.
11919
11920         * rs6000.h (processor_type): Add PROCESSOR_PPC604e.
11921         * rs6000.c (rs6000_override_options): Use it.
11922         (optimization_options): Enable use of flag_branch_on_count_reg.
11923         * rs6000.md (define_function_unit): Describe 604e.
11924
11925 1998-10-05  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
11926
11927         * loop.c (move_movables): Corrected threshold calculation for
11928         moved_once registers.
11929
11930 Mon Oct  5 21:18:45 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
11931
11932         * loop.c (combine_givs_p): Fix test for identical givs.
11933
11934 Mon Oct  5 10:11:28 1998  Nick Clifton  <nickc@cygnus.com>
11935
11936         * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't
11937         call abort if the function is already defined.
11938
11939 Mon Oct  5 10:02:36 1998  Jeffrey A Law  (law@cygnus.com)
11940
11941         * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if
11942         truncation is not a no-op.
11943
11944 Mon Oct  5 09:02:04 1998  Jeff Law  (law@cygnus.com)
11945
11946         * version.c: Bump for snapshot.
11947
11948 Mon Oct  5 08:19:55 1998  Jeff Law  (law@cygnus.com)
11949
11950         * version.c: Bump for snapshot.
11951
11952 Mon Oct  5 01:07:23 1998  Torbjorn Granlund  <tege@matematik.su.se>
11953
11954         * expmed.c (expand_divmod): Don't widen for computing remainder
11955         if we seem to have a divmod pattern for needed mode.
11956
11957 Mon Oct  5 01:01:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
11958
11959         * cpplib.c (macroexpand): Correct off-by-one error in handling
11960         of escapes.
11961
11962 Sun Oct  4 23:58:30 1998  Richard Henderson  <rth@cygnus.com>
11963
11964         * combine.c (expand_field_assignment): Don't do bitwise operations
11965         on MODE_FLOAT; pun to MODE_INT if possible.
11966
11967 Sun Oct  4 18:33:24 1998  Jason Merrill  <jason@yorick.cygnus.com>
11968                           scott snyder  <snyder@d0sgif.fnal.gov>
11969
11970         * tlink.c (scan_linker_output): Recognize errors from irix 6.2
11971         linker.  Recognize mangled names in quotes.
11972
11973 Sun Oct  4 02:58:20 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
11974
11975         * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64.
11976         (ashlsi3_const1, ashldi3_const1): New combiner patterns.
11977         (ashrsi3_extend, ashrsi3_extend2): New combiner patterns.
11978         (lshrsi3_extend, lshrsi3_extend2): Likewise.
11979
11980 Sun Oct  4 00:23:00 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11981
11982         * function.c (purge_addressof_1): If trying to take a sub-word
11983         integral piece of a floating point mode, put it on the stack.
11984
11985 Sat Oct  3 19:01:03 1998  Richard Henderson  <rth@cygnus.com>
11986
11987         * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.
11988
11989 Sat Oct  3 14:42:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
11990
11991         * PROJECTS: Remove template friends.
11992
11993         * collect2.c (sort_ids): Remove unused variable.
11994
11995         * tm.texi (MATH_LIBRARY): Document.
11996         (NEED_MATH_LIBRARY): Remove.
11997
11998         * varasm.c (assemble_start_function, assemble_variable, weak_finish,
11999         assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too.
12000
12001 Sat Oct  3 16:14:44 1998  John Carr  <jfc@mit.edu>
12002
12003         * dwarf2out.c (expand_builtin_dwarf_reg_size): Initialize
12004         last_end to 0x7fffffff.
12005
12006 Fri Oct  2 19:14:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12007
12008         * function.c (purge_addressof_1): Do not perform endianness
12009         corrections on bitpos, who we call will do it for us.
12010
12011 Fri Oct  2 11:52:35 1998  Jeffrey A Law  (law@cygnus.com)
12012
12013         * h8300.c (WORD_REG_USED): Fix typo.
12014         (initial_offset): Use WORD_REG_USED.
12015
12016         * h8300.c (handle_pragma): Fix typo.
12017
12018 Fri Oct  2 10:51:35 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
12019
12020         * caller-save.c (insert_save_restore): Break this function up
12021         into new functions insert_restore, insert_save and insert_one_insn.
12022         All callers changed.
12023         (insert_restore): New function, mostly broken out of
12024         insert_save_restore.
12025         (insert_save): Likewise.
12026         (insert_one_insn): Likewise.
12027         (restore_referenced_regs): New argument BLOCK.  All callers changed.
12028         (save_call_clobbered_regs): Don't keep track of basic block boundaries
12029         in this function, do it in insert_one_insn instead.
12030
12031         * reload1.c (reload): Break out some more pieces into separate
12032         functions.
12033         (dump_needs): New function, broken out of reload.
12034         (set_initial_elim_offsets): Likewise.
12035         (init_elim_table): Likewise.
12036         (update_eliminables): Likewise.
12037
12038         * global.c (global_alloc): Delete code to manage the scratch_list.
12039         * local-alloc.c (qty_scratch_rtx): Delete.
12040         (scratch_block): Delete.
12041         (scratch_list): Delete.
12042         (scratch_list_length): Delete.
12043         (scratch_index): Delete.
12044         (alloc_qty_for_scratch): Delete.
12045         (local-alloc): Update initialization of max_qty.
12046         Delete code to manage the scratch list.
12047         Delete code to allocate/initialize qty_scratch_rtx.
12048         (block_alloc): Don't allocate quantities for scratches.
12049         Delete code to manage the scratch list.
12050         * regs.h (scratch_list): Delete declaration.
12051         (scratch_block): Delete declaration.
12052         (scratch_list_length): Delete declaration.
12053         * reload1.c (reload): Delete code to manage the scratch list.
12054         (spill_hard_reg): Likewise.
12055         (mark_scratch_live): Delete.
12056
12057         * recog.c (alter_subreg): Delete declaration.
12058
12059 1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
12060
12061         * Makefile.in (cccp.o): Fix typo in last patch.
12062
12063 Fri Oct  2 16:13:12 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12064
12065         * t-sh (LIB1ASMFUNCS): Add _set_fpscr .
12066         * config/sh/lib1funcs.asm (___set_fpscr): Add.
12067
12068 Fri Oct  2 02:01:59 1998  Jeffrey A Law  (law@cygnus.com)
12069
12070         * regclass.c (reg_scan_mark_refs): Return immediately if passed a
12071         NULL_RTX as an argument.
12072
12073         * Makefile.in (unlibsubdir): Define.
12074         (DRIVER_DEFINES): Use unlibsubdir.
12075         (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly.
12076         (stmp-fixinc): Similarly.
12077
12078 Thu Oct  1 19:58:30 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
12079
12080         * regmove.c (regmove_optimize): Add variable old_max_uid.
12081         At the end of the function, update basic_block_end.
12082
12083 Thu Oct  1 17:58:25 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12084
12085         * dwarf2out.c (expand_builtin_dwarf_reg_size): Use
12086         FIRST_PSEUDO_REGISTER as upper bound for last_end, not an
12087         arbitrary constant.
12088
12089 Thu Oct  1 17:57:14 1998  Nick Clifton  <nickc@cygnus.com>
12090
12091         * config/arm/arm.c: Improve interworking support.
12092
12093 Thu Oct  1 18:43:35 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12094
12095         * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was
12096         copied from reload_out[r] .
12097
12098 Thu Oct  1 19:20:09 1998  John Carr  <jfc@mit.edu>
12099
12100         * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work
12101         with more than three size ranges.
12102
12103         * flow.c (sbitmap_copy): Use bcopy to copy bitmap.
12104
12105         * rtl.c (mode_name): Add a null string at the end of the array.
12106         (mode_wider_mode): Change type to unsigned char.
12107         (mode_mask_array): New variable.
12108         (init_rtl): Update for mode_wider_mode type change.
12109
12110         * rtl.h (mode_wider_mode): Change type to unsigned char.
12111         (mode_mask_array): Declare.
12112         (GET_MODE_MASK): Use mode_mask_array.
12113
12114 Thu Oct  1 15:56:01 1998  Gavin Romig-Koch  <gavin@cygnus.com>
12115
12116         * calls.c (expand_call) : Encapsulate code into
12117         copy_blkmode_from_reg.
12118         * expr.c (copy_blkmode_from_reg): New function.
12119         * expr.h (copy_blkmode_from_reg): New function.
12120         * integrate.c (function_cannot_inline_p): We can inline
12121         these now.
12122         (expand_inline_function): Use copy_blkmode_from_reg
12123         if needed.  Avoid creating BLKmode REGs.
12124         (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode
12125         object.
12126
12127 Thu Oct  1 10:42:27 1998  Nick Clifton  <nickc@cygnus.com>
12128
12129         * config/v850/v850.c: Add function prototypes.
12130         Add support for v850 special data areas.
12131
12132         * config/v850/v850.h: Add support for v850 special data areas.
12133         
12134         * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and
12135         HANDLE_PRAGMA_PACK_PUSH_POP.
12136         (push_alignment): New function: Cache an alignment requested
12137         by a #pragma pack(push,<n>).
12138         (pop_alignment): New function: Pop an alignment from the
12139         alignment stack.
12140         (insert_pack_attributes): New function: Generate __packed__
12141         and __aligned__ attributes for new decls whilst a #pragma pack
12142         is in effect.
12143         (add_weak): New function: Cache a #pragma weak directive.
12144         (handle_pragma_token): Document calling conventions.  Add
12145         support for #pragma pack(push,<n>) and #pragma pack (pop).
12146
12147         * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP
12148         are defined enable HANDLE_PRAGMA_PACK.
12149         Move 'struct weak_syms' here (from varasm.c).
12150         Add pragma states for push and pop pragmas.
12151
12152         * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES
12153         if it is defined.
12154
12155         * c-lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with
12156         HANDLE_GENERIC_PRAGMAS.
12157         
12158         * varasm.c: Move definition of 'struct weak_syms' into
12159         c-pragma.h.
12160         (handle_pragma_weak): Deleted.
12161
12162         * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
12163
12164         * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
12165
12166         * c-decl.c (start_function): Add invocation of
12167         SET_DEFAULT_DECL_ATTRIBUTES, if defined.
12168
12169         * tm.texi: Remove description of non-existent macro
12170         SET_DEFAULT_SECTION_NAME.
12171         
12172         (HANDLE_SYSV_PRAGMA): Document.
12173         (HANDLE_PRAGMA_PACK_PUSH_POP): Document.
12174
12175 Wed Sep 30 22:27:53 1998  Robert Lipe  <robertl@dgii.com>
12176
12177         * config.sub: Recognize i[34567]86-pc-udk as new target.
12178         * configure.in: Likewise.
12179         * config/i386/t-udk: New file.
12180         * config/i386/udk.h: New file.
12181
12182 Wed Sep 30 19:33:07 1998  Jeffrey A Law  (law@cygnus.com)
12183
12184         * reorg.c (check_annul_list_true_false): Remove unused variables.
12185         (steal_delay_list_from_target): Add missing "used_annul" variable.
12186         (try_merge_delay_insns): Close out half formed comment.
12187
12188 Wed Sep 30 19:13:20 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
12189
12190         * cpplib.c (macroexpand): If arg->raw_before or
12191         arg->raw_after, remove any no-reexpansion escape at the
12192         beginning of the pasted token.  Correct handling of whitespace
12193         markers and no-reexpand markers at the end if arg->raw_after.
12194
12195         * toplev.c (documented_lang_options): Recognize -include,
12196         -imacros, -iwithprefix, -iwithprefixbefore.
12197         * cpplib.c (cpp_start_read): Process -imacros and -include
12198         switches at the same time and in command-line order, after
12199         initializing the dependency-output code.  Emit properly nested
12200         #line directives for them.  Emit a #line for the main file
12201         before processing these switches, and don't do it again
12202         afterward.
12203
12204 Wed Sep 30 18:03:22 1998  Richard Henderson  <rth@cygnus.com>
12205
12206         * function.c (purge_addressof_1): Use bitfield manipulation
12207         routines to handle mem mode < reg mode.
12208
12209 Wed Sep 30 18:43:32 1998  Herman ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
12210
12211         * reorg.c (try_merge_delay_insns): Account for resources referenced
12212         in each instruction in INSN's delay list before trying to eliminate
12213         useless instructions.  Similarly when looking at a trial insn's delay
12214         slots.
12215
12216         * reorg.c (check_annul_list_true_false): New function.
12217         (steal_delay_list_from_{target,fallthrough}): Call it and also
12218         refine tests for when we may annul if already filled a slot.
12219         (fill_slots_from_thread): Likewise.
12220         (delete_from_delay_slot): Return newly-created thread.
12221         (try_merge_delay_isns): Use its new return value.
12222
12223 Wed Sep 30 18:29:26 1998  Jeffrey A Law  (law@cygnus.com)
12224
12225         * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is
12226         used to compute a giv or as some other non-counting use.
12227
12228 Wed Sep 30 18:19:27 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12229
12230         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
12231         * local-alloc.c (find_free_reg): Use it.
12232         * global.c (find_reg): Likewise.
12233         * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED.
12234
12235         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12236         * caller-save.c (init_caller_save): Use it.
12237         * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE.
12238
12239 Wed Sep 30 12:57:30 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
12240
12241         * configure.in: Add --enable-cpplib option which uses cpplib
12242         for cpp, but doesn't link cpplib into cc1.  Make help text
12243         capitalization consistent.
12244         * configure: Rebuilt.
12245
12246 Wed Sep 30 10:09:39 1998  Mark Mitchell  <mark@markmitchell.com>
12247
12248         * function.c (gen_mem_addressof): If the address REG is
12249         REG_USERVAR_P make the new REG be so also.
12250         * loop.c (scan_loop): Apply DeMorgan's laws and add documentation
12251         in an attempt to clarify slightly.
12252
12253 Wed Sep 30 09:57:40 1998  Jeffrey A Law  (law@cygnus.com)
12254
12255         * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF
12256         and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE.
12257
12258 Wed Sep 30 10:13:39 1998  Catherine Moore  <clm@cygnus.com>
12259
12260         * toplev.c: Fix last patch.
12261
12262 Tue Sep 29 20:03:18 1998  Jim Wilson  <wilson@cygnus.com>
12263
12264         * loop.c (get_condition): Fix typo in May 9 change.
12265
12266 Tue Sep 29 11:11:38 1998  Andrew MacLeod  <amacleod@cygnus.com>
12267
12268         * invoke.texi (-fexceptions): Merge 2 different descriptions.
12269
12270 Mon Sep 28 22:08:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12271
12272         * toplev.c (documented_lang_options): Spelling corrections.
12273
12274 Mon Sep 28 19:41:24 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
12275
12276         * configure.in: New flags --with-ld and --with-as, equivalent
12277         to setting LD and AS environment variables.  Test whether
12278         specified arguments are GNU commands, and report them with
12279         checking messages.  Use the specified AS for configure
12280         tests too.
12281         * configure: Likewise.
12282         * acconfig.h: Add DEFAULT_ASSEMBLER and DEFAULT_LINKER.
12283         * config.in: Likewise.
12284         * gcc.c (find_a_file): When looking for `as' and `ld', return
12285         the DEFAULT program if it exists.
12286         * collect2.c (main): Use DEFAULT_LINKER if it exists.
12287
12288         * gcc.c (find_a_file): The test for existence of a full
12289         pathname was reversed.
12290
12291 Mon Sep 28 17:34:35 1998  Michael Meissner  <meissner@cygnus.com>
12292
12293         * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems.
12294         * rs6000.c (output_mi_thunk): Always use a raw jump for now.
12295
12296 Mon Sep 28 14:24:03 1998  Mark Mitchell  <mark@markmitchell.com>
12297
12298         * tree.h (TYPE_BINFO): Document.
12299
12300 Mon Sep 28 12:55:49 1998  Stan Cox  <scox@cygnus.com>
12301
12302         * i386-coff.h (dbxcoff.h): Added.
12303
12304 Mon Sep 28 12:51:00 1998  Catherine Moore  <clm@cygnus.com>
12305
12306         * toplev.c: Fix bad patch around flag_data_sections.
12307
12308 Mon Sep 28 10:32:28 1998  Nick Clifton  <nickc@cygnus.com>
12309
12310         * reload1.c (reload): Use reload_address_index_reg_class and
12311         reload_address_base_reg_class when setting
12312         caller_save_spill_class.  (Patch generated by Jim Wilson:
12313         wilson@cygnus.com).
12314
12315 Mon Sep 28 07:43:34 1998  Mark Mitchell  <mark@markmitchell.com>
12316
12317         * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs
12318         and ARRAY_TYPEs.  Tidy up.  Improve support for type-punning.
12319         * expr.c (store_field): Add alias_set parameter.  Set the
12320         MEM_ALIAS_SET accordingly, if the target is a MEM.
12321         (expand_assignment): Use it.
12322         (store_constructor_field): Pass 0.
12323         (expand_expr): Likewise.
12324
12325 Mon Sep 28 07:54:03 1998  Catherine Moore  <clm@cygnus.com>
12326
12327         * flags.h: Add flag_data_sections.
12328         * toplev.c: Add option -fdata-sections.  Add flag_data_sections.
12329         (compile_file): Error if flag_data_sections not supported.
12330         * varasm.c (assemble_variable): Handle flag_data_sections.
12331         * config/svr4.h: Modify prefixes for UNIQUE_SECTION_NAME.
12332         * config/mips/elf.h: Likewise.
12333         * config/mips/elf64.h: Likewise.
12334         * invoke.texi: Describe -fdata-sections.
12335
12336 Mon Sep 28 04:15:44 1998  Craig Burley  <burley@melange.gnu.org>
12337
12338         * invoke.texi (-ffloat-store): Clarify that this option
12339         does not affect intermediate results -- only variables.
12340
12341 Mon Sep 28 04:11:35 1998  Jeffrey A Law  (law@cygnus.com)
12342
12343         * cpp.texi: Update for Fortran usage from Craig.
12344
12345 Fri Sep 25 22:09:47 1998  David Edelsohn  <edelsohn@gnu.org>
12346
12347         * rs6000.c (function_arg_boundary): Revert accidental change on
12348         September 18.
12349
12350 Fri Sep 25 20:30:00 1998  Michael Meissner  <meissner@cygnus.com>
12351
12352         * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk.
12353         (output_mi_thunk): Declare.
12354
12355         * rs6000.c (output_mi_thunk): Function to create thunks for MI.
12356         (output_function_profiler): Use r12 for temp, instead of r11 so
12357         that we preserve the static chain register.
12358         
12359 Fri Sep 25 14:18:33 1998  Jim Wilson  <wilson@cygnus.com>
12360
12361         * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.
12362
12363 Fri Sep 25 19:30:19 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12364
12365         * sh.c (gen_shl_sext): Fix case 5.
12366
12367 Fri Sep 25 17:35:23 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12368
12369         * reload1.c (reload_combine): Re-add line that got accidentally lost.
12370
12371 Fri Sep 25 10:43:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12372
12373         * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid
12374         accessing variables until they are initialized via va_arg().
12375
12376 Thu Sep 24 22:12:16 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12377
12378         * reload1.c (reload_combine): Initialize set before using.
12379
12380 Thu Sep 24 18:53:20 1998  Jason Merrill  <jason@yorick.cygnus.com>
12381
12382         * sdbout.c (sdbout_field_types): Don't emit the types of fields we
12383         won't be emitting.
12384
12385 Thu Sep 24 17:05:30 1998  Nick Clifton  <nickc@cygnus.com>
12386
12387         * config/arm/arm.md (insv): Add comment.  In CONST_INT case, and
12388         operand3 with mask before using it.  Patch provided by Jim Wilson.
12389
12390 Thu Sep 24 15:08:08 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
12391
12392         * config/sparc/sparc.c (function_value): Perform the equivalent of
12393         PROMOTE_MODE for ARCH64.
12394         (eligible_for_epilogue_delay): Allow DImode operations in delay
12395         slot of a return for ARCH64.
12396
12397 Thu Sep 24 22:17:54 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12398
12399         * sh.md (sqrtsf2): Fix mode of sqrt.
12400
12401 Thu Sep 24 21:48:51 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12402
12403         * reload1.c (choose_reload_regs): Also try inheritance when
12404         reload_in is a stack slot of a pseudo, even if we already got a
12405         reload reg.
12406
12407 Thu Sep 24 21:22:39 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12408
12409         * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs.
12410         (reload_cse_regs): New function body: call reload_cse_regs_1,
12411         reload_combine, reload_cse_move2add.
12412         When doing expensive_optimizations, call reload_cse_regs_1 a
12413         second time after reload_cse_move2add.
12414         (reload_combine, reload_combine_note_store): New functions.
12415         (reload_combine_note_use): New function.
12416         (reload_cse_move2add, move2add_note_store): New functions.
12417
12418 Thu Sep 24 18:48:43 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12419
12420         * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR
12421         reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing.
12422
12423         Properly keep track of first RELOAD_FOR_X_ADDRESS also for
12424         more than 3 such reloads.
12425
12426         If there is not more than one RELOAD_FOR_X_ADDRESS, don't change
12427         RELOAD_FOR_X_ADDR_ADDR reload.
12428
12429 Thu Sep 24 17:45:55 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12430
12431         * expr.c (store_constructor): When initializing a field that is smaller
12432         than a word, at the start of a word, try to widen it to a full word.
12433
12434         * cse.c (cse_insn): When we are about to change a register,
12435         remove any invalid references to it.
12436
12437         (remove_invalid_subreg_refs): New function.
12438         (mention_regs): Special treatment for SUBREGs.
12439         (insert_regs): Don't strip SUBREG for call to mention_regs.
12440         Check if reg_tick needs to be bumped up before that call.
12441         (lookup_as_function): Try to match known word_mode constants when
12442         looking for a norrower constant.
12443         (canon_hash): Special treatment for SUBREGs.
12444
12445 Thu Sep 24 01:35:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12446
12447         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define.
12448         * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is
12449         defined, emit libcall to __enable_execute_stack.  Also fix opcodes
12450         and offsets in actual stack trampoline code so they match the
12451         commentary and actually work.
12452
12453 Thu Sep 24 01:19:02 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
12454
12455         * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for
12456         tmake_file.
12457         (sparc64-*-linux): Use t-linux and sparc/t-linux64 for
12458         tmake_file.  Set extra_parts to needed crt objects.
12459         * configure: Rebuilt.
12460         * config/sparc/linux64.h (SPARC_BI_ARCH): Define.
12461         (TARGET_DEFAULT): Set if default is v9 or ultra.
12462         (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros.
12463         (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH.
12464         (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise.
12465         (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
12466         LINK_SPEC, LINK_ARCH_SPEC): Likewise.
12467         (TARGET_VERSION): Define.
12468         (MULTILIB_DEFAULT): Define.
12469         * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that
12470         mixed 32/64 bit compilers based upon SPARC_BI_ARCH work.
12471         (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define
12472         appropriately.
12473         (TARGET_SWITCHES): Allow ptr32/ptr64 options once more.
12474         * config/sparc/sparc.c (sparc_override_options): If arch and
12475         pointer size disagree, emit diagnostic and fix it up.  If
12476         SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32.  Turn off
12477         V8PLUS in 64-bit mode.
12478         * config/sparc/t-linux64: New file.
12479         * config/sparc/t-sol2-64: New file.
12480         * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS.
12481         * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define.
12482         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC,
12483         CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define.
12484         (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those.
12485         (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC):
12486         Define.
12487         (STARTFILE_SPEC): Set appropriately based upon those.
12488         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon
12489         disposition of DEFAULT_ARCH32_P.
12490         (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define.
12491         (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those.
12492         (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P.
12493         (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH.
12494         * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on
12495         arch64/v9.
12496         * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise.
12497         
12498 Wed Sep 23 22:32:31 1998  Mark Mitchell  <mark@markmitchell.com>
12499
12500         * rtl.h (init_virtual_regs): New function.
12501         * emit-rtl.c (init_virtual_regs): Define.
12502         (insn_emit): Use it.
12503         * integrate.c (save_for_inline_copying): Likewise.
12504
12505 Wed Sep 23 16:22:01 1998  Nick Clifton  <nickc@cygnus.com>
12506
12507         * config/arm/thumb.h: The following patches were made by Jim Wilson:
12508         (enum reg_class): Add NONARG_LO_REGS support.
12509         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
12510         PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
12511         (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload
12512         completes.  Re-enable HImode REG+OFFSET addresses.
12513         (LEGITIMIZE_RELOAD_ADDRESS): Define.
12514
12515         * expmed.c (extract_bit_field): Add comment from Jim Wilson.
12516
12517 Wed Sep 23 13:26:02 1998  Richard Henderson  <rth@cygnus.com>
12518
12519         * alpha.c (get_aligned_mem): Revert Sep 20 change.
12520         (alpha_set_memflags, alpha_set_memflags_1): Likewise.
12521         (alpha_align_insns): Properly calculate initial offset wrt max_align.
12522
12523 Wed Sep 23 10:45:44 1998  Richard Earnshaw  (rearnsha@arm.com)
12524
12525         * arm.c (find_barrier): Revert change of Apr 23.  Handle table
12526         jumps as a single entity, taking into account the size of the
12527         table.
12528
12529 Tue Sep 22 15:13:34 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12530
12531         * tree.def (SWITCH_EXPR): New tree node definition.
12532
12533 Mon Sep 21 23:40:38 1998  Jeff Law  (law@cygnus.com)
12534
12535         * version.c: Bump for snapshot.
12536
12537 Mon Sep 21 22:31:14 1998  Jeff Law  (law@cygnus.com)
12538
12539         * version.c: Bump for snapshot.
12540
12541 Mon Sep 21 22:48:09 1998  Jeffrey A Law  (law@cygnus.com)
12542
12543         * configure.in: Recognize i[34567]86-*-openbsd* and handle it like
12544         NetBSD.
12545
12546 Mon Sep 21 22:05:28 1998  Jeffrey A Law  (law@cygnus.com)
12547
12548         * Revert this patch.
12549         * reload.c (find_reloads): Do not replace a pseudo with
12550         (MEM (reg_equiv_addr)) in the initializing insn for the
12551         pseudo.
12552
12553 Mon Sep 21 20:19:41 1998  John Carr  <jfc@mit.edu>
12554
12555         * final.c (final_scan_insn): Disable tracking CC across branches.
12556
12557 Mon Sep 21 17:15:26 1998  Andrew MacLeod  <amacleod@cygnus.com>
12558
12559         * expr.h (eh_rtime_match_libfunc): New extern declaration.
12560         * optabs.c (init_optabs): Set eh_rtime_match_libfunc.
12561         * except.c (start_catch_handler): Use eh_rtime_match_libfunc.
12562         * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
12563         NULL. Only include <stdio.h> if inhibit_libc is not defined.
12564
12565 Mon Sep 21 14:10:51 1998  Jason Merrill  <jason@yorick.cygnus.com>
12566
12567         * toplev.c (rest_of_compilation): Skip compiling anything with
12568         DECL_EXTERNAL set, not just if it has DECL_INLINE as well.
12569
12570 Mon Sep 21 13:51:05 1998  Jim Wilson  <wilson@cygnus.com>
12571
12572         * flow.c (find_basic_blocks): Delete check for in_libcall_block when
12573         prev_code is a CALL_INSN.  Change check for REG_RETVAL note to
12574         use in_libcall_block.
12575         (find_basic_blocks_1): Delete check for in_libcall_block when prev_code
12576         is a CALL_INSN.  If CALL_INSN and in_libcall_block, then change code
12577         to INSN.
12578
12579 Mon Sep 21 14:02:23 1998  Robert Lipe  <robertl@dgii.com>
12580
12581         * i386.h (TARGET_SWITCHES): Improve doc for align-double.  Fix
12582         typo in no-fancy-math-387 description.
12583
12584 Mon Sep 21 09:27:18 1998  Jeff Law  (law@cygnus.com)
12585
12586         * version.c: Bump for snapshot.
12587
12588 Mon Sep 21 09:24:49 1998  Stan Cox  <scox@cygnus.com>
12589
12590         * i386-coff.h (DBX_DEBUGGING_INFO): Added.
12591
12592 Mon Sep 21 09:14:49 1998  Robert Lipe  <robertl@dgii.com>
12593
12594         * i386.h (TARGET_SWITCHES): Add description fields for flags
12595         documented in install.texi.
12596         (TARGET_OPTIONS): Likewise.
12597
12598 Mon Sep 21 01:39:03 1998  Jeff Law  (law@cygnus.com)
12599
12600         * version.c: Bump for snapshot.
12601
12602 Mon Sep 21 01:53:05 1998  Felix Lee  <flee@cygnus.com>
12603
12604         * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
12605         * cccp.c (main): Likewise.
12606
12607         * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h:
12608         Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some
12609         macro-use bugs.
12610
12611 Mon Sep 21 00:52:12 1998  Per Bothner  <bothner@cygnus.com>
12612
12613         * Makefile.in (LIBS): Link in libiberty.a.
12614         * c-common.c, gcc.c, toplev.c: Replace (some) bcopy calls by memcpy.
12615
12616 Sun Sep 20 23:28:11 1998  Richard Henderson  <rth@cygnus.com>
12617
12618         * reload1.c (emit_reload_insns): Accept a new arg for the bb.  Use
12619         it to update bb boundaries.  Update caller.
12620         * function.c (reposition_prologue_and_epilogue_notes): Update
12621         bb boundaries wrt the moved note.
12622
12623 Sun Sep 20 20:57:02 1998  Robert Lipe  <robertl@dgii.com>
12624         
12625         * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder
12626         problems.
12627         * configure: Regenerate.
12628
12629 Sun Sep 20 19:01:51 1998  Richard Henderson  <rth@cygnus.com>
12630
12631         * alpha.c (alpha_sr_alias_set): New variable.
12632         (override_options): Set it.
12633         (alpha_expand_prologue, alpha_expand_epilogue): Use it.
12634         (mode_mask_operand): Fix signed-unsigned comparison warning.
12635         (alpha_expand_block_move): Likewise.
12636         (print_operand): Likewise.
12637         (get_aligned_mem): Use change_address.
12638         (alpha_set_memflags, alpha_set_memflags_1): Set the alias set.
12639         (alphaev4_insn_pipe, alphaev4_next_group): New functions.
12640         (alphaev4_next_nop, alphaev5_next_nop): New functions.
12641         (alpha_align_insns): Remade from old alphaev5_align_insns
12642         to handle multiple processors.
12643         (alpha_reorg): Call alpha_align_insns for both ev4 and ev5.
12644         * output.h (label_to_alignment): Prototype.
12645
12646         * tree.c (new_alias_set): New function.
12647         * tree.h (new_alias_set): Declare it.
12648         * c-common.c (c_get_alias_set): Use it.
12649
12650 Sun Sep 20 12:35:55 1998  Richard Henderson  <rth@cygnus.com>
12651
12652         * fold-const.c (fold): Yet another COND_EXPR bug: when folding
12653         to an ABS expr, convert an unsigned input to signed.
12654         
12655 Sun Sep 20 12:14:45 1998  Jeffrey A Law  (law@cygnus.com)
12656
12657         * fold-const.c (fold): Fix another type in COND_EXPR handling code.
12658
12659 1998-09-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12660
12661         * configure.in: Add support for c4x targets.
12662         * configure: Rebuilt.
12663
12664 Sun Sep 20 00:00:51 1998  Richard Henderson  <rth@cygnus.com>
12665
12666         * combine.c (distribute_notes): If an insn is a cc0 user, only
12667         delete it if we can also delete the cc0 setter.
12668
12669 Sun Sep 20 00:22:23 1998  Michael Tiemann  <michael@impact.tiemann.org>
12670
12671         * fold-const.c (fold): Fix typo in COND_EXPR handling code.
12672         (invert_truthvalue): Enable truthvalue inversion for
12673         floating-point operands if -ffast-math.
12674
12675 Sat Sep 19 23:58:07 1998  Melissa O'Neill  <oneill@cs.sfu.ca>
12676                         
12677         * configure.in: Disable collect2 for nextstep.  Instead use
12678         crtbegin/crtend.
12679         * configure: Rebuilt.
12680         * config/nextstep.h (STARTFILE_SPEC): Add crtbegin.
12681         (ENDFILE_SPEC): Define.
12682         (OBJECT_FORMAT_MACHO): Define.
12683         (EH_FRAME_SECTION_ASM_OP): Define.
12684         * crtstuff.c: Handle MACHO.
12685
12686 Sun Sep 20 00:24:24 1998  Robert Lipe  <robertl@dgii.com>
12687
12688         * config/i386/sco5.h (TARGET_MEM_FUNCTIONS): Define.
12689
12690 1998-09-19  Torbjorn Granlund  <tege@matematik.su.se>
12691
12692         * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0.
12693         (_fpadd_parts): Get sign right for 0.
12694
12695 1998-09-19  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12696
12697         * ginclude/varargs.h: Add support for C4x target.
12698         * ginclude/stdargs.h: Likewise.
12699
12700 Sat Sep 19 12:05:09 1998  Richard Henderson  <rth@cygnus.com>
12701
12702         * alpha.c (alpha_return_addr): SET should be VOIDmode.
12703         (alpha_emit_set_long_const): Rewrite to be callable from reload
12704         and 32-bit hosts.
12705         (alpha_expand_epilogue): Update for alpha_emit_set_long_const.
12706         * alpha.md (movdi): Likewise.
12707
12708 Sat Sep 19 07:33:36 1998  Richard Earnshaw  (rearnsha@arm.com)
12709
12710         * arm.c (add_constant): New parameter address_only, change caller.
12711         Set it non-zero if taking the address of an item in the pool.
12712         (arm_reorg): Handle cases where we need the address of an item in
12713         the pool.
12714
12715         * arm.c (bad_signed_byte_operand): Check both arms of a sum in
12716         a memory address.
12717         * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
12718         memory addresses that are not in standard canonical form.
12719
12720 Sat Sep 19 01:00:32 1998  Michael Hayes  (mph@elec.canterbury.ac.nz)
12721
12722         * README.C4X: New file with information about the c4x ports.
12723         * ginclude/va-c4x.h: New file for c4x varargs support.
12724         * config/c4x: New directory with c4x port files.
12725
12726 Fri Sep 18 22:52:05 1998  Jeffrey A Law  (law@cygnus.com)
12727
12728         * reload.c (find_reloads): Do not replace a pseudo with
12729         (MEM (reg_equiv_addr)) in the initializing insn for the
12730         pseudo.
12731
12732 Fri Sep 18 23:50:56 1998  David Edelsohn  <edelsohn@gnu.org>
12733
12734         * toplev.c (rest_of_compilation): Set bct_p on second call to
12735         loop_optimize.
12736         * loop.c (loop_optimize, scan_loop, strength_reduce): New argument
12737         bct_p.
12738         (strength_reduce): Only call analyze_loop_iterations and
12739         insert_bct if bct_p set.
12740         (check_dbra_loop): Fix typo.
12741         (insert_bct): Use word_mode instead of SImode.
12742         (instrument_loop_bct): Likewise.  Do not delete iteration count
12743         condition code generation insn.  Initialize iteration count before
12744         loop start.
12745         * rtl.h (loop_optimize): Update prototype.
12746
12747         * ginclude/va-ppc.h (va_arg): longlong types in overflow area are
12748         not doubleword aligned.
12749
12750         * rs6000.c (optimization_options): New function.
12751         (secondary_reload_class): Only call true_regnum for PSEUDO_REGs.
12752         * rs6000.h (OPTIMIZATION_OPTIONS): Define.
12753         (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters
12754         first; cr1 can be used for FP record condition insns.
12755
12756 Fri Sep 18 09:44:55 1998  Nick Clifton  <nickc@cygnus.com>
12757
12758         * config/m32r/m32r.h (m32r_block_immediate_operand): Add to
12759         PREDICATE_CODES.
12760
12761         * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal"
12762         patterns.
12763
12764         * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p'
12765         operators.
12766         (block_move_call): New function: Call a library routine to copy a
12767         block of memory.
12768         (m32r_expand_block_move): New function: Expand a "movstrsi"
12769         pattern into a sequence of insns.
12770         (m32r_output_block_move): New function: Expand a
12771         "movstrsi_internal" pattern into a sequence of assembler opcodes.
12772         (m32r_block_immediate_operand): New function: Return true if the
12773         RTL is an integer constant, less than or equal to MAX_MOVE_BYTES.
12774         
12775 Thu Sep 17 16:42:16 1998  Andrew MacLeod  <amacleod@cygnus.com>
12776
12777         * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
12778         re-align some code.
12779         * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
12780
12781 Thu Sep 17 12:24:33 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12782
12783         * regmove.c (copy_src_to_dest): Check that modes match.
12784
12785 Wed Sep 16 22:10:42 1998  Robert Lipe  <robertl@dgii.com>
12786
12787         * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF.
12788
12789 Wed Sep 16 15:24:54 1998  Richard Henderson  <rth@cygnus.com>
12790
12791         * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
12792         narrower than FLOAT_REGS.
12793
12794 Wed Sep 16 17:51:00 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
12795
12796         * cpplib.c: Removed OLD_GPLUSPLUS_INCLUDE_DIR.
12797         * cccp.c: Likewise.
12798         * Makefile.in (old_gxx_include_dir): Removed.
12799
12800 Wed Sep 16 12:29:22 1998  Nick Clifton  <nickc@cygnus.com>
12801
12802         * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match
12803         new specification.
12804
12805         * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma().
12806         (sh_handle_pragma): Change function arguments to match new
12807         specification for HANDLE_PRAGMA.
12808
12809 Wed Sep 16 12:43:19 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12810
12811         * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to
12812         `unsigned char'.
12813         (main): Mark parameter `argc' with ATTRIBUTE_UNUSED.
12814         When generating output, initialize missing struct member to zero.
12815
12816 Wed Sep 16 14:47:43 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12817
12818         * regmove.c (copy_src_to_dest): Don't copy if that requires
12819         (a) new register(s).
12820
12821 Wed Sep 16 01:29:12 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
12822
12823         * global.c (reg_allocno): Now static.
12824         * reload1.c (reg_allocno): Delete declaration.
12825         (order_regs_for_reload): Take no arguments.  Don't treat regs
12826         allocated by global differently than those allocated by local-alloc.
12827
12828 Wed Sep 16 01:09:01 1998  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
12829
12830         * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q
12831         condition, fix format strings.
12832         (output_function_epilogue): Likewise.
12833
12834         * m68k/m68k.c: Don't include <stdlib.h> directly.
12835
12836 Wed Sep 16 00:30:56 1998  Geoff Keating  <geoffk@ozemail.com.au>
12837
12838         * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
12839         mem_first_set, mem_last_set; because 0 can be a CUID.
12840         (oprs_unchanged_p): Use new definition.
12841         (record_last_reg_set_info): Likewise.
12842         (record_last_mem_set_info): Likewise.
12843         (compute_hash_table): Likewise.
12844
12845 Tue Sep 15 22:59:52 1998  Jeffrey A Law  (law@cygnus.com)
12846
12847         * rs6000.c (output_epilogue): Handle Chill.
12848
12849         * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
12850         * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
12851
12852         * combine.c (make_extraction): If no mode is specified for
12853         an operand of insv, extv, or extzv, default it to word_mode.
12854         (simplify_comparison): Similarly.
12855         * expmed.c (store_bit_field): Similarly.
12856         (extract_bit_field): Similarly.
12857         * function.c (fixup_var_regs_1): Similarly.
12858         * recog.c (validate_replace_rtx_1): Similarly.
12859         * mips.md (extv, extzv, insv expanders): Default modes for most
12860         operands.  Handle TARGET_64BIT.
12861         (movdi_uld, movdi_usd): New patterns.
12862
12863         * pa.c (emit_move_sequence): Do not replace a pseudo with its
12864         equivalent memory location unless we have been provided a scratch
12865         register.  Similarly do not call find_replacement unless a
12866         scratch register has been provided.
12867
12868 Tue Sep 15 19:23:01 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
12869
12870         * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
12871         return FLOAT_REGS.
12872
12873 Tue Sep 15 19:09:06 1998  Richard Henderson  <rth@cygnus.com>
12874
12875         * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
12876         (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
12877         (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
12878         (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
12879         * c-decl.c (init_decl_processing): Update accordingly.
12880         * expr.c (expand_builtin): Likewise.
12881
12882         * rtl.h (global_rtl): Add cfa entry.
12883         (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
12884         (LAST_VIRTUAL_REGISTER): Update.
12885         * emit-rtl.c (global_rtl): Add cfa entry.
12886         (init_emit): Initialize it.
12887         * function.c (cfa_offset): New.
12888         (instantiate_virtual_regs): Initialize it.
12889         (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
12890         (expand_function_end): Call expand_eh_return.
12891         * tm.texi (ARG_POINTER_CFA_OFFSET): New.
12892
12893         * except.c (current_function_eh_stub_label): Kill.
12894         (current_function_eh_old_stub_label): Likwise; update all references.
12895         (expand_builtin_set_return_addr_reg): Kill.
12896         (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
12897         (expand_builtin_set_eh_regs): Kill.
12898         (eh_regs): Produce a third reg for the actual handler address.
12899         (eh_return_context, eh_return_stack_adjust): New.
12900         (eh_return_handler, eh_return_stub_label): New.
12901         (init_eh_for_function): Initialize them.
12902         (expand_builtin_eh_return, expand_eh_return): New.
12903         * except.h: Update prototypes.
12904         * flow.c (find_basic_blocks_1): Update references to the stub label.
12905         * function.h (struct function): Kill stub label elements.
12906
12907         * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
12908         register number is one that would be in the previous window.
12909         Provide a dummy definition for non-windowed targets.
12910         (get_reg_addr): New function.
12911         (get_reg, put_reg, copy_reg): Use it.
12912         (__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
12913         generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
12914
12915         * alpha.c (alpha_eh_epilogue_sp_ofs): New.
12916         (alpha_init_expanders): Initialize it.
12917         (alpha_expand_epilogue): Use it.
12918         * alpha.h: Declare it.
12919         * alpha.md (eh_epilogue): New.
12920
12921         * m68h.h (ARG_POINTER_CFA_OFFSET): New.
12922         * sparc.h (ARG_POINTER_CFA_OFFSET): New.
12923
12924 Tue Sep 15 19:31:58 1998  Michael Meissner  <meissner@cygnus.com>
12925
12926         * i960.h (CONST_COSTS): Fix thinko.  Test flag, not the constant
12927         flag bit mask.
12928
12929 Tue Sep 15 14:10:54 1998  Andrew MacLeod  <amacleod@cygnus.com>
12930
12931         * except.h (struct eh_entry): Add false_label field.
12932         (end_catch_handler): Add prototype.
12933         * except.c (push_eh_entry): Set false_label field to NULL_RTX.
12934         (start_catch_handler): When using old style exceptions, issue
12935         runtime typematch code before continuing with the handler.
12936         (end_catch_handler): New function, generates label after handler
12937         if needed by older style exceptions.
12938         (expand_start_all_catch): No need to check for new style exceptions.
12939         (output_exception_table_entry): Only output the first handler label
12940         for old style exceptions.
12941         * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching
12942         mechanism into one function, if a runtime matcher is provided.
12943
12944 Tue Sep 15 13:53:59 1998  Andrew MacLeod  <amacleod@cygnus.com>
12945
12946         * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
12947
12948 Tue Sep 15 09:59:01 1998  Mark Mitchell  <mark@markmitchell.com>
12949
12950         * integrate.c (copy_decl_list): Fix typo.
12951
12952 Tue Sep 15 04:18:52 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12953
12954         * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length
12955         attribute.
12956
12957 Mon Sep 14 14:02:53 1998  Jeff Law  (law@cygnus.com)
12958
12959         * version.c: Bump for snapshot.
12960
12961 Mon Sep 14 10:33:56 1998  Jeff Law  (law@cygnus.com)
12962
12963         * version.c: Bump for snapshot.
12964
12965 Mon Sep 14 09:51:05 1998  Jeff Law  (law@cygnus.com)
12966
12967         * version.c: Bump for snapshot.
12968
12969 Sun Sep 13 22:10:18 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12970
12971         * invoke.texi (C Dialect Options): Put back missing @end itemize.
12972
12973 Mon Sep 14 02:33:46 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
12974
12975         * configure.in: Remove usage of `!' to negate the result of a
12976         command; some common shells do not support it.
12977
12978 Sun Sep 13 19:17:35 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12979
12980         * configure.in: In sparc9-sol2 config, use 'if test' not
12981         brackets.
12982         * configure: Rebuilt.
12983
12984         * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to
12985         CM_MEDANY.
12986         (CPP_CPU_SPEC): Do not define _LP64, header files do this.
12987         (CPP_CPU_DEFAULT_SPEC): Likewise.
12988         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right
12989         for arch64 libfuncs.
12990         
12991         * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode
12992         for operand zero.
12993
12994 Sun Sep 13 09:11:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12995
12996         * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub.
12997
12998         * collect2.c: Don't declare `sys_siglist' here.
12999         (my_strsignal): Prototype and define new function.  Use it in
13000         place of `sys_siglist' hacks.
13001
13002         * mips_tfile.c: Likewise.
13003
13004         * configure.in (AC_CHECK_FUNCS): Check for strsignal.
13005         (GCC_NEED_DECLARATIONS): Likewise.
13006
13007         * system.h (strsignal): Prototype it, if necessary.
13008         (sys_siglist): Declare it, if necessary.
13009
13010 Sun Sep 13 04:37:28 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13011
13012         * loop.c (move_movables): While removing insn sequences, preserve
13013         the next pointer of the most recently deleted insn when we skip
13014         over a NOTE.
13015
13016 Sun Sep 13 08:13:39 1998  Ben Elliston  <bje@cygnus.com>
13017
13018         * objc/config-lang.in: Do not output the name of the selected
13019         thread file when building the front-end.  The Makefile for the
13020         runtime library will do this.
13021
13022         * objc/Make-lang.in: Do not build the runtime library or install
13023         the Objective C header files.  The Makefile for the runtime
13024         library will do this.
13025
13026         * objc/Makefile.in (all.indirect): Only build the front-end.
13027         (compiler): Rename to `frontend'.
13028         (obj-runtime): Remove target.
13029         (copy-headers): Likewise.
13030         (clean): No need to remove `libobjc.a' any longer.
13031
13032 Sat Sep 12 11:37:19 1998  Michael Meissner  <meissner@cygnus.com>
13033
13034         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
13035         supported with -mcpu=xxx.
13036
13037 Fri Sep 11 23:55:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13038
13039         * flow.c (mark_set_1): Recognize multi-register structure return
13040         values in CALL insns.
13041         (mark_used_regs): Likewise.
13042         (count_reg_sets_1): Likewise.
13043         (count_reg_references): Likewise.
13044         * rtlanal.c (note_stores): Likewise.
13045         (reg_overlap_mentioned_p): Likewise.
13046         * haifa-sched.c (check_live_1): Likewise.
13047         (update_live_1): Likewise.
13048         (sched_analyze_1): Likewise.
13049         (sched_note_set): Likewise.
13050         (birthing_insn_p): Likewise.
13051         (attach_deaths): Likewise.
13052
13053         * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable.
13054
13055 Fri Sep 11 22:57:55 1998  Eric Dumazet  <dumazet@cosmosbay.com>
13056
13057         * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h.
13058
13059 Thu Sep 10 22:02:04 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13060
13061         * glimits.h (__LONG_MAX__): Recognize __sparcv9 too.
13062
13063 Thu Sep 10 21:19:10 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
13064
13065         * configure.in: Add check for GAS subsection -1 support.
13066         * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add.
13067         * configure config.in: Rebuilt.
13068         * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use
13069         SImode is subsection -1 works, else use DImode.
13070         (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if
13071         subsection -1 works.
13072         * config/sparc/sparc.c (sparc_output_addr_vec,
13073         sparc_output_addr_diff_vec): Use them if defined.
13074
13075 Thu Sep 10 10:46:01 1998  Mark Mitchell  <mark@markmitchell.com>
13076
13077         * tree.h (DECL_ORIGIN): New macro.
13078         * integrate.c (copy_and_set_decl_abstract_origin): New function.
13079         (copy_decl_list): Use it.
13080         (integrate_parm_decls): Likewise.
13081         (integrate_decl_tree): Likewise.
13082         * dwarf2out.c (decl_ultimate_origin): Simplify.
13083         * dwarfout.c (decl_ultimate_origin): Likewise.
13084         * c-decl.c (duplicate_decls): Use DECL_ORIGIN.
13085         (pushdecl): Likewise.
13086
13087 Thu Sep 10 08:01:31 1998  Anthony Green  <green@cygnus.com>
13088
13089         * config/rs6000/rs6000.c (output_epilog): Add Java support.
13090
13091 Thu Sep 10 14:48:59 1998  Martin von Löwis  <loewis@informatik.hu-berlin.de>
13092
13093         * invoke.texi (C++ Dialect Options): Document -fhonor-std.
13094
13095 Thu Sep 10 01:38:05 1998  Jeffrey A Law  (law@cygnus.com)
13096
13097         * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
13098         empty or has a single entry.
13099
13100         * toplev.c (rest_of_compilation): Open up the dump file for reg-stack
13101         before calling reg_to_stack.
13102
13103 Thu Sep 10 00:03:34 1998  Richard Henderson  <rth@cygnus.com>
13104
13105         * alpha.c (alphaev5_insn_pipe): Abort on default case.
13106         (alphaev5_next_group): Swallow CLOBBERs and USEs.
13107
13108         * c-tree.h (warn_long_long): Declare it.
13109
13110 Wed Sep  9 23:31:36 1998  (Stephen L Moshier)  <moshier@world.std.com>
13111
13112         * emit-rtl.c (gen_lowpart_common): Disable optimization of
13113         initialized float-int union if the value is a NaN.
13114
13115 Wed Sep  9 23:00:48 1998  Nathan Sidwell  <nathan@acm.org>
13116
13117         * c-lex.c (real_yylex): Don't warn about long long constants if
13118         we're allowing long long
13119
13120 Wed Sep  9 21:58:41 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
13121
13122         * except.h (current_function_eh_stub_label): Declare.
13123         (current_function_eh_old_stub_label): Declare.
13124         * function.h (struct function): New members eh_stub_label and
13125         eh_old_stub_label.
13126         * except.c (current_function_eh_stub_label): New variable.
13127         (current_function_eh_old_stub_label): New variable.
13128         (init_eh_for_function): Clear them.
13129         (save_eh_status): Save them.
13130         (restore_eh_status): Restore them.
13131         (expand_builtin_eh_stub): Set current_function_eh_stub_label.
13132         (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label.
13133         * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't
13134         make an edge from the block that contains it to the block starting
13135         with the label if this label is one of the eh stub labels.
13136         If eh stub labels exist, show they are reachable from the last block
13137         in the function.
13138
13139         * reload1.c (reload): Break out several subroutines and make some
13140         variables global.
13141         (calculate_needs_all_insns): New function, broken out of reload.
13142         (calculate_needs): Likewise.
13143         (find_reload_regs): Likewise.
13144         (find_group): Likewise.
13145         (find_tworeg_group): Likewise.
13146         (something_needs_reloads): New global variable, formerly in reload.
13147         (something_needs_elimination): Likewise.
13148         (caller_save_spill_class): Likewise.
13149         (caller_save_group_size): Likewise.
13150         (max_needs): Likewise.
13151         (group_size): Likewise.
13152         (max_groups): Likewise.
13153         (max_nongroups): Likewise.
13154         (group_mode): Likewise.
13155         (max_needs_insn): Likewise.
13156         (max_groups_insn): Likewise.
13157         (max_nongroups_insn): Likewise.
13158         (failure): Likewise.
13159
13160         * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET.
13161
13162 Wed Sep  9 13:14:41 1998  Richard Henderson  <rth@cygnus.com>
13163
13164         * loop.c (load_mems): Copy rtx for output mem.
13165
13166 Wed Sep  9 15:16:58 1998  Gavin Romig-Koch  <gavin@cygnus.com>
13167
13168         * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for
13169         mips1 or mips2 either.
13170
13171 Wed Sep  9 12:31:35 1998  Jeffrey A Law  (law@cygnus.com)
13172
13173         * pa.c (pa_reorg): New marking scheme for jumps inside switch
13174         tables.
13175         (pa_adjust_insn_length): Update to work with new marking scheme
13176         for jumps inside switch tables.
13177         * pa.md (switch_jump): Remove pattern.
13178         (jump): Handle jumps inside jump tables.
13179
13180         * Makefile.in (profile.o): Depend on insn-config.h
13181
13182 Wed Sep  9 09:36:51 1998  Jim Wilson  <wilson@cygnus.com>
13183
13184         * iris6.h (DWARF2_UNWIND_INFO): Undef.
13185
13186 Wed Sep  9 01:32:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13187
13188         Add preliminary native sparcv9 Solaris support.
13189         * configure.in: Recognize sparv9-*-solaris2*
13190         * configure: Rebuilt.
13191         * config.sub: Recognize sparcv9 just like sparc64.
13192         * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm
13193         config/sparc/sol2-cn.asm: Macroize so it can be shared between
13194         32-bit and 64-bit Solaris systems.
13195         * config/sparc/t-sol2: Assemble those with cpp.
13196         * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9.
13197         (*TF*_LIBCALL): If ARCH64 use V9 names.
13198         * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files.
13199
13200 Wed Sep  9 01:07:30 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
13201
13202         * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation.
13203         (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and
13204         not doing pic.
13205         (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not
13206         Pmode.
13207         * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0
13208         to Pmode if CASE_VECTOR_MODE is something else.
13209
13210 Wed Sep  9 00:10:31 1998  Jeffrey A Law  (law@cygnus.com)
13211
13212         * prefix.c (update_path): Correctly handle cases where PATH is
13213         a substring of the builtin prefix, but specifies a different
13214         directory location.
13215
13216 Tue Sep  8 23:46:04 1998  Hans-Peter Nilsson  <hp@axis.se>
13217
13218         * expr.c: Corrected comment about what MOVE_RATIO does.
13219         * config/alpha/alpha.h: Likewise.
13220         * config/1750a/1750a.h: Likewise.
13221         * config/clipper/clipper.h: Likewise.
13222         * config/i386/i386.h: Likewise.
13223
13224 Tue Sep  8 22:56:12 1998  Jeffrey A Law  (law@cygnus.com)
13225
13226         * configure.in (m68k-next-nextstep3*): Use collect2.
13227         Similarly for x86 NeXT configurations.
13228         * configure: Rebuilt.
13229
13230 Tue Sep  8 01:38:57 1998  Nathan Sidwell  <nathan@acm.org>
13231
13232         * configure.in: Don't assume srcdir is .../gcc.
13233         * configure: Rebuilt.
13234
13235 Sat Sep  5 16:34:34 1998  John Wehle  (john@feith.com)
13236
13237         * global.c: Update comments.
13238         (global_alloc): Assign allocation-numbers
13239         even for registers allocated by local_alloc in case
13240         they are later spilled and retry_global_alloc is called.
13241         (mark_reg_store, mark_reg_clobber,
13242         mark_reg_conflicts, mark_reg_death): Always record a
13243         conflict with a pseudo register even if it has been
13244         assigned to a hard register.
13245         (dump_conflicts): Don't list pseudo registers already assigned to
13246         a hard register as needing to be allocated, but do list their
13247         conflicts.
13248         * local-alloc.c: Update comment.
13249
13250 Mon Sep  7 23:38:01 1998  Jeffrey A Law  (law@cygnus.com)
13251
13252         * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH.
13253         * configure: Rebuilt.
13254
13255 Mon Sep  7 22:41:46 1998  Michael Meissner  <meissner@cygnus.com>
13256
13257         * rs6000.c (rs6000_override_options): Fix name for ec603e, to add
13258         missing 'c'.
13259         * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx
13260         for all targets that set -msoft-float.
13261
13262 Mon Sep  7 23:30:07 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13263
13264         * toplev.c (print_switch_values): Make static to match prototype.
13265
13266 Mon Sep  7 19:13:59 1998  Jeffrey A Law  (law@cygnus.com)
13267
13268         * configure.in: If we are unable to find the "gnatbind" program,
13269         then do not configure the ada subdir.
13270         * configure: Rebuilt.
13271
13272 Sun Sep  6 14:03:58 1998  Jeff Law  (law@cygnus.com)
13273
13274         * version.c: Bump for snapshot.
13275
13276 Sun Sep  6 13:28:07 1998  Jeff Law  (law@cygnus.com)
13277
13278         * version.c: Bump for snapshot.
13279
13280 Sun Sep  6 08:54:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13281
13282         * Makefile.in (toplev.o): Depend on $(EXPR_H).
13283         (insn-extract.o, insn-attrtab.o): Depend on toplev.h.
13284
13285         * gansidecl.h: Define ATTRIBUTE_NORETURN.
13286
13287         * genattrtab.c: Have insn-attrtab.c include toplev.h.
13288
13289         * genextract.c: Have insn-extract.c include toplev.h.
13290
13291         * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'.
13292
13293         * toplev.c: Include expr.h.
13294         (really_sorry, fancy_abort): Remove prototypes.
13295         (set_target_switch): Add argument in prototype.
13296         (vfatal): Mark prototype with ATTRIBUTE_NORETURN.
13297         (v_really_sorry): Likewise.
13298         (print_version, print_single_switch, print_switch_values): Make
13299         static and add prototype arguments.
13300         (decl_printable_name): Add prototype arguments.
13301         (lang_expand_expr_t): New typedef.
13302         (lang_expand_expr): Declare as a lang_expand_expr_t.
13303         (incomplete_decl_finalize_hook): Add prototype argument.
13304         (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED.
13305         (botch): Likewise for variable `s'.
13306         (rest_of_type_compilation): Mark variables `type' and `toplev'
13307         with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO,
13308         XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined.
13309         (display_help): Make variable `i' an `unsigned long'.
13310         (main): Remove unused parameter `envp'.
13311         Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'.
13312         Cast -1 when comparing it with a `size_t'.
13313
13314         * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark
13315         prototype with ATTRIBUTE_NORETURN.
13316         (fatal_insn_not_found, fatal_insn, really_sorry,
13317         push_float_handler, pop_float_handler): Add prototypes.
13318         (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN.
13319         (do_abort, botch): Add prototypes.
13320         
13321 Sat Sep  6 12:05:18 1998  John Carr  <jfc@mit.edu>
13322
13323         * final.c (final): If a label is reached only from a single jump,
13324         call NOTICE_UPDATE_CC on the jump and its predecessor before
13325         emitting the insn after the label.
13326         
13327         * i386.h: Add AMD K6 support.
13328         Change TARGET_* macros to use table lookup.
13329         (INITIALIZE_TRAMPOLINE): Improve trampoline code.
13330         (ADJUST_COST): Change definition to call function in i386.c.
13331         (ISSUE_RATE): Define as 2 for anything newer than an 80486.
13332         * i386.c: Add AMD K6 support.
13333         Add constants for feature tests used by TARGET_* macros.
13334         (split_di): If before reload, call gen_lowpart and gen_highpart.
13335         (x86_adjust_cost): New function.
13336         (put_jump_code): New function.
13337         (print_operand): New codes 'D' and 'd'.
13338         * i386.md: New insn types.  New insn attribute "memory".
13339         Redefine scheduling parameters to use new types and add AMD K6
13340         support.  Explicitly set type of most insns.
13341         (move insns): K6 prefers movl $0,reg to xorl reg,reg.  Pentium
13342         Pro and K6 prefer movl $1,reg to incl reg.
13343         (adddi3, subdi3): Set cc_status.
13344         (DImode shift patterns): Change label counters from HOST_WIDE_INT
13345         to int; x86 can't have more than 2^31 DImode shifts per file.
13346         (setcc): Combine all setcc patterns.  Allow writing memory.
13347         Combine all jump patterns using match_operator.
13348         (*bzero): Name pattern.  Emit multiple stos instructions when that
13349         is faster than rep stos.
13350         (xordi3, anddi3, iordi3): Simplify DImode logical patterns and
13351         add define_split.
13352
13353 Sun Sep  6 11:17:20 1998  Dave Love  <d.love@dl.ac.uk>
13354
13355         * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771
13356         linking.
13357
13358 Sat Sep  5 22:05:25 1998  Richard Henderson  <rth@cygnus.com>
13359
13360         * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
13361         not whatever we're generating now.
13362
13363         * alpha.c (set_frame_related_p, FRP): New.
13364         (alpha_expand_prologue): Mark frame related insns.
13365         (alpha_expand_epilogue): Likewise, but with a null FRP.
13366         * alpha.h (INCOMING_RETURN_ADDR_RTX): New.
13367         * alpha.md (exception_receiver): New.
13368         * alpha/crtbegin.asm (.eh_frame): New beginning.
13369         (__do_frame_setup, __do_frame_takedown): New.
13370         * alpha/crtend.asm (.eh_frame): New ending.
13371         * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define.
13372         (ASM_SPEC): Don't emit both dwarf2 and mdebug.
13373         (ASM_FILE_START): Don't emit .file for dwarf2.
13374
13375         * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
13376         * rtl.c (reg_note_name): Likewise.
13377         * rtl.texi (REG_NOTES): Likewise.
13378         * dwarf2out.c (dwarf2out_frame_debug): Use it.  Recognize a store
13379         without an offset.
13380
13381 Sat Sep  5 14:47:17 1998  Richard Henderson  <rth@cygnus.com>
13382
13383         * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS.
13384         * i386.md (movsf, movdf, movxf): Validate memory address returned
13385         from force_const_mem.  Kill useless REG_EQUAL setting code.
13386
13387 Sat Sep  5 14:23:31 1998  Torbjorn Granlund  <tege@matematik.su.se>
13388
13389         * m68k.md (zero_extendsidi2): Fix typo.
13390
13391 Sat Sep  5 13:40:24 1998  Krister Walfridsson  <cato@df.lth.se>
13392
13393         * configure.in: Removed references to the removed file.
13394         * config/xm-netbsd.h: Use ${cpu_type}/xm-netbsd.h for
13395         arm*-*-netbsd* and ns32k-*-netbsd*.
13396         * config/i386/xm-netbsd.h: Removed unnecessary file.
13397         * config/m68k/xm-netbsd.h: Likewise.
13398         * config/sparc/xm-netbsd.h: Likewise.
13399         * config/mips/xm-netbsd.h: Likewise.
13400
13401 Sat Aug 29 13:32:58 1998  Mumit Khan  <khan@xraylith.wisc.edu>
13402
13403         * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define.
13404         (PCC_BITFIELD_TYPE_MATTERS): Define to be 0.
13405
13406         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
13407         for exact section attributions.
13408
13409         * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
13410         runtime.
13411         * i386/crtdll.h (CPP_PREDEFINES): Define.
13412
13413 Sat Sep  5 03:23:05 1998  Jeffrey A Law  (law@cygnus.com)
13414
13415         * m68k.md (5200 movqi): Do not allow byte sized memory references
13416         using address regs.
13417         * m68k.c (output_move_qimode): Do not use byte sized operations on
13418         address registers.
13419
13420         * Makefile.in (pexecute.o): Use pexecute.c from libiberty.  Provide
13421         explicit rules for building.  Similarly for alloca, vfprintf,
13422         choose-temp and mkstemp, getopt, getopt1, and obstack.
13423         (INCLUDES): Add $(srcdir)/../include.
13424         * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete.
13425         * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise.
13426
13427 Fri Sep  4 11:57:50 1998  Tom Tromey  <tromey@cygnus.com>
13428
13429         * gcc.c (do_spec_1): [case 'o'] Account for
13430         lang_specific_extra_outfiles.
13431         (main): Correctly clear all slots in outfiles for
13432         lang_specific_extra_outfiles.  Set input_file_number before
13433         calling lang_specific_pre_link.
13434
13435 Fri Sep  4 10:37:07 1998  Jim Wilson  <wilson@cygnus.com>
13436
13437         * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
13438
13439 Fri Sep  4 02:01:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13440
13441         * config/sparc/sparc.c (output_double_int): In all V9 symbolic
13442         cases, use xword.
13443         (sparc_output_deferred_case_vectors): If no work to do, return.
13444         Fix thinko in Sept 1 change.
13445
13446 1998-09-03  SL Baur  <steve@altair.xemacs.org>
13447
13448         * Makefile.in: Add semicolon in BISON definition for portability.
13449
13450 Thu Sep  3 13:34:41 1998  Toon Moene  <toon@moene.indiv.nluug.nl>
13451
13452         * config/nextstep.c (handle_pragma): Correct name of third
13453         argument.
13454
13455 Tue Sep  1 11:30:33 1998  Nick Clifton  <nickc@cygnus.com>
13456
13457         * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17).
13458         * config/m32r/m32r.h: Make register 17 be fixed.
13459         * config/m32r/m32r.c: Use SImode for cc operations.
13460
13461 Thu Sep  3 18:17:34 1998  Benjamin Kosnik  <bkoz@cygnus.com>
13462
13463         * invoke.texi (Warning Options): Add -Wnon-template-friend
13464         documentation.
13465
13466 Thu Sep  3 18:16:16 1998  Michael Meissner  <meissner@cygnus.com>
13467
13468         * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}.
13469
13470 Thu Sep  3 18:05:16 1998  David Edelsohn  <edelsohn@gnu.org>
13471
13472         * rs6000.md (movsf): Disable explicit secondary-reload-like
13473         functionality if TARGET_POWERPC64.
13474         (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
13475         functionality.
13476
13477 Thu Sep  3 11:41:40 1998  Robert Lipe  <robertl@dgii.com>
13478
13479         * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
13480         and term.h from fixinc.wrap.
13481
13482 Thu Sep  3 09:47:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13483
13484         * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is
13485         safe to include both string.h and strings.h together.
13486         (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding
13487         which headers to search for function declarations.  Continue to
13488         prefer string.h over strings.h when both are not acceptable.
13489
13490         * acconfig.h (STRING_WITH_STRINGS): Add stub.
13491
13492         * configure.in: Call GCC_HEADER_STRING.
13493
13494         * system.h: Test STRING_WITH_STRINGS when deciding which headers
13495         to include.  Continue to prefer string.h over strings.h when both
13496         are not acceptable.
13497
13498 Wed Sep  2 23:56:29 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13499
13500         * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do
13501         not assume top 32-bits of symbolic addresses are zero if
13502         flag_pic.
13503
13504 Thu Sep  3 00:23:21 1998  Richard Henderson  <rth@cygnus.com>
13505
13506         * ginclude/va-alpha.h: Protect entire second portion of the
13507         file against double inclusion.
13508
13509 Thu Sep  3 00:37:55 1998  Ovidiu Predescu  <ovidiu@aracnet.com>
13510
13511         Added support for the Boehm's garbage collector.
13512         * configure.in: Handle --enable-objc-gc.
13513         * configure: Rebuilt.
13514         * Makefile.in (CHECK_TARGETS): Add check-objc.
13515         (check-objc): New rule.
13516         * objc/Make-lang.in: Build a different Objective-C library that
13517         runs with the Boehm's collector.
13518         * objc/encoding.c (objc_round_acc_size_for_types): New function.
13519         * objc/encoding.c: Correctly compute the size of compound types in
13520         the presence of bitfields. Skip the variable name of the type if
13521         any. Added support for long long.
13522         * objc/encoding.h (_C_GCINVISIBLE): New specifier.
13523         (_F_GCINVISIBLE): New mask.
13524         * objc/gc.c: New file. Compute the type memory mask associated with
13525         a class based on the runtime information.
13526         * objc/misc.c: Added the hooks that use the Boehm's collector
13527         allocation functions.
13528         * objc/objc-act.c (build_class_template): Generate a new class
13529         member (gc_object_type) to hold the class' type memory mask.
13530         (build_shared_structure_initializer): Initialize the new member to
13531         NULL.
13532         (encode_complete_bitfield): New function. Generate the new
13533         encoding.
13534         (encode_field_decl): Generate the new encoding only for the GNU
13535         runtime.
13536         * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the
13537         long long types.
13538         (class_get_gc_object_type): New function to mark a pointer instance
13539         variable as a weak pointer.
13540         * objc/objc-features.texi: New file.
13541         * objc/objc.h (gc_object_type): New class member.
13542         * objc/objects.c (class_create_instance): Create a typed memory
13543         object when compiled with Boehm's collector support.
13544         * objc/sendmsg.c (__objc_init_install_dtable): Call
13545         __objc_send_initialize instead of setting the initialize flag.
13546         (__objc_send_initialize): Call __objc_generate_gc_type_description
13547         to generate the class type memory mask. Rewrite the code that
13548         sends the +initialize so that it is called only once (bug report
13549         and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>).
13550         * testsuite/objc: New testsuite for Objective-C type encoding.
13551         * testsuite/lib/objc-torture.exp: New file.
13552         * testsuite/lib/objc.exp: New file.
13553
13554 Wed Sep  2 14:47:36 1998  Jim Wilson  <wilson@cygnus.com>
13555
13556         * jump.c (jump_optimize): In if/then/else transformations, add
13557         another call to modified_between_p for the jump insn.
13558
13559 Wed Sep  2 14:16:49 1998  Jeffrey A Law  (law@cygnus.com)
13560
13561         * fix-header.c (symlink): Treat like readlink.
13562
13563 Wed Sep  2 19:30:06 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
13564
13565         * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles
13566         as FT_float.
13567
13568 Wed Sep  2 10:06:07 1998  Nick Clifton  <nickc@cygnus.com>
13569
13570         * config/nextstep.h:    Update HANDLE_PRAGMA macro.
13571         * config/h8300/h8300.h: Update HANDLE_PRAGMA macro.
13572         * config/i960/i960.h:   Update HANDLE_PRAGMA macro.
13573         
13574         * config/nextstep.c (handle_pragma): Take three arguments, as per
13575         the new HANDLE_PRAGMA macro specification.
13576         * config/h8300/h8300.c (handle_pragma): Take three arguments, as
13577         per the new HANDLE_PRAGMA macro specification.
13578         * config/i960/i960.c (process_pragma): Take three arguments, as
13579         per the new HANDLE_PRAGMA macro specification.
13580
13581 Wed Sep  2 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
13582
13583         * c-lex.c (check_newline): Call HANDLE_PRAGMA before
13584         HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
13585         if unknown pragmas are encountered.
13586         (handle_sysv_pragma): Interpret return code from
13587         handle_pragma_token ().  Return success/failure indication rather
13588         than next unprocessed character.
13589         (pragma_getc): New function: retrieves characters from the
13590         input stream.  Defined when HANDLE_PRAGMA is enabled.
13591         (pragma_ungetc): New function: replaces characters back into the
13592         input stream.  Defined when HANDLE_PRAGMA is enabled.
13593         
13594         * c-pragma.c (handle_pragma_token): Return success/failure status
13595         of the parse.
13596         
13597         * c-pragma.h: Change prototype of handle_pragma_token().
13598
13599         * varasm.c (handle_pragma_weak): Only create this function if
13600         HANDLE_PRAGMA_WEAK is defined.
13601
13602         * c-common,c (decl_attributes): If defined call the expression
13603         contained within the INSERT_ATTRIBUTES macro before adding
13604         attributes to a decl.
13605
13606         * tm.texi (HANDLE_PRAGMA): Document the new version of
13607         HANDLE_PRAGMA, which takes three arguments.
13608         (INSERT_ATTRIBUTES): Document this new macro.
13609
13610         * LANGUAGES: Document the new version of HANDLE_PRAGMA and the
13611         new INSERT_ATTRIBUTES macro.
13612
13613 Wed Sep  2 02:03:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13614
13615         * config/sparc/sparc.md (movdf): Only generate special RTL for
13616         LABEL_REFs when PIC.
13617         (move_label_di): Remove.
13618         (movdi_pic_label_ref, movdi_high_pic_label_ref,
13619         movdi_lo_sum_pic_label_ref): New patterns for 64-bit label
13620         references when PIC.
13621         * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT,
13622         ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW,
13623         output an .xword for all 64-bit cases.
13624         
13625 Tue Sep  1 15:55:17 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13626
13627         * config/sparc/sparc.c (finalize_pic): Don't output arbitrary
13628         alignment, use FUNCTION_BOUNDARY instead.
13629         (sparc_output_deferred_case_vectors): Likewise.
13630
13631 Mon Aug 31 17:25:41 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13632
13633         * config/sparc/sparc.md (movsf_const_intreg): Kill warning.
13634         (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives.
13635
13636 Mon Aug 31 13:57:55 1998  Richard Henderson  <rth@cygnus.com>
13637
13638         * alpha/va_list.h: New file.
13639         * alpha/x-alpha (EXTRA_HEADERS): New.  Add va_list.h.
13640
13641 Mon Aug 31 14:55:02 1998  Jeffrey A Law  (law@cygnus.com)
13642
13643         * NEWS: Add SCO Openserver and Unixware 7 notes.
13644
13645         * NEWS: Fix typos.
13646
13647 Mon Aug 31 15:42:18 1998  Dave Brolley  <brolley@cygnus.com>
13648
13649         * varasm.c (compare_constant_1): Handle RANGE_EXPR.
13650         (record_constant_1): Handle RANGE_EXPR.
13651
13652 Mon Aug 31 10:54:03 1998  Richard Henderson  <rth@cygnus.com>
13653
13654         * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap.
13655         * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START
13656         and NOTE_INSN_RANGE_END specially.
13657         (reemit_notes): Likewise.
13658
13659 Mon Aug 31 10:18:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13660
13661         * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'.
13662         (ultrasparc_sched_init): Remove unneeded &.
13663
13664 Mon Aug 31 10:47:16 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
13665
13666         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040
13667         for m68020-60, to prevent the use of fintrz.
13668
13669 Sun Aug 30 22:17:20 1998  Mark Mitchell  <mark@markmitchell.com>
13670
13671         * configure.in: If the native compiler is GCC use $(WARN_CFLAGS)
13672         even in stage1.
13673         * Makefile.in: Likewise.
13674         * configure: Regenerated.
13675
13676 Sun Aug 30 22:15:41 1998  H.J. Lu  (hjl@gnu.org)
13677
13678         * configure.in (gxx_include_dir): Changed to
13679         '${prefix}/include/g++'-${libstdcxx_interface}.
13680         * configure: Rebuilt.
13681
13682 Sun Aug 30 20:19:43 1998  Hans-Peter Nilsson  <hp@axis.se>
13683
13684         * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use
13685         consistent.
13686         * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move
13687         *sequences* *below* which scalar moves will be used.
13688
13689 Sun Aug 30 17:18:43 1998  Jeffrey A Law  (law@cygnus.com)
13690
13691         * collect2.c (mktemp): Delete unused declaration.
13692
13693         * config/xm-netbsd.h: Remove unnecessary file.
13694         * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h
13695         file anymore, it is not needed.
13696
13697 Sun Aug 30 16:05:45 1998  Mark Mitchell  <mark@markmitchell.com>
13698
13699         * convert.c (convert_to_integer): Issue an error on conversions to
13700         incomplete types.
13701
13702 Sun Aug 30 16:47:20 1998  Martin von Lvwis  <loewis@informatik.hu-berlin.de>
13703
13704         * Makefile.in: Add lang_tree_files and gencheck.h.
13705         * configure.in: Generate them.
13706         * gencheck.c: Include gencheck.h.
13707
13708 Sat Aug 29 21:38:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13709
13710         * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to
13711         movdi_lo_sum_pic and movdi_high_pic and make visible.
13712         * config/sparc/sparc.c (legitimize_pic_address): For -fPIC,
13713         emit these when Pmode is not SImode.
13714         * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW.
13715
13716 Sat Aug 29 14:59:32 1998  Mumit Khan  <khan@xraylith.wisc.edu>
13717
13718         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
13719         .linkonce directive after the first time.
13720
13721 Sat Aug 29 12:39:56 1998  Jeffrey A Law  (law@cygnus.com)
13722
13723         * m68k.md (beq0_di): Generate correct (and more efficient) code when
13724         the clobbered operand overlaps with an input.
13725         (bne0_di): Similarly.
13726
13727         * Makefile.in (INSTALL): Remove "--no-header" argument.
13728
13729         * NEWS: Various updates.
13730
13731 Fri Aug 28 19:00:44 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13732
13733         * config/sparc/sparc.c (arith_operand, const64_operand,
13734         const64_high_operand, arith_double_4096_operand): Mark mode as
13735         unused.
13736         (create_simple_focus_bits): Remove unused arg highest_bit_set, all
13737         callers changed.
13738         (sparc_emit_set_const64): Remove unused variable i.
13739         (sparc_splitdi_legitimate): Likewise for addr_part.
13740         (ultra_code_from_mask): Likewise for mask.
13741         (ultra_cmove_results_ready_p): Fixup entry modulo calc. and
13742         reverse return values so it matches usage and comments.
13743         (ultra_flush_pipeline): Likewise.
13744         (ultra_fpmode_conflict_exists): Likewise, remove unused variable
13745         this_type, and allow loads and stores of differing FP modes as
13746         they do not create a conflict.
13747         (ultra_find_type): Initialize fpmode to SFmode, fix
13748         parenthesization thinkos in large conditional.
13749         (ultrasparc_sched_init): Mark dump and sched_verbose as unused.
13750         Init free_slot_mask after ultra_cur_hist is reset, not before.
13751         (ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
13752         (ultrasparc_sched_reorder): Don't bzero current pipeline state,
13753         use ultra_flush_pipeline instead, then re-init group pointer.
13754         Fix statement with no effect.  If no progress made in, and no
13755         instructions scheduled at all, advance to new pipeline cycle else
13756         we get into an endless loop.
13757         (ultrasparc_adjust_cost): Remove previous arg.
13758         * config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
13759         
13760 Fri Aug 28 13:52:35 1998  Jim Wilson  <wilson@cygnus.com>
13761
13762         * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
13763         code.  Use reg_overlap_mentioned_p to detect when source and
13764         destination overlap.
13765         (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.
13766
13767 1998-08-28  Brendan Kehoe  <brendan@cygnus.com>
13768
13769         * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not
13770         COMPARISON_VAL, into invariant_p.
13771
13772 Fri Aug 28 15:13:25 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
13773
13774         * regmove.c (regclass_compatible_p): New function.
13775         (regmove_optimize): Use it.
13776
13777         Use NREGS parameter instead of calling max_reg_num.
13778
13779         (fixup_match_1): Don't use code = MINUS when later tieing with
13780         a hard register is likely.
13781
13782 Fri Aug 28 14:54:07 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
13783
13784         * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when
13785         COMPARISON_VAL was normalized.
13786
13787 Thu Aug 27 20:10:46 1998  Jeffrey A Law  (law@cygnus.com)
13788
13789         * loop.c (check_dbra_loop): The loop ending comparison value
13790         must be an invariant or we can not reverse the loop.
13791
13792         * loop.c (scan_loop): Count down from max_reg_num - 1 to
13793         FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
13794         of the loop.
13795         (load_mems_and_recount_loop_regs_set): Likewise.
13796
13797         * i386.c (print_operand): Remove obsolete 'c' docs.
13798
13799 Wed Aug 26 17:13:37 1998  Tom Tromey  <tromey@cygnus.com>
13800
13801         * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
13802         * frame.c (init_object_mutex): New function.
13803         (init_object_mutex_once): Likewise.
13804         (find_fde): Call it.
13805         (__register_frame_info): Likewise.
13806         (__register_frame_info_table): Likewise.
13807         (__deregister_frame_info): Likewise.
13808
13809 Thu Aug 27 15:14:18 1998  Jeffrey A Law  (law@cygnus.com)
13810
13811         * haifa-sched.c (sched_analyze_insn): Fix thinko in last change.
13812
13813 Thu Aug 27 16:34:51 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
13814
13815         * loop.c (check_dbra_loop): Enable code for reversal
13816         of some loops without a known constant loop end.
13817
13818 Wed Aug 26 18:38:15 1998  Richard Henderson  <rth@cygnus.com>
13819
13820         * haifa-sched.c (last_clock_var): New.
13821         (schedule_block): Initialize it.
13822         (schedule_insn): Use it to fill insn modes with issue information.
13823
13824         * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
13825         Tag trapb and next insn with TImode.
13826         (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
13827         (alpha_reorg): Add conditional for alpha_handle_trap_shadows.
13828         Invoke alphaev5_align_insns as appropriate.
13829         * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
13830         (MD_SCHED_VARIABLE_ISSUE): New.
13831         * alpha.md (attr type): Add multi.
13832         (define_asm_attributes): New.
13833         (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
13834         (arg_home): Likewise.
13835         (fnop, unop, realign): New.
13836
13837 Wed Aug 26 15:55:41 1998  Jim Wilson  <wilson@cygnus.com>
13838
13839         * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef.
13840         * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13841
13842         * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
13843         (rs6000-ibm-aix4.[12]*): Likewise.
13844         * configure: Regenerate.
13845
13846 Wed Aug 26 09:30:59 1998  Nick Clifton  <nickc@cygnus.com>
13847
13848         * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
13849         already contains the return address.
13850
13851 Wed Aug 26 12:57:09 1998  Jeffrey A Law  (law@cygnus.com)
13852
13853         * calls.c (expand_call): Use bitfield instructions to extract/deposit
13854         word sized hunks when loading unaligned args into registers.
13855
13856         * haifa-sched.c (sched_analyze_insn): Only create scheduling
13857         barriers for LOOP, EH and SETJMP notes on the loop_notes list.
13858
13859         * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.
13860
13861 Wed Aug 26 16:35:37 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
13862
13863         * loop.c (check_dbra_loop): Add some code that would allow reversal
13864         of some loops without a known constant loop end if it were enabled.
13865
13866 Wed Aug 26 11:08:44 1998  Gavin Romig-Koch  <gavin@cygnus.com>
13867
13868         * mips.md (lshrsi3_internal2+2): Fix type-o.
13869
13870 Wed Aug 26 10:53:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13871
13872         * system.h: Include stdarg.h/varargs.h, make sure they are ordered
13873         correctly with regards to stdio.h.
13874         
13875         * calls.c: Remove stdarg.h/varargs.h.
13876         * cccp.c: Likewise.
13877         * cexp.y: Likewise.
13878         * combine.c: Likewise.
13879         * cpperror.c: Likewise.
13880         * cpplib.c: Likewise.
13881         * cpplib.h: Likewise.
13882         * doprint.c: Likewise.
13883         * emit-rtl.c: Likewise.
13884         * final.c: Likewise.
13885         * fix-header.c: Likewise.
13886         * gcc.c: Likewise.
13887         * genattr.c: Likewise.
13888         * genattrtab.c: Likewise.
13889         * gencodes.c: Likewise.
13890         * genconfig.c: Likewise.
13891         * genemit.c: Likewise.
13892         * genextract.c: Likewise.
13893         * genflags.c: Likewise.
13894         * genopinit.c: Likewise.
13895         * genoutput.c: Likewise.
13896         * genpeep.c: Likewise.
13897         * genrecog.c: Likewise.
13898         * mips-tfile.c: Likewise.
13899         * prefix.c: Likewise.
13900         * protoize.c: Likewise.
13901         * regmove.c: Likewise.
13902         * toplev.c: Likewise.
13903         * tree.c: Likewise.
13904
13905 Wed Aug 26 05:09:27 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
13906
13907         * config/sparc/sparc.c (sparc_override_options): If not
13908         TARGET_FPU, turn off TARGET_VIS.
13909         * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
13910         (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
13911         * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
13912         (movdi_insn_sp64): Add VIS fzero alternative.
13913         (clear_sf, clear_df): New VIS patterns.
13914         (movsf, movdf expanders): Allow fp_zero_operand flat out when
13915         TARGET_VIS.
13916         (one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
13917         
13918 Tue Aug 25 10:57:41 1998  Mark Mitchell  <mark@markmitchell.com>
13919
13920         * loop.c (n_times_set, n_times_used, may_not_optimize,
13921         reg_single_usage): Convert to varrays.  All uses changed.
13922         (insert_loop_mem): Return a value.
13923         (scan_loop): Tweak AVOID_CC_MODE_COPIES code.
13924         (load_mems_and_recount_loop_regs_set): Likewise.  Grow the arrays, if
13925         necessary.
13926
13927 Tue Aug 25 23:57:12 1998  Jeffrey A Law  (law@cygnus.com)
13928
13929         * From Alexandre:
13930         * configure.in: Do not set thread_file to "irix" since no such
13931         support exists yet.
13932
13933         * sparc.md (float abs/neg splits): Check reload_completed before
13934         calling alter_subreg.
13935
13936 Tue Aug 25 19:17:59 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13937
13938         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
13939         function.
13940         * config/sparc/sparc.h: Declare it.
13941         * config/sparc/sparc.md (float abs/neg splits): Use it.
13942         (all other splits): Handle SUBREGs properly where necessary.
13943         (unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
13944
13945 Tue Aug 25 19:48:46 1998  Jeffrey A Law  (law@cygnus.com)
13946
13947         * reorg.c (fill_simple_delay_slots): Do not abort if we encounter
13948         an insn on the unfilled_slots_list that has no delay slots.
13949         (fill_eager_delay_slots): Similarly.
13950
13951 Tue Aug 25 13:35:20 1998  Nick Clifton  <nickc@cygnus.com>
13952
13953         * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
13954         as an ordinary operand.
13955
13956 Tue Aug 25 12:54:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
13957
13958         * tree.c (valid_machine_attribute): Don't apply attributes to both
13959         decl and type.
13960
13961 Tue Aug 25 12:23:20 1998  Richard Henderson  <rth@cygnus.com>
13962
13963         * reload.c (operands_match_p): Handle rtvecs.
13964
13965         * i386.c (legitimate_pic_address_disp_p): New.
13966         (legitimate_address_p): Use it.
13967         (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
13968         Handle constant pool symbols just like statics.
13969         (emit_pic_move): Use Pmode not SImode for clarity.
13970         (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
13971         [UNSPEC]: New, handling what we killed above.
13972         [PLUS]: Detect and abort on invalid symbol arithmetic.
13973         * i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
13974
13975 Tue Aug 25 12:02:23 1998  Mark Mitchell  <mark@markmitchell.com>
13976
13977         * alias.c: Include output.h.
13978         (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
13979         different if we're in a varargs function.
13980         * Makefile.in (alias.o): Depend on output.h
13981         
13982 Tue Aug 25 19:20:12 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
13983
13984         * sh.h (GIV_SORT_CRITERION): Delete.
13985
13986 Tue Aug 25 13:19:46 1998  Dave Brolley  <brolley@cygnus.com>
13987
13988         * regclass.c (regclass): Use xmalloc/free instead of alloca.
13989         * stupid.c (stupid_life_analysis): Likewise.
13990         * reload1.c (reload): Likewise.
13991
13992 Tue Aug 25 05:48:18 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
13993
13994         * config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
13995         arith_double_4096_operand, arith_double_add_operand): New
13996         predicates.
13997         * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
13998         * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
13999         them to transform add/sub 4096 into add/sub -4096.
14000
14001 Mon Aug 24 23:31:03 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14002
14003         * loop.c (scan_loop): Allocate some slop to handle pseudos
14004         generated by move_movables.
14005         (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
14006         here too.
14007
14008 Mon Aug 24 19:45:40 1998  Jim Wilson  <wilson@cygnus.com>
14009
14010         * tree.def (DECL_RESULT): Correct documentation.
14011
14012 Tue Aug 25 01:15:27 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
14013
14014         * reload1.c (reload_reg_free_before_p): New argument EQUIV;  Changed
14015         all callers.  Abort for RELOAD_FOR_INSN.  RELOAD_FOR_OUTADDR_ADDR:
14016         conflicts will all RELOAD_FOR_OUTPUT reloads.
14017
14018         * reload1.c (reload_cse_regs_1): When deleting a no-op move that
14019         loads the function result, substitute with a USE.
14020
14021 Mon Aug 24 15:20:19 1998  David Edelsohn  <edelsohn@gnu.org>
14022
14023         * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
14024         when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
14025         (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
14026         * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
14027         (print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
14028         * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
14029         operand.
14030         (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
14031         'o' to 'm' for GPR variant constraints.
14032
14033 Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)
14034
14035         * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
14036
14037         * h8300.h (STRIP_NAME_ENCODING): Fix typo.
14038
14039         * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
14040         when the source and destination overlap.
14041
14042         * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
14043         clash with global type.
14044
14045 Mon Aug 24 00:53:53 1998  Jason Merrill  <jason@yorick.cygnus.com>
14046
14047         * fixinc.irix: Add curses.h handling from fixinc.wrap.
14048
14049         * c-common.c (combine_strings): Also set TREE_READONLY.
14050         Change warn_write_strings to flag_const_strings.
14051         * c-decl.c, c-tree.h: Likewise.
14052
14053 Sun Aug 23 18:39:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14054
14055         * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
14056         CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
14057         sequence, use SET/IOR instead so CSE can see it.
14058         * config/sparc/sparc.md (movhi_const64_special,
14059         movsi_const64_special): New patterns necessitated by that change.
14060         (movhi_high): Remove.
14061         (movhi_lo_sum): Change to match an IOR.
14062         (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
14063         (movdf_insn_v9only): New pattern for when V9 but not ARCH64.
14064         (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
14065         (movdf splits): Allow when not V9 or when not ARCH64 and integer
14066         registers are involved.
14067         (snesi_zero_extend split): Remove reload_completed test.
14068         (unnamed plus and minus zero_extend sidi splits): Add it.
14069
14070 Sun Aug 23 11:56:08 1998  Mark Mitchell  <mark@markmitchell.com>
14071
14072         * extend.texi: Remove description of extension to explicit
14073         instantiation that is now endorsed by standard C++.
14074
14075 Sun Aug 23 09:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14076
14077         * config/arc/arc.c (arc_initialize_pic): Remove.
14078         * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
14079         nothing on any platform and is invoked by no-one, it does not even
14080         appear in the documentation.
14081         * config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
14082         * config/sparc/sparc.c (initialize_pic): Likewise.
14083         (find_addr_reg): Remove this as well, no longer referenced after
14084         my rewrite.
14085
14086 Sun Aug 23 00:17:14 1998  Jeffrey A Law  (law@cygnus.com)
14087
14088         * recog.c (validate_replace_rtx_group): New function.
14089         * recog.h (validate_replace_rtx_group): Declare it.
14090         * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
14091         the entire group of substitutions.
14092
14093 Sat Aug 22 23:31:00 1998  Klaus-Georg Adams  (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)
14094
14095         * loop.c (load_mems): Fix initializers.
14096
14097 Fri Aug 21 23:07:46 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14098
14099         * config/sparc/sparc.md (TFmode splits): Handle destination
14100         registers being referenced in the address correctly.
14101
14102         * expmed.c (make_tree) [CONST_INT]: Sign extend even if
14103         TREE_UNSIGNED, when bitsize of type's mode is larger than
14104         HOST_BITS_PER_WIDE_INT.
14105
14106 Fri Aug 21 19:31:31 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14107
14108         * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
14109         * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
14110         EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
14111         macros.
14112         * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
14113         EXIT_BLOCK_EXPR.
14114
14115 Thu Aug 20 19:43:44 1998  Jeffrey A Law  (law@cygnus.com)
14116
14117         * h8300.c (h8300_encode_label): Use '&' for tiny data items.
14118         * h8300.h (TINY_DATA_NAME_P): Likewise.
14119         (STRIP_NAME_ENCODING): Handle '&'.
14120
14121         * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
14122         register (it could be accessed via an outer SUBREG).
14123         (REG_OK_FOR_BASE_P): Likewise.
14124         (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
14125
14126         * remove.c (optimize_reg_copy_3): Abort instead of silently generating
14127         bogus rtl.
14128
14129         * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.
14130
14131 Thu Aug 20 17:35:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14132
14133         * config/sparc/sparc.md (movtf_insn_sp32): All memory operands
14134         must be offsettable so the splits can be made.
14135
14136 Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>
14137
14138         * config/i386/winnt.c: Include system.h, not stdio.h to get
14139         sys/param.h pulled in before rtl.h in case the system defines MIN
14140         and MAX.
14141
14142 Thu Aug 20 13:44:20 1998  David Edelsohn  <edelsohn@gnu.org>
14143
14144         * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
14145
14146 Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>
14147
14148         * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
14149         arrays of bits.
14150         * cpplib.c (cpp_define): Handle macros with parameters.
14151
14152 Wed Aug 19 21:33:19 1998  David Edelsohn  <edelsohn@gnu.org>
14153
14154         * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
14155         (output_toc): Use single TOC slot or llong minimal-toc for DFmode
14156         and DImode 64-bit.  Use llong for minimal-toc SFmode and
14157         SYMBOL_REF / LABEL_REF 64-bit.
14158         (output_function_profiler): Use llong for profiler label and ld to
14159         load 64-bit label address.
14160
14161 Wed Aug 19 17:52:27 1998  Nick Clifton  (nickc@cygnus.com)
14162
14163         * config/arm/thumb.md (extendqisi2_insn): Cope with REG +
14164         OFFSET addressing.
14165
14166 Wed Aug 19 14:13:31 1998  Jeff Law  (law@cygnus.com)
14167
14168         * version.c: Bump for snapshot.
14169
14170 Wed Aug 19 13:10:30 1998  Jeff Law  (law@cygnus.com)
14171
14172         * version.c: Bump for snapshot.
14173
14174 Wed Aug 19 13:06:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
14175
14176         * collect2.c (extract_init_priority): Use atoi instead of strtoul.
14177
14178 Wed Aug 19 13:51:35 1998  Hans-Peter Nilsson  <hp@axis.se>
14179
14180         * tm.texi (Misc): Fix typo "teh".
14181
14182         * tm.texi (PIC): Fix typo "PPIC".
14183
14184         * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
14185         effect when -O2 and higher.
14186         * invoke.texi (Optimize Options): Likewise for -fcaller-saves.
14187
14188 1998-08-19  Michael Hayes  <michaelh@ongaonga.chch.cri.nz>
14189
14190         * regclass.c: Changed register set documentation to be consistent
14191         with GCC behavior.
14192
14193         * final.c (final_start_function): Removed redundant test for
14194         call_fixed_regs.
14195
14196 Wed Aug 19 13:28:41 1998  Mark Mitchell  <mark@markmitchell.com>
14197
14198         * rtl.h (rtx_function): New type.
14199         (for_each_rtx): New function.
14200         * rtlanal.c (for_each_rtx): Define it.
14201         
14202         * recog.c (change_t): New type.
14203         (change_objects, change_old_codes, change_locs, change_olds):
14204         Replace with ...
14205         (changes): New variable.
14206         (validate_change): Dynamically allocate room for more changes, if
14207         necessary.  Uses changes array instead of change_objects, etc.
14208         (apply_change_group): Use changes array instead of
14209         change_objects, etc.
14210         
14211         * loop.c (loop_mem_info): New type.
14212         (loop_mems): New variable.
14213         (loop_mems_idx): Likewise.
14214         (looop_mems_allocated): Likewise.
14215         (scan_loop): Remove nregs parameter.
14216         (next_insn_in_loop): New function.
14217         (load_mems_and_recount_loop_regs_set): Likewise.
14218         (load_mems): Likewise.
14219         (insert_loop_mem): Likewise.
14220         (replace_loop_mem): Likewise.
14221         (replace_label): Likewise.
14222         (INSN_IN_RANGE_P): New macro.
14223         (loop_optimize): Don't pass max_reg_num() to scan_loop.
14224         (scan_loop): Remove nregs parameter, compute it after any new
14225         registers are created by load_mems.  Use INSN_IN_RANGE_P and
14226         next_insn_in_loop rather than expanding them inline.  Call
14227         load_mems to load memory into pseudos, if appropriate.
14228         (prescan_loop): Figure out whether or not there are jumps from the
14229         loop to targets other than the label immediately following the
14230         loop.  Call insert_loop_mem to notice all the MEMs used in the
14231         loop, if it could be safe to pull MEMs into REGs for the duration
14232         of the loop.
14233         (strength_reduce): Use next_insn_in_loop.  Tweak comments.
14234
14235 Wed Aug 19 08:29:44 1998  Richard Earnshaw  (rearnsha@arm.com)
14236
14237         * arm.c (arm_override_options): Remove lie about ignoring PIC flag.
14238
14239 Wed Aug 19 07:08:15 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14240
14241         * config/sparc/sparc.c (finalize_pic): Check for the correct
14242         nonlocal_goto_receiver UNSPEC number.
14243         * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
14244         making note of this dependency existing in sparc.c.
14245         (negtf2_notv9 split): Give NEG SFmode.
14246         (negsf2): Fix insn output string.
14247         
14248 Tue Aug 18 12:40:27 1998  Richard Henderson  <rth@cygnus.com>
14249
14250         * c-common.c (decl_attributes): Issue an error if the argument
14251         to alias is not a string.
14252
14253 Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)
14254
14255         * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
14256         pending memory flush list.
14257
14258         * combine.c (can_combine_p): Allow combining insns with REG_RETVAL
14259         notes.
14260         (try_combine): Allow combining insns with REG_LIBCALL notes.
14261
14262         * expr.c (emit_block_move): Do not call memcpy as a libcall
14263         instead build up a CALL_EXPR and call it like any other
14264         function.
14265         (clear_storage): Similarly for memset.
14266
14267         * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
14268         on notes.
14269
14270         * Makefile.in (cplus-dem.o): Provide explicit rules for building
14271         cplus-dem.o.
14272
14273         * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
14274         and REG_LIVE_LENGTH as successful substitutions are made.
14275
14276 Tue Aug 18 07:15:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14277
14278         * config/sparc/sparc.c (ultra_find_type): Add empty semicolon
14279         statement after end of loop label.
14280
14281 Tue Aug 18 07:13:27 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14282
14283         * config/sparc/sparc.c (ultra_types_avail): New variable.
14284         (ultra_build_types_avail): New function to record mask of insn
14285         types in ready list at this cycle.
14286         (ultrasparc_sched_reorder): Call it.
14287         (ultra_find_type): Use it to quicken the search.  Also simplif
14288         dependency check, don't use rtx_equal_p because we know exactly
14289         what we are looking for.
14290
14291 Tue Aug 18 03:20:53 1998  Richard Earnshaw  (rearnsha@arm.com)
14292
14293         * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
14294         for architecture v4.
14295
14296 Mon Aug 17 21:26:38 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14297
14298         * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
14299         gen_compare_reg.
14300         (movsf_const_intreg, movsf_const_high, movsf_const_lo,
14301         movdf_const_intreg and helper splits): New patterns to move float
14302         constants into integer registers.
14303         (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
14304         splits.
14305
14306 Mon Aug 17 11:46:19 1998  Jeffrey A Law  (law@cygnus.com)
14307
14308         * From Graham
14309         * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
14310         to itype.
14311         * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
14312
14313         * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
14314         a BASE_REGS register is needed as an intermediate when copying
14315         a symbolic value into any register class other than BASE_REGS.
14316
14317         * expr.c (move_by_pieces): No longer static.  Remove prototype.
14318         * rtl.h (move_by_pieces): Add extern prototype.
14319         * mips.c (expand_block_move): Handle aligned straight line copy by
14320         calling move_by_pieces.
14321
14322         * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
14323         and VAR_DECLs.
14324
14325 Mon Aug 17 10:28:52 1998  Mark Mitchell  <mark@markmitchell.com>
14326
14327         * stmt.c (expand_end_loop): Tidy.  Allow unconditional
14328         jumps out of the loop to be treated as part of the exit test.
14329
14330 Mon Aug 17 10:06:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14331                           Jeff Law  <law@cygnus.com>
14332
14333         * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
14334         * cplus-dem.c: Delete.
14335
14336         * Makefile.in (fold-const.o): Depend on $(RTL_H).
14337
14338         * fold-const.c: Include rtl.h to get the prototype for
14339         `set_identifier_local_value'.
14340
14341         * loop.c (express_from_1): Remove unused variable `tmp'.
14342         (combine_givs): Cast the first argument of bzero to char *.
14343
14344         * toplev.c (display_help): Remove unused variable `looking_for_start'.
14345
14346         * c-decl.c (init_decl_processing): Remove unneeded &.
14347
14348         * alpha.h (alpha_initialize_trampoline): Provide prototype.
14349         
14350         * except.c (set_exception_lang_code, set_exception_version_code):
14351         Change parameter from `short' to `int' to avoid using a gcc
14352         extension.
14353
14354         * except.h (set_exception_lang_code, set_exception_version_code):
14355         Likewise for prototypes.
14356
14357         * flow.c (count_reg_references): Remove unused variables `regno'
14358         and `i'.
14359
14360         * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
14361
14362         * prefix.c (translate_name): Cast the result of `alloca'.
14363
14364         * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
14365
14366 Mon Aug 17 09:23:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
14367
14368         * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
14369         Include "toplev.h".
14370         (valid_dbcc_comparison_p): Mark mode argument as unused.
14371         (symbolic_operand): Likewise.
14372         (legitimize_pic_address): Likewise.
14373         (const_uint32_operand): Likewise.
14374         (const_sint32_operand): Likewise.
14375         * sched.c [!INSN_SCHEDULING]: Define only dummy function
14376         schedule_insns and comment out rest of file.
14377
14378         * m68k.c (output_move_simode_const): Use subl to move a zero into an
14379         address register.
14380         (output_move_[hq]imode): Likewise.
14381
14382 Mon Aug 17 09:15:47 1998  Jeffrey A Law  (law@cygnus.com)
14383
14384         * toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
14385         * invoke.texi: Corresponding changes.
14386
14387 Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>
14388
14389         * regclass.c (allocate_reg_info): Respect MIN when clearing data.
14390
14391 Sun Aug 16 17:37:06 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14392
14393         * config/sparc/sparc.c (ultra_code_from_mask,
14394         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
14395         ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
14396         ultrasparc_sched_init, ultrasparc_variable_issue,
14397         ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
14398         functions to describe UltraSPARC pipeline exactly to Haifa.
14399         (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
14400         as there is nothing the scheduler can do about it.  Indicate that
14401         REG_DEP_OUTPUT's collide.  Fixup formatting.
14402         * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
14403         divide costs on Ultra for DImode.
14404         (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
14405         Define.
14406         * config/sparc/sparc.md (ieu_unnamed function unit): Rename to
14407         ieuN and add call_no_delay_slot to type list.
14408         (cti function unit): New unit for branches on UltraSPARC.
14409         (subx/addx insns): Set type to misc.
14410         (sidi zero/sign extension insns on arch64): Set type to shift.
14411         (sign_extendhidi2_insn): Set type to sload.
14412
14413 Sun Aug 16 13:52:00 1998  David Edelsohn  <edelsohn@gnu.org>
14414
14415         * rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
14416         (output_epilog): Use if != 0 for offset.
14417         (rs6000_fatal_bad_address): Prepare for Intl.
14418         * rs6000.h (rs6000_fatal_bad_address): Declare.
14419         * rs6000.md (movsfcc, movdfcc): Use else if.
14420         (elf_high): Use {liu|lis}.
14421         (elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
14422         (movsi): Use rs6000_fatal_bad_address.
14423         
14424 Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>
14425
14426         * reload.c (find_equiv_reg): Reject equivalences separated
14427         by a volatile instruction.
14428
14429 Sun Aug 16 00:21:44 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14430
14431         * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
14432
14433 Sat Aug 15 20:51:35 1998  Richard Henderson  <rth@cygnus.com>
14434
14435         * alpha.md (movsicc): Fix mode mismatch.
14436
14437 Sat Aug 15 20:22:33 1998  H.J. Lu  (hjl@gnu.org)
14438
14439         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
14440         return type.
14441         * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
14442
14443 Sat Aug 15 08:39:49 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14444
14445         * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
14446         write-only modifier from operand 1 constraint.
14447
14448 Sat Aug 15 06:28:19 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14449
14450         * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
14451         emitting a XOR of -1 at the end, emit a NOT instead for combine's
14452         sake.
14453         (sparc_emit_set_const64): Likewise, also when computing trailing
14454         bits do not negate low_bits and make fast_int an int.
14455
14456 Fri Aug 14 21:07:03 1998  Jeffrey A Law  (law@cygnus.com)
14457
14458         * loop.c (add_label_notes): Do not ignore references to labels
14459         before dispatch tables.  Mirrors Apr 8 change to mark_jump_label.
14460         * gcse.c (add_label_notes): Similarly.
14461
14462         * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
14463
14464         * m68k.md (adddi_dilshr32): One of the operands must be a register.
14465         (adddi_dishl32): Similarly.
14466
14467 Fri Aug 14 14:12:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
14468
14469         * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
14470         * alias.c (memrefs_conflict_p): Add braces to shut up warnings.
14471         * cse.c (cse_basic_block): Add parens to shut up warnings.
14472
14473 Fri Aug 14 12:58:21 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14474
14475         * config/sparc/sparc.c (sparc_emit_set_const64_quick2,
14476         sparc_emit_set_const64_longway, const64_is_2insns,
14477         create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
14478         in 64-bit constant formation.
14479         * config/sparc/sparc.md (snesi_zero_extend split): Generate
14480         rtl for addx not subx.
14481         (define_insn movdi_const64_special): Make available even when
14482         HOST_BITS_PER_WIDE_INT is not 64.
14483         (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
14484         (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
14485         (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
14486         instances of operand 1 inside a QI subreg.
14487         (xordi3_sp64_dbl): Remove '%' constraint for op1.
14488         (one_cmpldi2_sp64): Fix output string.
14489         (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
14490         alternative case.
14491         (unnamed arch64 ashift DI): Truncate shift count if greater than
14492         63, not 31.
14493
14494 Fri Aug 14 21:52:53 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
14495
14496         * expr.c (store_expr): Don't optimize away load-store pair
14497         when either source or destination have a side effect.
14498
14499 Fri Aug 14 16:50:10 1998  John Carr  <jfc@mit.edu>
14500
14501         * genrecog.c (add_to_sequence): Fatal error if the modes of the
14502         operands of SET are incompatible.
14503
14504         * alpha.md: Fix max and min patterns so modes of SET operands match.
14505
14506 Fri Aug 14 12:22:55 1998  Ian Lance Taylor  <ian@cygnus.com>
14507
14508         * configure.in: Avoid [[ by using test and changequote.
14509         * configure: Rebuild.
14510
14511 Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14512
14513         * rtl.def (CONSTANT_P_RTX): Fix typo in string name.
14514
14515         * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
14516         seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
14517         split, snedi_zero_trunc and split, seqsi_zero_extend and split,
14518         seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
14519         movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
14520         split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
14521         Fix mismatching modes in SET operands.
14522         (conditional move patterns): Fix formatting.
14523         (unnamed subx arch64 pattern): Remove duplicate insn.
14524         
14525 Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14526
14527         * config/sparc/sparc.c (const64_operand, const64_high_operand):
14528         Get it right when HOST_BITS_PER_WIDE_INT is not 64.
14529         (input_operand): Fixup test for what we accept for constant
14530         integers.
14531         (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
14532         set VOIDmode.
14533         (safe_constDI): Remove.
14534         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
14535         gen_safe_XOR64): New functions.
14536         (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
14537         sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
14538         them.
14539         * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
14540         available when HOST_BITS_PER_WIDE_INT is not 64.
14541         (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
14542         move before movdi_insn_sp64 pattern.
14543         (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
14544         (define_insn sethi_di_medlow, seth44, setm44, sethh): Use
14545         symbolic_operand as predicate for second operand.
14546         (DImode minus split on arch32, negsi2 expander, one_cmplsi2
14547         expander): Give set VOIDmode.
14548         
14549 Fri Aug 14 01:45:06 1998  Mumit Khan  <khan@xraylith.wisc.edu>
14550
14551         * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
14552
14553 Fri Aug 14 01:40:21 1998  Geoffrey Keating  <geoffk@ozemail.com.au>
14554
14555         * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
14556
14557 Fri Aug 14 01:23:23 1998  Richard Earnshaw  (rearnsha@arm.com)
14558
14559         * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating
14560         point.
14561         (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
14562
14563 Fri Aug 14 01:19:08 1998  Robert Lipe  <robertl@dgii.com>
14564
14565         * install.texi: Various SCO OpenServer tweaks.
14566
14567 Thu Aug 13 20:14:40 1998  Jim Wilson  <wilson@cygnus.com>
14568
14569         * reload1.c (eliminate_regs_in_insn): Handle another case when
14570         eliminating the frame pointer to the hard frame pointer.  Add
14571         missing ep->to_rtx check to one existing case.
14572
14573         * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.
14574
14575 Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
14576
14577         * tree.h: De-conditionalize init_priority code.
14578
14579         * mips.h (NM_FLAGS): Change from -Bp to -Bn.
14580         * collect2.c (NM_FLAGS): Change from -p to -n.
14581
14582         * configure.in: Turn on collect2 for mipstx39-elf.
14583         Handle use_collect2=no properly.
14584
14585         * c-common.c: De-conditionalize init_priority code.
14586         * collect2.c (extract_init_priority, sort_ids): New fns.
14587         (main): Call sort_ids.
14588         Move sequence_number to file scope.
14589
14590         * configure.in: Handle --enable-init-priority.
14591         * c-common.c (attrs): Add A_INIT_PRIORITY.
14592         (init_attributes, decl_attributes): Likewise.
14593         * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
14594         * tree.c (get_file_function_name_long): Split out...
14595         (get_file_function_name): ...from here.
14596
14597 Thu Aug 13 16:09:53 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
14598
14599         * expr.c (safe_from_p): Change code to ERROR_MARK only when not
14600         accessing nodes.
14601
14602 Thu Aug 13 15:24:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
14603
14604         * toplev.c (display_help): Add braces to shut up warnings.
14605         * tree.c (simple_cst_equal): Likewise.
14606
14607         * fold-const.c (non_lvalue): Don't deal with null pointer
14608         constants here.
14609         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
14610
14611         * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
14612         of any size to a pointer.
14613
14614 Thu Aug 13 12:53:13 1998  Jim Wilson  <wilson@cygnus.com>
14615
14616         * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
14617
14618 Wed Aug 12 17:25:18 1998  Jeffrey A Law  (law@cygnus.com)
14619
14620         * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
14621         which will be saved.
14622         * mn10300.md (prologue insn): Only save registers which need saving.
14623         (epilogue insn): Similarly.
14624
14625         * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
14626         optimizations.
14627
14628 Wed Aug 12 12:39:16 1998  Gavin Romig-Koch  <gavin@cygnus.com>
14629
14630         * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
14631         VAR_DECL's in gp addressable sections.
14632
14633 Tue Aug 11 23:02:31 1998  John Carr  <jfc@mit.edu>
14634
14635         * sparc.c: Change return <exp> to <exp>; return; in functions
14636         returning void.
14637         * sparc.md: Add empty semicolon statement after final label in
14638         move expanders.
14639
14640 Tue Aug 11 22:42:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14641
14642         * config/sparc/sparc.md (define_insn addx_extend): Rename to
14643         addx_extend_sp64, only allow when TARGET_ARCH64.
14644         (define_insn addx_extend_sp32 and split): Version that works when
14645         not TARGET_ARCH64.
14646         (define_insn subx_extend): Likewise.
14647         (define_split adddi3 and subdi3 with zero extension): Fixup and
14648         correct bugs when not TARGET_ARCH64.
14649
14650 Tue Aug 11 16:04:34 1998  John Carr  <jfc@mit.edu>
14651
14652         * except.c (set_exception_lang_code, set_exception_version_code):
14653         Use prototype-style definition if __STDC__, to match declaration
14654         in except.h.
14655
14656         * genemit.c: Change FAIL and DONE macros not to use loops.
14657
14658 Tue Aug 11 12:27:03 1998  Jim Wilson  <wilson@cygnus.com>
14659
14660         * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
14661         ASM_OUTPUT_DWARF2_ADDR_CONST if defined.
14662
14663         * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.
14664
14665 Tue Aug 11 18:12:53 1998  Dave Love  <d.love@dl.ac.uk>
14666
14667         * README.g77: Update from Craig.
14668
14669 Tue Aug 11 04:46:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14670
14671         * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
14672         type HOST_WIDE_INT.
14673         (safe_constDI sparc_emit_set_const64_quick1,
14674         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
14675         analyze_64bit_constant, const64_is_2insns,
14676         create_simple_focus_bits): Fix some bugs when compiled on real
14677         64-bit hosts.
14678         (function_arg_record_value_3, function_arg_record_value_2,
14679         function_arg_record_value): Add fully prototyped forward decls.
14680         * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
14681         to cmpsi_insn and use on both 64 and 32 bit targets.
14682         (define_insn cmpsi_insn_sp64): Remove.
14683         (define_expand zero_extendsidi2): Allow for 32-bit target too.
14684         (define_insn zero_extendsidi2_insn): Rename to
14685         zero_extendsidi2_insn_sp64.
14686         (define_insn zero_extendsidi2_insn_sp32): New pattern and
14687         associated forced split for it.
14688
14689         * config/sparc/sparc.c (const64_operand, const64_high_operand):
14690         New predicates.
14691         * config/sparc/sparc.h: Declare them.
14692         (PREDICATE_CODES): Add them.
14693         * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
14694         movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.
14695
14696 Mon Aug 10 22:57:24 1998  John Carr  <jfc@mit.edu>
14697
14698         * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
14699         in v9 case as the latter makes the Solaris assembler crash.
14700
14701 Mon Aug 10 22:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14702
14703         * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
14704         for TFmode when !v9.  We require offsettable memory addresses.
14705         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
14706         DFmode register number conversions.
14707         * config/sparc/sparc.md (define_split DFmode moves): If register
14708         is a SUBREG do alter_subreg on it before using.
14709         (define_expand movtf): Fixup comment about alignment on v9.
14710         (define_split TFmode moves): Don't use gen_{high,low}part, create
14711         explicit SUBREGs instead.
14712
14713 Mon Aug 10 19:02:55 1998  John Carr  <jfc@mit.edu>
14714
14715         * Makefile.in (mbchar.o): Depend on mbchar.c.
14716
14717 Mon Aug 10 04:28:13 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14718                           Richard Henderson  <rth@cygnus.com>
14719         
14720         Rewrite Sparc backend for better code generation and
14721         improved sparc64 support.
14722         * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
14723         zero.
14724         * config/sparc/sysv4.h: Likewise.
14725         * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
14726         move_operand, v8plus_regcmp_op, emit_move_sequence,
14727         singlemove_string, doublemove_string, mem_aligned_8,
14728         output_move_double, output_move_quad, output_fp_move_double,
14729         move_quad_direction, output_fp_move_quad, output_scc_insn):
14730         Remove.
14731         (small_int_or_double): New predicate.
14732         (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
14733         (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
14734         old pic_{sethi,lo_sum}_si patterns.
14735         (mem_min_alignment): New generic function to replace
14736         mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
14737         available and can test for arbitrary alignments.  All callers
14738         changed.
14739         (save_regs, restore_regs, build_big_number,
14740         output_function_prologue, output_cbranch, output_return,
14741         sparc_flat_save_restore, sparc_flat_output_function_prologue,
14742         sparc_flat_output_function_epilogue): Prettify
14743         insn output.
14744         (output_function_epilogue): Likewise and add code to output
14745         deferred case vectors.
14746         (output_v9branch): Likewise, add new arg INSN and use it to tack
14747         on branch prediction settings.  All callers changed.
14748         (print_operand): Likewise and output %l44 for LO_SUMs when
14749         TARGET_CM_MEDMID.
14750         (sparc_splitdi_legitimate): New function to make sure DImode
14751         splits can be run properly when !arch64.
14752         (sparc_initialize_trampoline, sparc64_initialize_trampoline):
14753         Reformat example code in comments.
14754         (set_extends): Remove UNSPEC/v8plus_clear_high case.
14755         (sparc_addr_diff_list, sparc_addr_list): New statics to keep track
14756         of deferred case vectors we need to output.
14757         (sparc_defer_case_vector): Record a case vector.
14758         (sparc_output_addr_vec, sparc_output_addr_diff_vec,
14759         sparc_output_deferred_case_vectors): New functions to output them.
14760         (sparc_emit_set_const32): New function to form 32-bit constants in
14761         registers when that requires more than one instruction.
14762         (safe_constDI, sparc_emit_set_const64_quick1,
14763         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
14764         analyze_64bit_constant, const64_is_2insns,
14765         create_simple_focus_bits, sparc_emit_set_const64): New functions
14766         which do the same for 64-bit constants when arch64.
14767         (sparc_emit_set_symbolic_const64): New function to emit address
14768         loading for all code models on v9.
14769         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
14770         %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
14771         (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
14772         (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
14773         inaccuracies in comments, add symbolic and text_segment operands
14774         when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively.  Use
14775         GENERAL_REGS in these cases as a temp REG is needed to load these
14776         addresses into a register properly.
14777         (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
14778         is no longer used.
14779         (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
14780         quads are guaranteed to have 16-byte alignment.
14781         (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
14782         copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
14783         (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
14784         deferred case vector implementation.
14785         (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
14786         (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
14787         Generate "internal label - label" instead of "label - 1b".
14788         (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
14789         (PREDICATE_CODES): Remove sparc_operand, move_operand,
14790         v8plus_regcmp_op.  Add small_int_or_double, input_operand, and
14791         zero_operand.
14792         (doublemove_string, output_block_move, output_fp_move_double,
14793         output_fp_move_quad, output_move_double, output_move_quad,
14794         output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
14795         sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
14796         (sparc_emit_set_const32, sparc_emit_set_const64,
14797         sparc_emit_set_symbolic_const64, input_operand, zero_operand,
14798         mem_min_alignment, small_int_or_double): Add externs.
14799         * config/sparc/sparc.md: Document the many uses of UNSPEC and
14800         UNSPEC_VOLATILE in this backend.
14801         (define_function_unit ieu): Rename to ieu_unnamed.  Add move and
14802         unary to types which execute in it.
14803         (define_function_unit ieu_shift): Rename to ieu0.
14804         (define_function_unit ieu1): New, executes compare, call, and
14805         uncond_branch type insns.
14806         (define_function_units for type fdivs, fdivd, fsqrt): These
14807         execute in the fpu multiply unit not the adder on UltraSparc.
14808         (define_expand cmpdi): Disallow TARGET_V8PLUS.
14809         (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
14810         (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
14811         allows the arith_double_operand predicate and rHI constraint when
14812         TARGET_ARCH64.
14813         (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
14814         cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
14815         neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
14816         sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
14817         sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
14818         movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
14819         movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
14820         movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
14821         movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
14822         cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
14823         sign_extendqihi2_insn, sign_extendqisi2_insn,
14824         sign_extendqidi2_insn, sign_extendhidi2_insn,
14825         extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
14826         trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
14827         floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
14828         fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
14829         adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
14830         subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
14831         muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
14832         const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
14833         smulsi3_highpart_v8plus, unnamed subreg mult,
14834         const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
14835         const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
14836         const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
14837         const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
14838         const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
14839         udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
14840         andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
14841         or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
14842         xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
14843         cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
14844         cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
14845         cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
14846         cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
14847         cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
14848         cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
14849         addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
14850         muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
14851         negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
14852         ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
14853         cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
14854         ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
14855         lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
14856         call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
14857         call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
14858         call_address_untyped_struct_value_sp32,
14859         call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
14860         call_value_symbolic_sp32, call_value_address_sp64,
14861         call_value_symbolic_sp64, branch_sp32, branch_sp64,
14862         flush_register_windows, goto_handler_and_restore,
14863         goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
14864         flush, all ldd/std peepholes, return_qi, return_hi, return_si,
14865         return_addsi, return_di, return_adddi, return_sf, all call+jump
14866         peepholes, trap, unnamed trap insns): Prettify output strings.
14867         (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
14868         or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
14869         Likewise and force + implement splits for integer cases.
14870         (define_insn return_sf_no_fpu): Likewise and allow to match when
14871         no-fpu because of our subreg SFmode splits.
14872         (define_insn zero_extendqihi2, zero_extendqisi2_insn,
14873         zero_extendqidi2_insn, zero_extendhidi2_insn,
14874         zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
14875         input_operand for second operand.
14876         (cmp_minus_cc, cmp_minus_cc_set): Likewise and use
14877         reg_or_0_operand for operand 2 so new splits can use it.
14878         (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
14879         cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
14880         too.
14881         (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
14882         CONST_DOUBLEs for operand 2.
14883         (define_insn move_label_di): Likewise and label distance
14884         optimization because it no longer works with new deferred case
14885         vector scheme.  To be revisited.
14886         (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
14887         and allow reg_or_0_operand and J constraint for second operand.
14888         (define_insn jump): Set branch predict taken on V9.
14889         (define_insn tablejump): Emit LABEL_REF + PLUS memory address for
14890         new deferred case vector scheme.
14891         (define_insn pic_tablejump_32, pic_tablejump_64): Remove.
14892         (define_insn negdi2_sp32): Force + implement splits.
14893         (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
14894         one_cmplsi2_not_liveg0 respectively, and create expander of original
14895         names which emit special rtl for TARGET_LIVE_G0.
14896         (define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
14897         (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
14898         gen_compare_reg, FAIL instead.
14899         (define_insn sgtu, sleu): Likewise and check gen_s*() return
14900         values when trying to reverse condition codes, if they FAIL then
14901         do likewise.
14902         (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
14903         snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
14904         neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
14905         seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
14906         x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
14907         set output string to # to indicate they are mandatory splits.
14908         (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
14909         pic_sethi_di, move_pic_label_si): Remove.
14910         (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
14911         movsi_high_pic, movsi_pic_label_reg): New patterns to take their
14912         place.
14913         (define_expand movsi_pic_label_ref, define_insn
14914         movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
14915         expander and insns to handle PIC label references and deferred
14916         case vectors.
14917         (define_insn get_pc_via_rdpc): Comment out as it is no longer
14918         used.
14919         (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
14920         Rewrite to not use emit_move_sequence, make use of new constant
14921         formation code, and new splits for all multi-insn cases.
14922         (define_insn movqi_insn): Remove sethi case, it can never happen.
14923         Use reg_or_zero_operand instead of const0_rtx explicit test,
14924         use input_operand instead of move_operand for source, and use
14925         general_operand now for dest.
14926         (define_insn movhi_insn): Similar but leave sethi case.
14927         (define_insn lo_sum_qi, store_qi, store_hi): Remove.
14928         (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
14929         movhi_lo_sum respectively, prettify output string.
14930         (define_insn movsi_zero_liveg0): New pattern to put zero into a
14931         register when needed on TARGET_LIVE_G0.
14932         (define_insn movsi_insn): Use general_operand and input_operand
14933         for dest and src respectively.  Simplify applicability test.
14934         Prettify output strings, and add clr alternative for J
14935         constraint.
14936         (define_insn movdi_sp32_v9, movdi_sp32, define_splits for
14937         deprecated std and reg-reg DI moves): Remove and...
14938         (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
14939         implementation which uses forced splits for all non-single insn
14940         cases.
14941         (define_split DI move cases on !arch64): New splits to handle all
14942         situations of 64-bit double register DImode on 32bit, and
14943         unaligned registers and memory addresses for all subtargets.
14944         (define_insn movsf_const_insn, movdf_const_insn, store_sf):
14945         Remove.
14946         (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
14947         input_operand for dest and src respectively, prettify output
14948         strings.
14949         (define_insn movdf_insn, movdf_no_e_insn, store_df,
14950         movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
14951         and...
14952         (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
14953         movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
14954         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
14955         movtf_no_e_insn_sp64): Replace with new
14956         implementation which uses forced splits for all non-single insn
14957         cases.
14958         (define_split DF move cases): New splits in similar vein to DI
14959         move counterparts.
14960         (define_insn sethi_di_medlow, sethi_di_medium_pic,
14961         sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
14962         movdi_sp64_insn): Remove old v9 code model and constant loading
14963         support insns and..
14964         (define_insn pic_lo_sum_di, pic_sethi_di,
14965         sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
14966         seth44, setm44, setl44, sethh, setlm, sethm, setlo,
14967         embmedany_sethi, embmedany_losum, embmedany_brsum,
14968         embmedany_textuhi, embmedany_texthi, embmedany_textulo,
14969         embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
14970         movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
14971         scheme, using unspecs, secondary reloads, and one to one sparc
14972         insn to rtl insn mapping for better scheduling and code gen.
14973         (define_expand reload_indi, reload_outdi): Reload helpers for
14974         MEDANY and EMBMEDANY symbol address loading cases which require a
14975         temporary register.
14976         (define_expand movsicc): Remove v8plus_regcmp cases.
14977         (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
14978         cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
14979         cmp_diqi_trunc_set): New patterns used by some of the new scc
14980         splits on arch64.
14981         (define_insn xordi3_sp64_dbl): New pattern used for constant
14982         formation when crossing from 32-bit targets.
14983         (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
14984         split): Remove.
14985         (define_insn addx, subx): Make visible and prettify.
14986         (define_insn adddi3_insn_sp32): Likewise and force split.
14987         (define_insn addx_extend, subx_extend, unnamed): New patterns for
14988         64bit scc split usage.
14989         (define_insn unnamed plusDI zero_extend, unnamed minusDI
14990         zero_extend, subdi3): Force and implement splits.
14991         
14992         * final.c (final_scan_insn): Don't output labels if target
14993         specifies ASM_OUTPUT_ADDR_{DIFF}_VEC.  Do these macro operations
14994         instead.
14995         
14996         * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
14997         don't forget to walk inside SEQUENCESs too as these are what the
14998         delay slot scheduler will create.
14999         
15000 Mon Aug 10 01:21:01 1998  Richard Henderson  <rth@cygnus.com>
15001
15002         * alpha.md (extxl+1,+2): New patterns to work around
15003         combine lossage.
15004
15005 Sat Aug  8 19:20:22 1998  Gary Thomas  (gdt@linuxppc.org)
15006
15007         * rs6000.c (rs6000_allocate_stack_space): Fix typo which
15008         caused bad assembly code to be generated.
15009
15010 Sat Aug  8 18:53:28 1998  Jeffrey A Law  (law@cygnus.com)
15011
15012         * netbsd.h: Fix typo.
15013
15014 Mon Aug  3 00:06:42 1998  Robert Lipe  <robertl@dgii.com>
15015
15016         * config.sub: Fix typo.
15017
15018 Sun Aug  2 22:39:08 1998  Hans-Peter Nilsson  <hp@axis.se>
15019
15020         * invoke.texi (Environment Variables): Typo: Change "ascpects"
15021         into "aspects".
15022         (Running Protoize): Typo: Change "ther" into "other".
15023
15024 Sun Aug  2 00:42:50 1998  Jeffrey A Law  (law@cygnus.com)
15025
15026         * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
15027         * m68k/netbsd.h: Likewise.
15028         * ns32k/netbsd.h: Likewise.
15029         * sparc/netbsd.h: Likewise.
15030
15031 Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>
15032
15033         * ginclude/va-alpha.h (va_list): Use a typedef, not a define.
15034         * ginclude/va-clipper.h (va_list): Likewise.
15035
15036 Fri Jul 31 20:22:02 1998  Michael Meissner  <meissner@cygnus.com>
15037
15038         * rs6000.c (rs6000_override_options): If big endian and -Os, use
15039         load/store multiple instructions unless user overrides.
15040
15041 Fri Jul 31 17:08:59 1998  Jeffrey A Law  (law@cygnus.com)
15042
15043         * ns32k/netbsd.h: Fix typo.
15044
15045 Fri Jul 31 10:23:55 1998  Doug Evans  <devans@canuck.cygnus.com>
15046
15047         * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
15048         labels with .debugsym if no parallel insns.
15049
15050 Thu Jul 30 19:15:53 1998  Richard Henderson  <rth@cygnus.com>
15051
15052         * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
15053         (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
15054
15055 Thu Jul 30 19:50:15 1998  David Edelsohn  <edelsohn@gnu.org>
15056
15057         * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
15058         (AR_FOR_TARGET): Define.
15059
15060 Thu Jul 30 12:29:12 1998  Mark Mitchell  <mark@markmitchell.com>
15061
15062         * dyn-string.h: New file.
15063         * dyn-string.c: Likewise.
15064         * Makefile.in (OBJS): Add dyn-string.o.
15065         (dwarf2out.o): Add dyn-string.h dependency.
15066         (dyn-string.o): List dependencies.
15067         * dwarf2out.c: Include dyn-string.h.
15068         (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
15069         (addr_const_to_string): Take a dyn_string_t, not a char* as a
15070         prototype.  Use dyn_string_append rather than strcat, throughout.
15071         (addr_to_string): Use dyn_string_t.
15072
15073 Thu Jul 30 13:08:07 1998  Ken Raeburn  <raeburn@cygnus.com>
15074
15075         Function entry/exit profiling instrumentation:
15076         * expr.h (profile_function_entry_libfunc,
15077         profile_function_exit_libfunc): Declare new variables.
15078         * optabs.c: Define them here.
15079         (init_optabs): Initialize them.
15080         * tree.h (struct tree_decl): New flag
15081         no_instrument_function_entry_exit.
15082         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
15083         * c-decl.c (duplicate_decls): Merge it.
15084         * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
15085         (init_attributes): Use it for "no_instrument_function".
15086         (decl_attributes): Handle it, for functions that have not yet been
15087         compiled.  Set decl flag.
15088         * flags.h (flag_instrument_function_entry_exit): Declare new
15089         variable.
15090         * toplev.c (flag_instrument_function_entry_exit): Define it here.
15091         (f_options): New option "instrument-functions".
15092         * function.h (struct function): New field instrument_entry_exit.
15093         * function.c (current_function_instrument_entry_exit): New
15094         variable.
15095         (push_function_context_to, pop_function_context_from): Save and
15096         restore.
15097         (expand_function_start): Set current_ variable, maybe emit return
15098         label and entry profile call.
15099         (expand_function_end): Maybe emit exit profile call.
15100
15101 Thu Jul 30 00:58:34 1998  Jeffrey A Law  (law@cygnus.com)
15102
15103         * i386.md (movqi): When optimizing a load of (const_int 1) into a
15104         NON_QI_REG_P, pretend the register is SImode.
15105
15106 Wed Jul 29 23:49:23 1998  Todd Vierling  <tv@netbsd.org>
15107
15108         * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
15109         Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
15110         manufacturer id for ns32k.
15111         * configure: Regenerated.
15112         * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
15113         * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
15114         * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
15115         * config/m68k/netbsd.h: Same.
15116         * config/ns32k/netbsd.h: Same.
15117         * config/sparc/netbsd.h: Same.
15118
15119 Wed Jul 29 22:39:21 1998  Jeffrey A Law  (law@cygnus.com)
15120
15121         * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
15122         or UNROLL_COMPLETELY loop that starts with a jump to its
15123         exit code.
15124
15125 Wed Jul 29 22:18:14 1998  David Edelsohn  <edelsohn@gnu.org>
15126
15127         * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
15128         * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
15129         (print_operand, case 'B'): Don't fall through.
15130         (print_operand, case 'S'): Correct mask begin/end computation.
15131         Use HOST_BITS_PER_WIDE_INT.
15132         * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
15133         (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
15134         * rs6000/aix41.h (CPP_PREDEFINES): Same.
15135         * rs6000/aix43.h (CPP_PREDEFINES): Same.
15136
15137 Wed Jul 29 11:47:10 1998  Nick Clifton  <nickc@cygnus.com>
15138
15139         * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
15140         constraint from second alternative.
15141
15142 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
15143
15144         * configure.in: Fix --without/--disable cases for local-prefix,
15145         gxx-include-dir and checking.
15146
15147 Tue Jul 28 22:01:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
15148
15149         * configure.in (enable_haifa): Set by default for sparc64 too.
15150         configure: Rebuilt.
15151
15152 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
15153
15154         * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
15155         * i386/winnt.c (associated_type): New fn.
15156         (i386_pe_valid_type_attribute_p): New fn.
15157         (i386_pe_check_vtable_importexport): Remove.
15158         (i386_pe_dllexport_p): Use associated_type.
15159         (i386_pe_dllimport_p): Likewise.
15160
15161         From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
15162         * i386.c (i386_valid_type_attribute_p): Also accept
15163         attributes for METHOD_TYPEs.
15164
15165 Tue Jul 28 23:17:39 1998  Peter Gerwinski  <peter@gerwinski.de>
15166
15167         * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
15168
15169 Tue Jul 28 22:31:12 1998  Craig Burley  <burley@gnu.org>
15170
15171         * gcc.c: Fix commentary describing %g, %u, %U, and %O.
15172
15173         * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
15174         them from generating a new base name for each occurrence of
15175         a specific suffix.
15176
15177 1998-07-28  Vladimir N. Makarov  <vmakarov@cygnus.com>
15178
15179         * cse.c (cse_insn): Enable substitution inside libcall only for REG,
15180         SUBREG, MEM.
15181         * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE.
15182
15183         * cplus-dem.c (type_kind_t): New type.
15184         (demangle_template_value_parm): Add type_kind_t parameter.  Rely
15185         on this parameter, rather than demangling the type again.
15186         (demangle_integral_value): Pass tk_integral.
15187         (demangle_template_: Pass the value returned from do_type.
15188         (do_type): Return a type_kind_t.  Pass tk_integral to
15189         demangle_template_value_parm for array bounds.
15190         (demangle_fund_type): Likewise.
15191         
15192 Mon Jul 27 00:54:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
15193
15194         * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
15195         identical.
15196
15197 Mon Jul 27 22:18:36 1998  Jeffrey A Law  (law@cygnus.com)
15198
15199         * pa.c (move_operand): Accept CONSTANT_P_RTX.
15200
15201 Mon Jul 27 17:18:52 1998  Dave Brolley  <brolley@cygnus.com>
15202
15203         * stor-layout.c (layout_type): Handle arrays of bits, for Chill.
15204
15205         * expr.c (get_inner_reference): Handle zero-based, unsigned, array
15206         index conversion.
15207
15208 Mon Jul 27 14:51:33 1998  Jeffrey A Law  (law@cygnus.com)
15209
15210         * mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
15211         (DEBUGGER_ARG_OFFSET): Likewise.
15212
15213         * mn10300.md (movsf): Remove last change.  Not needed.
15214
15215 Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
15216
15217         * c-lex.c (yylex): Fix boundary conditions in character literal and
15218         string literal loops.
15219
15220 Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>
15221
15222         * longlong.h (count_leading_zeros): Sparclite scan instruction was
15223         being invoked incorrectly.
15224
15225         * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
15226         * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE):
15227         Add -pg support.
15228         * i386/win32.h: New file.  Hybrid mingw32.h/cygwin32.h configuration.
15229         * configure.in: Added i[34567]86-*-win32.
15230         * config.sub: Likewise.
15231         * configure: Rebuilt.
15232         
15233 Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)
15234
15235         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
15236         the frame pointer and compiling PIC code and reload has not completed.
15237
15238         * i386.c (output_to_reg): Add code to emulate non-popping DImode
15239         case.
15240
15241 Sun Jul 26 01:01:32 1998  Jeffrey A Law  (law@cygnus.com)
15242
15243         * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
15244
15245 Sat Jul 25 23:29:23 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15246
15247         * Makefile.in (install-info): Only try to update the info
15248         directory file if it exists in the first place.
15249
15250 Fri Jul 24 18:58:37 1998  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
15251
15252         * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
15253
15254 Fri Jul 24 14:20:26 1998  Jeffrey A Law  (law@cygnus.com)
15255
15256         * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
15257         CONST_DOUBLE source.
15258
15259 Fri Jul 24 11:17:04 1998  Nick Clifton  <nickc@cygnus.com>
15260
15261         * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
15262         strings as the insertion of USER_LABEL_PREFIX.
15263         * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
15264         valid code.
15265         * config/arm/thumb.md: Use %_ as a prefix to gcc library function
15266         calls.
15267
15268 Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>
15269
15270         * dbxout.c (dbxout_range_type): Only call dbxout_type_index for
15271         already defined type.
15272
15273 Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)
15274
15275         * expr.c (check_max_integer_computation_mode): Allow conversions
15276         of constant integers to MAX_INTEGER_COMPUTATION_MODE.
15277         (expand_expr): Likewise.
15278
15279 Thu Jul 23 11:12:06 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15280
15281         * expr.c (expand_expr): Expand RETURN_EXPR.
15282
15283 Thu Jul 23 11:00:29 1998  Jim Wilson  <wilson@cygnus.com>
15284
15285         * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.
15286
15287 Wed Jul 22 19:10:00 1998  Catherine Moore  <clm@cygnus.com>
15288
15289         * dwarf2out.c (output_aranges): Call stripattributes
15290         for TEXT_SECTION references.
15291         (output_line_info): Likewise.
15292
15293 Wed Jul 22 14:08:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
15294
15295         * profile.c (branch_prob): Call allocate_reg_info after outputting
15296         profile rtl in instrument_arcs.
15297
15298 Wed Jul 22 12:47:49 1998  Jim Wilson  <wilson@cygnus.com>
15299
15300         * fixinc.irix (math.h): Install wrapper instead of copying.
15301
15302 Wed Jul 22 12:37:14 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15303
15304         * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
15305         so WFL are expanded correctly when contained in a COMPOUND_EXPR.
15306         * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
15307         lang_flag_0. Added documentation in the flag table.
15308
15309 Tue Jul 21 23:28:35 1998  Klaus Kaempf  <kkaempf@rmi.de>
15310
15311         * cccp.c (do_include): Fix vax c style include handling.
15312
15313 Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
15314
15315         * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
15316
15317 Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
15318
15319         * fold-const.c (non_lvalue): Don't deal with null pointer
15320         constants here.
15321         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
15322
15323 Tue Jul 21 15:49:31 1998  David Edelsohn  <edelsohn@gnu.org>
15324
15325         * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
15326         * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
15327         * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
15328         (u_short_cint_operand): Same.
15329         (reg_or_cint_operand): Same.
15330         (logical_operand): Same.
15331         (input_operand): Same.
15332         (reg_or_short_operand): Use u_short_cint_operand.
15333
15334 Tue Jul 21 08:56:42 1998  Richard Henderson  <rth@cygnus.com>
15335
15336         * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
15337         but keep the insns and splits.  Adjust so when the ultimate destination
15338         is memory, use cvtql.
15339
15340 Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>
15341
15342         * flow.c (regno_uninitialized): Fixed regs are never uninitialized.
15343
15344 Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)
15345
15346         * gcc.c (do_spec): Call "error" not "warning".
15347
15348         * configure.in: Fix minor problems with gas feature detection code.
15349         * configure: Rebuilt.
15350
15351         * gcc.c (do_spec): Issue a warning for '%[]' usage.
15352
15353         * Undo this change.
15354         * gcc.c: Delete %[spec] support.
15355         (do_spec_1, case '('): Likewise.
15356         (do_spec_1, case '['): Call error.
15357
15358 Mon Jul 20 22:34:17 1998  Richard Henderson  <rth@cygnus.com>
15359
15360         * alpha.h (CPP_SPEC): Tidy.  Hook to cpp_cpu and cpp_subtarget.
15361         (CPP_SUBTARGET_SPEC): Default to empty string.
15362         (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
15363         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
15364         * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
15365         * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
15366         (LIB_SPEC): Tidy.
15367         * alpha/linux.h (CPP_PREDEFINES): Tidy.
15368         * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
15369         * alpha/netbsd.h (CPP_PREDEFINES): Tidy.
15370         * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
15371         * alpha/win-nt.h (CPP_PREDEFINES): Likewise.
15372         * alpha/vsf.h (CPP_PREDEFINES): Likewise.
15373         (CPP_SUBTARGET_SPEC): New.  Do this instead of overriding CPP_SPEC.
15374         * alpha/vxworks.h: Likewise.
15375
15376 Mon Jul 20 22:51:57 1998  Ken Raeburn  <raeburn@cygnus.com>
15377
15378         * mips.md (reload_outsi): Added missing REGNO call.
15379         (smulsi3_highpart, umulsi3_highpart): Provide prototype for
15380         function pointer.
15381         (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
15382         another match_operator and compare the codes.
15383
15384         * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
15385
15386         * MIPS multiply pattern fixes:
15387         * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
15388         Add union classes for HI, LO, or HILO plus general registers.
15389         (GENERATE_MADD): Deleted.
15390         * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
15391         Add TARGET_MAD to condition.
15392         (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
15393         (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
15394         "*d" for accumulator, to give preference to LO initially but not
15395         during reload.
15396
15397 Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>
15398
15399         * configure.in (enable_c_mbchar): New configure option.
15400         (extra_cpp_objs): Always available now.
15401
15402         * cexp.y (mbchar.h): #include it.
15403         (yylex): Handle Multibyte characters in character literals.
15404
15405         * cccp.c (mbchar.h): #include it.
15406         (main): Set character set based on LANG environment variable.
15407         (rescan): Handle multibyte characters in comments.
15408         (skip_if_group): See above.
15409         (validate_else): See above.
15410         (skip_to_end_of_comment): See above.
15411         (macarg1): See above.
15412         (discard_comments): See above.
15413         (rescan): Handle multibyte characters in string and character literals.
15414         (collect_expansion): See above.
15415         (skip_quoted_string): See above.
15416         (macroexpand): See above.
15417         (macarg1): See above.
15418         (discard_comments): See above.
15419         (change_newlines): See above.
15420
15421         * c-lex.c (mbchar.h): #include it.
15422         (GET_ENVIRONMENT): New macro.
15423         (init_lex): Set character set based on LANG environment variable.
15424         (yylex): Handle multibyte characters in character literals.
15425         (yylex): Handle multibyte characters in string literals.
15426
15427         * Makefile.in (mbchar.o): New target.
15428         (cccp$(exeext)): @extra_cpp_objs@ is always available.
15429         (cppmain$(exeext)): @extra_cpp_objs@ is always available.
15430
15431         * mbchar.[ch]: New files for multibyte character handling.
15432
15433 Mon Jul 20 01:11:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
15434
15435         * jump.c (jump_optimize): When simplifying noop moves and
15436         PUSH_ROUNDING, fix thinko so we use same criterion for identifying
15437         the PUSHes to rewrite in second loop as we did in the first.
15438
15439 Sun Jul 19 08:23:53 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15440
15441         * cplus-dem.c (demangle_nested_args): Make function definition
15442         static to match the prototype.
15443
15444 Fri Jul 17 14:58:44 1998  Richard Henderson  <rth@cygnus.com>
15445
15446         * alloca.c: Respect USE_C_ALLOCA.
15447         * gencheck.c (xmalloc): Ignore __GNUC__ for definition.
15448         * gengenrtl.c (xmalloc): Likewise.
15449
15450 Fri Jul 17 14:18:14 1998  Richard Henderson  <rth@cygnus.com>
15451
15452         * loop.h (struct induction): Add no_const_addval.
15453         * loop.c (the_movables, reg_address_cost): New variables.
15454         (init_loop): Init reg_address_cost.
15455         (loop_optimize): Call end_alias_analysis.
15456         (scan_loop): Init the_movables.
15457         (record_giv): Init induction->no_const_addval.
15458         (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
15459         [REG]: Rearrange loop search test to catch more cases.
15460         (general_induction_var): Return success not benefit; take an extra
15461         argument for that.  Change all callers.
15462         (simplify_giv_expr) [PLUS]: Always combine invariants.  Use sge_plus.
15463         [MULT]: Use rtx_equal_p instead of ==.  Combine simple invariants.
15464         [default]: Search the_movables for additional combinations.
15465         (sge_plus_constant, sge_plus): New functions.
15466         (express_from_1): New function.
15467         (express_from): Always define.  Rewrite using express_from_1.
15468         (combine_givs_p): Handle more cases.  Ignore address cost.
15469         (cmp_combine_givs_stats): New function.
15470         (combine_givs_used_once, combine_givs_benefit_from): New functions.
15471         (combine_givs): Rewrite to do best-fit combination.
15472
15473         * fold-const.c (operand_equal_p): Handle RTL_EXPR.
15474         (fold): Do a complete (A*C)+(B*C) association check.
15475
15476 Fri Jul 17 11:21:55 1998  Jim Wilson  <wilson@cygnus.com>
15477
15478         * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
15479
15480 Fri Jul 17 11:48:55 1998  Jeffrey A Law  (law@cygnus.com)
15481
15482         * mn10300.c (MODES_TIEABLE_P): Fix typo.
15483
15484 Fri Jul 17 03:26:12 1998  Rihcard Earnshaw  (rearnsha@arm.com)
15485
15486         * tree.c (valid_machine_attribute): Only create a new type variant if
15487         there is a decl to use it.
15488
15489 Thu Jul 16 14:48:04 1998  Nick Clifton  <nickc@cygnus.com>
15490
15491         * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
15492         a suffix.
15493
15494 Fri Jul 17 03:24:40 1998  Hans-Peter Nilsson  <hp@axis.se>
15495
15496         * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
15497         be deleted"
15498
15499 Thu Jul 16 14:48:47 1998  Jeffrey A Law  (law@cygnus.com)
15500
15501         * mn10300.c (count_tst_insns): New arg oreg_countp.  Callers changed.
15502         Simplify tests for clearing an address register.
15503         (expand_prologue): Corresponding changes.
15504
15505         * mn10300.md (movXX patterns): Make sure the destination is an
15506         ADDRESS_REG when substituting "zero_areg" for (const_int 0).
15507         (logical patterns): Split into expanders + patterns.
15508         (zero and sign extension patterns): Similarly.
15509         (shift patterns): Similarly.
15510
15511 Thu Jul 16 01:17:44 1998  Richard Henderson  <rth@cygnus.com>
15512
15513         * loop.c (emit_iv_add_mult): Scan the entire insn list generated
15514         for the sequence, recording base values.
15515
15516 Wed Jul 15 10:49:55 1998  Richard Henderson  <rth@cygnus.com>
15517
15518         * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).
15519
15520 Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>
15521
15522         * gcc.c: Remove ANSI-C ism from --help code.
15523
15524         * toplev.c: Support --help with USE_CPPLIB.
15525
15526 Tue Jul 14 14:46:08 1998  Jeffrey A Law  (law@cygnus.com)
15527
15528         * configure.in: Rework gas feature code to work with symlink based
15529         source trees.
15530
15531         * extend.texi: Clarify some issues related to local variables
15532         assigned to explicit registers.
15533
15534         * mn10300.md (mulsi): Turn into expander + pattern.
15535
15536         * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
15537         alternative.
15538
15539 Tue Jul 14 07:41:59 1998  Richard Earnshaw  (rearnsha@arm.com)
15540
15541         * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.
15542
15543 Tue Jul 14 03:02:44 1998  Jeffrey A Law  (law@cygnus.com)
15544
15545         * version.c: Bump again to distinguish mainline tree from the
15546         egcs-1.1 branch.
15547
15548 See ChangeLog.0 for earlier changes.
15549
15550 Local Variables:
15551 add-log-time-format: current-time-string
15552 End: