Wait for children from chain_open()
[platform/upstream/gcc.git] / gcc / ChangeLog
1 Mon May 17 19:45:41 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2
3         * fixinc/fixincl.c (process): Wait for children from chain_open()
4         to avoid creating zombies.
5
6         * fixinc/inclhack.tpl: Removed no-op pipe.
7
8 Mon May 17 07:23:34 1999  Mark Mitchell  <mark@codesourcery.com>
9
10         * tree.def (TYPE_NONCOPIED_PARTS): Revise documentation to match
11         reality.
12         * expr.c (init_noncopied_parts): Don't generate initializers for
13         parts that don't need them.
14
15 Mon May 17 02:56:35 PDT 1999 Jeff Law  (law@cygnus.com)
16
17         * version.c: Bump for snapshot.
18
19 Sat Oct 31 05:08:34 CET 1998 Jan Hubicka  (hubicka@freesoft.cz)
20
21         * reg-stack.c: Do not emit pop insns after cc0 setter.
22         (emit_pop_insn): Do not emit insn in case WHEN is NULL.
23         (compare_for_stack_reg): Update REG_DEAD note and 
24         do not emit push insn.
25
26         * i386.c: (output_float_compare): Handle new REG_DEAD notes.
27
28 Mon May 17 01:57:37 1999  David Daney <daney@ibw.com.ni>
29
30         * i386/sol2.h (LINK_SPEC): Do not pass "-z text" to the linker
31         if -mimpure-text.
32
33 1999-05-17  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
34
35         * m68k.c (standard_68881_constant_p): Don't accept -0.0 as valid
36         68881 constant.
37
38         * fold-const.c (fold_truthop): When converting a one-bit
39         comparison don't sign extend the constant.
40
41         * cse.c (cse_insn): Copy SRC_CONST before putting it in the
42         REG_EQUAL note.
43
44 1999-05-17  Mike Stump  <mrs@wrs.com>
45
46         * rs6000/vxppc.h (CPP_SPEC): Fix support for vararg functions.
47
48 Sat May 15 14:22:40 1999  Jeffrey A Law  (law@cygnus.com)
49
50         * fixinc/hackshell.tpl: Fix mis-applied patch.
51         * fixinc/inclhack.sh: Regenerated.
52
53 Thu May 13 21:05:55 1999  Mark Kettenis  <kettenis@gnu.org>
54
55         * fixinc/mkfixinc.sh: Add the Hurd (*-*-gnu*) to the list of
56         targets that do not need any fixes.
57
58 Sat May 15 14:12:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
59
60         * config/c4x/c4x.md (set_lo_sum+2): New splitter to load large
61         const_ints.
62
63 Sat May 15 14:09:08 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
64
65         * config/c4x/c4x.md (decrement_and_branch_on_count): Disabled.
66         (doloop_begin, doloop_end): New patterns.
67         (*rptb_init): Added extra operands.
68
69 Fri May 14 21:31:36 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
70
71         * config/c4x/c4x.md (*umulqi3_highpart_clobber): Fix operand 2
72         constraints order.
73
74 1999-05-14  Ulrich Drepper  <drepper@cygnus.com>
75
76         * fixinc/fixinc.x86-linux-gnu (FD_ZERO): Fix operand numbers in
77         asm input operands.
78
79 Thu May 13 15:34:18 1999  David Edelsohn  <edelsohn@gnu.org>
80
81         * rs6000.c (mask_constant): Delete.
82         (mask_operand): Move mask_constant() body to here.
83         * rs6000.h (mask_constant): Delete declaration.
84         * rs6000.md (nabsdi2): Reverse subtraction in splitter.
85
86 Thu May 13 02:25:01 1999  Jeffrey A Law  (law@cygnus.com)
87
88         * cpp.texi: Fix some typos.
89
90 Thu May 13 01:49:55 1999  Graham Stott <GrahamS@RCP.co.uk>
91
92         * loop.c (maybe_eliminate_biv): Check regno against
93         max_reg_before_loop.
94
95         * i386.c (memory_address_info): Correct the scale
96         factor test.
97
98 Thu May 13 01:31:19 1999  Nick Burrett  <nick.burrett@btinternet.com>
99
100         * arm.md (nop): Backout Apr 27 change. Ensure REGISTER_PREFIX is
101         applied to each register.
102         * aof.h (ASM_FILE_START): Define register `r0'.
103
104 1999-05-12 20:22 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
105
106         * configure.in: Make --enable-cpp and --with-cpp-install-dir
107         documented options.  Enable the cpp driver by default.
108         * configure: Rebuilt.
109
110 Wed May 12 18:08:48 1999  David Edelsohn     <edelsohn@gnu.org>
111                           Richard Henderson  <rth@cygnus.com>
112
113         * rs6000.c (print_operand) [w]: Calculate signed constant more clearly.
114         (rs6000_allocate_stack_space): Print as hexadecimal value.
115         * rs6000.h (CONST_OK_FOR_LETTER_P): 'L' checks for a signed,
116         16-bit shifted constant.  Fix typo for 'P'.
117         (EXTRA_CONSTARINT): 'T' checks for a 32-bit mask operand.
118         * rs6000.md (movsi, addsi3_internal1, movdi, adddi3_internal1):
119         Use 'L' for shifted constant.
120         (anddi3_internal3): Fix typo.
121         (32-bit mask patterns): Use 'T'.
122
123 Wed May 12 07:30:31 1999  Bruce Korb <ddsinc09@ix.netcom.com>
124
125         * fixinc/fixincl.c(quoted_file_exists): new procedure to ensure that
126         a file exists before trying to copy it into the destination
127         (extract_quoted_files): use that routine.
128
129 Wed May 12 07:27:31 1999  Craig Burley  <craig@jcb-sc.com>
130
131         Allow front end (like g77's) to override maintenance of errno:
132         * expr.c (expand_builtin): Bother with errno only if
133         flag_errno_math.
134         * flags.h: Declare flag_errno_math.
135         * toplev.c: Define flag_errno_math.
136
137 Tue May 11 23:55:49 1999  Jeffrey A Law  (law@cygnus.com)
138
139         * fixproto: Change "mkdir" calls to "mkdir -p"
140
141         * fixinc/inclhack.def (io_def_quotes): Consistently allow multiple
142         whitespace characters between the "define" and the name of the macro.
143         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
144
145 Tue May 11 20:46:37 1999  Richard Henderson  <rth@cygnus.com>
146
147         * alpha.c (alpha_expand_block_move): Handle TImode registers
148         used with ADDRESSOF.
149         (alpha_expand_block_clear): Handle ADDRESSOF specially.
150
151 1999-05-11  Ulrich Drepper  <drepper@cygnus.com>
152
153         * fixinc/fixinc.x86-linux-gnu (FD_ZERO): Remove unneccessary
154         memory output operand which irritates gcc.
155
156 Tue May 11 11:45:16 1999  Dave Brolley  <brolley@cygnus.com>
157
158         * toplev.c (documented_lang_options): Add -MD, -MMD, -M and -MM for
159         cpplib-enabled compilers.
160
161 Tue May 11 11:34:56 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
162
163         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Add parentheses
164         around &&.
165
166 Mon May 10 13:51:24 1999  Nick Clifton  <nickc@cygnus.com>
167
168         * tm.texi (FUNCTION_ARG): Stack element of PARALLEL must come
169         first.
170
171 Tue May 11 01:32:01 1999  Jeffrey A Law  (law@cygnus.com)
172
173         * fixinc/inclhack.def (sun_auth_proto): Apply to all targets.
174         (sysz_stdlib_for_sun): Similarly.
175         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
176
177 Mon May 10 20:34:10 1999  Jim Wilson  <wilson@cygnus.com>
178
179         * config/mips/elf.h (UNIQUE_SECTION_P): Undef.
180         * config/mips/elf64.h (UNIQUE_SECTION_P): Undef.
181         * config/mips/mips.h (UNIQUE_SECTION_P): Define to 0.
182
183 1999-05-10 18:21 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
184
185         * cppfiles.c (initialize_input_buffer): New function.
186         (finclude): Call it, if pfile->input_buffer is NULL.  Accept
187         any character device as an input file.
188         (read_and_prescan): Use pfile->input_buffer and
189         pfile->input_speccase.
190         * cppinit.c (cpp_cleanup): Free pfile->input_buffer and
191         pfile->input_speccase.
192         * cpplib.h (cpp_reader): Add input_buffer, input_speccase, and
193         input_buffer_len members.  Use memcpy in CPP_PUTS_Q.
194
195         * cppmain.c: Buffer output in the token_buffer; throttle
196         number of calls to fwrite; check for errors from fwrite.
197
198 1999-05-10 18:21 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>
199
200         * cppspec.c: Treat two non-option arguments as input and
201         output file.  Three or more non-option args is an error.
202         Clean up.
203         * gcc.c (default_compilers): Pass -$ to the preprocessor.
204         * objc/lang-specs.h: Likewise.
205
206 Mon May 10 12:59:20 1999  Jeffrey A Law  (law@cygnus.com)
207
208         * optabs.c (emit_cmp_and_jump_insns): Handle the case where both
209         operands to the comparison are constants.
210
211 Mon May 10 07:28:10 1999  Bruce Korb <autogen@autogen.freeservers.com>
212
213         * fixinc/inclhack.def(arm_norcroft_hint): check before fixing
214         (no_double_slash): portability
215         (math_exception): added reminder comment
216
217 Mon May 10 01:28:10 1999  Craig Burley  <craig@jcb-sc.com>
218
219         From Fri May 7  9:31:41 1999 Donn Terry (donn@interix.com):
220         * varasm.c (mark_constant_pool): Add some transitive closure.
221
222 Sun May  9 22:51:04 1999  Craig Burley  <craig@jcb-sc.com>
223
224         Fix gcc.dg/990506-0.c:
225         * c-typeck.c (require_complete_type): Handle ERROR_MARK input.
226
227 Sun May  9 13:19:12 1999  Jeffrey A Law  (law@cygnus.com)
228
229         * gcse.c (cprop_insn): Do not try to simplify a simple jump.
230
231 Sun May  9 11:12:19 1999  Philip Blundell <bp@nexus.co.uk>
232
233         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Add (PLT) to branch if
234         necessary.  Reported by jim@federated.com.
235
236 Sat May  8 23:05:35 1999  Jeffrey A Law  (law@cygnus.com)
237
238         * pa.h (PRINT_OPERAND_ADDRESS): Output "%r0", not "r0" for the
239         base register in an absolute memory address.
240         * pa.md (conditional moves): Avoid using immediate zero for
241         register zero.
242
243 Sat May  8 06:23:21 1999  Philip Blundell  <pb@nexus.co.uk>
244
245         Based on patch by Scott Bambrough:
246         * config/arm/arm.h (NEED_PLT_GOT): New macro.  Set to 0 if not
247         already defined.
248         * config/arm/elf.h (NEED_PLT_GOT): Define to flag_pic.
249         * config/arm/arm.md (call_symbol, call_value_symbol et al.): If
250         NEED_PLT_GOT is true, add explicit "(PLT)" to generated branches.
251         * config/arm/arm.c (output_func_epilogue,
252         output_return_instruction): Likewise for calls to abort.
253
254 Sat May  8 01:57:58 1999  Donn Terry (donn@interix.com)
255
256         * calls.c (rtx_for_function_call): Extend function pointer being
257         passed to chkr_check_exec_libfunc, if needed.
258
259 Sat May  8 01:51:50 1999  David Edelsohn  <edelsohn@gnu.org>
260
261         * ginclude/stdarg.h (__va_rounded_size): Use long type for
262         rounding on AIX.
263         * ginclude/varargs.h: Likewise.
264
265 Sat May  8 01:47:20 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
266
267         * invoke.texi: Remove duplicates in the description of -d
268         letters.  Fix use of @item vs. @itemx.
269
270 Sat May  8 01:43:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
271
272         * rs6000.h (RS6000_VARARGS_OFFSET): Die die die.
273         (CUMULATIVE_ARGS): Remove varargs_offset; update commentary.
274         * rs6000.c (setup_incoming_varargs): Fix typo last change.
275         (init_cumulative_args): Remove varargs_offset references.
276
277         * rs6000/linux.h (NO_IMPLICIT_EXTERN_C): Define.
278         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Undefine.
279
280 Sat May  8 01:34:19 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
281
282         * reload1.c (gen_mode_int): New function.
283         (reload_cse_move2add): Use it to generate the new constants.
284
285 Sat May  8 01:25:09 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
286
287         * varasm.c (output_constant): Do nothing if -fsyntax-only.
288
289 Fri May  7 19:10:15 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
290
291         * sparc.h (GO_IF_LEGITIMATE_ADDRESS): Prohibit REG+REG addressing
292         for TFmode when there are no instructions which accept REG+REG
293         instructions.
294
295 Fri May  7 12:38:54 1999  Jim Wilson  <wilson@cygnus.com>
296
297         * mips/elf64.h (MAKE_DECL_ONE_ONLY, UNIQUE_SECTION_P): Define.
298         * mips/mips.c (mips_select_rtx_section): When TARGET_MIPS16, use
299         function_section instead of text_section.
300         * mips/mips.h (ENCODE_SECTION_INFO): Add check for UNIQUE_SECTION_P
301         in TARGET_MIPS16 STRING_CST handling.
302
303 Fri May  7 09:54:11 1999  Nick Clifton  <nickc@cygnus.com>
304
305         Patch from: Nick Burrett  <nick.burrett@btinternet.com>
306
307         * arm.c (arm_poke_function_name): New function to implement
308         -mpoke-function-name.
309         * aof.h (ASM_DECLARE_FUNCTION_NAME): Call it.
310         * aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
311         * elf.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
312         * arm.h: Prototype it.
313         (TARGET_SWITCHES): Add `no-poke-function-name'.
314
315 Fri May  7 14:19:31 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
316
317         * fixinc/server.c (load_data): Cast text_size to long, adapt
318         format.
319         * fixinc/server.c (read_pipe_timeout): Declare volatile, modified
320         in signal handler.
321         (sig_handler): Add debug code.
322         * fixinc/server.c (run_shell): Don't \-escape cd, it breaks the
323         Ultrix V4.3 /bin/sh.
324         * fixinc/server.c (def_args): Use static instead of STATIC to
325         avoid redefinition error from linker iff DEBUG.
326
327         * fixinc/hackshell.tpl: Don't strip trailing directory from
328         DESTDIR - that is already done
329
330         * fixinc/fixincl.c (run_compiles): fix memory leak
331
332 Thu May  6 20:34:00 1999  Mark Mitchell  <mark@codesourcery.com>
333
334         * resource.c (mark_referenced_resources): Make volatil
335         monotonically increasing.
336         (mark_set_resources): Likewise.
337
338 Thu May  6 20:02:33 1999  Fred Fish  <fnf@be.com>
339
340         * rs6000/xm-beos.h (HAVE_VPRINTF): Don't redefine if already defined.
341         (HAVE_PUTENV, HAVE_ATEXIT, HAVE_RENAME): Likewise.
342
343 Wed May  5 20:28:32 1999  Jason Merrill  <jason@yorick.cygnus.com>
344
345         * install.texi (Header Dirs): s/GPLUS/GPLUSPLUS/.
346
347 Wed May  5 23:44:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
348
349         * unroll.c (copy_loop_body): Don't copy VTOP notes from copy_notes_from.
350
351 Wed May  5 16:26:13 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
352
353         * function.c (purge_addressof_replacements): Rename into
354         purge_bitfield_addressof_replacements.
355         (purge_addressof_replacements): New variable.
356         (purge_addressof_1): Add code for changing addressof in notes for
357         field values which are extracted by usage MEM with narrower mode.
358         (purge_addressof): Initialize purge_bitfield_addressof_replacements.
359
360 Wed May  5 07:40:02 1999  Nick Clifton  <nickc@cygnus.com>
361
362         Patch from: Nick Burrett  <nick.burrett@btinternet.com>
363         * config/arm/arm.h (ARM_MCOUNT_NAME): Define.
364         (FUNCTION_PROFILER): Remove assembler dialect dependency and use
365         ARM_MCOUNT_NAME.
366         (TRAMPOLINE_TEMPLATE): Remove assembler dialect dependency.
367
368         * config/arm/aof.h (ARM_MCOUNT_NAME): Define.
369
370 1999-05-05 09:58 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
371
372         * gcc.c (default_compilers): Fix brace nesting bug.
373         * objc/lang-specs.h: Use %i, not %g.mi, for the input file
374         when processing an .mi file.
375
376 Tue May  4 13:17:55 1999  Mark Mitchell  <mark@codesourcery.com>
377
378         * resource.c (mark_set_resources): Handle UNSPEC_VOLATILE,
379         ASM_INPUT, TRAP_IF, and ASM_OPERANDS just like in
380         mark_referenced_resources.
381
382 Mon May  3 22:38:41 1999  David Edelsohn  <edelsohn@gnu.org>
383
384         * rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Change non-PowerPC
385         and AIX64 combination to warning.  Add warning for disabling
386         PowerPC64 support when using 64-bit mode.
387         (LIB_SPEC): Do not link with libg.a in 64-bit mode.
388         (LINK_SPEC): Do not export libg.exp symbols in 64-bit mode.
389         * rs6000/rs6000.h (MY_ISCOFF): Treat import/export files as valid
390         XCOFF files.
391         (read_only_data_section, private_data_section,
392         read_only_private_data_section): Always align CSECTs to doubleword
393         boundary regardless of mode.
394         (TEXT_SECTION_ASM_OP): Align text CSECT on doubleword boundary in
395         64-bit mode.
396         (DATA_SECTION_ASM_OP): Always align CSECT to doubleword boundary.
397         (ASM_OUTPUT_LOCAL): Use rounded size in 64-bit mode to
398         maintain doublword alignment.
399
400 Mon May  3 14:45:23 1999  Jeffrey A Law  (law@cygnus.com)
401
402         * mn10200.md (btst insns): btst does not leave cc0 in a useable
403         state for redundant tst eliminatino.
404         * mn10300.md (btst insns): Likewise.
405
406 Mon May  3 16:14:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
407
408         * mips.h (Pmode): Revert Oct 14th change which added a cast.
409
410 Sun May  2 14:02:21 1999  Mark Mitchell  <mark@codesourcery.com>
411
412         * tree.h (struct tree_decl): Add comdat_flag.
413         (DECL_COMDAT): Define it.
414         * toplev.c (wrapup_global_declarations): Don't output a
415         DECL_COMDAT function just because it's public.
416
417 Sun May  2 15:16:42 1999  Joseph S. Myers  <jsm28@cam.ac.uk>
418
419         * pdp11.h (TARGET_SWITCHES): Fix error in previous change.
420         (ASSEMBLER_DIALECT): Define.
421         (CONDITIONAL_REGISTER_USAGE): Rename floating point registers if
422         required for the UNIX assembler.
423         (ASM_OUTPUT_INT): Remove.  The compiler will synthesise it.
424         (ASM_OUTPUT_ADDR_VEC_PROLOGUE): Remove.
425         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Change to "[" and "]".
426         (TRAMPOLINE_TEMPLATE): Use ASM_OUTPUT_SHORT.
427         * pdp11.c (output_addr_const_pdp11): Copy of output_addr_const
428         adapted to output constants in octal.
429         * pdp11.c, pdp11.h, pdp11.md: Use output_addr_const_pdp11 instead
430         of output_addr_const.  Output constants in octal.  Use assembler
431         dialect alternatives where DEC and UNIX assemblers use different
432         instruction names.
433
434 Sun May 2 01:15:06 PDT 1999 Jeff Law  (law@cygnus.com)
435
436         * version.c: Bump for snapshot.
437
438 Fri Apr 30 13:55:43 1999  Richard Henderson  <rth@cygnus.com>
439
440         * va-ppc.h (__va_start_common): Let __builtin_saveregs do the work.
441         * rs6000.c (expand_builtin_saveregs): For V4, initialize a private
442         va_list struct, and return a pointer to it.
443         (setup_incoming_varargs): V4 save area based off virtual_stack_vars
444         instead of frame_pointer.
445
446 Thu Apr 29 23:02:22 1999  Mark Mitchell  <mark@codesourcery.com>
447
448         * emit-rtl.c (start_sequence): Expand comments.
449         (start_sequence_for_rtl_expr): Likewise.
450         (push_to_sequence): Likewise.
451         (end_sequence): Likewise.
452         * expr.c (inhibit_defer_pop): Likewise.
453         * expr.h (inhibit_defer_pop): Likewise.
454         (NO_DEFER_POP): Likewise.
455         (OK_DEFER_POP): Likewise.
456
457 Thu Apr 29 22:13:46 1999  Robert Lipe  <robertlipe@usa.net>
458
459         * configure.in (i?86-UnixWare7*-sysv): Set thread_file to 'posix'
460         --enable-threads[={yes,pthreads,posix}] is passed as a command
461         line parameter to configure.
462         * config/i386/sysv5.h (LIB_SPEC): Add support for '-pthread'.
463         (CPP_SPEC): Likewise.
464
465 Thu Apr 29 17:23:59 1999  Richard Henderson  <rth@cygnus.com>
466
467         * emit-rtl.c (operand_subword): Religiously mask and sign-extend
468         from 32-bits to HOST_WIDE_INT.
469
470 Thu Apr 29 15:58:52 1999  Robert Lipe  <robertlipe@usa.net>
471
472         * fixinc/regex.c, fixinc/regex.h: Removed.   Replace with...
473         * fixinc/gnu-regex.c, fixinc/gnu-regex.h: Imported from GDB 4.18.
474         * fixinc/Makefile.in (OBJ, HDR): Handle name changes from above.
475         (gnu-regex.o): Define REGEX_MALLOC to avoid memory leak.
476         * fixinc/fixincl.c: new regex.h header name
477         * Makefile.in: new regex.[ch] file names
478
479 Thu Apr 29 12:53:33 1999  Richard Henderson  <rth@cygnus.com>
480
481         * calls.c (emit_call_1): Pass rounded_stack_size to emit_call
482         instead of the unrounded size.
483
484 1999-04-28 14:40 Bruce Korb <ddsinc09@ix.netcom.com>
485
486         * fixinc/mkfixinc.sh: Makesure the result shell script is writable
487
488 Wed Apr 28 10:36:39 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
489
490         * config/m68k/m68k.md (cmpsi+1): Use cmp.w when comparing a 16 bit
491         constant with an address register.
492
493 Wed Apr 28 00:14:41 PDT 1999 Jeff Law  (law@cygnus.com)
494
495         * version.c: Bump for snapshot.
496
497 Tue Apr 27 19:50:25 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
498
499         * rtl.h (REG_EH_REGION): Update comment to indicate a value of -1
500         indicates no throw and no nonlocal gotos.
501         * optabs.c (emit_libcall_block): Emit REG_EH_REGION with a value
502         of -1 instead of 0 to indicate a nonlocal goto won't happen either.
503         * flow.c (count_basic_blocks, find_basic_blocks_1): Ignore libcall
504         blocks, look for REG_EH_REGION note exclusively.
505         (make_edges): Check for REG_EH_REGION > 0 for specified handlers.
506
507 Tue Apr 27 15:33:42 1999  David Edelsohn  <edelsohn@gnu.org>
508
509         * rs6000.h (read_only_data_section, private_data_section,
510         read_only_private_data_section, toc_section): Align CSECT on
511         doubleword boundary for 64-bit target.
512         (DATA_SECTION_ASM_OP): Likewise.
513         * rs6000.c (rs6000_stack_info): Leaf procedure stack limit is 288.
514
515 Tue Apr 27 20:19:47 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
516
517         * sh.md (insv): Use copy_addr_to_reg.
518
519         * final.c (insn_lengths_max_uid): New variable.
520         (init_insn_lengths, shorten_branches): Set it.
521         (get_attr_lengths): Test insn uid against insn_lengths_max_uid.
522
523 1999-04-27 08:32 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
524
525         * expr.c (emit_move_insn_1): Abort if MODE argument is invalid.
526         (compare): Punt if TREE_OPERAND (exp, 0) is an ERROR_MARK.
527
528 Tue Apr 27 01:33:43 1999  Jeffrey A Law  (law@cygnus.com)
529
530         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Renmaed from FLAGS_TO_PASS.
531         Remove "CC".
532         (FLAGS_TO_PASS): New variable.
533
534 Tue Apr 27 00:36:44 1999  Nick Burrett  <nick.burrett@btinternet.com>
535
536         * arm.md (nop): Output instruction using output_asm_insn to fix
537         assembler dialect problems.
538
539 Mon Apr 26 23:55:50 1999  Robert Lipe  <robertlipe@usa.net>
540
541         * Makefile.in (fixinc.sh): Fix dependencies.
542
543         * fixinc/inclhack.def (avoid_bool): Enable match if typedefs are
544         prepended by spaces.
545         (sco5_stat_wrappers): New fix.   Make sys/stat.h C++ safe.
546         * fixinc/fixincl.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
547
548 Mon Apr 26 23:28:54 1999  Mumit Khan  <khan@xraylith.wisc.edu>
549                           Donn Terry  <donn@interix.com>
550
551         * function.c (put_var_into_stack): Change ptr_mode to Pmode
552         in setup for chkr_set_right_libfunc calls.
553         (assign_params): Likewise.
554         * expr.c (emit_push_insn): Change ptr_mode to Pmode in
555         setup for chkr_copy_bitmap_libfunc and chkr_set_right_libfunc calls.
556         (expand_assignment): Change ptr_mode to Pmode in
557         setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc.
558         (store_expr): Change ptr_mode to Pmode in
559         setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc.
560         (expand_expr): Change ptr_mode to Pmode in
561         setup for chkr_check_addr_libfunc.
562         (expand_builtin): Change ptr_mode to Pmode in
563         setup for chkr_check_str_libfunc, chkr_copy_bitmap_libfunc and
564         chkr_check_addr_libfunc.
565         * calls.c (rtx_for_function_call): Change ptr_mode to Pmode in
566         setup for chkr_check_exec_libfunc.
567         (expand_call): Change ptr_mode to Pmode in
568         setup for chkr_set_right_libfunc.
569         (expand_call): Change ptr_mode to Pmode in
570         setup for chkr_set_right_libfunc.
571         (store_one_arg): Change ptr_mode to Pmode in
572         setup for chkr_set_right_libfunc.
573
574         * c-parse.in (absdcl1): Allow attributes in explicit typespecs.
575         (%expect): Update.
576         * c-parse.y: Regenerate.
577         * c-parse.c: Likewise.
578         * objc/objc-parse.c: Likewise.
579         * objc/objc-parse.y: Likewise.
580
581 Mon Apr 26 21:17:41 1999  Jason Merrill  <jason@yorick.cygnus.com>
582
583         * c-pragma.c (push_alignment): Don't ignore alignments greater than
584         4 bytes.
585         (handle_pragma_token): Likewise.
586
587         * c-pragma.c: Support for #pragma pack (push, <id>, <n>).
588         (struct align_stack): Add id field.
589         (push_alignment, pop_alignment): Take id parameter.
590         (handle_pragma_token): Add necessary states.
591         * c-pragma.h (enum pragma_state): Add necessary states.
592
593 Tue Apr 27 13:58:23 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
594
595         * config/c4x/c4x.md (*cmpqf, *cmpqf_noov, *cmpqi_test,
596         *cmpqi_test_noov): Remove ? modifier from constraints list.
597         (*smulqi3_highpart_clobber, *umulqi3_highpart_clobber): Swap
598         output strings to match new constraint ordering.
599
600 1999-04-26 19:16 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
601
602         * cpphash.c (dump_definition): New function.
603         * cpphash.h: Prototype it.
604
605         * cpplib.c (handle_directive): Don't output anything here.
606         Streamline.
607         (pass_thru_directive): Take a length, not a pointer to the
608         end.  All callers changed.
609         (do_define): Handle -dD, -dN, -g3 entirely here.  Streamline.
610         (do_include): Handle -dI here.
611         (do_ident): Correct to match cccp.
612         (do_pragma): Copy the pragma through here.
613         (do_assert, do_unassert): Tidy.
614
615         * cppinit.c (cpp_finish): If -dM was specified, walk the macro
616         hash table and call dump_definition on all the entries.
617         * cppmain.c: cpp_finish may produce output.
618
619 Mon Apr 26 15:27:33 1999  Mark Mitchell  <mark@codesourcery.com>
620
621         * toplev.c (compile_file): Move call to check_global_declarations
622         after output_exception_table to restore behavior as it was before
623         1999-04-22 change.
624
625 1999-04-26 10:50 -0700 Bruce Korb <ddsinc09@ix.netcom.com>
626
627         * fixinc/fixincl.c:  Improve the handling of child process exits
628         * fixinc/server.[ch]: Export the interface for shutting down
629         the server process
630         * fixinc/inclhack.tpl: Remove unnecessary character quote
631         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate
632
633 Mon Apr 26 10:41:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
634
635         * alpha.md (builtin_setjmp_receiver): Use a label_ref instead of
636         a code label.
637
638 1999-04-26 09:47 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
639
640         * rtl.texi: Document the rtl classes and their relation to
641         formats.
642
643 Mon Apr 26 01:02:38 1999  Richard Henderson  <rth@cygnus.com>
644
645         * alpha.md (fix_trunc patterns): Use reg_no_subreg_operand on op0
646         for less work in reload.
647         (movsf and movdf patterns): Put fp reg alternatives first.
648
649 Mon Apr 26 01:55:56 1999  Marc Espie  <espie@cvs.openbsd.org>
650
651         * configure.in (openbsd): Factorize xmake_file.
652         (ix86 openbsd): Trim obsolete comment.
653         (vax openbsd): Fix typo.
654         * configure: Rebuilt.
655
656 Mon Apr 26 01:30:59 1999 Donn Terry <donn@interix.com>
657
658         * expr.c (expand_assignment): Improve test for pointer type.
659
660 Mon Apr 26 00:26:18 1999  Richard Henderson  <rth@cygnus.com>
661
662         * alpha.c (print_operand_address): Account for the subreg word.
663
664 Mon Apr 26 01:08:36 1999  Toshiyasu Morita  (tm@netcom.com)
665
666         * fold-const.c (make_range): Always initialize arg0 and arg1.
667         (fold): Similarly for alt0 and alt1.
668         * function.c (fixup_var_refs_insns): Initialize insn_list.
669         (instantiate_virtual_regs_1): Initialize offset.
670         * optabs.c (expand_binop): Initialize carry_in, carry_out, op0_xhigh
671         and op1_xhigh.
672         * stmt.c (expand_end_case): Initialize minval and maxval.
673
674 Mon Apr 26 01:02:34 1999  Nathan Sidwell  <nathan@acm.org>
675
676         * toplev.c (report_error_function): Reorder file stack and
677         function name printing.  Ignore FILE parameter.
678
679 Mon Apr 26 00:58:54 1999  Jerry Quinn <jquinn@nortelnetworks.com>
680
681         * pa.h (architecture_type): New enum.
682         (pa_arch_string, pa_arch): Declare.
683         (MASK_PA_10, MASK_PA_20): New flags.
684         (TARGET_SWITCHES): Add pa-risc-2-0.  Update docs for PA1.0 codegen.
685         (TARGET_OPTIONS): Add -march= option.
686         * pa.c (pa_arch, pa_arch_string):  Define.
687         (override_options):  Set them.
688         * pa/pa-hpux10.h (ASM_FILE_START):  Output LEVEL 2.0 asm directive for
689         2.0 architecture.
690         * invoke.texi (Option Summary, HPPA Options):  Document new
691         architecture flags.
692
693         * pa/pa-hpux.h, pa/pa-hpux10.h, pa/pa-hpux9.h, pa/pa-osf.h, pa.h,
694         pa.c, pa.md, configure.in, configure: Replace TARGET_SNAKE by
695         TARGET_PA_11 and MASK_SNAKE by MASK_PA_11.
696
697 Mon Apr 26 00:28:25 1999  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
698
699         * flags.h (inline_max_insns): Declare.
700         * integrate.c (inline_max_insns): New variable.
701         (function_cannot_inline_p): Use it.
702         * toplev.c (main): Add the flag -finline-limit-n.
703         (display_help): Document -finline-limit-n.
704         * invoke.texi: Document -finline-limit-n
705
706 Sun Apr 25 23:03:32 1999  Richard Henderson  <rth@cygnus.com>
707
708         * stmt.c (expand_asm_operands): Reload in-out reg-only memory operands.
709
710 Sun Apr 25 13:06:13 1999  Richard Henderson  <rth@cygnus.com>
711
712         * function.c (assign_parms/STACK_BYTES): Revert last change,
713         and that of 19 Nov.
714
715 Sun Apr 25 12:30:50 1999  Richard Henderson  <rth@cygnus.com>
716
717         * calls.c (emit_call_1): New arg rounded_stack_size; update callers.
718         Update pending_stack_adjust based on this value.
719         (compute_argument_block_size): Include pending_stack_adjust in
720         PREFERRED_STACK_BOUNDARY alignment.
721         * function.c (assign_parms): Don't round to PREFERRED_STACK_BOUNDARY.
722
723 Sun Apr 25 14:38:10 EDT 1999  John Wehle  (john@feith.com)
724
725         * stupid.c (stupid_mark_refs): Generate a REG_UNUSED note
726         for a register which is clobbered even if the register
727         was used by an earlier instruction.
728
729         * i386.md (fix_truncsfdi2, fix_truncdfdi2,
730         fix_truncxfdi2): Don't bother with the gen_reg_RTX.
731         (fix_truncsfsi2, fix_truncsfdi2, fix_truncdfsi2,
732         fix_truncdfdi2, fix_truncxfsi2, fix_truncxfdi2): Update
733         operand constraints and modes.
734         * i386.c (output_fix_trunc): Use HImode register to avoid
735         memory stalls.  Call output_move_double instead of output_to_reg.
736         (output_to_reg): Remove.
737         * i386.h: Likewise.
738
739         * i386.md (negsf2, negdf2, negxf2): Set the type
740         attribute to fpop.
741
742 Sat Apr 24 23:15:57 1999  Donn Terry (donn@interix.com)
743
744         * alpha.md (call_value_nt): Correct subscripts.
745
746 Sat Apr 24 20:49:20 1999  Richard Henderson  <rth@cygnus.com>
747
748         * alpha.h (PRINT_OPERAND_ADDRESS): Break out to ...
749         * alpha.c (print_operand_address): here.  Handle subregs.
750
751 Fri Apr 23 22:35:41 EDT 1999  John Wehle  (john@feith.com)
752
753         * acconfig.h (HAVE_GAS_FILDS_FISTS): Add.
754         * configure.in: Check assembler instructions.
755         * configure: Rebuild.
756         * config.in: Likewise.
757         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
758         * i386.c (print_operand): Use the proper suffix for a 387 HImode
759         operand.  Abort if a 387 operand has an unsupported size.
760
761 Fri Apr 23 16:57:40 1999  Richard Henderson  <rth@cygnus.com>
762
763         * alpha.c (alpha_write_verstamp): Mark `file' unused.
764         * alpha.h (FUNCTION_VALUE): Use gen_rtx_REG not gen_rtx.
765         (LIBCALL_VALUE): Likewise.
766         (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Handle normal subregs.
767
768 Fri Apr 23 14:57:33 1999  Donn Terry  <donn@interix.com>
769
770         * alpha32.h (INITIALIZE_TRAMPOLINE): Get offsets right.
771
772         * alpha.c (alpha_initialize_trampoline): Add covert_memory_address
773         calls as needed.
774
775 Fri Apr 23 14:36:47 1999  Richard Henderson  <rth@cygnus.com>
776
777         * alpha.c (alpha_expand_prologue): Don't negate frame size
778         for use with subq.
779
780 Fri Apr 23 09:43:18 1999  Nick Clifton  <nickc@cygnus.com>
781
782         * print-rtl.c (print_rtx): Display LABEL_NUSES for labels.
783
784 Thu Apr 22 23:08:37 1999  Mark Mitchell  <mark@codesourcery.com>
785
786         * toplev.h (wrapup_global_declarations): Declare.
787         (check_global_declarations): Likewise.
788         * toplev.c (wrapup_global_declarations): New function, split out
789         from ...
790         (check_global_declarations): Likewise...
791         (compile_file): Here.
792
793 Thu Apr 22 22:34:41 1999  Richard Henderson  <rth@cygnus.com>
794
795         * c-parse.in (expr_no_commas): Verify we've an expr before
796         calling C_SET_EXP_ORIGINAL_CODE.
797
798 Thu Apr 22 22:22:15 EDT 1999  John Wehle  (john@feith.com)
799
800         * toplev.c (rest_of_compilation): Always set
801         current_function_uses_only_leaf_regs appropriately.
802
803 Thu Apr 22 14:39:43 1999  Mumit Khan  <khan@xraylith.wisc.edu>
804
805         * i386/xm-cygwin.h (HAVE_BCOPY): Delete unneeded macro.
806         (HAVE_BZERO): Likewise.
807         (HAVE_BCMP): Likewise.
808         (HAVE_RINDEX): Likewise.
809         (HAVE_INDEX): Likewise.
810         (DIR_SEPARATOR_2): Define.
811         (GET_ENV_PATH_LIST): Turn path lists into POSIX.
812         (PATH_SEPARATOR): Use ':'.
813
814 1999-04-22 Bruce Korb <ddsinc09@ix.netcom.com>
815
816         * configure.in: enable disabling of fast fixincludes
817         * configure: regenerate
818
819 1999-04-21 14:55 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
820
821         * gen-protos.c: #undef abort after including system.h.
822         Delete defns of fancy_abort and fatal.
823         * fix-header.c: Delete defn of fancy_abort.
824
825 Wed Apr 21 12:09:38 1999  Mumit Khan  <khan@xraylith.wisc.edu>
826
827         * cccp.c (simplify_filename): Always preserve leading double slash.
828
829 Wed Apr 21 18:15:55 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
830
831         * config/c4x/c4x.md: Add new peepholes to remove redundant loads.
832
833 Wed Apr 21 17:41:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
834
835         * config/c4x/c4x.md (binary patterns): Reorder alternatives
836         so that two operand instructions are chosen before three operand
837         instructions.
838
839 Tue Apr 20 23:38:58 1999  Nathan Sidwell  <nathan@acm.org>
840
841         * objc/Make-lang.in (objc-parse.c): Put BISON parameters in correct
842         order.
843
844         * Makefile.in (c-parse.c): Put BISON parameters in correct
845         order.
846
847 Tue Apr 20 16:38:11 1999  Richard Henderson  <rth@cygnus.com>
848
849         * alpha.md (nt_lda): New pattern.
850         * alpha.c (alpha_expand_prologue): Use it for large frames
851         under windows nt.
852
853 Tue Apr 20 17:57:14 1999  Catherine Moore  <clm@cygnus.com>
854
855         * config/arm/arm.md (movhi):  Add check for odd offset.
856
857 Tue Apr 20 13:14:58 EDT 1999  John Wehle  (john@feith.com)
858
859         * i386.c (output_move_double): Abort if a non-offsettable
860         memory operand is encountered.  Delete unused code.
861         (find_addr_reg): Remove.
862
863 Mon Apr 19 21:13:02 1999  Craig Burley  <craig@jcb-sc.com>
864
865         * tree.def (BLOCK): Fix typo in comment.
866
867 1999-04-19 14:51 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
868
869         * cpplib.c (output_line_command): Drop CONDITIONAL argument.
870         We can omit unnecessary line commands if file_change ==
871         same_file and pfile->lineno != 0.  All callers changed.
872         (cpp_get_token [case '\n']): Don't bump pfile->lineno if
873         CPP_OPTIONS (pfile)->no_line_commands is set.
874         * cpplib.h: Fix prototype of output_line_command.
875
876 1999-04-18 17:46 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
877
878         * cppfiles.c (find_position, read_and_prescan): Use `unsigned
879         long' variables consistently to count line and column numbers.
880
881 Sun Apr 18 15:50:33 EDT 1999  John Wehle  (john@feith.com)
882
883         * output.h (current_function_is_leaf,
884         current_function_uses_only_leaf_regs): Declare.
885         * function.c (current_function_is_leaf,
886         current_function_uses_only_leaf_regs): Define.
887         (init_function_start): Initialize current_function_is_leaf
888         and current_function_uses_only_leaf_regs.
889         * final.c (leaf_function): Don't define.
890         (final_start_function): Replace uses of leaf_function with
891         current_function_uses_only_leaf_regs.
892         * toplev.c (rest_of_compilation): Set current_function_is_leaf
893         prior to invoking local register allocation.
894         (rest_of_compilation): Replace uses of leaf_function with
895         current_function_uses_only_leaf_regs.
896         * dbxout.c (dbxout_symbol, dbxout_parms): Likewise.
897         * dwarf2out.c (add_location_or_const_vaule_attribute): Likewise.
898         * dwarfout.c (add_location_or_const_value_attribute): Likewise.
899         * sdbout.c (sdbout_symbol): Likewise.
900         * sparc.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
901         * sparc.c (eligible_for_epilogue_delay, output_return,
902         sparc_return_peephole_ok): Likewise.
903         * sparc.md (leaf_function attribute, untyped_return): Likewise.
904         * i386.c (ix86_compute_frame_size): Don't align the stack
905         for leaf functions which don't allocate any stack slots.
906         * tm.texi: Update documentation.
907
908 Sun Apr 18 02:15:09 PDT 1999 Jeff Law  (law@cygnus.com)
909
910         * version.c: Bump for snapshot.
911
912 Sun Apr 18 00:08:45 1999  Richard Henderson  <rth@cygnus.com>
913
914         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Correct last change --
915         make sure FP_BASE_P registers are only used with an integer.
916
917 Sat Apr 17 22:54:17 1999  Richard Henderson  <rth@cygnus.com>
918
919         * alpha.h (REG_OK_FP_BASE_P): New macro.
920         (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Use it.
921         * alpha.md (adddi3+1): New insn to handle large constants off
922         the soft frame pointer.
923         (adddi3+2): Don't split soft frame pointer or arg pointer additions.
924
925 Sun Apr 18 17:24:10 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
926
927         * config/c4x/c4x.c (legitimize_operands): Use rtx_cost
928         to determine if it is worthwhile forcing a constant into a register.
929         * config/c4x/c4x.h (CONST_COSTS): An integer value of 255 or 65535
930         used with a logical and or an integer value of 16 or 24 used with
931         a right shift has zero cost on the C40.
932
933 Sat Apr 17 21:30:11 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
934
935         * gcse.c (compute_local_properties): If setp is nonzero, clear
936         TRANSP instead of setting it to all ones.
937
938 Sat Apr 17 21:10:10 1999  Jan Hubicka <hubicka@freesoft.cz>
939
940         * i386.c (i386_preferred_stack_boundary_string): New global variable.
941         (i386_preferred_stack_boundary): New global variable.
942         (override_functions): Set it.  Tidy option setting code.
943         * i386.h (TARGET_OPTIONS): New command line option.
944         (i386_preferred_stack_boundary_string): Declare it.
945         (i386_preferred_stack_boundary): Likewise.
946         (PREFERRED_STACK_BOUNDARY): Use i386_preferred_stack_boundary.
947
948 Sat Apr 17 19:22:38 1999  Jan Hubicka <hubicka@freesoft.cz>
949
950         * i386.c (k6_cost): Take into account the decoding time.
951
952 Sat Apr 17 19:13:22 1999  Donn Terry  <donn@interix.com>
953
954         * i386.h (PRINT_OPERAND_PUNCT_VALID_P): Allow _.
955         * i386.c (print_operand): New %_ operator.
956         (load_pic_register): Proper number of leading _ in GOT literal.
957         * i386.md (prologue_get_pc_and_set_got): Likewise.
958         * i386/unix.h (ASM_OUTPUT_MI_THUNK): Likewise.
959
960 Sat Apr 17 19:13:07 1999  Richard Henderson  <rth@cygnus.com>
961
962         * alpha.c (alpha_expand_prologue): Use gen_adddi3 instead of
963         emit_move_insn+plus_constant.  For NT, don't use the stack probe
964         loop pointer to allocate stack space.
965         * alpha.md (adddi3): Always use lda to set the stack pointer.
966
967 1999-04-17 20:11 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
968
969         * c-aux-info.c, emit-rtl.c, explow.c, expmed.c, gcse.c,
970         haifa-sched.c, optabs.c, reorg.c, resource.c, sched.c: Include
971         toplev.h for real declaration of trim_filename.
972         * Makefile.in: Update dependencies.
973
974 Sat Apr 17 14:36:19 1999  Craig Burley  <craig@jcb-sc.com>
975
976         * tree.c (chainon): Check for circularity only if
977         ENABLE_CHECKING is defined.
978
979 1999-04-17 10:15 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
980
981         * cccp.c: Make fatal non-static.
982
983 Sat Apr 17 23:47:24 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
984
985         * config/c4x/c4x.md (*andqi3_255_clobber,*andqi3_65535_clobber):
986         New logical and patterns using C40 bit-field insert instructions.
987         (*lshrqi3_24_clobber,*ashrqi3_24_clobber,*lshrqi3_16_clobber,
988         *ashrqi3_16_clobber): New shift patterns using C40 bit-field insert
989         instructions.
990
991 1999-04-16 22:44 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
992
993         * system.h: Always prototype abort.  Prototype fatal.  Define
994         abort to call fatal, not fprintf/exit.  Define a stub macro
995         for trim_filename.
996         * toplev.c: Define DIR_SEPARATOR.  (trim_filename): New
997         function.
998         * toplev.h: Prototype trim_filename, and #undef system.h's stub.
999
1000         * gcc.c, genattr.c, genattrtab.c, gencodes.c, genconfig.c,
1001         genemit.c, genextract.c, genflags.c, genopinit.c, genoutput.c,
1002         genpeep.c, genrecog.c: Make fatal non-static.
1003         * gcov.c, gengenrtl.c, protoize.c: #undef abort after
1004         including system.h.
1005
1006         * config/i386/dgux.h, config/m68k/xm-amix.h: Remove stale code
1007         relating to abort.
1008
1009 Sat Apr 17 11:25:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1010
1011         * config/c4x/c4x.md (mulqf3_clrqf_clobber, mulqi3_clrqi_clobber):
1012         New patterns to support parallel multiply and load of zero.
1013
1014 Fri Apr 16 01:23:47 1999  Jason Merrill  <jason@yorick.cygnus.com>
1015
1016         * tree.c (valid_machine_attribute): If we're modifying the
1017         FUNCTION_TYPE within a POINTER_TYPE and we don't get a decl,
1018         update the POINTER_TYPE.
1019
1020 Fri Apr 16 00:19:31 1999  Jan Hubicka <hubicka@freesoft.cz>
1021
1022         * i386.c (x86_adjust_cost): Move break statement to correct place.
1023
1024 Thu Apr 15 23:17:33 1999  Jerry Quinn <jquinn@nortelnetworks.com>
1025
1026         * pa.h (HAVE_PRE_INCREMENT, HAVE_POST_INCREMENT,
1027         HAVE_PRE_DECREMENT, HAVE_POST_DECREMENT): Fix pa_cpu value from
1028         8000 to PROCESSOR_8000.
1029
1030 Thu Apr 15 20:46:57 1999  Donn Terry (donn@interix.com)
1031
1032         * expr.c (expand_assignment): Force pointers to proper mode if
1033         POINTERS_EXTEND_UNSIGNED is defined.
1034
1035         * xm-alpha.h (alloca.h): Add Interix to list of special machines
1036         that don't like alloca.h, pending using autoconf results.
1037
1038         * except.c (start_catch_hadler): Be sure rtime_address is Pmode
1039         if POINTERS_EXTEND_UNSIGNED.
1040
1041         * except.c (expand_eh_return): Force pointers to proper mode if
1042         POINTERS_EXTEND_UNSIGNED.
1043
1044 Thu Apr 15 23:13:35 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1045
1046         * config/c4x/c4x.h:  Tweaked comment formatting.
1047         * config/c4x/c4x.c:  Likewise.
1048
1049 Thu Apr 15 02:45:19 1999  Mumit Khan  <khan@xraylith.wisc.edu>
1050
1051         * aclocal.m4 (GCC_FUNC_MKDIR_TAKES_ONE_ARG): Define.
1052         * configure.in: Use.
1053         * configure: Rebuilt.
1054         * acconfig.h (MKDIR_TAKES_ONE_ARG): Add.
1055         * config.in: Rebuilt.
1056         * system.h: Use.
1057
1058 Thu Apr 15 01:03:21 1999  Jan Hubicka <hubicka@freesoft.cz>
1059                           Jeff Law <law@cygnus.com>
1060
1061         * i386.md (QImode add pattern): Support lea instruction.
1062         (HImode add pattern): Likewise.
1063
1064         * i386.md (ashlsi patterns): Call output_ashl instead of output_ashlsi3.
1065         (ashlqi): Use expander, separate LEA and SAL / ADD patterns; call
1066         output_ashl.
1067         (ashlhi): Likewise.
1068         * i386.h (output_ashl): Renamed from output_ashlsi3.
1069         * i386.c (output_ashl): Likewise; support HImode and QImode operands
1070         as well.
1071
1072         * i386.md (notsi, nothi, xorsi, xorhi, and xorqi patterns): Call
1073         memory_address_displacement_length instead of memory_address_length.
1074         * i386.c (memory_address_info): Renamed from memory_address_length.
1075         Accept new argument DISP_LENGTH.  All callers changed.  If DISP_LENGTH,
1076         then return the displacement length.  Else return length of the
1077         entire memory address.  Handle MULT case correctly.
1078         * i386.h (memory_address_info): Update declaration.
1079
1080         * i386.md (memory_bit_test): Fix paren error.
1081
1082 Wed Apr 14 21:29:18 1999  Andrew Haley  <aph@cygnus.com>
1083
1084         * flow.c: (make_edges): Always make edges from a basic block
1085         to its exception handlers, even if the block ends with a jump.
1086
1087 1999-04-14 23:26 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
1088
1089         * graph.c (node_data): Return void.  Ignore result of
1090         print_rtl_single.  Change caller to match.
1091         * integrate.c (subst_constants): Initialize op0_mode to an
1092         invalid mode, and abort before use if it's still invalid.
1093         (Can only happen if the RTX_CLASS, RTX_FORMAT tables are corrupted.)
1094         * objc/objc-act.c (get_objc_string_decl,
1095         build_selector_translation_table, generate_protocol_list,
1096         synth_id_with_class_suffix, build_keyword_selector,
1097         build_selector_expr, gen_declarator): Abort when the tree
1098         structure is corrupted.
1099
1100 Wed Apr 14 19:57:49 1999  Jeffrey A Law  (law@cygnus.com)
1101
1102         * configure.in (alpha interix): Use symbolic names to set
1103         target_cpu_default.
1104         * configure: Rebuilt.
1105
1106         * explow.c (allocate_dynamic_stack_space): Undo last change.  Use
1107         convert_memory_address instead.
1108
1109 Wed Apr 14 19:42:02 1999  Donn Terry (donn@interix.com)
1110
1111         * alpha/lib1funcs.asm: New file.
1112         * alpha/t-interix (lib1funcs.asm): Add to build.
1113
1114         * explow.c (allocate_dynamic_stack_space): Correctly convert TARGET
1115         to Pmode.
1116
1117 Wed Apr 14 14:26:36 1999  John Wehle  (john@feith.com)
1118
1119         * i386.md (truncxfdf): Output the template supplied
1120         by output_move_double with the correct operands.
1121
1122         * i386.md (extendsfdf, extendsfxf, extenddfxf): Use
1123         output_float_extend instead specifying '#' as the template.
1124         * i386.c (output_float_extend): Define.
1125         * i386.h (output_float_extend): Declare.
1126
1127 Wed Apr 14 10:48:03 1999  Catherine Moore  <clm@cygnus.com>
1128
1129         * config/mips/elf.h, config/mips/elf64.h
1130         (CTORS_SECTION_ASM_OP): Define.
1131         (DTORS_SECTION_ASM_OP): Define.
1132         (EXTRA_SECTIONS): Define.
1133         (INVOKE__main): Define.
1134         (NAME__MAIN): Define.
1135         (SYMBOL__MAIN): Define.
1136         (EXTRA_SECTIONS_FUNCTIONS): Define.
1137         (SECTION_FUNCTION_TEMPLATE): Define.
1138         (ASM_OUTPUT_CONSTRUCTOR): Define.
1139         (ASM_OUTPUT_DESTRUCTOR): Define.
1140         (CTOR_LIST_BEGIN): Define.
1141         (CTOR_LIST_END): Define.
1142         (DTOR_LIST_BEGIN): Define.
1143         (DTOR_LIST_END): Define.
1144         (LIB_SPEC): Define.
1145         (STARTFILE_SPEC): Define.
1146         (ENDFILE_SPEC): Define.
1147         * config/mips/linux.h:  Undefine all of the above.
1148         * config/mips/rtems64.h: Likewise.
1149         * config/mips/t-r3900: Likewise.
1150         * config/mips/t-elf: New file.
1151         * config/mips/vxworks.h: New file.
1152         * configure.in (mips-wrs-vxworks): Use mips/vxworks.h.
1153         (mips*-*-*elf*):  Use t-elf instead of t-ecoff.
1154         * configure: Regenerate.
1155
1156 Wed Apr 14 09:59:38 1999  Richard Henderson  <rth@cygnus.com>
1157
1158         * reload1.c (emit_reload_insns): Also find equivalent mems
1159         for subregs of pseudos.
1160
1161         * alpha.c (aligned_memory_operand): Recognize the output of
1162         LEGITIMIZE_RELOAD_ADDRESS.  Examine reg_equiv_memory_loc in
1163         the event of a pseudo.
1164         (unaligned_memory_operand): Likewise.  Don't otherwise accept
1165         completely illegal addresses.
1166         (normal_memory_operand): Likewise.  Handle subregs of pseudos.
1167         (get_aligned_mem): Revert previous change.  Abort if we don't have a
1168         mem.  During reload, call find_replacement on all illegal memories.
1169         (get_unaligned_address): Likewise.
1170         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Use !aligned_memory_operand
1171         instead of unaligned_memory_operand.
1172         * alpha.md: Revert extra argument to get_aligned_mem.
1173         (reload_inqi): Use any_memory_operand in constraints.  Abort if
1174         we're not given some sort of mem.
1175         (reload_inhi): Likewise.
1176         (reload_outqi, reload_outhi): Likewise.
1177
1178 Wed Apr 14 09:39:20 1999  Richard Henderson  <rth@cygnus.com>
1179
1180         * i386.md (neghi): Use the whole register when widening the op.
1181
1182 1999-04-14 12:37 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
1183
1184         * cpperror.c, cppexp.c, cpplib.c: Never call abort.
1185         * cpphash.c: Only call abort when we detect corruption of the
1186         malloc arena.
1187         * cppmain.c: Don't define fatal or fancy_abort.
1188
1189 Wed Apr 14 09:19:39 1999  Jan Hubicka <hubicka@freesoft.cz>
1190
1191         * i386.c (x86_adjust_cost): Agi stall takes 1 cycle on Pentium, fst
1192         requires value to be ready one extra cycle.
1193
1194 Wed Apr 14 11:28:34 1999  Dave Brolley  <brolley@cygnus.com>
1195
1196         * config/i386/i386.c (memory_address_length): Add missing parenthesis.
1197
1198 Wed Apr 14 13:59:27 1999  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1199
1200         * extend.texi (Deprecated Features): New node.
1201         * invoke.texi (-Wdeprecated): Document.
1202
1203 Wed Apr 14 00:18:22 1999  Jan Hubicka <hubicka@freesoft.cz>
1204
1205         * i386.md (SImode logical compare): Avoid outputing non-pariable testw
1206         and testl on Pentium.
1207         (register and memory bit tests): Likewise.
1208         (setcc, normal and reversed conditional branches): Use shorter
1209         sequence for testing flags stored in EAX.
1210
1211         * i386.md (xorsi3): Do not output NOT instrctions on Pentium.
1212         (xorqi3): Likewise.
1213         (xorhi3): Likewise.
1214         (notsi2): Likewise.
1215         (notqi2): Likewise.
1216         (nothi2): Likewise; do not output prefixed opcodes when possible.
1217
1218         * i386.md (neghi2): Do not output prefixed opcode when possible.
1219         (ashlhi3): Likewise.
1220
1221 Wed Apr 14 00:08:46 1999  Richard Henderson  <rth@cygnus.com>
1222
1223         * i386.c (memory_address_length): New function.
1224         * i386.h (memory_address_length): Declare it.
1225
1226 Tue Apr 13 22:52:04 1999  Donn Terry (donn@interix.com)
1227                           Martin Heller (Ing.-Buero_Heller@t-online.de)
1228
1229         * configure.in (interix Alpha): Add.
1230         (winnt Alpha): Use alpha32.h
1231         (interix i386): Parallel Alpha32.
1232         * configure: Rebuilt.
1233
1234         * config/interix.h: Move common elements from i386-interix.h.
1235         * config/i386/i386-interix.h: Delete same.
1236         * config/alpha/alpha-interix.h: New file.
1237
1238         * config/alpha/alpha32.h: New file, part fron win-nt.h.
1239         * config/alpha/win-nt.h: Deletions (-> alpha32.h).
1240         * config/alpha/interix.h: New file
1241
1242         * config/alpha/alpha.md (interix): Comment.
1243
1244         * config/alpha/xm-alpha-interix.h: New file.
1245
1246         * config/alpha/t-interix: New file.
1247
1248         * fixinc/mkfixinc.sh (interix/Alpha): Add.
1249
1250 1999-04-13  Mike Stump  <mrs@wrs.com>
1251
1252         * i386/vxi386.h (CPP_CPU_SPEC): Define appropriately for vxworks.
1253         (CPP_PREDEFINES, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): likewise.
1254
1255 Tue Apr 13 21:01:36 1999  Jason Merrill  <jason@yorick.cygnus.com>
1256
1257         * c-common.c (default_valid_lang_attribute): New fn.
1258         (valid_lang_attribute): New callback ptr.
1259         (decl_attributes): Call it.  Move init_priority support into
1260         C++ frontend.
1261
1262 Tue Apr 13 17:47:14 1999  John Wehle  (john@feith.com)
1263
1264         * i386.md (movdi): Add splitter.
1265
1266 Wed Apr 14 10:04:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1267
1268         * config/c4x/c4x.md (storeqf_int, storeqf_int_clobber, loadqf_int,
1269         loadqf_int_clobber): Add new patterns with corresponding splitters
1270         to handle moves of floating point values into and out of intager
1271         registers by using memory.
1272
1273         * config/c4x/c4x.c (c4x_check_legit_addr): Disallow PRE_INC for modes
1274         other than QFmode and QImode.
1275         (mixed_subreg_operand): New function.
1276         (c4x_emit_move_sequence): If moving a floating point value into or
1277         out of an integer register, use the new patterns storeqf_int_clobber
1278         or loadqf_int_clobber.
1279         (reg_imm_operand, *_reg_operand): Call reg_operand instead of
1280         register_operand.
1281         (reg_operand, src_operand): Disallow operand if it satisifes
1282         mixed_subreg_operand.
1283
1284         * config/c4x/c4x.h (mixed_subreg_operand): Add prototype.
1285
1286 Tue Apr 13 14:49:13 1999  Jan Hubicka  <hubicka@freesoft.cz>
1287
1288         * i386.c (agi_dependent): Handle push operation more correctly.
1289
1290 Tue Apr 13 14:45:17 1999  Jan Hubicka  <hubicka@freesoft.cz>
1291
1292         * i386.md (anddi3): Add % constraint.
1293         (iordi3, xordi3): Likewise.
1294
1295 Tue Apr 13 14:29:58 1999  Jan Hubicka  <hubicka@freesoft.cz>
1296
1297         * i386.md (extendhisi2): Output mov instead of cw instruction for K6
1298         to improve decoding bandwidth.
1299         * i386.md (extendhiqi2): Likewise.
1300
1301 Tue Apr 13 14:26:31 1999  Jan Hubicka  <hubicka@freesoft.cz>
1302
1303         * i386.md (movsf_push): Handle memory to memory case too, new splitter.
1304         (movdf_push, movxf_push): Likewise.
1305         (movsf_push_memory, movdf_push_memory, movxf_push_memory): Remove.
1306
1307 Tue Apr 13 14:14:06 1999  Jan Hubicka  <hubicka@freesoft.cz>
1308
1309         * i386.md: Do not output mov %0,reg on AMD K6.
1310
1311 Tue Apr 13 12:14:07 1999  Dave Brolley  <brolley@cygnus.com>
1312
1313         * cppinit.c (cpp_start_read): Fix buffer overwrite.
1314         * Makefile.in (cppinit.o): Typo in dependencies.
1315
1316 Tue Apr 13 05:04:59 1999  Richard Earnshaw  (rearnsha@arm.com)
1317
1318         * arm.h (function prototypes for arm.c): Ifdef these out if
1319         HAVE_CONFIG_H is not defined.
1320
1321 Tue Apr 13 02:11:11 1999  Jeffrey A Law  (law@cygnus.com)
1322
1323         * pa.c: Avoid Using immediate zero for register zero.
1324         * pa.md: Likewise.
1325
1326         * pa.c (print_operand, case 'f'): New case for FP register or 0.0.
1327         (print_operand, case 'r'): Use %r0 for zero value.
1328         * pa.md (move patterns, fcmp patterns): Use new %f output arg.
1329
1330         * pa.c: Use a register name, not a raw immediate in branch,
1331         compare/clear, sub, subb, uaddcm and vshd instructions.
1332         * pa.md: Likewise.
1333
1334         * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise.
1335
1336         * pa.c: Use a register name, not a raw immediate in "bv" instructions.
1337         * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise.
1338
1339         * pa.c: Remove space register specification in memory addresses,
1340         except where it is actually needed.
1341         * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise.
1342
1343 Mon Apr 12 23:34:35 1999  Jeff Law  (law@cygnus.com)
1344
1345         * version.c: Bump for snapshot.
1346
1347 Mon Apr 12 14:58:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
1348
1349         * reg-stack.c (check_stack_regs_mentioned): Remove variable SIZE.
1350
1351 Mon Apr 12 19:15:17 1999  Daniel Jacobowitz  <dan@debian.org>
1352
1353         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Add missing backslash.
1354
1355 Mon Apr 12 19:11:38 1999  Mumit Khan  <khan@xraylith.wisc.edu>
1356
1357         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mconsole; fix
1358         -mno-nop-fun-dllimport and minor doc fixes.
1359         (STARTFILE_SPEC): Cygwin DLLs don't have dllcrt0.
1360         (LINK_SPEC): Add -mconsole support.
1361         * i386/mingw32.h (LIB_SPEC): Make libraries consistent with
1362         Cygwin.
1363         (LINK_SPEC): Remove. Use Cygwin's version.
1364         (MATH_LIBRARY): Make it null.
1365         * i386/crtdll.h (MATH_LIBRARY): Likewise.
1366
1367 Fri Apr 12 15:00:52 1999  Stan Cox  <scox@cygnus.com>
1368
1369         * c-decl.c (c_decode_option, start_decl, start_function,
1370         finish_function) : Recognize -Wno-main so we can avoid warnings.
1371
1372 1999-04-12  Zack Weinberg  <zack@rabi.columbia.edu>
1373
1374         * cpphash.c (collect_expansion, macroexpand,
1375         push_macro_expansion): Make the escape character in macro
1376         buffers '\r', not '@'.  Remove code to protect literal
1377         occurences of the escape character; '\r' cannot appear
1378         in a macro buffer unless we put it there.
1379         * cpplib.c (skip_comment, copy_comment, cpp_skip_hspace,
1380         copy_rest_of_line, cpp_get_token, parse_string,
1381         parse_assertion): '\r' might be a backslash-newline marker, or
1382         it might be a macro escape marker, depending on
1383         CPP_BUFFER (pfile)->has_escapes.  '@' is not a special
1384         character.
1385         * cpplib.h: Update commentary.
1386
1387 Mon Apr 12 09:30:03 1999  Richard Earnshaw  (rearnsha@arm.com)
1388
1389         * arm.h (target_fp_name, structure_size_string, arm_cpu_select):
1390         Const-ify.
1391         * arm.c (target_fp_name, structure_size_string): Const-ify.
1392
1393         * arm.md (reload_inhi, reload_outhi): Make the scratch DImode.
1394         * arm.c (arm_reload_in_hi): Handle cases when the input is still
1395         a pseudo, make use of scratch registers for reloading the address
1396         as appropriate.
1397         (arm_reload_outhi): Similarly for when the output is still a pseudo.
1398
1399         * riscix.h (SUBTARGET_SWITCHES): Document.
1400
1401 1999-04-12  Bruce Korb  <ddsinc09@ix.netcom.com>
1402
1403         * fixincludes:
1404         make fixincludes behave like the scripts in fixinc/
1405
1406         * Makefile.in( stmp-fixinc ):
1407         ensure the SHELL value is that of the make
1408
1409         * fixincl/inclhack.tpl:
1410         the file name lists ought to be restricted to "*.h" anyway
1411         C++ files may be named .../[a-z]++/... also
1412         Adding copyright year and attribution to output
1413
1414         * fixincl/inclhack.def:
1415         fixed broken expression
1416         Clarify a some comments
1417
1418         * fixincl/fixincl.tpl:
1419         Clarify a some comments
1420         Remove dead template text
1421         Correct the counting of regular expressions
1422
1423 Mon Apr 12 03:07:44 1999  Richard Henderson  <rth@cygnus.com>
1424
1425         * alpha.c (aligned_memory_operand): Handle out of range stack slots.
1426         Take a new SCRATCH argument for the occasion.  Update all callers.
1427         (get_unaligned_address): Abort on out of range stack slots.
1428         * alpha.md (adddi3 splitter): Check s_p_rtx not REGNO.
1429         (reload_inqi): Check for aligned mems before unaligned.
1430         (reload_inhi): Likewise.
1431
1432 Mon Apr 12 03:11:30 1999  Jeffrey A Law  (law@cygnus.com)
1433
1434         * flow.c (flow_delete_insn): If we delete a CODE_LABEL, also remove
1435         it from the nonlocal_goto_handler_labels list.
1436         * jump.c (delete_insn): Likewise.
1437         (jump_optimize_1): Also recompute LABEL_NUSES when we are just
1438         marking labels.
1439         * rtl.h (remove_node_from_expr_list): Declare.
1440         * rtlanal.c (remove_node_from_expr_list): New function.
1441
1442 Mon Apr 12 02:37:02 1999  Jan Hubicka  <hubicka@freesoft.cz>
1443
1444         * reg-stack.c: Update comment, include varray.h.
1445         (stack_regs_mentioned_data): New global variable.
1446         (check_stack_regs_mentioned): New function.
1447         (stack_regs_mentioned): New function.
1448         (reg_to_stack): Initialize and free stack_regs_mentioned_data,
1449         use stack_regs_mentioned.
1450         (record_asm_reg_life): Change insn type cache for changed insn.
1451         (record_reg_life): Do not change the insn mode.
1452         (emit_pop_insn): Likewise.
1453         (emit_swap_insn): Likewise.
1454         (move_for_stack_reg): Likewise.
1455         (stack_reg_life_analysis): Use stack_regs_mentioned.
1456         (emit_swap_insn): Likewise.
1457         (subst_stack_regs): Likewise.
1458         (convert_regs): Likewise.
1459         * jump.c (find_cross_jump): Use stack_regs_mentioned.
1460         * rtl.h (stack_regs_mentioned): Declare.
1461
1462 Mon Apr 12 00:57:10 1999  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
1463
1464         * integrate.c (INTEGRATE_THRESHOLD): Sync it with the comment.
1465
1466 Sun Apr 11 10:24:18 1999  Mark Mitchell  <mark@codesourcery.com>
1467
1468         * rtl.h (rtx_def): Update documentation for jump and call.
1469
1470 Sun Apr 11 07:43:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1471
1472         * jump.c (jump_optimize_1): Make the definition static to match
1473         the prototype.
1474
1475 Sat Apr 10 22:51:53 1999  Jan Hubicka  <hubicka@limax.paru.cas.cz>
1476
1477         * flow.c (life_analysis): New parameter remove_dead_code.
1478         (life_analysis_1): Likewise.
1479         (propagate_block): Likewise; use it.
1480         * output.h: Update prototype.
1481         * toplev.c: Update calls to life_analysis.
1482
1483 Sat Apr 10 22:12:12 1999  Jan Hubicka  <hubicka@freesoft.cz>
1484
1485         * recog.c (constrain_operands): Ignore unary operators when
1486         matching operands.  Recognize '5'..'9' as well.
1487
1488 Sat Apr 10 21:53:02 1999  Philipp Thomas  (kthomas@gwdg.de)
1489                           Richard Henderson  <rth@cygnus.com>
1490
1491         * configure.in: Set target_cpu_default2 for target_alias k6.
1492         * i386.h (TARGET_SWITCHES): Remove no-<cpu> entries.
1493         (CC1_CPU_SPEC): Likewise.
1494         (CPP_CPU_DEFAULT_SPEC): Streamline definition.  Add K6 version.
1495         (CPP_K6_SPEC): New.
1496         (CPP_CPU_SPEC): Add K6 variant.
1497         (EXTRA_SPECS): Likewise.
1498
1499 Fri Apr  9 11:29:17 1999  Richard Henderson  <rth@cygnus.com>
1500
1501         * flow.c (merge_blocks_nomove): Rewrite to properly handle two
1502         blocks that vanish entirely during merging.
1503
1504 Sat Apr 10 20:09:55 1999  John Wehle  (john@feith.com)
1505
1506         * i386.md (floatsisf2, floatdisf2, floatsidf2, floatdidf2,
1507         floatsixf2, floatdixf2, movsicc, movhicc, movsfcc, movdfcc,
1508         movxfcc, movdicc): Remove unused register constraints from
1509         the splitters.
1510
1511         * i386.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
1512         fixuns_truncxfsi2): Delete.
1513
1514         * reg-stack.c (delete_insn_for_stacker): Ensure that
1515         the only side effects of a PARALLEL are clobbers.
1516         (subst_stack_regs): Handle subst_stack_regs_pat deleting
1517         a PARALLEL.
1518         * i386.md (extendsfdf2, extenddfxf2,
1519         extendsfxf2): Rewrite using a splitter.
1520         * i386.c (output_op_from_reg): Remove.
1521         * i386.h: Likewise.
1522
1523 Sat Apr 10 13:09:18 1999  Nick Clifton  <nickc@cygnus.com>
1524
1525         * config/arm/arm.c (di_operand): Allow SUBREGs as well.
1526         (soft_df_operand): Allow SUBREGs as well.
1527
1528 Sat Apr 10 06:14:31 1999  Jan Hubicka  <hubicka@paru.cas.cz>
1529
1530         * extend.texi (Assembler Instructions with C Expression Operands):
1531         Document the i386 floating point operands.
1532
1533 1999-04-10  Mike Stump  <mrs@wrs.com>
1534
1535         * configure.in (*-*-vxworks): Add vxWorks thread support for all
1536         vxWorks targets.
1537         * configure.in (thumb-wrs-xvworks): Add vxWorks support for thumb.
1538         * configure: Rebuilt.
1539
1540 Sat Apr 10 06:04:50 1999  Donn Terry  (donn@interix.com)
1541
1542         * i386/t-interix: Use mostly system headers unchanged.
1543         Use system assert.h
1544         * fixinc/fixinc.interix: Ditto (make almost no-op).
1545         * config/x-interix.h (_ALL_SOURCE): add -D
1546         * config/x-interix.h (crti.o): Delete dependency.
1547         * config/xm-interix.h (ONLY_INT_FIELDS): Define only when bootstrapping.
1548         * i386/xm-i386-interix.h: New file.
1549         * i386/interix.h (ASM_OUTPUT_LIMITED_STRING): Fix warnings.
1550         * i386/i386-interix.h: Renamed from interix.h.
1551         * configure.in (interix): Use new files.
1552         * configure: Rebuilt.
1553
1554 Sat Apr 10 05:25:28 1999  Daniel Jacobowitz  <dan@debian.org>
1555
1556         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Fix conditions
1557         for -Dunix and -Dlinux, and remove duplicate definition.
1558         Change -Asystem(linux) to -Asystem(posix).
1559         (CPP_OS_SOLARIS_SPEC): Fix conditions for -Dunix, -Dsun,
1560         -DSVR4, -D__EXTENSIONS__.
1561
1562         * rs6000/linux.h (CPP_PREDEFINES): Remove -Dunix,
1563         -Dlinux, -Asystem(linux), and -Asystem(unix).
1564
1565 Sat Apr 10 05:14:50 1999  Mark Elbrecht  <snowball3@usa.net>
1566
1567         * i386/djgpp.h (SET_ASM_OP): Define.
1568
1569         * cccp.c (DIR_SEPARATOR): Move to the top of the file.
1570         (is_dir_separator): New function.
1571         (simplify_filename): Use it.
1572         * collect2.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM in place
1573         of the DIR_SEPARATOR test.
1574         Consider any file starting with a drivename to be absolute.
1575         If the absolute filename test fails and EXECUTABLE_SUFFIX is
1576         defined, append EXECUTABLE_SUFFIX to the file and try again.
1577         * cppinit.c (base_name): Use HAVE_DOS_BASED_FILE_SYSTEM
1578         in place of __MSDOS__ and _WIN32.
1579         * cppfiles.c (simplify_pathname): Likewise.
1580         * gcc.c (IS_DIR_SEPARATOR): Define new macro. Returns true if a
1581         character is a directory separator.
1582         (find_a_file): Use it.
1583         (convert_filename): Likewise.
1584         (process_command): Likewise.
1585         (do_spec_1): Likewise.
1586         (is_directory): Likewise.
1587         (main): Likewise.
1588         * prefix.c (IS_DIR_SEPARATOR): Define. Tests whether a character is
1589         a directory separator.
1590         (translate_name): Use it.
1591         (update_path): Change DIR_SEPARATOR_2 to DIR_SEPARATOR. Fix
1592         warning in block where '/' is changed to DIR_SEPARATOR.
1593         * i386/xm-djgpp.h (DIR_SEPARATOR): Set to '/'.
1594         (DIR_SEPARATOR_2): New macro. Set to '\'.
1595         (HAVE_DOS_BASED_FILESYS): Define.
1596         * i386/xm-mingw32.h: Updated copyright. Set
1597         DIR_SEPARATOR_2 to '/'. Define HAVE_DOS_BASED_FILE_SYSTEM.
1598         * i386/xm-os2.h: Likewise.
1599         * winnt/xm-winnt.h: Likewise.
1600         * i386/xm-dos.h: Likewise.  Add copyright.
1601
1602 1999-04-10  Joseph S. Myers  <jsm28@cam.ac.uk>
1603
1604         * pdp11.h (TARGET_SWITCHES): Add option to vary assembler syntax.
1605         (TARGET_DEFAULT): Possibly use UNIX syntax.
1606         (TARGET_UNIX_ASM, TARGET_UNIX_ASM_DEFAULT): New macros.
1607         (REGISTER_NAMES): Use "r5" instead of "fp".
1608         (ASM_OUTPUT_ALIGN): Use ".even" directive, and abort for any
1609         greater alignment.
1610         * 2bsd.h (TARGET_UNIX_ASM_DEFAULT): Default to UNIX assembler
1611         syntax for 2BSD.
1612         * pdp11.c (output_ascii): Use working syntax for ".byte".
1613         (print_operand_address): Use "*" instead of "@" when using UNIX
1614         assembler syntax.
1615
1616 Sat Apr 10 03:50:12 1999  Jeffrey A Law  (law@cygnus.com)
1617
1618         * rtl.h (rebuild_jump_labels): Declare.
1619         * jump.c (jump_optimize_1): Renamed from jump_optimize.  Make static.
1620         Add new argument MARK_LABELS_ONLY.  Quit after mark_all_labels if
1621         requested.
1622         (jump_optimize, rebuild_jump_labels): New wrapper functions for
1623         jump_optimize_1.
1624         * toplev.c (rest_of_compilation): Use rebuild_jump_labels instead of
1625         running the entire jump optimizer.
1626
1627         * rtl.h (local_alloc): Returns an integer now.
1628         * local-alloc.c (recorded_label_ref): New file scoped variable.
1629         (local_alloc): Initialize recorded_label_ref to zero.  Return its
1630         value when local allocation has completed.
1631         (update_equiv_regs); If we create an equivalence for a LABEL_REF,
1632         set recorded_label_ref.
1633         * toplev.c (rest_of_compilation): Run the jump optimizer after
1634         register allocation and reloading if needed.
1635
1636 Fri Apr  9 21:02:57 1999  Krister Walfridsson  (cato@df.lth.se)
1637
1638         * i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Fix typo.
1639         * i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1640
1641 1999-04-09  Zack Weinberg  <zack@rabi.columbia.edu>
1642
1643         * cpphash.c (special_symbol): When expanding __LINE__, use the
1644         top file buffer, not the top buffer.
1645
1646 Fri Apr  9 13:41:04 1999  Jim Wilson  <wilson@cygnus.com>
1647
1648         * Makefile.in (check-g++, check-gcc, check-g77, check-objc): Add
1649         cd .. to TCL_LIBRARY command.
1650
1651 Fri Apr  9 13:04:52 1999  Nick Clifton  <nickc@cygnus.com>
1652
1653         * config/arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Only define if
1654         not already specified.
1655
1656 Fri Apr  9 11:18:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
1657
1658         * c-common.c (decl_attributes, A_INIT_PRIORITY): Allow arrays
1659         of classes, too.
1660
1661 Fri Apr  9 10:40:10 1999  Kaveh R. Ghazi  <ghazi@snafu.rutgers.edu>
1662
1663         * rs6000.c (rs6000_override_options, ptt, rs6000_file_start,
1664         rs6000_float_const, rs6000_replace_regno, debug_stack_info,
1665         rs6000_output_load_toc_table, output_prolog, output_epilog):
1666         Const-ify a char*.
1667         (output_mi_thunk): Likewise.  Mark parameter `thunk_fndecl' with
1668         ATTRIBUTE_UNUSED.  Hide unused variables `r0', `sp', `toc',
1669         `schain', `r12', `buf' and `labelno'.
1670         (output_ascii): Const-ify a char*.
1671         (rs6000_gen_section_name): Initialize variable `last_period'.
1672         (rs6000_adjust_priority): Mark parameter `insn' with
1673         ATTRIBUTE_UNUSED.
1674         (rs6000_trampoline_template, rs6000_dll_import_ref,
1675         rs6000_longcall_ref, rs6000_encode_section_info): Const-ify a char*.
1676
1677         * rs6000.h (offsettable_mem_operand, optimization_options): Add
1678         prototypes.
1679
1680         * rs6000.md (movdi, define_split): Cast a value to HOST_WIDE_INT
1681         when comparing against one.
1682
1683 Thu Apr  8 19:20:18 1999  Jeffrey A Law  (law@cygnus.com)
1684
1685         * expr.c (expand_expr, case ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF):
1686         Do not try to optimize a aggregate address which has VOIDmode.
1687         Mirrors March 23 change to expand_assignment.
1688
1689         * flow.c (delete_unreachable_blocks): Do not require EDGE_FALLTHRU
1690         for an edge when tidying an edge which connects consecutive basic
1691         blocks.
1692
1693         * flow.c (can_delete_label_p): Do not convert a label into a
1694         deleted label here.
1695
1696         * cse.c (flush_hash_table): New function.
1697         (cse_insn): Flush the hash table when we encounter a volatile asm.
1698         (cse_basic_block): Use flush_hash_table instead of doing it
1699         inline.
1700
1701         * reload1.c (reload_cse_regs_1): Flush known register values if
1702         we encounter a volatile asm.
1703
1704         * loop.c (strength_reduce): Re-enable Joern's loop improvements.
1705
1706 Thu Apr  8 09:37:40 1999  Nick Clifton  <nickc@cygnus.com>
1707
1708         * config/arm/arm.c (arm_print_operand): Undo previous change -
1709         always print large constants in decimal.
1710
1711 Thu Apr  8 10:22:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1712
1713         * configure.in (host_xm_file, build_xm_file): Include hwint.h.
1714         Use case statements instead of "if test -a ... -a ... -a ..."
1715
1716         * machmode.h: Don't define HOST_WIDE_INT, etc. Wrap use of
1717         HOST_WIDE_INT in #ifdef.
1718
1719         * mips.h: Include hwint.h instead of providing definitions for
1720         HOST_WIDE_INT, etc.  Wrap uses of HOST_WIDE_INT in #ifdef.
1721
1722 Thu Apr  8 06:16:14 1999  John Wehle  (john@feith.com)
1723
1724         * i386.md (truncdfsf2, truncxfsf2,
1725         truncxfdf2): Rewrite using a splitter.
1726
1727 Thu Apr  8 01:26:05 1999  Arg Haas  (ahaas@neosoft.com)
1728                           Jeffrey A Law  (law@cygnus.com)
1729
1730         * freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Avoid ambiguous
1731         else statement.
1732         * gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1733         * linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1734         * openbsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1735
1736 Wed Apr  7 22:40:19 1999  Jim Wilson  <wilson@cygnus.com>
1737
1738         * i960/i960.c (i960_function_prologue): Don't save static chain
1739         pointer.
1740         * i960/i960.h (STACK_CHAIN_REGNUM): Change from r3 to g12.
1741         (TRAMPOLINE_TEMPLATE): Likewise.
1742         (FRAME_POINTER_REQUIRED): Check current_function_has_nonlocal_goto.
1743         * i960/i960.md (nonlocal_goto): Rewrite.
1744
1745 Tue Apr  6 17:49:49 1999  Philip Blundell  <pb@nexus.co.uk>
1746
1747         * config/arm/lib1funcs.asm: Test for __ELF__ not __elf__.
1748
1749 Wed Apr  7 14:07:34 1999  Jeffrey A Law  (law@cygnus.com)
1750
1751         * h8300.c (h8300_adjust_insn_length): Also avoid recognizing
1752         ADDR_VEC and ADDR_DIFF_VEC insns.
1753
1754         * h8300.c (h8300_adjust_insn_length): Avoid trying to recognize
1755         USE, CLOBBER or SEQUENCE insns.
1756
1757         * unroll.c (unroll_loop): For HAVE_cc0 machines, adjust copy_end_luid
1758         to account for the uncopied insn that sets cc0 at the end of the loop.
1759
1760         * unroll.c (copy_loop_body): Always ensure at least two insns
1761         are in the copied loop.
1762
1763 Wed Apr  7 14:52:18 1999  Catherine Moore  <clm@cygnus.com>
1764
1765         * config/mips/elf.h (MAKE_DECL_ONE_ONLY): Define.
1766         (UNIQUE_SECTION_P): Define.
1767
1768 1999-04-07  Bruce Korb  <ddsinc09@ix.netcom.com>
1769
1770         * fixinc/inclhack.tpl & fixincl.tpl:
1771         Remove dynamic content from generated files
1772
1773 Wed Apr  7 13:16:22 1999  John Wehle  (john@feith.com)
1774
1775         * i386.c (output_move_memory): Remove.
1776         * i386.h: Likewise.
1777
1778         * i386.md (movsi, movhi, movstricthi, movqi, movstrictqi,
1779         movsf, movdf, movxf, movdi): Check no_new_pseudos instead
1780         of (reload_in_progress | reload_completed).
1781
1782 Wed Apr  7 03:16:45 1999  Richard Henderson  <rth@cygnus.com>
1783
1784         * alpha.c (reg_no_subreg_operand): New function.
1785         * alpha.h (PREDICATE_CODES): Add it.
1786         * alpha.md (floatdi?f patterns): Use it for op1.
1787
1788         * alpha.c (alpha_end_function): Don't flag weak functions.
1789
1790 Wed Apr  7 02:11:55 1999  Richard Henderson  <rth@cygnus.com>
1791
1792         * expr.c (expand_builtin) [BUILT_IN_RETURN_ADDRESS]: Use
1793         copy_to_mode_reg; don't force constants into a register.
1794
1795 Tue Apr  6 22:55:25 1999  Richard Henderson  <rth@cygnus.com>
1796
1797         * toplev.c (compile_file): Typo flow_dump -> flow2_dump.
1798
1799 1999-04-06  Joseph S. Myers  <jsm28@cam.ac.uk>
1800
1801         * pdp11.c (simple_memory_operand): Add default case in switch.
1802         * pdp11.h (TARGET_SWITCHES): Add help strings.
1803         (NOTICE_UPDATE_CC): Don't include excess argument to format.
1804         (ASM_OUTPUT_DOUBLE_INT): Remove.
1805
1806 Tue Apr  6 22:09:40 1999  Richard Henderson  <rth@cygnus.com>
1807
1808         * expr.c (expand_builtin_setjmp): Put setjmp return label on
1809         nonlocal_goto_handler_labels for flow.
1810
1811 Tue Apr  6 22:05:21 1999  Jan Hubicka  <hubicka@paru.cas.cz>
1812                           Richard Henderson  <rth@cygnus.com>
1813
1814         * flow.c (verify_flow_info): New function.
1815         (find_basic_blocks): Call it if ENABLE_CHECKING.
1816         (merge_blocks): Don't merge if there are non-deletable labels.
1817         * toplev.c (fatal_insn): Allow a printf-style arg list.
1818         * toplev.h (fatal_insn): Update prototype.
1819
1820 Tue Apr  6 16:18:58 1999  Jan Hubicka  <hubicka@paru.cas.cz>
1821
1822         * flow.c (split_edge) update correctly flow graph, disable
1823         EDGE_CRITICAL flag on the split edge, update NUSES for new label.
1824
1825 Tue Apr  6 15:47:51 1999  Richard Henderson  <rth@cygnus.com>
1826
1827         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use XWINT not XINT.
1828         Clear third and following slots, if they exist.
1829
1830 Tue Apr  6 15:45:28 1999  Richard Henderson  <rth@cygnus.com>
1831
1832         * flow.c (create_basic_block): Make sure the bb note is in the block.
1833         (can_delete_note_p): Rename from delete_note_p.
1834         (delete_insn_chain): Preserve undeleteable labels too.
1835         (tidy_fallthru_edge): Use next_real_insn instead of confusing
1836         inline code.
1837
1838 1999-04-06  Zack Weinberg  <zack@rabi.columbia.edu>
1839
1840         * cppexp.c (parse_charconst): Initialize c.
1841         (cpp_parse_expr): Initialize rprio.
1842         * cppfiles.c (merge_include_chains): Initialize prev.
1843         (finclude): Set fp->line_base to fp->buf before returning.
1844         * cpphash.c (macroexpand): Initialize token.
1845         * cppspec.c (lang_specific_driver): Change suff to
1846         const char *const *.
1847
1848 1999-04-06  Zack Weinberg  <zack@rabi.columbia.edu>
1849
1850         * cppinit.c (install_predefs): Delete function.
1851         (cpp_start_read): Don't call install_predefs.
1852         (cpp_handle_option): Remove case 'u' and all refs to
1853         opts->inhibit_predefs.
1854         (print_help): Don't mention -undef.
1855         (initialize_builtins): Define __HAVE_BUILTIN_SETJMP__, to
1856         match cccp.
1857         * cpplib.h (struct cpp_options): Remove inhibit_predefs
1858         member.
1859
1860         * cccp.c (predefs): Delete variable.
1861         (main): Remove case 'u' in argument parse loop,
1862         'inhibit_predefs' variable, and the code block that would
1863         process CPP_PREDEFINES.
1864         (initialize_builtins): Don't define __OBJC__, the driver will
1865         do that.
1866
1867         * gcc.c (default_compilers): Remove -undef from all specs that
1868         invoke a C preprocessor.
1869         * ch/lang-specs.h: Likewise.
1870         * cp/lang-specs.h: Likewise.
1871         * f/lang-specs.h: Likewise.
1872         * objc/lang-specs.h: Likewise.
1873
1874 Mon Apr  5 11:55:31 1999  Donn Terry  (donn@interix.com)
1875
1876         * Makefile.in (SUBDIR_FLAGS_TO_PASS): Fix misapplied patch.
1877
1878 Mon Apr  5 11:51:38 1999  Jeffrey A Law  (law@cygnus.com)
1879
1880         * m68k.md (movdf): Hide GPR sources & destinations from regclass.
1881
1882 Mon Apr  5 09:54:42 1999  Jeff Law  (law@cygnus.com)
1883
1884         * version.c: Bump for snapshot.
1885
1886 Mon Apr  5 05:55:15 1999  Bruce Korb  <ddsinc09@ix.netcom.com>
1887
1888         * fixincl.tpl: Separate "-e" from its argument, a la
1889         the Sat Apr  3 17:05:13 1999 fix.
1890         * genfixes: Ensure that the server shell is _NOT_ csh.
1891
1892 Mon Apr  5 03:52:30 1999  Jeff Law  (law@cygnus.com)
1893
1894         * version.c: Bump for snapshot.
1895
1896 Mon Apr  5 04:47:14 1999  Jeffrey A Law  (law@cygnus.com)
1897
1898         * i386.c (x86_double_with_add): Turn off for Pentium and PPro.
1899         (small_shift_operand, output_ashlsi3): New functions.
1900         * i386.h (small_shift_operand, output_ashlsi3): Declare.
1901         * i386.md (ashlsi3): Simplify ahlsi3 patterns.  Remove splitters
1902         that are no longer needed.
1903
1904 Sun Apr  4 04:05:04 1999  Jeffrey A Law  (law@cygnus.com)
1905
1906         * stmt.c (expand_loop_end): When copying the loop exit test,
1907         do not walk into a nested loop.
1908
1909 Sun Apr  4 00:14:54 1999  Jeffrey A Law  (law@cygnus.com)
1910
1911         * fixinc/hackshell.tpl: Skip links to directories, to avoid
1912         removing them.
1913         * fixinc/inclhack.tpl: Likewise.
1914         * fixinc/fixinc.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
1915
1916 Sat Apr  3 23:46:13 1999  David Edelsohn  <edelsohn@gnu.org>
1917
1918         * rs6000.md (addsi3, iorsi3, xorsi3, adddi3, iordi3, xordi3,
1919         movsi_got, movsi, movsf): Use no_new_pseudos.
1920         * rs6000.c (rs6000_got_register): Likewise.
1921         (offsettable_mem_opereand): Use || not |.
1922
1923 Sat Apr  3 22:02:56 1999  Jeffrey A Law  (law@cygnus.com)
1924
1925         * acconfig.h (ENABLE_CHECKING): Remove redundant #undef.
1926         * config.in: Rebuilt.
1927
1928 Sat Apr  3 16:22:59 1999  Toshiyasu Morita  (tm@netcom.com)
1929
1930         * gcc.texi: Add info on regmove pass.
1931
1932         * regmove.c (fixup_match_1): Consistently evaluate
1933         HAVE_POST_INCREMENT and HAVE_POST_DECREMENT.
1934
1935 Sat Apr  3 19:21:05 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
1936
1937         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER): Use grep
1938         instead of test and sed to check whether they're GNU programs.
1939         * configure: Rebuilt.
1940
1941 Sat Apr  3 17:57:35 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
1942
1943         * Makefile.in (install-headers-tar, install-headers-cpio): Avoid
1944         problems with CDPATH.
1945         Reported by Ralf Canis <canis@bigfoot.com>
1946
1947 Sat Apr  3 13:50:16 1999  Jeffrey A Law  (law@cygnus.com)
1948
1949         * fixinc.x86-linux-gnu: Deleted.
1950
1951 Sat Apr  3 17:05:13 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
1952
1953         * inclhack.tpl: Insert spaces between `sed -e' and '...'.
1954         Reported by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1955         * fixinc/fixincl.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Regen.
1956
1957 Sat Apr  3 14:54:46 1999  Craig Burley  <craig@jcb-sc.com>
1958
1959         * tree.def (BLOCK): Fix typo in comment.
1960
1961 Sat Apr  3 00:53:29 1999  John Wehle  (john@feith.com)
1962
1963         * i386.md (floatsisf2, floatdisf2, floatsidf2, floatdidf2,
1964         floatsixf2, floatdixf2): Rewrite using a splitter.
1965
1966 Fri Apr  2 17:36:10 1999  Nick Clifton  <nickc@cygnus.com>
1967
1968         * config/arm/arm.c (arm_print_operand): Print large constants in
1969         hex rather than decimal.
1970
1971 Fri Apr  2 17:23:58 1999  Nick Clifton  <nickc@cygnus.com>
1972
1973         * print-rtl.c (print_rtx): Use both HOST_WIDE_INT_PRINT_DEC
1974         and HOST_WIDE_INT_PRINT_HEX to display constants.
1975
1976 1999-04-02  Zack Weinberg  <zack@rabi.columbia.edu>
1977
1978         * config/i386/i386.h: Document all TARGET_SWITCHES or add
1979         explicit null initializer.
1980
1981         * config/i386/cygwin.h: Document all SUBTARGET_SWITCHES.
1982         * config/i386/dgux.h: Likewise.
1983         * config/i386/osf1elf.h: Likewise.
1984         * config/i386/win32.h: Likewise.
1985         * config/i386/osfrose.h: Likewise.  Drop obsolete -mno-ident option.
1986
1987 Fri Apr  2 17:49:44 1999  Toshiyasu Morita  <tm@netcom.com>
1988
1989         * regmove.c (fixup_match_1): Remove now useless if (0).
1990
1991 Sat Apr  3 11:37:20 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1992
1993         * tm.texi (USE_LOAD_POST_DECREMENT, USE_LOAD_PRE_DECREMENT,
1994         USE_STORE_POST_DECREMENT, USE_STORE_PRE_DECREMENT): Document.
1995         (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT,
1996         USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Fix documentation.
1997
1998         * rtl.h (USE_LOAD_POST_DECREMENT, USE_LOAD_PRE_DECREMENT,
1999         USE_STORE_POST_DECREMENT, USE_STORE_PRE_DECREMENT,
2000         USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT,
2001         USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Provide default
2002         definition.
2003
2004         * expr.c (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT,
2005         USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Delete default
2006         definition.
2007
2008 Fri Apr  2 16:03:05 1999  Jeffrey A Law  (law@cygnus.com)
2009
2010         * fixinc.dgux, fixinc.interix, fixinc.irix, fixinc.ptx: Deleted.
2011         * fixinc.sco, fixinc.svr4, fixinc.winnt, fixinc.wrap: Likewise.
2012
2013 Fri Apr  2 15:46:25 1999  Donn Terry  (donn@interix.com)
2014
2015         * configure.in: Set and substitute quoted_cc_set_by_configure.
2016         * configure: Rebuilt.
2017         * Makefile.in (SUBDIR_FLAGS_TO_PASS): Fix quoting problem with ``.
2018
2019 Fri Apr  2 14:35:45 1999  Stan Cox  <scox@cygnus.com>
2020
2021         * config/i386/cygwin.h (CPP_SPEC): Use mingw_include_path instead
2022         of a hardcoded path for -mno-cygwin.
2023         (mingw_include_path): New.
2024
2025 1999-04-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2026
2027         * pdp11.c: Include "recog.h".
2028         (output_function_prologue): Remove unused variables `nregs', `i',
2029         `offset'.
2030         (output_function_epilogue): Remove unused variables
2031         `may_call_alloca', `nregs', `regno', `adjust_fp'.
2032         (output_ascii): Mark as returning void.
2033         (print_operand_address: Likewise.
2034         (simple_memory_operand): Remove unused variables `plus0', `plus1',
2035         `offset'.
2036         * pdp11.h: Declare functions `arith_operand',
2037         `const_immediate_operand', `expand_shift_operand',
2038         `legitimate_address_p', `notice_update_cc_on_set', `output_ascii',
2039         `output_function_epilogue', `output_function_prologue',
2040         `print_operand_address', `register_move_cost',
2041         `simple_memory_operand'.
2042         (HARD_REGNO_MODE_OK): Parenthesize `REGNO' arg.
2043         (REGNO_REG_CLASS): Likewise.
2044         * pdp11.md: Add explicit `int' to `static count' (in two places).
2045         (addhi3): Add explicit braces to avoid ambiguous else.
2046         (addqi3): Likewise.
2047         (ashlhi3): Likewise.
2048
2049 Fri Apr  2 14:17:10 1999  Jerry James  <jerry@cs.ucsb.edu>
2050
2051         * gcc/invoke.texi: Add documentation for additional supported
2052         MIPS CPU types, options -mips16 and -mentry, and ABI and ISA
2053         defaults.
2054
2055 Fri Apr  2 14:12:06 1999  John Wehle  (john@feith.com)
2056
2057         * i386.md: Delete floating point compare, add, subtract,
2058         multiply, and divide patterns which allowed integer
2059         operands.
2060         * i386.c (output_387_binary_op): Delete unused code.
2061         (output_float_compare): Likewise.
2062
2063 Fri Apr  2 11:53:37 1999  John Wehle  (john@feith.com)
2064
2065         * i386.md (movsf+1, movdf+1, movxf+1): Update constraints
2066         so that SECONDARY_MEMORY_RELOAD is used.  Remove dead code.
2067
2068 1999-04-02  Bruce Korb  <ddsinc09@ix.netcom.com>
2069
2070         * fixinc/mkfixinc.sh: Added support for x86-interix.
2071         * fixinc/fixinc.interix: Fixincludes script, slight changes
2072         from ./fixinc.interix.  Untested (needs interix box).
2073         * fixinc/inclhack.def:
2074         Complete the change to the 'fixinc.tmp' file.
2075         Fixed regex for finding C++ headers.
2076         * fixincl.x, fixincl.sh, inclhack.sh: Regenerate.
2077
2078 Fri Apr  2 11:36:12 1999  Jan Hubicka  (hubicka@paru.cas.cz)
2079
2080         * i386.c (print_operand_address, case REG): Do not use ESI addressing
2081         mode for the K6.
2082
2083         * i386.c (print_operand_address, case MULT): Use more efficient
2084         encoding (mult (reg) (const_int 2)).
2085
2086 Thu Apr  1 17:01:50 1999  Richard Henderson  <rth@cygnus.com>
2087
2088         Move over patch from Bernd Schmidt from GC branch:
2089         * emit-rtl.c (gen_rtx_CONST_DOUBLE): New function.
2090         (gen_rtx): Call it.  Tidy cases.
2091         * rtl.h (gen_rtx_CONST_DOUBLE): Prototype it.
2092         * gengenrtl.c: Add commentary.
2093         (special_rtx): Also match CONST_DOUBLE.
2094         (gencode): Emit call to memset instead of bzero.
2095
2096 Fri Apr  2 12:58:26 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2097
2098         * config/c4x/c4x.md (ashlhi3, lshrhi3, ashrhi3): Force operand 1
2099         into a register if shift count not constant.
2100         (ashlhi3_reg, lshrhi3_reg, ashrhi3_reg): Ensure that operand 1
2101         is a register.
2102
2103 Fri Apr  2 12:19:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2104
2105         * config/c4x/c4x.md (*db): Enable pattern if TARGET_LOOP_UNSIGNED
2106         is non-zero.
2107         (movstrqi_small, movstrqi_large, *cmpstrqi): Add + modifier to address
2108         register constraints.
2109         (*movhi_clobber+1): Modify splitter pattern to handle destination
2110         register that is used in the source address.
2111         (*xorhi3_clobber): Replace AND with XOR in call to legitimize_operands.
2112
2113 Fri Apr  2 12:16:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2114
2115         * config/c4x/c4x.h: Added more comments.
2116
2117 Fri Apr  2 11:58:22 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2118
2119         * config/c4x/c4x.c (c4x_emit_move_sequence): Force invalid QImode
2120         constants into memory if we get called directly from gen_move_insn
2121         rather than emit_move_insn.
2122         (c4x_legitimize_address): Fix up LABEL_REF addresses.
2123
2124 Thu Apr  1 12:04:05 1999  Jim Wilson  <wilson@cygnus.com>
2125
2126         * expr.c (store_field): When check direct_store, assume all complex
2127         modes can be directly stored.
2128
2129 1999-04-01  Bruce Korb  <ddsinc09@ix.netcom.com>
2130
2131         * fixinc/genfixes: New shell script that runs autogen
2132         to create the generated files.
2133
2134 1999-04-01  Manfred Hollstein  <manfred@s-direktnet.de>
2135
2136         * Makefile.in (cppmain$(exeext)): Depend on intl.o.  Link in intl.o.
2137
2138 Thu Apr  1 03:48:34 1999  H.J. Lu  (hjl@gnu.org)
2139
2140         * i386.c (output_fp_conditional_move): Abort for LT, LE, GE, and GT
2141         signed integer comparisons.
2142
2143         * i386.c (output_int_conditional_move): Use "enum rtx_code" for code
2144         type.
2145
2146         * i386.c (notice_update_cc): No need to check the INT mode for
2147         conditional moves since FLOAT conditional moves don't affect cc0.
2148
2149 Thu Apr  1 02:17:18 1999  Jeffrey A Law  (law@cygnus.com)
2150
2151         * fixinc/inclhack.def (zzz_ki_syscalls, zzz_time): Fix trigger
2152         string to only match on hpux11.
2153         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixinc.sh: Rebuilt.
2154
2155 Thu Apr  1 01:09:27 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
2156
2157         * fixinc/hackshell.tpl: Complete transition to fixinc.tmp.
2158         * fixinc/inclhack.sh: Rebuilt.
2159
2160         * fixinc/inclhack.def: Fix typos in c_asm.h fix.
2161         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixinc.sh: Rebuilt.
2162
2163 Wed Mar 31 17:20:11 1999  Jeffrey A Law  (law@cygnus.com)
2164
2165         * toplev.c (rest_of_compilation): Allow dbr_schedule to write to
2166         the dump file too.
2167
2168 Wed Mar 31 12:32:43 1999  Richard Henderson  <rth@cygnus.com>
2169
2170         * flow.c (find_basic_blocks): New argument `do_cleanup'.
2171         Conditionally call delete_unreachable_blocks.
2172         (free_basic_block_vars): Zero ENTRY/EXIT data.
2173         (allocate_for_life_analysis): Kill.  Split into...
2174         (allocate_bb_life_data, allocate_reg_life_data): ... new functions.
2175         (life_analysis_1): Update.
2176         * gcse.c (gcse_main): Update find_basic_blocks call.
2177         * toplev.c (rest_of_compilation): Likewise.
2178         * stupid.c (stupid_life_analysis): Update life data calls.
2179         * rtl.h, output.h: Update prototypes.
2180
2181 Wed Mar 31 12:10:00 1999  Bruce Korb  <ddsinc09@ix.netcom.com>
2182
2183         * inclhack.def (several): Added spaces in tests to ensure
2184         correct shell syntax.  Added c_asm.h fix from fixincludes.
2185         Also corrected the corrected fix to C++ comments :-}
2186
2187         * inclhack.tpl: Changed method of traversing symlink trees
2188         so that file name matching will work correctly.
2189
2190         * fixincl.c, hackshell.tpl: Fallout from above.
2191         * fixincl.x, inclhack.sh, fixincl.sh: Rebuilt.
2192
2193 Tue Mar 30 10:43:49 1999  Philip Blundell  <pb@nexus.co.uk>
2194
2195         * config/arm/aout.h (DBX_DEBUGGING_INFO): Avoid redefinition if
2196         dbxelf.h was previously included.
2197         (CPP_APCS_PC_DEFAULT_SPEC): No need to undefine.
2198
2199         * config/arm/linux-elf.h (FP_DEFAULT): Correctly override the
2200         definition from arm.h.
2201
2202 Wed Mar 31 10:33:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2203
2204         * Makefile.in (c-gperf.h): Generate using gperf language 'C', not
2205         'KR-C', so gperf uses the `const' keyword on strings.
2206
2207         * c-parse.gperf (resword): Const-ify a char*.
2208
2209 Wed Mar 31 01:49:31 1999  Ian Lance Taylor  <ian@zembu.com>
2210
2211         * t-rtems (LIMITS_H_TEST, LIBGCC2_INCLUDES): Define.
2212
2213 Wed Mar 31 00:50:48 1999  Jeffrey A Law  (law@cygnus.com)
2214
2215         * system.h (STDERR_FILENO): Fix typo.
2216
2217         * inclhack.def (bool): Also fix bogus bool in curses_colr/curses.h.
2218         * fixincl.x, inclhack.sh, fixincl.sh: Rebuilt.
2219
2220 Tue Mar 30 20:51:40 1999  Mark Mitchell  <mark@codesourcery.com>
2221
2222         * alias.c (alias_set_compare): Remove.
2223         (record_alias_subset): Use splay_tree_compare_ints instead of
2224         alias_set_compare.
2225         (init_alias_once): Likewise.
2226         * cse.c: Include splay-tree.h.
2227         (reg_qty): Remove.
2228         (reg_tick): Likewise.
2229         (reg_table): Likewise.
2230         (cse_reg_info): New structure.
2231         (cse_reg_info_free_list): New variable.
2232         (cse_reg_info_tree): Likewise.
2233         (cached_regno): Likewise.
2234         (cached_cse_reg_info): Likewise.
2235         (all_minus_one): Remove.
2236         (consec_ints): Likewise.
2237         (GET_CSE_REG_INFO): New macro.
2238         (REG_TICK): Likewise.  Use throughout instead of reg_tick.
2239         (REG_IN_TABLE): Likewise.  Use throughout instead of reg_in_table.
2240         (REG_QTY): Likewise.  Use throughout instead of reg_qty.
2241         (get_cse_reg_info): New function.
2242         (free_cse_reg_info): Likewise.
2243         (new_basic_block): Reinitialize cse_reg_info_tree instead of
2244         reg_tick, all_minus_one, and consec_ints.
2245         * Makefile.in (cse.o): Depend on splay-tree.h
2246
2247 Tue Mar 30 13:19:36 1999  Jason Merrill  <jason@yorick.cygnus.com>
2248
2249         * libgcc2.c (throw_helper): Just return the SP offset, rather than
2250         a whole udata.  Include args_size in the offset.
2251         (__throw, __rethrow): Adjust.
2252
2253 Tue Mar 30 11:39:27 1999  Craig Burley  <craig@jcb-sc.com>
2254
2255         * extend.texi (Extended Asm): Delete spurious `b' before
2256         `@end example', which was confusing texi2html.
2257
2258 Tue Mar 30 00:26:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
2259
2260         * dwarf2out.c (output_line_info): Don't emit redundant info.
2261         Do start a new row if the file changes and the line # doesn't.
2262
2263 Mon Mar 29 15:48:39 1999  Jason Merrill  <jason@yorick.cygnus.com>
2264
2265         * invoke.texi (Invoking G++, C++ Dialect Options): Update.
2266
2267 Mon Mar 29 15:05:39 1999  Richard Henderson  <rth@cygnus.com>
2268
2269         * except.c (start_dynamic_handler): Force jmp_buf address to
2270         and operand before moving to memory.
2271
2272 Mon Mar 29 15:11:10 1999  Craig Burley  <craig@jcb-sc.com>
2273
2274         * invoke.texi (Code Gen Options): Attempt to clarify
2275         -fcheck-memory-usage.  Minor edits to -fprefix-function-name.
2276
2277 Mon Mar 29 20:52:47 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2278
2279         * loop.c (maybe_eliminate_biv): For libcalls that set a giv, skip to
2280         end of libcall.
2281
2282 Mon Mar 29 20:35:49 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2283
2284         * sh.md (mulsi3): Tag an extra REG_EQUAL note to the middle insn.
2285
2286 Mon Mar 29 11:50:34 1999  Jerry Quinn  <jquinn@nortelnetworks.com>
2287
2288         * pa.h (HAVE_PRE_INCREMENT): Disable when optimizing for a PA8000
2289         class machine.
2290         (HAVE_PRE_DECREMENT, HAVE_POST_INCREMENT): Likewise.
2291         (HAVE_POST_DECREMENT): Likewise.
2292
2293 Mon Mar 29 08:24:43 1999  Bruce Korb  <korb@datadesign.com>
2294
2295         * fixinc/mkfixinc.sh: Fix portability problems with old shells.
2296
2297         * fixinc/README: Updated for release announcement
2298
2299 Sun Mar 28 20:26:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2300
2301         * recog.h (insn_outfun, insn_operand_predicate): Add prototype
2302         arguments.
2303
2304         * rtl.h (note_stores): Likewise.
2305
2306         * rtlanal.c (note_stores): Likewise.
2307
2308 Sun Mar 28 15:34:28 1999  Richard Henderson  <rth@cygnus.com>
2309
2310         * varasm.c (output_constant_pool): Always mark the constant pool.
2311
2312 Sun Mar 28 16:09:01 1999  Jerry Quinn  <jquinn@nortelnetworks.com>
2313
2314         * pa.md (pa7100LCshiftmem, pa7100LCalu): Change simultaneity.  Use
2315         shift/mem ops in pa7100LCalu.
2316
2317         * pa.c (pa_adjust_cost): Don't do cost adjustments on pa8000.
2318         (pa_reorg): Don't call pa_combine_instructions on pa8000.
2319
2320 Sun Mar 28 15:27:26 1999  Jeffrey A Law  (law@cygnus.com)
2321
2322         * reload1.c (reload): Remove accidental code duplication.
2323
2324 Sun Mar 28 12:22:12 1999  Robert Lipe  (robertlipe@usa.net)
2325
2326         * i386/sysv5.h: New file to describe UnixWare7/SVR5.
2327         * configure.in (i?86-UnixWare7*-sysv): Use it.
2328         * i386/udk.h: Use sysv5.h.  Now uses Dwarf-2.
2329
2330 Sun Mar 28 01:15:04 1999  Jeff Law  (law@cygnus.com)
2331
2332         * version.c: Bump for snapshot.
2333
2334 Sun Mar 28 00:44:27 1999  Jeffrey A Law  (law@cygnus.com)
2335
2336         * sdbout.c (sdbout_symbol): Do not call build_pointer_type, build
2337         one on the fly and do not cache the result.
2338
2339         * gcc.cps, cpp.cps: Delete unwanted files.
2340
2341 Sat Mar 27 23:37:40 1999  John Wehle  (john@feith.com)
2342
2343         * i386.md (movdicc+3, movdicc+4): Rewrite using split_di.
2344         * i386.c (output_int_conditional_move): Delete unused code.
2345
2346 Sat Mar 27 21:17:36 1999  David Edelsohn  <edelsohn@gnu.org>
2347
2348         * rs6000/{aix41.h,aix43.h} (ASM_CPU_SPEC): Add 604e.
2349
2350 Sat Mar 27 16:13:50 1999  Jeffrey A Law  (law@cygnus.com)
2351
2352         * flow.c (mark_used_regs): Improve handling of ASMs.
2353
2354 1999-03-26  Zack Weinberg  <zack@rabi.columbia.edu>
2355
2356         * Makefile.in (xcpp, cppspec.o): New targets.
2357         (CPP_INSTALL_NAME): New macro.
2358         (install-cpp): Install xcpp.  Use CPP_INSTALL_NAME.
2359         (all.build, start.encap): Build xcpp.
2360
2361         * cppspec.c: New file, implements argument filtering for a
2362         user-visible C preprocessor.
2363         * cpp.sh: Removed.
2364
2365 Fri Mar 26 20:41:46 1999  Jim Wilson  <wilson@cygnus.com>
2366
2367         * Makefile.in (stmp-fixinc): Use tooldir instead of gcc_tooldir.
2368
2369 Fri Mar 26 16:02:37 1999  Nick Clifton  <nickc@cygnus.com>
2370
2371         * configure.in (arm-*-vxworks*): Just include arm/vxarm.h.
2372         * configure: Regenerate.
2373         * config/arm/vxarm.h: Define SUBTARGET_CPU_DEFAULT before
2374         including arm/coff.h
2375
2376 1999-02-16  Scott Bambrough  <scottb@corelcomputer.com>
2377
2378         * configure.in (arm*-*-linux-gnu*): Set thread_file to 'posix' if
2379         --enable-threads[={yes,pthreads,posix}] is passed as a command
2380         line parameter to configure.
2381
2382         * configure: Regenerate.
2383
2384         * gcc/config/arm/t-linux (TARGET_LIBGCC2_CFLAGS): Include -fPIC.
2385
2386 Fri Mar 26 19:42:19 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2387
2388         * loop.c (combine_givs): Fix index into can_combine when doing
2389         benefit adjustment for remaining givs when having combined a giv.
2390
2391 Fri Mar 26 11:38:01 1999  Nick Clifton  <nickc@cygnus.com>
2392
2393         * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Define.
2394
2395 Fri Mar 26 10:48:27 1999  Nick Clifton  <nickc@cygnus.com>
2396
2397         * config/arm/linux-elf.h: Include dbxelf.h
2398
2399 Fri Mar 26 10:43:47 1999  Nick Clifton  <nickc@cygnus.com>
2400
2401         * config/svr4.h: Include new header file dbxelf.h.
2402         (DBX_DEBUGGING_INFO): Remove definition.
2403         (DBX_USE_BINCL): Remove definition.
2404         (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition.
2405         (ASM_IDENTIFY_GCC): Remove definition.
2406         (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition.
2407         (ASM_OUTPUT_SOURCE_LINE): Remove definition.
2408         (DBX_FUNCTION_FIRST): Remove definition.
2409         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Remove definition.
2410
2411         * config/elfos.h: Include new header file dbxelf.h.
2412         (DBX_DEBUGGING_INFO): Remove definition.
2413         (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition.
2414         (ASM_IDENTIFY_GCC): Remove definition.
2415         (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition.
2416         (ASM_OUTPUT_SOURCE_LINE): Remove definition.
2417         (DBX_FUNCTION_FIRST): Remove definition.
2418
2419         * config/dbxelf.h: New header file.
2420         (DBX_DEBUGGING_INFO): Define.
2421         (DBX_BLOCKS_FUNCTION_RELATIVE): Define.
2422         (DBX_FUNCTION_FIRST): Define.
2423         (DBX_USE_BINCL): Define.
2424         (DBX_CONTIN_LENGTH): Define.
2425         (ASM_IDENTIFY_GCC): Define.
2426         (ASM_IDENTIFY_GCC_AFTER_SOURCE): Define.
2427         (ASM_OUTPUT_SOURCE_LINE): Define.
2428         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define.
2429
2430 Fri Mar 26 01:59:15 1999  "Charles M. Hannum"  <root@ihack.net>
2431
2432         * fold-const.c (fold_truthop): Optimize bitfield references with
2433         different masks as long as their size and bit position are the same.
2434
2435         * fold-const.c (fold_truthop): Build a type for both the lhs and
2436         rhs and use it appropriately.
2437
2438         * fold-const.c (fold_truthop): Mask the lhs and rhs after merging
2439         adjacent bitfield references.
2440
2441         * fold-const.c (fold_truthop): Verify that the lhs and rhs are
2442         in the same bit position when optimizing bitfield references
2443         which have the same mask.
2444
2445 Thu Mar 25 22:53:27 1999  Martin von Löwis  <loewis@informatik.hu-berlin.de>
2446
2447         * gcc.texi (Copy Assignment): New node.
2448
2449 1999-03-25  Zack Weinberg  <zack@rabi.columbia.edu>
2450
2451         * gcc.c: Compile unconditionally all code formerly dependent
2452         on #ifdef LANG_SPECIFIC_DRIVER.
2453         * gccspec.c: New file with stub lang_specific_driver,
2454         lang_specific_pre_link.
2455         * Makefile.in: Link gccspec.o into xgcc.  Add rule to compile
2456
2457 Thu Mar 25 21:08:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
2458
2459         * gcc.texi (Temporaries): Update.
2460
2461 Thu Mar 25 16:53:53 1999  Richard Henderson  <rth@cygnus.com>
2462
2463         * combine.c (distribute_notes): Place REG_LABEL also where
2464         REG_EQUAL indicates.
2465
2466 Thu Mar 25 12:46:37 1999  Jim Wilson  <wilson@cygnus.com>
2467
2468         * a29k/a29k.h (TARGET_SWITCHES): Add doc strings.
2469         * i960/i960.h (TARGET_SWITCHES): Add doc strings.
2470         * invoke.texi (a29k): Add documentation for -mno-multm option.
2471
2472 Thu Mar 25 14:04:54 1999  Andrew MacLeod  <amacleod@cygnus.com>
2473
2474         * rtl.texi (RTX_FRAME_RELATED_P): Add documentation.
2475         * rtl.h (struct rtx_def): Update comment for frame_related field.
2476         (set_unique_reg_note): Declare prototype.
2477         * dwarf2out.c (dwarf2out_frame_debug_expr): Split out from
2478         'dwarf2out_frame_debug' to handle only expressions, and process
2479         component parts of a PARALLEL expression.
2480         (dwarf2out_frame_debug): Process insns only, and call
2481         new function 'dwarf2out_frame_debug_expr' for patterns.
2482         * emit-rtl.c (set_unique_reg_note): New function to add a reg note,
2483         but if there is an existing one, delete it first.
2484         * expmed.c (expand_mult, expand_divmod): Use set_unique_reg_note.
2485         * optabs.c (add_equal_note, expand_binop): Use set_unique_reg_note.
2486         (emit_no_conflict_block, emit_libcall_block): Use set_unique_reg_note.
2487         (expand_fix): Use set_unique_reg_note.
2488
2489 Thu Mar 25 11:47:49 1999  Art Haas  <ahaas@neosoft.com>
2490
2491         * tlink.c (symbol_hash_newfunc): Remove redundant call to
2492         hash_newfunc.
2493         (file_hash_newfunc, demangled_hash_newfunc): Likewise.
2494
2495 Thu Mar 25 10:05:56 1999  Richard Henderson  <rth@cygnus.com>
2496
2497         * i386.h (PREFERRED_STACK_BOUNDARY): Set to 128.
2498
2499 1999-03-25  Philip Blundell  <pb@nexus.co.uk>
2500
2501         Based on patch from Jim Studt  <jim@federated.com>:
2502         * config/arm/linux-elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Copy
2503         definitions from config/linux.h.
2504         (DBX_BLOCKS_FUNCTION_RELATIVE): Define to 1.
2505
2506 Thu Mar 25 02:12:42 1999  Finn Hakansson  <finn@axis.com>
2507
2508         * loop.c (strength_reduce): Correct a comment.
2509
2510         * rtl.h (MEM_COPY_ATTRIBUTES): Remove unnecessary ending backslash.
2511
2512 Thu Mar 25 02:02:13 1999  Axel Thimm  <Axel.Thimm@physik.fu-berlin.de>
2513
2514         * Makefile.in (RANLIB_TEST): Improve test.
2515
2516 Thu Mar 25 01:15:33 1999  Donn Terry  <donn@interix.com>
2517
2518         * combine.c (force_to_mode, case PLUS): Use sign extended mask
2519         when masking the low bits out of a constant.
2520
2521 Tue Mar 23 15:45:25 1999  Richard Earnshaw  (rearnsha@arm.com)
2522                           Jeff Law  <law@cygnus.com>
2523
2524         * fold-const.c (make_range): If orig_type is unset, set it as soon
2525         as we know the type.  Remove now unnecessary set of orig_type for
2526         conversions.
2527
2528 Wed Mar 24 23:27:25 1999  Mark Elbrecht  <snowball3@usa.net>
2529                           Jeff Law  <law@cygnus.com>
2530
2531         * system.h (STDIN_FILENO): Provide default definition if one is not
2532         provided by the system header files.
2533         (STDOUT_FILENO, STDERR_FILENO): Likewise.
2534
2535         * i386/xm-djgpp.h (COLLECT2_HOST_INITIALIZATION): New macro.
2536         * collect2.c (main): Use it.
2537         (pexecute_pid): New variable. Holds return value from call to pexecute.
2538         (collect2_execute): Rework to use pexecute instead of fork.
2539         (collect2_wait): Use pwait() instead of wait().
2540
2541         * i386/djgpp.h: Fix typo.
2542
2543 Wed Mar 24 23:24:30 1999  Jeffrey A Law  (law@cygnus.com)
2544
2545         * fixinc/mkfixinc.sh: Recognize cygwin* instead of only
2546         cygwin32.
2547
2548 Wed Mar 24 15:44:12 1999  Nick Clifton  <nickc@cygnus.com>
2549
2550         * config/m32r/m32r.c (init_idents): Accept both NAME and __NAME__
2551         versions of attribute names and values.
2552         (m32r_valid_machine_decl_attribute): Likewise.
2553         (m32r_encode_section_info): Likewise.
2554
2555 Wed Mar 24 21:42:15 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2556
2557         * reload1.c (choose_reload_regs): If output-reloading for a
2558         simple move insn, try to inherit an equivalence for the input.
2559
2560 1999-02-24  Mike Stump  <mrs@wrs.com>
2561
2562         * arm/aout.h (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Fix quoting.
2563
2564 1999-03-24  Jim Blandy  <jimb@zwingli.cygnus.com>
2565
2566         * libgcc2.c (__CTOR_LIST__, __DTOR_LIST__): Initialize on all
2567         platforms.
2568
2569 Wed Mar 24 01:35:01 1999  Geoff Keating  <geoffk@ozemail.com.au>
2570
2571         * fold-const.c (fold): Recognize a rotate by an unsigned amount.
2572
2573 Tue Mar 23 23:32:14 1999  Jeffrey A Law  (law@cygnus.com)
2574
2575         * pa.md (rotlsi3): New expander.  Synthesize a variable rotate
2576         left using a variable rotate right.  Provide anonymous pattern for
2577         rotate left by a constant value.
2578
2579         * expr.c (expand_assignment): Do not try to optimize a aggregate
2580         address which has VOIDmode.
2581
2582 Tue Mar 23 22:51:48 1999  Mumit Khan  <khan@xraylith.wisc.edu>
2583                           Donn Terry  <donn@interix.com>
2584
2585         * protoize.c (abspath): Preserve multiple leading slashes for
2586         _WIN32 and Interix.
2587
2588 1999-01-23  Mike Stump  <mrs@wrs.com>
2589
2590         * arm/vxarm.h: Split out vxWorks support into separate headerfile
2591         and vxify.
2592         * arm/arm.c (cpu_defaults): Allow arm710 as default.
2593
2594         * configure.in: Split out vxWorks support for Arm.
2595         * configure: Rebuilt.
2596
2597 Tue Mar 23 11:20:03 1999  Per Bothner  <bothner@cygnus.com>
2598
2599         * tree.c (first_rtl_op, has_cleanups): Handle GOTO_SUBROUTINE_EXPR.
2600
2601 Tue Mar 23 09:00:39 1999  Nick Clifton  <nickc@cygnus.com>
2602
2603         * config/arm/riscix1.h (SUBTARGET_SWITCHES): Add doc string.
2604         * config/arm/riscix1-1.h (SUBTARGET_SWITCHES): Add doc string.
2605
2606 Tue Mar 23 07:50:20 1999  Mark Mitchell  <mark@codesourcery.com>
2607
2608         * function.c: Include hash.h.
2609         (insns_for_mem_entry): New struct.
2610         (put_reg_into_stack): Take an optional hash-table mapping MEMs to
2611         the INSNs that use them.
2612         (fixup_var_refs): Likewise.
2613         (put_addressof_into_stack): Likewise.
2614         (purge_addressof_1): Likewise.  Keep the hash-table up to date if
2615         we add new instructions.
2616         (fixup_var_refs_insns): Use it to avoid searching the entire
2617         instruction chain.
2618         (insns_for_mem_newfunc): New function.
2619         (insns_for_mem_comp): Likewise.
2620         (insns_for_mem_walk): Likewise.
2621         (compute_insns_for_mem): Likewise.
2622         (pop_function_context_from): Pass NULL for the hash-table.
2623         (put_var_into_stack): Likewise.
2624         (gen_mem_addressof): Likewise.
2625         (flush_addressof): Likewise.
2626         (purge_addressof): Call compute_insns_for_mem to pre-compute the
2627         hash table.
2628         * Makefile.in (OBJS): Include hash.o.
2629         (function.o): Depend on hash.h.
2630
2631 Tue Mar 23 00:39:14 1999  Jeffrey A Law  (law@cygnus.com)
2632
2633         * i386/openbsd.h (TARGET_DEFAULT): Use symbolic names instead of
2634         numbers.
2635         * i386/netbsd.h, i386/freebsd.h: Likewise.
2636
2637         * crtstuff.c: Use ANSI function definitions.  Fix minor whitespace
2638         problems.
2639
2640         * i386/openbsd.h (TARGET_DEFAULT): Define.
2641         * configure.in: Do not set TARGET_CPU_DEFAULT for x86 OpenBSD
2642         configurations.
2643         * configure: Rebuilt.
2644
2645 Tue Mar 23 00:39:10 1999  John Wehle  (john@feith.com)
2646
2647         * i386/freebsd.h (TARGET_DEFAULT): Define instead
2648         of TARGET_CPU_DEFAULT.
2649         * i386/netbsd.h (TARGET_DEFAULT): Likewise.
2650
2651 Mon Mar 22 23:52:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
2652                           Donn Terry  <donn@interix.com>
2653
2654         * sdbout.c (syms.h): Don't include on Interix.
2655         * toplev.c (main): No sbrk on Interix.
2656
2657         * configure.in: Add i386-pc-interix support.
2658         * configure: Regenerate.
2659         * fixinc.interix: New file.
2660         * config/interix.h: New file.
2661         * config/x-interix: New file.
2662         * config/xm-interix.h: New file.
2663         * i386/interix.h: New file.
2664         * i386/interix.c: New file.
2665         * i386/t-interix: New file.
2666
2667 Mon Mar 22 23:41:49 1999  Jeffrey A Law  (law@cygnus.com)
2668
2669         * i386.h (PREFERRED_STACK_BOUNDARY): Define.
2670
2671 Mon Mar 22 23:41:31 1999  John Wehle  (john@feith.com)
2672
2673         * i386.c (ix86_compute_frame_size): New function.
2674         (ix86_prologue, ix86_epilogue): Use it.
2675         * i386.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2676         * reload1.c: Provide default for PREFERRED_STACK_BOUNDARY.
2677
2678 Mon Mar 22 18:06:59 1999  Jim Wilson  <wilson@cygnus.com>
2679
2680         * mips/mips.h (TARGET_SWITCHES, TARGET_OPTIONS): Add option doc
2681         strings.
2682         * mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Likewise.
2683
2684 Mon Mar 22 16:18:27 1999  Nick Clifton  <nickc@cygnus.com>
2685
2686         * config/arm/elf.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother
2687         passing ATTRIBUTES to arm_valid_machine_decl_attribute.
2688
2689         * config/arm/coff.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother
2690         passing ATTRIBUTES to arm_valid_machine_decl_attribute.
2691
2692         * config/arm/arm.h (DEFAULT_RTX_COSTS): Do not bother passing
2693         OUTER_CODE to arm_rtx_costs - it is not used.
2694         (arm_compare_fp): Delete declaration.
2695         (FINAL_PRESCAN_INSN): Do not bother passing OPVEC or NOPERANDS to
2696         arm_final_prescan_insn - they are not used.
2697         (const_ok_for_op): Remove prototype.
2698         (arm_rtx_costs): Fix prototype.
2699         (arm_valid_machine_decl_attribute): Fix prototype.
2700         (final_prescan_insn): Fix prototype.
2701
2702         * config/arm/arm.md: Remove references to arm_compare_fp.
2703
2704         * config/arm/arm.c (arm_compare_fp): Delete.
2705         (const_ok_for_op): Make function static.  Add prototype.  Remove
2706         mode parameter - it is unused.
2707         (arm_rtx_costs): Remove outer_code parameter.
2708         (reload_memory_operand): Declare mode parameter unused.
2709         (power_of_two_operand): Declare mode parameter unused.
2710         (equality_operator): Declare mode parameter unused.
2711         (load_multiple_operation): Declare mode parameter unused.
2712         (store_multiple_operation): Declare mode parameter unused.
2713         (multi_register_push): Declare mode parameter unused.
2714         (arm_valid_machine_decl_attribute): Remove attributes parameter -
2715         it is unused.
2716         (select_dominance_cc_mode): Remove op parameter - it is unused.
2717         (gen_compare_reg): Remove fp parameter - it is unused.
2718         (final_prescan_insn): Remove opvec and noperands parameters - they
2719         are unused.
2720
2721 Mon Mar 22 14:35:28 1999  Nick Clifton  <nickc@cygnus.com>
2722
2723         * tm.texi (MD_SCHED_INIT): Add missing closing parenthesis.
2724
2725 Mon Mar 22 22:24:30 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2726
2727         * reload1.c (reload_as_needed): Set reload_is_output_reload /
2728         reload_has_output_reload for auto_inc expressions that could be
2729         reloaded.  Call forget_old_reloads for REG_INC notes.
2730
2731 Mon Mar 22 21:51:57 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2732
2733         * cse.c (cse_insn): Don't change the result register of a libcall.
2734
2735 Mon Mar 22 21:08:59 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2736
2737         * rtl.h (shallow_copy_rtx): Declare.
2738         * rtl.c (shallow_copy_rtx): New function.
2739         * reload.c (find_reloads_toplev): Use shallow_copy_rtx instead of
2740         copy_rtx.
2741
2742 Mon Mar 22 10:44:33 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
2743
2744         * config/h8300/h8300.md (adjust_length): New attribute.
2745         (modhi3+1, andsi3+1, iorsi3+1, extzv+1, extzv+2): Change insn
2746         default value of attribute "adjust_length" onto "no".
2747
2748         * config/h8300/h8300.c (h8300_adjust_insn_length): Adjust
2749         length only if the attribute "adjust_length" value is "yes".
2750         Use 0 if the shift is negative.
2751
2752         * final.c (shorten_branches): Check insn length after its
2753         adjusting.
2754
2755 Sun Mar 21 17:33:48 1999  Jeffrey A Law  (law@cygnus.com)
2756
2757         * i860.h (TARGET_SWITCHES): Add documentation for default case.
2758         * i860/paragon.h (TARGET_SWITCHES): Add documentation for default case.
2759         * i370.h (TARGET_SWITCHES): Add documentation for default case.
2760         * fx80.h (TARGET_SWITCHES): Add documentation for default case.
2761         * elxsi.h (TARGET_SWITCHES): Add documentation for default case.
2762         * clipper.h (TARGET_SWITCHES): Add documentation for default case.
2763         * 1750a.h (TARGET_SWITCHES): Add documentation for default case.
2764         * pa.h (TARGET_SWITCHES): Add documentation for default case.
2765         (TARGET_OPTIONS): Likewise for default case.
2766         * mn10300.h (TARGET_SWITCHES): Add documentation for default case.
2767         * h8300.h (TARGET_SWITCHES): Add documentation for default case.
2768
2769         * gcse.c (dump_hash_table): Fix whitespace in declaration.
2770         (compute_transpout): Renamed from pre_compute_transpout.
2771         (compute_pre_*): Deleted.
2772         (pre_expr_reaches_here_p): New argument, CHECK_PRE_COMP.  All
2773         callers changed.
2774         (insert_insn_end_bb): Renamed from pre_insert_insn.
2775         (pre_*): Delete unused variables.  Only leave local properties and
2776         global redundant/optimal computation points.
2777         (alloc_pre_mem, free_pre_mem): Corresponding changes.
2778         (compute_pre_data): Simplify and call pre_lcm to run the lazy
2779         code motion dataflow analysis.
2780         (pre_insert, pre_insert_copies, pre_delete): Revamp to use LCM
2781         based redundant and optimal computation points.
2782
2783         * basic-block.h (pre_lcm, pre_rev_lcm): Declare.
2784
2785         * toplev.c (main): A debug option without a level defaults to
2786         level 2.
2787
2788 Sun Mar 21 12:13:01 1999  Nick Clifton  <nickc@cygnus.com>
2789
2790         * flow.c (can_delete_label_p): Do not allow user specified
2791         labels to be deleted.
2792         * dwarf2out.c (gen_label_die): Generate addresses for deleted
2793         (programmer specified) labels.
2794         * dwarfout.c (output_label_die): Generate addresses for deleted
2795         (programmer specified) labels.
2796
2797 1999-03-21  Manfred Hollstein  <manfred@s-direktnet.de>
2798
2799         * Makefile.in (xgcc$(exeext)): Add intl.o to list of files to be
2800         linked with.
2801
2802 Sun Mar 21 01:15:03 1999  Jeff Law  (law@cygnus.com)
2803
2804         * version.c: Bump for snapshot.
2805
2806 Sat Mar 20 22:26:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2807
2808         * sparc.h (TARGET_SWITCHES): Add null description to default case.
2809
2810 Sat Mar 20 21:46:06 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2811
2812         * c-lex.c (yylex): Remove unused variable `bytes'.
2813
2814         * flow.c (print_rtl_with_bb): Cast the return value of alloca.
2815
2816         * function.c (assign_parms): Wrap variable `varargs_setup' in
2817         macro SETUP_INCOMING_VARARGS.
2818         (thread_prologue_and_epilogue_insns): Mark parameter `f' with
2819         ATTRIBUTE_UNUSED.
2820
2821         * local-alloc.c (no_equiv): Likewise for parameter `store'.
2822
2823         * sched.c (schedule_insns): Remove unused variables `insn' and `next'.
2824
2825         * tlink.c (symbol_hash_newfunc, symbol_hash_lookup,
2826         file_hash_newfunc, file_hash_lookup, demangled_hash_newfunc,
2827         demangled_hash_lookup, symbol_push, symbol_pop, file_push,
2828         file_pop, tlink_init, tlink_execute, frob_extension,
2829         obstack_fgets, tfgets, pfgets, freadsym, read_repo_file,
2830         maybe_tweak, recompile_files, read_repo_files,
2831         demangle_new_symbols, scan_linker_output): Add static prototype.
2832
2833         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc):
2834         Make the third argument a `hash_table_key'.
2835
2836         * toplev.c (debug_start_source_file): Mark parameter `filename'
2837         with ATTRIBUTE_UNUSED.
2838
2839 Sun Mar 21 02:28:21 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2840
2841         * tm.texi (Varargs): Don't split argument of @item across lines.
2842
2843         * invoke.texi: Fix use of @item vs @itemx.
2844
2845 Sun Mar 21 09:59:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2846
2847         * config/c4x/c4x.h (TARGET_SWITCHES): Add null description to
2848         default case.
2849
2850 Sat Mar 20 23:33:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2851
2852         * loop.c (check_dbra_loop): Fix debug message.
2853
2854 Sat Mar 20 15:54:35 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2855
2856         * config/c4x/c4x.md (decrement_and_branch_on_count): Emit rptb_end
2857         pattern instead of decrement_and_branch_until_zero pattern.
2858
2859 Sat Mar 20 11:39:58 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2860
2861         * config/c4x/c4x.h (TARGET_SWITCHES): Add documentation.
2862         * config/c4x/c4x.h (TARGET_OPTIONS): Add documentation.
2863
2864 Fri Mar 19 23:26:29 1999  Martin von Löwis  <loewis@informatik.hu-berlin.de>
2865
2866         * expr.c (expand_expr): Handle ERROR_MARK much earlier.
2867
2868 Fri Mar 19 15:28:38 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2869
2870         * cccp.c (create_definition): Cast to U_CHAR* when assigning to one.
2871
2872         * cppfiles.c (read_and_prescan): Likewise.
2873         Start a #define in column 0.
2874
2875         * cpplib.c (cpp_define): Cast to U_CHAR* when assigning to one.
2876         (cpp_push_buffer): Likewise for cpp_buffer*.
2877         (do_include): Change the type of `fbeg' and `fend' to unsigned char*.
2878         (do_endif): Cast to char* when assigning to one.
2879         (do_assert): Likewise.
2880         (do_unassert): Likewise.
2881         (cpp_read_check_assertion): Change the type of `name' to U_CHAR*.
2882         Don't do unnecessary cast to char* anymore.
2883
2884         * genrecog.c (make_insn_sequence): Cast to char** when assigning
2885         to one.  Cast the first argument of bzero to PTR.
2886
2887         * loop.c (strength_reduce): Remove unused variable `note'.
2888
2889         * reload1.c (new_insn_chain): Cast to struct insn_chain* when
2890         assigning to one.
2891
2892         * rtl.c (copy_rtx): Use memcpy instead of bcopy.
2893
2894 Fri Mar 19 11:19:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2895
2896         * calls.c (initialize_argument_information): Mark parameters
2897         `num_actuals' and `n_named_args' with ATTRIBUTE_UNUSED.
2898
2899         * dbxout.c (dbxout_start_new_source_file): Likewise for parameter
2900         `filename'.
2901         (dbxout_finish): Likewise for parameters `file' and `filename'.
2902         (dbxout_prepare_symbol): Likewise for parameter `decl'.
2903         (dbxout_begin_function): Likewise.
2904
2905         * explow.c (hard_function_value): Likewise for parameter `func'.
2906
2907         * function.c (locate_and_pad_parm): Likewise for parameter `fndecl'.
2908
2909         * expmed.c (expand_divmod): Omit unused argument to `expand_abs'.
2910         * expr.c (expand_expr): Likewise.
2911         * expr.h (expand_abs): Delete unused argument from prototype.
2912         * optabs.c (expand_abs): Remove unused parameter `unsignedp'.
2913
2914         * sdbout.c (sdbout_init): Mark parameter `syms' with ATTRIBUTE_UNUSED.
2915         (sdbout_end_block): Likewise for parameter `n'.
2916
2917         * toplev.c (debug_define): Likewise for parameters `lineno' and
2918         `buffer'.
2919         (debug_undef): Likewise.
2920
2921         * varasm.c (named_section): Likewise for parameter 'reloc'.
2922         (assemble_external): Likewise for parameter `decl'.
2923         (assemble_alias): Likewise for parameter `target'.
2924
2925 Fri Mar 19 01:54:30 1999  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
2926
2927         * toplev.c (read_integral_parameter): Constify.  Better control of
2928         error messages.
2929         (main): Use read_integral_parameter to set optimize, id_clash_len,
2930         larger_than_size, and the debugging level.
2931         * toplev.h (read_integral_parameter): Update prototype.
2932
2933 Fri Mar 19 01:42:05 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
2934
2935         * system.h: Use putc_unlocked, fputc_unlocked, and
2936         fputs_unlocked only if putc_unlocked has a prototype already.
2937         Prototype fputs_unlocked if necessary.
2938         * configure.in: Check for prototypes of putc_unlocked and
2939         fputs_unlocked.
2940         * acconfig.h: Updated.
2941         * config.in, configure: Rebuilt.
2942
2943 Fri Mar 19 02:45:12 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
2944
2945         * Makefile.in (INTL_TARGETS): New macro.
2946         ($(INTL_TARGETS)): Depend on generated sources; drop dependencies
2947         on cp/parse.c and objc/objc-parse.c.
2948         ($(srcdir)/cp/parse.c): Move to cp/Make-lang.in.
2949         * objc/Make-lang.in ($(INTL_TARGETS)): Depend on objc/objc-parse.c.
2950
2951 Thu Mar 18 22:28:53 1999  Jeffrey A Law  (law@cygnus.com)
2952
2953         * i860.h (TARGET_SWITCHES): Add documentation.
2954         * i860/paragon.h (TARGET_SWITCHES): Add documentation.
2955         * i370.h (TARGET_SWITCHES): Add documentation.
2956         * fx80.h (TARGET_SWITCHES): Add documentation.
2957         * elxsi.h (TARGET_SWITCHES): Add documentation.
2958         * clipper.h (TARGET_SWITCHES): Add documentation.
2959         * 1750a.h (TARGET_SWITCHES): Add documentation.
2960         * pa.h (TARGET_SWITCHES): Add documentation.
2961         (TARGET_OPTIONS): Likewise.
2962         * mn10300.h (TARGET_SWITCHES): Add documentation.
2963         * h8300.h (TARGET_SWITCHES): Add documentation.
2964
2965 Thu Mar 18 15:58:26 1999  Nick Clifton  <nickc@cygnus.com>
2966
2967         * loop.c (strength_reduce): Do not perform pseudo replacements
2968         if the loop contains volatile memory references.
2969
2970 Thu Mar 18 19:09:50 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
2971
2972         * reload.c (find_reloads_toplev): When processing X recursively,
2973         don't alter it destructively except by filling in constants.
2974
2975 Thu Mar 18 10:14:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2976
2977         * cccp.c (default_include): Initialize structure members.
2978         (pass_thru_directive): Change the type of 'keyword_length' to int.
2979         (main): Cast `bindtextdomain' and `textdomain' to (void).
2980
2981         * collect2.c (main): Likewise.
2982
2983         * cppmain.c (main): Likewise.
2984
2985         * gcc.c (main): Likewise.
2986
2987         * gcov.c (main): Likewise.
2988
2989         * protoize.c (main): Likewise.
2990
2991         * toplev.c (main): Likewise.
2992
2993 1999-03-18  Gavin Romig-Koch  <gavin@cygnus.com>
2994
2995         * config/mips/mips.c (mips_explicit_type_size_string): Correct
2996         its type.
2997
2998 Thu Mar 18 01:24:25 1999  Jeffrey A Law  (law@cygnus.com)
2999
3000         * configure.in: Use "exit 1", not "exit (1)".
3001         * configure: Rebuilt.
3002
3003 Wed Mar 17 23:17:42 1999  Mark Kettenis  <kettenis@gnu.org>
3004
3005         * config/t-gnu (SYSTEM_HEADER_DIR): New variable.  Set to
3006         `/include' in order to find the system's limits.h.
3007
3008 Wed Mar 17 23:00:18 1999  Robert Lipe  <robertlipe@usa.net>
3009
3010         * fixinc/fixincl.c: Include auto-host.h instead of config.h.
3011         * fixinc/procopen.c: Likewise.
3012         * fixinc/regex.c: Likewise.
3013         * fixinc/server.c: Likewise.
3014
3015 Wed Mar 17 22:46:13 1999  Mark Elbrecht  <snowball3@usa.net.
3016
3017         * config/i386/go32.h: Delete.
3018         * config/i386/djgpp.h: New. Renamed from go32.h.
3019         Added -DDJGPP=2 to CPP_PREDEFINES.
3020         * config/i386/go32-rtems.h: Delete.
3021         * config/i386/djgpp-rtems.h: New. Renamed from go32-rtems.h.
3022         Added -DDJGPP=2 to CPP_PREDEFINES.
3023         * config/i386/xm-go32.h: Delete.
3024         * config/i386/xm-djgpp.h: New. Renamed from xm-go32.h.
3025         * config/i386/x-go32: Delete.
3026         * config/i386/x-djgpp: New. Renamed from x-go32.
3027         * config/i386/t-go32: Delete.
3028         * config/i386/t-djgpp: New. Renamed from t-go32.
3029         * configure.in(pc-msdosdjgpp): Set xm_file to i386/xm-djgpp.h.
3030         Set tm_file to i386/djgpp.h. Set tmake_file to i386/t-djgpp.
3031         Set xmake_file to i386/x-djgpp.
3032         (*-go32-msdos, *-go32*): Remove entries.  Warn that GO32/DJGPP V1.X
3033         is now unsupported and *-pc-msdosdjgpp for DJGPP V2.X should be
3034         used instead.
3035         * configure: Rebuilt.
3036
3037         * gcc.c (process_command): Dump link_command_spec too.
3038
3039 Wed Mar 17 20:38:08 1999  Jerry Quinn  <jquinn@nortelnetworks.com>
3040                           Jeff Law  <law@cygnus.com>
3041
3042         * pa.md: Add real PA8000 scheduling information.
3043
3044         * pa.h (processor_type): Add PROCESSOR_8000 symbol.
3045         (ISSUE_RATE): Revamp, including PA8000 support.
3046         * pa.c (override_options): Add 8000 as -mschedule= option.
3047         Do not call strcmp if pa_cpu_string is null.
3048         * pa.md (attr cpu): Add 8000.
3049         * invoke.texi: Add documentation for PA8000 scheduling.
3050
3051 Wed Mar 17 18:20:24 1999  David S. Miller  <davem@redhat.com>
3052
3053         * config/sparc/sparc.h (TARGET_SWITCHES, TARGET_OPTIONS):
3054         Add descriptions.
3055         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
3056         * config/sparc/splet.h (SUBTARGET_SWITCHES): Likewise.
3057
3058 Wed Mar 17 14:51:19 1999  Richard Henderson  <rth@cygnus.com>
3059
3060         * flow.c (compute_immediate_dominators): New function.
3061         * basic-block.h (compute_immediate_dominators): Declare it.
3062
3063         * alpha.h (HARD_REGNO_MODE_OK): Allow only 4 and 8 byte unit modes
3064         in FP regs.
3065         (MODES_TIEABLE_P): Define asymmetricly wrt modes illegal in FP regs.
3066
3067 Wed Mar 17 14:41:41 1999  Nick Clifton  <nickc@cygnus.com>
3068
3069         * config/arm/aout.h (ASM_GENERATE_INTERNAL_LABEL): Fix compile
3070         time warning.
3071         * config/arm/arm.md: Fix various compile time warnings.
3072         * config/arm/arm.h: Fix various compile time warnings.  Add
3073         function prototypes.
3074         * config/arm/arm.c: Fix various compile time warnings.
3075         (arm_override_options): Reorganize to separate tuning from
3076         targetting.
3077         (bit_count): New function: Return a count of the number of bits
3078         set in a word.
3079
3080 Wed Mar 17 21:29:12 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3081
3082         * reload1.c (eliminate_regs): Don't keep REG_DEAD notes around for
3083         things that were eliminated.
3084
3085 Wed Mar 17 12:16:26 1999  Richard Henderson  <rth@cygnus.com>
3086
3087         * function.c (fixup_var_refs_1): First try moving the expression
3088         directly into a register.  Don't separate cc0 setter and user.
3089
3090 Wed Mar 17 11:20:29 1999  Dave Brolley  <brolley@cygnus.com>
3091
3092         * cppfiles.c (PIPE_BUF): #define PIPE_BUF if not defined already.
3093
3094 Wed Mar 17 09:25:06 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3095
3096         * c-lex.c: Don't include setjmp.h.
3097         (parse_float): New static function.
3098         (pf_args): New struct.
3099         (yylex): Use them in call to `do_float_handler'.
3100
3101 1999-03-16  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
3102
3103         * cexp.y (yyerror): Call verror to get a useful error message.
3104         * cexp.c: Rebuilt.
3105
3106         * .gdbinit: Move command to put breakpoint at abort to end of file
3107         so that gdb does not bail out early.
3108
3109 Tue Mar 16 15:30:19 1999  Nick Clifton  <nickc@cygnus.com>
3110
3111         * rtl.h: Rename prototype for free_bb_memory to free_bb_mem.
3112
3113 Tue Mar 16 23:40:09 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3114
3115         * sh.md (movsi_i): Move t/r alternative after r/rI alternative.
3116
3117 Tue Mar 16 13:44:50 1999  Jim Wilson  <wilson@cygnus.com>
3118
3119         * mn10200/mn10200.md (addsi3, subsi3, ashlsi3, lshrsi3, ashrsi3):
3120         Delete emit_library_call_value declaration.
3121
3122 1999-03-16  Zack Weinberg  <zack@rabi.columbia.edu>
3123
3124         * cppfiles.c (read_and_prescan): Map backslash-newline to '\r'
3125         (which cannot otherwise appear in the processed buffer) and
3126         move it out of tokens that it appears in the middle of.
3127         Improve performance.
3128         (find_position): New function.
3129
3130         * cpplib.c: \r (one character) indicates backslash
3131         newline, not \\\n (two characters).  It cannot appear in the
3132         middle of a token.  Call CPP_BUMP_LINE (pfile) whenever
3133         parsing moves past \n or \r.  Increment pfile->lineno whenever
3134         a \n is placed into token_buffer.  Only one mark can exist at
3135         a time, and CPP_BUMP_LINE must not be used while it is
3136         active.  It is automatically cleared by cpp_pop_buffer and
3137         parse_goto_mark.  \r is not in is_hor_space or is_space.
3138
3139         (NEWLINE_FIX, NEWLINE_FIX1, adjust_position,
3140         update_position, count_newlines, parse_move_mark): Removed.
3141         (parse_string, copy_comment): New functions.
3142         (parse_name): Returns void.
3143         (parse_set_mark, parse_clear_mark, parse_goto_mark): Take only
3144         one argument, a cpp_reader *.  Change for new marking scheme.
3145         (skip_comment): Handle CHILL line comments too.  Second
3146         argument is now first character of comment marker; all callers
3147         changed.  Issue error for unterminated block comment here.
3148         (cpp_skip_hspace): Recognize CHILL comments.
3149         (copy_rest_of_line): Likewise.  Call skip_comment and
3150         parse_string directly, don't go through cpp_get_token.  Emit
3151         "/**/" for block comments if -traditional (create_definition
3152         needs this).
3153         (do_define): Don't play with put_out_comments.
3154         (cpp_push_buffer): Initialize ->mark to -1.
3155         (cpp_buf_line_and_col): Just read out the values in the buffer
3156         structure.
3157         (output_line_command): Use cpp_buf_line_and_col.  Fix
3158         formatting.  Remove stale code.
3159         (cpp_get_token): Break out string parsing code to
3160         parse_string.  Use skip_comment for CHILL comments too.  Use
3161         copy_comment for put_out_comments instead of dinking with
3162         marks.  Remove stale code.  Don't call output_line_command
3163         unless it's necessary.
3164
3165         * cpplib.h (parse_marker): Removed.
3166         (struct cpp_buffer): Line_base is now a unsigned char *; add
3167         `mark' [long], remove `marks' [struct parse_marker *].
3168         (parse_set_mark, parse_clear_mark, parse_goto_mark): Update
3169         prototypes.
3170         (CPP_BUMP_LINE, CPP_BUMP_BUFFER_LINE): New macros.
3171         * cppinit.c (is_hor_space, is_space): '\r' is not considered
3172         whitespace.
3173         * cppexp.c (cpp_parse_expression): Use cpp_skip_hspace, not
3174         SKIP_WHITE_SPACE.
3175         * cpphash.c (macarg): Disable line commands while expanding.
3176
3177 Tue Mar 16 11:30:19 1999  Gavin Romig-Koch  <gavin@cygnus.com>
3178
3179         * c-lex.c (yylex) : Remove warning for integer literals being
3180         larger than the largest target int.  Add warning for integer
3181         literal being larger than than its chosen type.
3182
3183 Tue Mar 16 10:53:17 1999  Gavin Romig-Koch  <gavin@cygnus.com>
3184
3185         * invoke.texi: Add -mlong32 documentation.
3186         * config/mips/mips.h (mips_explicit_type_size_string): New.
3187         (TARGET_SWITCHES): Add 'long32'.
3188         (TARGET_OPTIONS): Add 'explicit-type-size'.
3189         (CC1_SPECS): Set -mexplicit-type-size.
3190         (LONG_MAX_SPEC): Change a use of 'no-long64' to 'long32'.
3191         * config/mips/abi64.h (LONG_MAX_SPEC): Same.  Add 'mabi=32'.
3192         * config/mips/mips.c (mips_explicit_type_size_string): New.
3193         (override_options): Use it.
3194         * config/mips/osfrose.h (CC1_SPECS): Set -mexplicit-type-size.
3195
3196         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC):
3197         Pointer size now depends on both size longs and size of GP
3198         registers.
3199
3200 Tue Mar 16 10:22:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
3201
3202         * config/mips/iris.h (CTORS_SECTION_ASM_OP,DTORS_SECTION_ASM_OP,
3203         dtors_section): Use Pmode == DImode rather than TARGET_LONG64.
3204         * config/mips/mips.c (override_options): Allow -mlong64 and
3205         -mint64 with -mips2 or less.
3206         * config/mips/mips.h (MASK_LONG64): Fix comment.
3207         (POINTER_SIZE): Use Pmode == DImode rather than TARGET_LONG64.
3208         (Pmode): Make Pmode the smaller of longs or gp registers.
3209         * invoke.texi: Note the new size for pointers.
3210
3211 Mon Mar 15 22:45:25 1999  David Edelsohn  <edelsohn@gnu.org>
3212
3213         * rs6000.h (ASM_OUTPUT_{DOUBLE,FLOAT}): Always generate IEEE 754
3214         bit-pattern directly.
3215         (ASM_OUTPUT_REG_{PUSH,POP}): Delete.
3216         * rs6000.c (first_reg_to_save): If profiling and context needed,
3217         allocate a reg to save static chain for all ABIs.  For AIX
3218         profiling, calculate parameter registers to save based on need.
3219         (output_function_profiler): Save and restore static chain around
3220         profile call for all ABIs.
3221
3222 1999-03-15  Zack Weinberg  <zack@rabi.columbia.edu>
3223
3224         * cppinit.c: Instead of one pending list, keep separate lists
3225         for each category of pending option: -D/-U, -A, -include,
3226         -imacros.  Move the four partial include-path lists into the
3227         pending block.  Use head and tail pointers so we don't ever
3228         have to reverse the lists.
3229
3230         (cpp_start_read): Break out blocks of code to their own
3231         functions: install_predefs and initialize_dependency_output.
3232         Use path_include for C_INCLUDE_PATH and friends as well as
3233         CPATH.  Remove include_defaults gunk.  Warn about the
3234         combination of -lang-chill and -trigraphs.  Optimize string
3235         bashing.  Walk each pending list once, deallocating as we go.
3236
3237         (append_include_chain): Brought over from cppfiles.c.  Mark
3238         dirs as system include dirs if and only if appending to
3239         system include path. If opts->verbose, print a notice when a
3240         dir is dropped from the include path because it doesn't
3241         exist.  Fix memory leak: this function is not supposed to copy
3242         its DIR argument.
3243
3244         (nreverse_pending, push_pending): Removed.
3245         (APPEND): New macro for adding to pending lists.
3246         (path_include): Can now add to any partial include path.
3247         (base_name): Bring over from cccp.c.
3248         (cpp_options_init): Allocate the pending block.
3249         (cpp_handle_option): Add --version.  Exit after --help.  Fix
3250         formatting.  Order -ifoo options by frequency of usage.
3251         (install_predefs): New function, simplified version of code
3252         that was in cpp_start_read.
3253         (initialize_dependency_output): Likewise.  Understand OBJECT_SUFFIX.
3254
3255         * cppfiles.c (simplify_pathname): Export.
3256         (merge_include_chains): Don't nreverse the lists.  If
3257         opts->verbose, print a notice when a duplicate dir is detected
3258         and dropped from the include path.
3259         (finclude): Fix excessive cleverness in setting
3260         fp->system_header_p.
3261         (actual_directory): Set x->sysp from
3262         CPP_BUFFER (pfile)->system_header_p so that one system header
3263         may include another with "".
3264         (deps_output): Fix double adjustment of deps_size which would
3265         cause all dependencies after the first two lines to be lost.
3266
3267         * cpplib.c (cpp_unassert): New function.
3268         * cpplib.h: Lay out struct cpp_pending here.  Adjust
3269         prototypes.  Add include_prefix_len to struct cpp_options.
3270
3271 Mon Mar 15 16:01:52 1999  Jim Wilson  <wilson@cygnus.com>
3272
3273         * config/misp/mips.h (REGISTER_MOVE_COST): Make the cost of moving
3274         from HI/LO/HILO/MD into general registers the same as for one
3275         of moving general registers to HI/LO/HILO/MD.
3276
3277 Mon Mar 15 12:39:38 1999  Nick Clifton  <nickc@cygnus.com>
3278
3279         * config/m32r/m32r.c (init_idents): New function.  Initialize
3280         static tree nodes for m32r specific attribute identifiers.  Remove
3281         leading and trailing double underscores from the attribute names.
3282         (m32r_valid_machine_decl_attribute): Call init_idents.
3283         (m32r_encode_section_info): Call init_idents.
3284
3285 Mon Mar 15 10:20:20 1999  Mark Mitchell  <mark@markmitchell.com>
3286
3287         * reload.c (find_reloads): Add a REG_LABEL note if we substitute a
3288         LABEL_REF for something else.
3289
3290 Mon Mar 15 08:24:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3291
3292         * fold-const.c (exact_real_inverse): Move variable `float_error'
3293         into the scope where it is used.
3294         (const_binop_1): New static function.
3295         (cb_args): New struct.
3296         (const_binop): Use them in call to `do_float_handler'.
3297         (fold_convert_1): New static function.
3298         (fc_args): New struct.
3299         (fold_convert): Use them in call to `do_float_handler'.
3300
3301 Mon Mar 15 22:50:18 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3302
3303         * rtlanal.c (auto_inc_p): New function.
3304         * rtl.h (auto_inc_p): Prototype it.
3305         * reload1.c (add_auto_inc_notes): New function.
3306         (reload): Strip REG_INC notes and call add_auto_inc_notes
3307         for each insn to restore them correctly.
3308
3309 1999-03-15  Manfred Hollstein  <manfred@s-direktnet.de>
3310
3311         * fixinc/Makefile.in (procopen.o): List the actual
3312         dependencies.
3313
3314 Sun Mar 14 16:22:10 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3315
3316         * cse.c (check_fold_consts): New static function.
3317         (cfc_args): New struct.
3318         (simplify_relational_operation): Use them in call to
3319         `do_float_handler'.
3320
3321         * toplev.c (do_float_handler): New function to wrap calls to
3322         setjmp/set_float_handler.
3323
3324         * toplev.h (do_float_handler): Add extern prototype.
3325
3326         * tree.c (build_real_from_int_cst_1): New static function.
3327         (brfic_args): New struct.
3328         (build_real_from_int_cst): Use them in call to
3329         `do_float_handler'.
3330
3331 Sun Mar 14 01:15:06 1999  Jeff Law  (law@cygnus.com)
3332
3333         * version.c: Bump for snapshot.
3334
3335 Sat Mar 13 17:37:18 1999  Richard Henderson  <rth@cygnus.com>
3336
3337         * haifa-sched.c (sched_analyze_1): Only clear reg_last_uses on a SET.
3338
3339 Sat Mar 13 11:36:16 1999  Richard Earnshaw  (rearnsha@arm.com)
3340
3341         * arm.c (arm_split_constant): Don't try to force a constant to
3342         memory after arm_reorg has run.
3343         (after_arm_reorg): New static variable.
3344         (arm_reorg): Set it.
3345         (output_func_epilogue): Clear it.
3346
3347 Fri Mar 12 20:26:32 1999  David Edelsohn  <edelsohn@gnu.org>
3348
3349         * configure.in ({rs6000,powerpc}-ibm-aix*): Set float_format to none.
3350         * configure: Rebuilt.
3351
3352 Fri Mar 12 20:45:30 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3353
3354         * unroll.c (loop_iterations): Don't return a final value for EQ
3355         comparison loops.
3356
3357 Fri Mar 12 12:35:01 1999  Jim Wilson  <wilson@cygnus.com>
3358
3359         * reload1.c (calculate_needs_all_insns): When ignore equivalence
3360         setting insn, clear need_elim, need_reload, and need_operand_change.
3361
3362 Fri Mar 12 07:54:43 1999  Bruce Korb  <korb@datadesign.com>
3363
3364         * fixinc/fixinc.*: Some changes from the fixincl-branch
3365         were not applied (??!!).  Corrected.
3366
3367         * fixinc/Makefile.in: Same thing.
3368
3369 Fri Mar 12 00:51:43 1999  Jeffrey A Law  (law@cygnus.com)
3370
3371         * expr.c (expand_expr): Allow a CALL_EXPR with a mode wider than
3372         MAX_INTEGER_COMPUTATION_MODE.
3373
3374 Thu Mar 11 14:00:58 1999  Richard Henderson  <rth@cygnus.com>
3375
3376         * alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs.
3377         (MODES_TIEABLE_P): Update.
3378
3379         * alpha.md (ev5_e0): Conflict loads and stores.
3380
3381 Thu Mar 11 13:55:52 1999  Richard Henderson  <rth@cygnus.com>
3382
3383         * machmode.h (smallest_mode_for_size): Prototype.
3384         * stor-layout.c (smallest_mode_for_size): Remove static.
3385
3386 Thu Mar 11 21:25:59 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3387
3388         * loop.c (strength_reduce): Don't do biv increment -> DEST_REG giv
3389         conversion if we don't know the lifetime.
3390
3391 Thu Mar 11 20:37:59 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3392
3393         * reload.1c (delete_address_reloads_1): Check for reloads of
3394         CURRENT_INSN even if it sets DST.
3395
3396 Thu Mar 11 10:29:50 1999  Jason Merrill  <jason@yorick.cygnus.com>
3397
3398         * dwarf2out.c (add_AT_lbl_offset): Rename from add_AT_section_offset.
3399         (print_die, size_of_die, value_format, output_die): Adjust.
3400
3401 Thu Mar 11 10:27:42 1999  Robert Lipe  <robertlipe@usa.net>
3402
3403         * dwarf2out.c (TEXT_SECTION_LABEL, DEBUG_LINE_SECTION_LABEL,
3404         DEBUG_INFO_SECTION_LABEL, ABBREV_SECTION_LABEL,
3405         text_section_label, debug_line_section_label,
3406         debug_info_section_label, abbrev_section_label): New.
3407         (output_compilation_unit_header): Emit label associated
3408         with section instead of section name itself.
3409         (out_pubnames, output_aranges, output_line_info,
3410         dwarf2out_finish): Likewise.
3411         (dwarf2out_init): Build internal label names for sections
3412         from static labels.
3413
3414 Thu Mar 11 17:28:32 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3415
3416         * sh.md (mulsi3): End mul.l sequence with a no-op move.
3417
3418 Thu Mar 11 08:52:02 1999  Bruce Korb  <korb@datadesign.com>
3419
3420         * Makefile.in: Activated fixinc/mkfixinc.sh.
3421         * configure.in: Activated fixinc/mkfixinc.sh.
3422
3423 Thu Mar 11 01:38:02 1999  Mumit Khan  <khan@xraylith.wisc.edu>
3424
3425         * cppfiles.c (INO_T_EQ): Handle UWIN.
3426
3427         * c-common.c (decl_attributes): Flag unrecognized attribute
3428         functions as warnings instead of as errors.
3429
3430         Support for i386-pc-uwin.
3431         * i386/uwin.h: New file.
3432         * i386/xm-uwin.h: New file.
3433         * i386/t-uwin: New file.
3434         * i386/uwin.asm: New file.
3435         * configure.in (i[3456]86-*-uwin*): Define.
3436         Add Workaround for vfork bug when hosted on uwin.
3437         * configure: Regenerate.
3438
3439         * cccp.c (INO_T_EQ): Undefine. UWIN has inodes.
3440         (absolute_filename): UWIN uses POSIX pathnames only.
3441         * libgcc2.c (getpagesize): Do not define for UWIN.
3442         (mprotect): Likewise.
3443         * protoize.c (dirent.h): Conditionally include.
3444         (fputc): Prototype only if it's not a macro.
3445
3446 Wed Mar 10 02:49:04 1999  Jason Merrill  <jason@yorick.cygnus.com>
3447
3448         * configure.in: Remove init_priority stuff.
3449
3450 1999-03-11  Colin Smith  <colin@wrs.com>
3451
3452         * sdbout.c (plain_type_1): Make boolean types work better with sdb.
3453
3454 Thu Mar 11 00:20:52 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
3455
3456         * gcc.texi: Update bug reporting instructions to match
3457         current ezmlm list reality.
3458
3459 Wed Mar 10 23:11:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3460
3461         * gcc.c (print_file_name, print_prog_name, spec_machine,
3462         read_specs, set_spec, lookup_compiler, build_search_list,
3463         putenv_from_prefixes, find_a_file, record_temp_file,
3464         delete_if_ordinary, handle_braces, do_spec, do_spec_1, find_file,
3465         is_directory, validate_switches, used_arg, default_arg,
3466         pfatal_with_name, perror_with_name, pfatal_pexecute, fatal, error,
3467         notice, add_preprocessor_option, add_assembler_option,
3468         add_linker_option, process_command, execute,
3469         unused_prefix_warnings, clear_args, fatal_error,
3470         lang_specific_driver, user_specs, compiler, link_command_spec,
3471         option_map, translate_options, make_temp_file, temp_name,
3472         programname, path_prefix, machine_suffix, just_machine_suffix,
3473         gcc_exec_prefix, standard_exec_prefix, standard_exec_prefix_1,
3474         md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1,
3475         standard_startfile_prefix, standard_startfile_prefix_1,
3476         standard_startfile_prefix_2, tooldir_base_prefix, tooldir_prefix,
3477         multilib_dir, temp_filename, temp_file, command, switchstr,
3478         infile, outfiles, input_filename, input_basename, input_suffix,
3479         check_live_switch, main): Qualify a char* with the `const' keyword.
3480
3481 Wed Mar 10 20:28:29 1999  Jeffrey A Law  (law@cygnus.com)
3482
3483         * lcm.c: New file.
3484         * Makefile.in (OBJS): Add lcm.o.
3485         (lcm.o): Add dependencies.
3486
3487         * gcse.c (compute_pre_local_properties): Delete.
3488         (compute_pre_data): Use compute_local_properties instead of
3489         compute_pre_local_properties.
3490
3491         * gcse.c: More comments, whitespace and similar fixes.
3492         (dump_cuid_table, maybe_set_rd_gen, dump_cprop_data): Delete.
3493         (dump_pre_data, compute_cprop_local_properties): Likewise.
3494         (one_classic_gcse_pass): Lose unused argument.  All callers changed.
3495         (compute_hash_table, compute_expr_hash_table): Likewise.
3496         (compute_set_hash_table, one_pre_gcse_pass, mark_call): Likewise.
3497         (cprop_insn, cprop, one_cprop_pass): Add new argument ALTER_JUMPS.
3498         All callers changed.  Only alter jumps if ALTER_JUMPS is nonzero.
3499         Lose unused argument.
3500         (gcse_main): Always run a cprop pass after finishing global cse.
3501         (compute_local_properties): New function.
3502         (hash_scan_pat, hash_scan_insn): No longer call maybe_set_rd_gen.
3503         (compute_cprop_data): Use compute_local_properties.
3504
3505         * gcse.c: Update various comments.
3506         (current_function_calls_longjmp): Delete declaration.
3507
3508         * gcse.c (run_jump_opt_after_gcse): New variable.
3509         (gcse_main): Returns an integer.
3510         (hash_scan_set): Record initializations from CONST_DOUBLEs too.
3511         (try_replace_reg): Update some comments.
3512         (cprop_insn): Allow propagation into some JUMP_INSNs too.
3513         * rtl.h (gcse_main): Update prototype.
3514         * toplev.c (rest_of_compilation): If gcse_main returns nonzero,
3515         then run a jump optimization pass.
3516         * jump.c (delete_barrier_successors): Delete nop jumps too.
3517
3518 Wed Mar 10 19:04:31 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3519
3520         * sh.c (fp_arith_reg_operand): Actually test if reg is suitable
3521         for FP arithmetic.  Changed caller.
3522         * sh.md (subsf3, subsf_i): Use fp_arith_reg_operand.
3523
3524 Wed Mar 10 18:56:31 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3525
3526         * reload1.c (choose_reload_regs): When inheriting from the frame
3527         pointer, don't clobber it.
3528
3529 Wed Mar 10 08:01:52 1999  Bruce Korb  <korb@datadesign.com>
3530
3531         * fixinc/fixinc.*: Resync-ed with the files in this
3532         directory.
3533
3534         * fixinc/mkfixinc.sh: The machine case elements were
3535         out-of-order.  (the ix86-*-linux-gnu* entry needed to
3536         be earlier).
3537
3538 Wed Mar 10 00:01:24 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3539
3540         * reload1.c (reload_combine_note_store): Fix calculation of number
3541         of affected registers.
3542
3543 Tue Mar  9 15:48:15 1999  Richard Henderson  <rth@cygnus.com>
3544
3545         * flow.c (tidy_fallthru_edge): Be more careful finding the last
3546         BARRIER of a list.  Delete the cc0 setter as well as a cond jump.
3547
3548 Tue Mar  9 15:26:02 1999  Hans-Peter Nilsson  <hp@bitrange.com>
3549
3550         * i386.md (ashlsi3 splitter): Fix typo in last change.
3551
3552 Tue Mar  9 11:35:20 1999  Richard Henderson  <rth@cygnus.com>
3553
3554         * reg-stack.c (stack_reg_life_analysis): Use returnjump_p
3555         instead of an explicit test for RETURN.
3556
3557 Tue Mar  9 09:33:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3558
3559         * Makefile.in (toplev.o): Depend on $(BASIC_BLOCK_H).
3560
3561         * toplev.c: Include basic-block.h.
3562
3563 Tue Mar  9 02:08:17 1999  Jeffrey A Law  (law@cygnus.com)
3564
3565         * calls.c (load_register_parameters): New function.
3566         (expand_call): Use it.
3567
3568         * calls.c (expand_call): Slightly reorganize code.
3569
3570         * calls.c (compute_argument_addresses): New function.
3571         (rtx_for_function_call): New function.
3572         (expand_call): Use them.
3573
3574         * i386.md (zero_extendhisi2): Split into an expander and anonymous
3575         pattern.  Add new anonymous pattern for use when optimizing for
3576         size or for the PPro.
3577         (zero_extendqihi2, zero_extendqisi2): Likewise.
3578
3579 Mon Mar  8 23:43:47 1999  Richard Henderson  <rth@cygnus.com>
3580
3581         * haifa-sched.c (sched_analyze_1): Fix last change -- add clobber
3582         dependencies to sets in the non-hard-reg case too.
3583
3584 Mon Mar  8 18:55:21 1999  Marc Espie  <espie@cvs.openbsd.org>
3585
3586         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Define.
3587
3588 Mon Mar  8 16:04:44 1999  Jim Wilson  <wilson@cygnus.com>
3589
3590         * local-alloc.c (combine_regs): Don't combine if we have a hard reg
3591         for which CLASS_LIKELY_SPILLED_P is true.
3592
3593         * unroll.c (loop_iterations): Only call loop_find_equiv_value if we
3594         have a REG or SUBREG.
3595
3596 Mon Mar  8 15:27:42 1999  Jeffrey A Law  (law@cygnus.com)
3597
3598         * i386.md (ashlsi3): Revise comments.  Provide new anonymous
3599         pattern for Pentium and PPro/PII.  Reverse constraints in
3600         generic ashlsi3 anonymous pattern.
3601
3602         * calls.c (initialize_argument_info): Accept a pointer to
3603         CUMULATIVE_ARGS.
3604         (expand_call): Pass the address of CUMULATIVE_ARGS.
3605
3606         * rs6000/xm-sysv4.h (HOST_BITS_PER_LONGLONG): Remove #if 0.
3607
3608         * mn10300.h (CASE_DROPS_THROUGH): Delete.
3609         * mn10200.h (CASE_DROPS_THROUGH): Delete.
3610         * h8300.h (CASE_DROPS_THROUGH): Delete.
3611
3612         * flow.c (merge_blocks_nomove): For HAVE_cc0 targets, make sure
3613         to also delete the cc0 setter when deleting a conditional branch
3614         to the next block.
3615
3616 Mon Mar  8 18:47:11 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3617
3618         * regmove.c (copy_src_to_dest): New argument max_old_uid.
3619
3620 Mon Mar  8 08:23:00 1999  Bruce Korb  <korb@datadesign.com>
3621
3622         * ChangeLog: Merged entries from fixincl-branch.
3623
3624 Sun Mar  7 11:48:56 1999  Richard Henderson  <rth@cygnus.com>
3625
3626         * haifa-sched.c (ENCODE_BLOCKAGE): Don't shift unit too far.
3627         (print_exp): Special case addition of a constant.
3628         (print_value) [CONST_INT]: Use HOST_WIDE_INT_PRINT_HEX.
3629
3630 Sun Mar  7 11:21:02 1999  Richard Henderson  <rth@cygnus.com>
3631
3632         * haifa-sched.c (reg_last_clobbers): New.
3633         (reg_pending_clobbers, bb_reg_last_clobbers): New.
3634         (compute_block_backward_dependences): Allocate memory for them.
3635         (schedule_region): Likewise.
3636         (sched_analyze_1): Clobbers don't interfere with one another.
3637         They do interfere with sets ...
3638         (sched_analyze_2): ... and uses.
3639         (sched_analyze): Likewise.
3640         (sched_analyze_insn): Update reg_last_clobbers appropriately.
3641
3642 Sun Mar  7 08:30:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3643
3644         * gmon-sol2.c: Include config.h and system.h.  Don't redundantly
3645         include system header files.
3646         (sccsid): Remove.
3647         (moncontrol, monstartup, _mcleanup, internal_mcount): Prototype.
3648         (_mcleanup): Add the `const' keyword to a char*.
3649         (internal_mcount): Declare `etext' as a char[] not a function.
3650         Cast `etext' to char* when calling `monstartup'.
3651
3652         * sparc.c (frame_base_name, save_regs, restore_regs,
3653         build_big_number, sparc_cmodel_string, sparc_align_loops_string,
3654         sparc_align_jumps_string, sparc_align_funcs_string, code_model,
3655         cpu_default, cpu_table, output_function_prologue,
3656         output_function_epilogue, output_return,
3657         sparc_flat_output_function_prologue, ultra_code_names,
3658         sparc_flat_output_function_epilogue): Constify a char*.
3659         (hypersparc_adjust_cost): Add a default case in a switch.
3660
3661         * sparc.h (sparc_cmodel_string, OVERRIDE_OPTIONS,
3662         sparc_cpu_select, sparc_align_loops_string,
3663         sparc_align_jumps_string, sparc_align_funcs_string,
3664         output_return): Constify a char*.
3665
3666         * sparc.md (movdi): Change the comparison of HOST_BITS_PER_WIDE_INT
3667         so that we check "== 32", instead of "!= 64".  Cast a value to
3668         HOST_WIDE_INT when comparing against one.  Hide the declaration
3669         for variable `chain'.
3670
3671 Sun Mar  7 08:05:27 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3672
3673         * system.h (const, inline): Move the stage2 handling of these
3674         keywords-as-macros from here...
3675
3676         * gansidecl.h (const, inline): ...to here.
3677
3678 Sun Mar  7 02:44:15 1999  Richard Henderson  <rth@cygnus.com>
3679
3680         * recog.c (push_operand, pop_operand): VOIDmode needn't match modes.
3681
3682 Sun Mar  7 01:58:47 1999  Richard Henderson  <rth@cygnus.com>
3683
3684         * cse.c (canon_hash): Never reject hard regs in CCmode.
3685
3686 Sun Mar  7 01:15:04 1999  Jeff Law  (law@cygnus.com)
3687
3688         * version.c: Bump for snapshot.
3689
3690 Sat Mar  6 17:18:44 1999  Richard Earnshaw  (rearnsha@arm.com)
3691                           Richard Henderson  <rth@cygnus.com>
3692
3693         * flow.c (make_edges): Handle casesi that jump to default branch.
3694         If CASE_DROPS_THROUGH, force fallthru to block after casesi.
3695
3696 Sat Mar  6 07:49:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3697
3698         * c-aux-info.c (data_type, affix_data_type, gen_decl,
3699         gen_formal_list_for_type, gen_formal_list_for_func_def, gen_type):
3700         Qualify a char* with the `const' keyword.
3701
3702         * c-common.c (declare_hidden_char_array, add_attribute, if_elt,
3703         declare_function_name, decl_attributes, format_char_info,
3704         check_format_info, binary_op_error): Likewise.
3705
3706         * cexp.y (yyerror, error, pedwarn, warning, token): Likewise.
3707
3708         * gcse.c (dump_hash_table): Likewise.
3709
3710         * integrate.c (function_cannot_inline_p): Likewise.
3711
3712         * optabs.c: Include insn-config.h earlier.
3713         (init_libfuncs, init_integral_libfuncs, init_floating_libfuncs):
3714         Qualify a char* with the `const' keyword.
3715
3716         * real.c (asctoe24, asctoe53, asctoe64, asctoe113, asctoe,
3717         asctoeg, mtherr, ereal_atof): Likewise.
3718
3719         * real.h (ereal_atof): Likewise.
3720
3721         * sbitmap.c (dump_sbitmap_vector): Likewise.
3722
3723         * sbitmap.h (dump_sbitmap_vector): Likewise.
3724
3725         * stmt.c (nesting, n_occurrences, expand_start_case): Likewise.
3726
3727         * toplev.c (rest_of_compilation): Likewise.
3728
3729         * tree.h (function_cannot_inline_p, expand_start_case): Likewise.
3730
3731 Fri Mar  5 23:16:42 1999  David Edelsohn  <edelsohn@gnu.org>
3732
3733         * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Add 64-bit support and do
3734         not overwrite AIX link register save area.
3735
3736 Fri Mar  5 23:08:01 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3737
3738         * reload.c (find_reloads_subreg_address): Actually create the USE
3739         for the register, not the new memory location.
3740
3741 Fri Mar  5 21:41:07 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3742
3743         * reload1.c (emit_reload_insns): If pseudo that can't be replaced
3744         with its equivalent constant, fall back to reload_in.
3745
3746 Fri Mar  5 13:20:39 1999  Richard Henderson  <rth@cygnus.com>
3747
3748         * Makefile.in: Delete .flow2 debugging files.
3749
3750 Fri Mar  5 11:36:11 1999  Nick Clifton  <nickc@cygnus.com>
3751
3752         * config/arm/arm.c (arm_override_options): Change default target
3753         cpu selection so that enabling TARGET_APCS_32 does not override
3754         default target CPU.
3755
3756 Fri Mar  5 19:26:23 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3757
3758         * sh.h (SLOW_BYTE_ACCESS): Define to 1.
3759         (BOOL_TYPE_SIZE): Define.
3760
3761 Fri Mar  5 02:14:54 1999  John Wehle  (john@feith.com)
3762
3763         * function.c (assign_stack_temp_for_type): Abort
3764         if mode == Blkmode and align is less than
3765         BIGGEST_ALIGNMENT / BITS_PER_UNIT.
3766         (assign_stack_temp_for_type): Round the size parameter
3767         passed to assign_stack_local instead of size itself.
3768
3769 Thu Mar  4 15:00:35 1999  Richard Henderson  <rth@cygnus.com>
3770
3771         * flow.c (delete_unreachable_blocks): Mark blocks as they
3772         are put on to the worklist, not as they are taken off.
3773
3774 Thu Mar  4 00:05:44 1999  Jeffrey A Law  (law@cygnus.com)
3775
3776         * function.c (current_function_has_computed_jump): Remove duplicate
3777         definition.
3778
3779 Wed Mar  3 19:09:11 1999  Jim Wilson  <wilson@cygnus.com>
3780
3781         * m68k/m68020-elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Undef.
3782         (STARTFILE_SPEC, ENDFILE_SPEC): Define to empty string.
3783
3784         * sparc/elf.h (MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL,
3785         MODDI3_LIBCALL, UMODDI3_LIBCALL, STDC_0_IN_SYSTEM_HEADERS): Undef.
3786         (INIT_SUBTARGET_OPTABS): Define to empty.
3787
3788 Wed Mar  3 00:00:37 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3789
3790         * sh.c (force_into): New function.
3791         (expand_block_move): Use it.
3792
3793 Tue Mar  2 10:39:43 1999  Nick Clifton  <nickc@cygnus.com>
3794
3795         * cccp.c (struct default_include): Add 'included' field.
3796         (main): Set 'included' field when a default include directory
3797         is added to the chain.  If -v is specified list all default
3798         include directories which do not get appended to the chain.
3799
3800 Tue Mar  2 09:24:10 1999  Nick Clifton  <nickc@cygnus.com>
3801
3802         * configure.in (gxx_include_dir): Rename to
3803         gcc_gxx_include_dir in order to prevent it being overridden by
3804         a top level Makefile.
3805         (gcc_tooldir): If $exec_prefix != $prefix then use the
3806         difference between the two as the basis for gcc_tooldir.
3807
3808         * configure: Rebuild.
3809
3810         * Makefile.in: Rename gxx_include_dir to gcc_gxx_include_dir.
3811
3812 Tue Mar  2 16:45:31 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3813
3814         * unroll.c (copy_loop_body): Don't make extra copies of
3815         NOTE_INSN_LOOP_CONT notes.
3816
3817 Tue Mar  2 07:44:56 1999  Mark Mitchell  <mark@markmitchell.com>
3818
3819         * tree.c (save_tree_status): Don't treat functions with no context
3820         as nested.
3821
3822 Tue Mar  2 09:37:05 1999  Robert Lipe  <robertlipe@usa.net>
3823
3824         * Makefile.in (MAKEINFO): Use makeinfo built from sibling
3825         tree when available.
3826
3827 Tue Mar  2 10:12:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3828
3829         * alpha.c (alpha_cpu_name, alpha_cpu_string, alpha_tp_string,
3830         alpha_fprm_string, alpha_fptm_string, alpha_mlat_string,
3831         current_function_file): Add the `const' keyword.
3832         (normal_memory_operand): Mark parameter `mode' with
3833         ATTRIBUTE_UNUSED.
3834         (alpha_expand_unaligned_load): Add a default case to a switch.
3835
3836         * alpha.h (alpha_cpu_string, alpha_fprm_string, alpha_fptm_string,
3837         alpha_tp_string, alpha_mlat_string): Add the `const' keyword.
3838         (normal_memory_operand): Add prototype.
3839
3840         * alpha.md: Cast an expression to `unsigned HOST_WIDE_INT' when
3841         comparing against one.
3842
3843 Tue Mar  2 10:00:21 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3844
3845         * mips.c (abort_with_insn): Make function static, add a prototype,
3846         constify 2nd parameter and mark with ATTRIBUTE_NORETURN.
3847         (current_function_file, mips_cpu_string, mips_isa_string,
3848         mips_abi_string, mips_no_mips16_string, mips_entry_string,
3849         mips_move_1word, mips_move_2words, output_block_move, load_store,
3850         override_options, make_temp_file, mips16_fp_args): Qualify a char*
3851         with the `const' keyword.
3852
3853         * mips.h (current_function_file, mips_cpu_string, mips_isa_string,
3854         mips_abi_string, mips_entry_string, mips_no_mips16_string,
3855         mips_move_1word, mips_move_2words, output_block_move): Likewise.
3856         (abort_with_insn): Remove extern prototype.
3857
3858         * mips.md: Qualify a char* with the `const' keyword.
3859         Remove many unused variables named `label'.
3860
3861 Tue Mar  2 01:27:52 1999  H.J. Lu  (hjl@gnu.org)
3862
3863         * Makefile.in (cpp_install_dir, INSTALL_CPP, UNINSTALL_CPP): New
3864         variables.
3865         (install-cpp, uninstall-cpp): New targets.
3866         (install-normal): Depend on $(INSTALL_CPP).
3867         (uninstall): Depend on $(UNINSTALL_CPP).
3868         * configure.in (cpp_install_dir): New, substitute.
3869         (tmake_file): Added t-install-cpp for --enable-cpp.
3870         * configure: Rebuilt.
3871         * cpp.sh: New cpp script.
3872         * config/t-install-cpp: New target fragment.
3873
3874 Tue Mar  2 01:40:01 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3875                           Jeffrey A Law  (law@cygnus.com)
3876
3877         * cse.c (fold_rtx): Update comments for (const (minus (label) (label)))
3878         case.
3879         (cse_insn): Avoid creating a bogus REG_EQUAL note for
3880         (const (minus (label) (label)))
3881         (record_jump_cond): Fix mismatched paren in comment.
3882
3883 Tue Mar  2 01:07:12 1999  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
3884
3885         * final.c (end_final): There are 11 words in the "main header"
3886         structure, not 10.
3887
3888 Tue Mar  2 00:09:18 1999  Marc Espie  <espie@cvs.openbsd.org>
3889
3890         * extend.texi: Reference __extension__ in the index.
3891
3892 Mon Mar  1 19:09:32 1999  Jim Wilson  <wilson@cygnus.com>
3893
3894         * Makefile.in (CROSS_FLOAT_H): Delete.
3895         (FLOAT_H): Use float_h_file.
3896         (rest.cross, stmp-int-hdrs): Delete gfloat.h dependency.
3897         (gfloat.h): Delete.
3898         (stmp-int-hdrs): Use FLOAT_H instead of gfloat.h.
3899         (mostlyclean): Delete gloat.h reference.
3900         (install-cross-rest, install-float-h-cross, stmp-headers): Update
3901         comments.
3902         * configure.in (sparcv9-*-solaris2*): Set float_format to none.
3903         (sparc-*-solaris2*): Set float_format to none for 2.5 and higher.
3904         (float_h_file): Set from float_format.  Substitute into Makefile.in.
3905         (float_format): No longer substitute into Makefile.in.
3906         * cross-make (FLOAT_H): Delete.
3907         * config/mips/t-cross64 (FLOAT_H): Delete.
3908         * configure: Rebuilt.
3909
3910 Mon Mar  1 16:36:18 1999  Jeffrey A Law  (law@cygnus.com)
3911
3912         * mips.md (div_trap_normal, div_trap_mips16): Require the dependent
3913         insn to be an INSN before looking at its pattern.
3914
3915 Mon Mar  1 15:03:51 1999  Jim Wilson  <wilson@cygnus.com>
3916
3917         * config/m68k/lb1sf68.asm (udivsi3): Change jmi to jcs.  Fix comments.
3918         * config/m68k/m68k.h (LEGITIMATE_INDEX_REG_P): Reject SIGN_EXTEND of
3919         HImode reg when TARGET_5200.
3920
3921 Mon Mar  1 21:44:30 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
3922
3923         From Toshiyasu Morita:
3924         * sh.h (CACHE_LOG): SH2 has cache, too.
3925
3926 Mon Mar  1 14:23:36 1999  Catherine Moore  <clm@cygnus.com>
3927
3928         * toplev.c (compile_file): Disable -ffunction-sections and
3929         debugging warning if the object format is elf.
3930
3931 Mon Mar  1 11:46:25 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
3932
3933         * config/h8300/h8300.c (print_operand): Use 16 bit addressing
3934         when the data in 8-bit area and can not be addressed by 8-bit.
3935
3936 Sun Feb 28 16:40:00 1999  Richard Henderson  <rth@cygnus.com>
3937
3938         * flow.c (create_basic_block): Disregard integrated bb notes.
3939
3940 Sun Feb 28 15:57:06 1999  Richard Henderson  <rth@cygnus.com>
3941
3942         * sparc.md (blockage, nonlocal_goto_receiver): Set length to 0.
3943
3944 Sun Feb 28 14:47:53 1999  Arturo Montes  <mitosys@colomsat.com.co>
3945
3946         * config/i386/t-sco5gas (crti.o): New target.
3947
3948 Sun Feb 28 15:10:17 1999  David Edelsohn  <edelsohn@gnu.org>
3949
3950         * rs6000.md (elf_high, movsi_got, *movsi_got_internal,
3951         *movsi_got_internal_mem, GOT splitter, movdf_hardfloat32,
3952         movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64,
3953         load_multiple, allocate_stack, call_indirect_aix32,
3954         call_indirect_aix64, call_value_indirect_aix32,
3955         call_value_indirect_aix64, call_indirect_nt,
3956         call_value_indirect_nt): Use gpc_reg_operand instead of
3957         register_operand.
3958
3959 Sun Feb 28 15:10:17 1999  Michael Meissner  <meissner@cygnus.com>
3960
3961         * rs6000.md (one_cmplsi2, andsi3, iorsi3, xorsi3, *eqvsi3,
3962         *andcsi3, *iorcsi3, *nandsi3, *norsi3): Add alternatives to use CR
3963         other than cr0.
3964         * rs6000.c (and{,64}_operand): If the user did -ffixed-cr0, don't
3965         allow andi. or andis. which always set cr0.
3966
3967 Sun Feb 28 01:15:04 1999  Jeff Law  (law@cygnus.com)
3968
3969         * version.c: Bump for snapshot.
3970
3971 Sun Feb 28 02:00:38 1999  Jeffrey A Law  (law@cygnus.com)
3972
3973         * invoke.texi: Update information for PA scheduling.
3974
3975 Sat Feb 27 23:21:47 1999  Jerry Quinn  <jquinn@nortelnetworks.com>
3976                           Mike Stump  <mrs@wrs.com>
3977
3978         * pa.c (override_options): Change default to 7100LC.
3979
3980         * pa.h (REG_ALLOC_ORDER): Change order to allocate left half of
3981         float regs before right half of float regs.
3982
3983 Sat Feb 27 22:48:38 1999  H.J. Lu  (hjl@gnu.org)
3984                           Jeffrey A Law  (law@cygnus.com)
3985
3986         * frame.h: Update some comments.
3987         * defaults.h (TARGET_ATTRIBUTE_WEAK): Define.
3988         * crtstuff.c (__register_frame_info, __deregister_frame_info): Declare
3989         using TARGET_WEAK_ATTRIBUTE.
3990         (__do_global_dtors_aux): Check if __deregister_frame_info is
3991         zero before calling it.
3992         (__do_global_dtors): Likewise.
3993         (frame_dummy): Check if __register_frame_info is zero before
3994         calling it.
3995         (__frame_dummy): Likewise.
3996
3997 Sat Feb 27 19:18:24 1999  Jeffrey A Law  (law@cygnus.com)
3998
3999         * SERVICE: Update from the FSF.
4000
4001 Sat Feb 27 14:31:22 1999  Arturo Montes  <mitosys@colomsat.com.co>
4002
4003         * config/i386/t-sco5 (crti.o): New target.
4004         * config/i386/sco5.h (STARTFILE_SPEC): Include crti.o when
4005         linking -shared.
4006         * configure.in (i[34567]86-*-sco3.2v5*): Add crti.o.
4007
4008 Sat Feb 27 01:12:40 1999  Jeffrey A Law  (law@cygnus.com)
4009
4010         * md.texi (prologue,epilogue): Document named patterns.
4011
4012 Fri Feb 26 19:31:25 1999  Dave Love  <fx@gnu.org>
4013
4014         * md.texi, invoke.texi: Fix unterminated @xrefs.
4015
4016 Fri Feb 26 15:33:45 1999  Richard Henderson  <rth@cygnus.com>
4017
4018         * genattrtab.c (simplify_knowing): Fix uninitialized read
4019         in Feb 21 change.
4020
4021         * genextract.c (main): Clear recog_operands before extracting.
4022
4023 Fri Feb 26 02:24:57 1999  Jeffrey A Law  (law@cygnus.com)
4024
4025         * c-pragma.c (add_weak); Delete.  Moved into...
4026         * varasm.c (add_weak): New external function.
4027         (declare_weak): If HANDLE_PRAGMA_WEAK, then add the function to
4028         the list of weak functions.
4029         * c-pragma (add_weak): Declare.
4030
4031 Thu Feb 25 23:43:59 1999  Richard Henderson  <rth@cygnus.com>
4032
4033         Flow rewrite to use basic block structures and edge lists:
4034
4035         * basic-block.h (x_basic_block_head, x_basic_block_end): Kill.
4036         (basic_block_computed_jump_target, basic_block_live_at_start): Kill.
4037         (struct edge_def): New.
4038         (struct basic_block_def): New.
4039         (basic_block_info): New.
4040         (BLOCK_HEAD, BLOCK_END): Update.
4041         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): New.
4042         (uid_block_number): Kill.
4043         (basic_block_for_insn, BLOCK_FOR_INSN): New.
4044         (BLOCK_NUM): Update.
4045         * flow.c (XNMALLOC): Kill.
4046         (max_uid_for_flow): Kill.
4047         (uid_block_number): Kill.
4048         (uid_volatile): Turn into a bitmap.
4049         (SET_INSN_VOLATILE): New.
4050         (basic_block_info): New.
4051         (entry_exit_blocks): New.
4052         (x_basic_block_head, x_basic_block_end): Kill.
4053         (basic_block_computed_jump_target, basic_block_live_at_start): Kill.
4054         (flow_int_list_blocks, basic_block_succ, basic_block_pred): Kill.
4055         (basic_block_loop_depth): Kill.
4056         (basic_block_for_insn): New.
4057         (find_basic_blocks): Split out initial block counting into
4058         count_basic_blocks.  Call functions split out of find_basic_blocks_1.
4059         (count_basic_blocks): New.
4060         (find_basic_blocks_1): Split out edge recognition, unreachable
4061         block deletion.
4062         (create_basic_block): New.
4063         (compute_bb_for_insn): New.
4064         (clear_edges): New.
4065         (free_bb_memory): Kill.
4066         (add_edge, add_edge_to_label): Kill.
4067         (mark_label_ref): Kill.
4068         (make_edges): Rewrite to use edge lists.
4069         (make_edge, make_label_edge): New.
4070         (mark_critical_edges): New.
4071         (split_edge, insert_insn_on_edge): New.
4072         (commit_one_edge_insertion, commit_edge_insertions): New.
4073         (delete_unreachable_blocks): Rewrite to use edge lists.
4074         Split out EH region manipulation into delete_eh_regions.
4075         Call tidy_fallthru_edge and merge_blocks.
4076         (delete_eh_regions): New.
4077         (delete_note_p): New.
4078         (delete_insn_chain): New.
4079         (delete_block): Split out code into delete_insn_chain and
4080         tidy_fallthru_edge.  Update edge lists.
4081         (expunge_block): New.
4082         (flow_delete_insn): New?
4083         (can_delete_label_p): New?
4084         (merge_blocks_nomove, merge_blocks): New.
4085         (tidy_fallthru_edge): New.
4086         (calculate_loop_depth): New.
4087         (life_analysis): Allocate and free uid_volatile.
4088         (free_basic_block_vars): Update for new structures.
4089         (record_volatile_insns): Use SET_INSN_VOLATILE.
4090         (mark_regs_live_at_end): Tidy EXIT_IGNORE_STACK usage.
4091         (mark_used_regs): Likewise.
4092         (life_analysis_1): Use bb global_live_at_start, global_live_at_end,
4093         local_set regsets.  Use bb->aux to store new_live_at_end.  Begin
4094         life propagation from EXIT_BLOCK rather than last block.  Clear
4095         regs_ever_live after mark_regs_live_at_end.
4096         (allocate_for_life_analysis): Update for new structures.
4097         (propagate_block): Split out loop depth calculation to
4098         calculate_loop_depth.
4099         (regno_uninitialized): Use bb->global_live_at_start.
4100         (regno_clobbered_at_setjmp): Likewise.
4101         (dump_bb_data): Likewise.
4102         (find_auto_inc): Use BLOCK_FOR_INSN instead of BLOCK_NUM.
4103         (dump_flow_info): Update for new structures.
4104         (dump_edge_info): New.
4105         (print_rtl_with_bb): Update for new structures.
4106         (compute_preds_succs): Do no work -- convert edge lists.
4107         (set_block_for_insn): From corpse of old set_block_num.
4108         (set_block_num): Call it.
4109
4110         * rtl.c (note_insn_name): Add NOTE_INSN_BASIC_BLOCK.
4111         * rtl.h (rtunion_def): Add bb entry.
4112         (NOTE_BASIC_BLOCK): New.
4113         (NOTE_INSN_BASIC_BLOCK): New.
4114
4115         * varray.h (varray_data_tag): Add bb entry.
4116         (VARRAY_BB_INIT, VARRAY_BB): New.
4117
4118         * emit-rtl.c (emit_label_before): New.
4119
4120         * except.c (expand_rethrow): Delete insns following the call to
4121         rethrow.  Put the REG_EH_RETHROW on the call.
4122
4123         * jump.c (returnjump_p, returnjump_p_1): New.
4124
4125         * expr.h (nonlocal_goto_handler_labels): New declaration.
4126         * function.c (nonlocal_goto_handler_labels): Define it.
4127         (push_function_context_to): Save it.
4128         (pop_function_context_from): Restore it.
4129         (init_function_start): Clear it.
4130         (nonlocal_label_rtx_list): Kill.
4131         * function.h (struct function): Add storage space for it.
4132         * stmt.c (expand_nl_handler_label): Return the new label.
4133         (expand_nl_goto_receivers): Collect a list of them in
4134         nonlocal_goto_handler_labels.
4135
4136         * Makefile.in (print-rtl.o): Depend on basic-block.h.
4137         (flow.o): Depend on insn-flags.h.
4138
4139         * function.c (thread_prologue_and_epilogue_insns): Do not
4140         half-heartedly update bb structures.
4141
4142         * toplev.c: Add flow2 dump as -dw.
4143         (rest_of_compilation): Finish .greg before flow2.
4144
4145         * graph.c (draw_edge): Handle class 3.
4146         (print_rtl_graph_with_bb): Make abnormal edges red class 2,
4147         change non-fall-thru but adjacent to green class 3.  Update
4148         to use new structures.
4149
4150         * print-rtl.c (print_rtx): Handle NOTE_INSN_BASIC_BLOCK.
4151
4152         * reg-stack.c (BLOCK_NUM): Convert to function.  Abort if
4153         block_number is -1.
4154         (reg_to_stack): Initialize block_num to -1.
4155
4156         * combine.c (set_nonzero_bits_and_sign_copies): Update reference
4157         to basic_block_live_at_start to bb->global_live_at_start.
4158         (try_combine): Likewise.
4159         (reg_dead_at_p): Likewise.
4160         * global.c (global_conflicts): Likewise.
4161         Handle stack regs on all abnormal edges, not just computed jumps.
4162         (mark_elimination): Update reference to basic_block_live_at_start.
4163         (build_insn_chain): Likewise.
4164         * haifa-sched.c (haifa_edge): Rename from edge for conflict.
4165         (is_cfg_nonregular): Look at nonlocal_goto_handler_labels instead
4166         of nonlocal_label_rtx_list.
4167         (check_live_1): Update reference to basic_block_live_at_start.
4168         (update_live_1): Likewise.
4169         (find_pre_sched_live): Likewise.
4170         (find_post_sched_live): Likewise.
4171         * local-alloc.c (update_equiv_regs): Likewise.
4172         (block_alloc): Likewise.
4173         * reload1.c (reload, reload_combine): Likewise.
4174         * regmove.c (mark_flags_life_zones): Likewise.
4175         * resource.c (mark_target_live_regs): Likewise.
4176         * sched.c (schedule_block): Likewise.
4177
4178         * regclass.c (regset_release_memory): Don't free
4179         basic_block_live_at_start.
4180
4181         * unroll.c (copy_loop_body): Don't duplicate NOTE_INSN_BASIC_BLOCK.
4182
4183 Thu Feb 25 21:32:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
4184
4185         * fixinc.wrap: Also handle struct queue in sys/stream.h.
4186         * fixinc.svr4: Likewise.
4187
4188         * dwarf2out.c (scope_die_for): Set scope_die to comp_unit_die
4189         rather than asserting it.
4190
4191 Thu Feb 25 23:33:06 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4192
4193         * cppexp.c (left_shift, right_shift, parse_charconst, COMPARE,
4194         cpp_parse_expr): Replace uses of long/HOST_BITS_PER_LONG with
4195         HOST_WIDEST_INT/HOST_BITS_PER_WIDEST_INT.
4196
4197         * Makefile.in (cppmain.o, cpplib.o, cpphash.o, cppalloc.o,
4198         cpperror.o, cppexp.o, cppfiles.o, cppinit.o, fix-header.o,
4199         scan-decls.o): Don't depend on machmode.h.
4200
4201         * cppexp.c: Don't define CHAR_BIT or HOST_BITS_PER_WIDE_INT anymore.
4202         Replace all instances of HOST_WIDE_INT with HOST_WIDEST_INT.
4203
4204         * cppfiles.c: Likewise.
4205
4206         * cpplib.c: Likewise.
4207
4208         * cpplib.h: Likewise.  Also don't include machmode.h anymore.
4209
4210 Thu Feb 25 18:46:26 1999  Richard Henderson  <rth@cygnus.com>
4211
4212         * gcc.c (default_compilers): Define __FAST_MATH__ when appropriate.
4213         * objc/lang-specs.h: Likewise.
4214
4215 Thu Feb 25 16:19:43 1999  Jeffrey A Law  (law@cygnus.com)
4216
4217         * pa.md (call patterns): Lose unused argument to output_call.
4218
4219         * print-rtl.c (print_rtl): Print /j and /c for the jump/call flags.
4220
4221 1999-02-25  Zack Weinberg  <zack@rabi.columbia.edu>
4222
4223         * cpphash.c (install): Rename to cpp_install, add cpp_reader*
4224         first argument.  All callers changed.
4225         (hashtab): Removed.
4226         (cpp_lookup, cpp_install): Change all refs to hashtab to
4227         pfile->hashtab.
4228         (cpp_hash_cleanup): Removed.
4229         * cpphash.h: Adjust prototypes.
4230         * cpplib.h (struct cpp_reader): Add hashtab pointer.
4231         * cppinit.c (cpp_reader_init): Also allocate space for the
4232         hashtab.
4233         (cpp_cleanup): Delete all macros and free the hashtab.
4234
4235 Thu Feb 25 21:52:54 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4236
4237         * sh.h (PASS_IN_REG_P): For TARGET_HITACHI, don't pass structures
4238         in registers.
4239
4240         * expr.h (PRETEND_OUTGOING_VARARGS_NAMED): Provide default definition.
4241         * function.c (assign_parms): Honour PRETEND_OUTGOING_VARARGS_NAMED.
4242         * calls.c (expand_call): Likewise.
4243
4244         * sh.c (sh_expand_prologue): For TARGET_HITACHI, don't push varargs /
4245         stdarg arguments.
4246         * sh.h (CPP_SPEC): Add -D__HITACHI__ for -mhitachi.
4247         (FUNCTION_ARG): For TARGET_HITACHI, don't pass unnamed
4248         arguments in registers.
4249         (PRETEND_OUTGOING_VARARGS_NAMED): Define.
4250         * va-sh.h (entire file): If __HITACHI__ is defined, use sh[123]
4251         flavor varargs.
4252
4253 Thu Feb 25 14:32:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4254
4255         * cse.c (dump_class): Revert last change and make the prototype
4256         extern.
4257
4258 Thu Feb 25 19:13:42 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4259
4260         * rtl.h (insn_first_p): Don't declare.
4261         * rtlanal.c (insn_first_p): Delete.
4262         * loop.c (loop_insn_first_p): Faster implementation.
4263
4264 Thu Feb 25 10:44:35 1999  Richard Earnshaw  (rearnsha@arm.com)
4265
4266         * arm.h (TARGET_SWITCHES): Delete deprecated switches -m[236].
4267         (TARGET_3, TARGET_6): Delete.
4268         (ARM_FLAG_ARM[36]): Delete.
4269         (CPP_CPU_ARCH_SPEC): No need to handle -m[236] any more.
4270         (CC1_SPEC): Don't expand -m[236] into new equivalents.
4271         (CPP_APCS_PC_SPEC): No need to handle -m[236] any more.
4272         * arm.c (arm_override_options): Delete warnings about deprecated
4273         options -m[236].
4274
4275         * arm.c (arm_finalize_pic): Build the label into the special pic
4276         adjustment insn instead of issuing it separately.
4277         * arm.md (pic_add_dot_plus_eight): Rework to contain the label
4278         that is needed.
4279
4280         * arm.md (*zeroextractqi_compare0_scratch): Delete.
4281         (*ne_zeroextractsi): New pattern.
4282
4283 Thu Feb 25 18:40:06 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4284
4285         * stmt.c (expand_end_loop): Grok code emitted by
4286         expand_exit_loop_if_false.
4287
4288 Thu Feb 25 10:17:32 1999  Nick Clifton  <nickc@cygnus.com>
4289
4290         * config/arm/arm.c (return_in_memory): Float fields in unions
4291         force a return in memory.
4292         (load_multiple_sequence): Add comment explaining why two LDR
4293         instructions can be better than an LDMIA instruction.
4294
4295         * config/arm/arm.h (TARGET_SHORT_BY_BYTES): Add comment
4296         describing the real meaning of this option.
4297         (FIXED_REGISTERS): Default r10 to not-fixed.
4298         (CALL_USED_REGISTERS): Default r10 to not-call-used.
4299         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): If not defined, define
4300         as empty.
4301         (CONDITIONAL_REGISTER_USAGE): Fix r10 if TARGET_APCS_STACK is
4302         true.  Invoke SUBTARGET_CONDITIONAL_REGISTER_USAGE after
4303         performing other checks.
4304
4305         * config/arm/arm.md (zero_extendhisi2): Undo previous change.
4306         (extendhisi2): Undo previous change.
4307         Also add comments describing why TARGET_SHORT_BY_BYTES can be
4308         ignored for armv4(t) architectures.
4309
4310         * config/arm/riscix.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE):
4311         Define to fix r10.
4312
4313         * config/arm/riscix1-1.h
4314         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define to fix r10.
4315
4316 Thu Feb 25 12:09:04 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4317
4318         * cse.c (dump_class): Make the function definition static to match
4319         the prototype.
4320
4321 Wed Feb 24 17:47:28 1999  Jim Wilson  <wilson@cygnus.com>
4322
4323         * dbxout.c (gstab.h): Use if CROSS_COMPILE.
4324
4325         * dwarf2out.c (add_location_or_const_value_attribute): Add big
4326         endian correction for parms passed in regs but living on the stack.
4327
4328 Wed Feb 24 14:03:54 1999  Jeffrey A Law  (law@cygnus.com)
4329
4330         * calls.c (initialize_argument_information): New function extracted
4331         from expand_call.
4332         (expand_call): Use initialize_argument_information.  Remove variables
4333         which are no longer used due to cleanups.
4334
4335         * calls.c (compute_argument_block_size): New function, extracted from
4336         expand_calls.
4337         (expand_calls): Use compute_argument_block_size.  Delete
4338         original_args_size, use unadjusted_args_size instead.
4339
4340         * calls.c (precompute_arguments): New function, extracted from
4341         expand_call.
4342         (expand_call): Use precompute_arguments.
4343
4344         * calls.c (finalize_must_preallocate): New function, extracted from
4345         expand_call.
4346         (expand_call): Use finalize_must_preallocate.
4347
4348         * calls.c (store_one_arg): Mark "variable_size" as possibly unused.
4349
4350         * regclass.c (record_reg_classes, case 'p'): Set classes appropriately.
4351         An alternative always fails if it needs a pseudo and no suitable
4352         register class can be found.
4353
4354 Wed Feb 24 19:47:56 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4355
4356         * loop.h (loop_insn_first_p): Declare.
4357         * loop.c (loop_insn_first_p): No longer static.
4358         * unroll.c (iteration_info): Fix comparison to
4359         reg_iv_type->num_elements.
4360         Before accessing reg_biv_class, check index against
4361         max_reg_before_loop.
4362         Fix and enable code for giv iterators.
4363         (loop_iterations): Compare with reg_iv_type->num_elements instead
4364         of with max_reg_before_loop.
4365
4366 Wed Feb 24 19:17:11 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4367
4368         * unroll.c (unroll_loop): Avoid out-of-bounds index for local_regno.
4369
4370 Wed Feb 24 11:26:41 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
4371
4372         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Don't use
4373         PIC_OFFSET_TABLE_REGNUM for register allocation when -fPIC.
4374
4375 Tue Feb 23 16:24:19 1999  Marc Lehmann  <pcg@goof.com>
4376
4377         * config/i386/i386.md: Fix typo.
4378
4379 Mon Feb 22 19:36:33 1999  Andrew Cagney  <cagney@b1.cygnus.com>
4380
4381         * config/mips/mips.c (mips_debugger_offset): When TARGET_MIPS16 &&
4382         frame_pointer_needed adjust frame size.
4383         (function_prologue): Don't MIPS16 .mask GPOFFSET. Already adjusted
4384         in .frame pseudo-op.
4385         Frm Jim Wilson  <wilson@cygnus.com>:
4386         * mips.c (function_prologue): Adjust frame size in .frame pseudo-op
4387         when TARGET_MIPS16 && frame_pointer_needed.
4388
4389 1999-02-22  Nick Clifton  <nickc@cygnus.com>
4390
4391         * config/arm/arm.h: Add TARGET_CPU_strongarm1100.
4392         Add -mno-sched command line switch to disable scheduling of
4393         instructions into the function's prologue.
4394         (enum processor_type): Remove.
4395         (TARGET_OPTIONS): Add "fpe=" option to match documentation.
4396         (struct arm_cpu_select): Replace 'set_tune_p' and 'set_arch_p'
4397         fields with 'processors' field.
4398         (CONDITIONAL_REGISTER_USAGE): Allow r10 to be used if stack
4399         checking is not enabled.
4400         (RETURN_IN_MEMORY): Always call arm_return_in_memory.
4401
4402         * config/arm/arm.c (arm_cpu): Remove.
4403         (tune_flags): Remove.
4404         (arm_is_strong): New variable: true iff the target processor is a
4405         StrongARM.
4406         (arm_is_6_or_7): New variable: true iff the target processor is an
4407         ARM6 or and ARM7.
4408         (arm_select): Fields reorganised.
4409         (struct processors): processor_type field removed.
4410         (all_procs): Remove.
4411         (all_cores): New array: Definitions of all known ARM cpu cores.
4412         (all_architectures): New array: Definitions of all known ARM
4413         architectures.
4414         (streq): New macro.
4415         (FL_SCHED): New processor flag: processor required load
4416         scheduling.
4417         (FL_STRONG): New processor flag: processor is a StrongARM.
4418         (arm_override_options): Reorganized to make code clearer.
4419         (use_return_insn): Test for "not (TARGET_APCS and
4420         frame_pointer_needed)".
4421         (arm_return_in_memory): Improve handling of structures.
4422
4423         * config/arm/arm.md: Remove "cpu" attribute.  Replace with
4424         "is_strongarm" and "is_arm_6_or_7" attributes.
4425         (zero_extendhisi2): Check for TARGET_SHORT_BY_BYTES before
4426         arm_arch4.
4427         (extendhisi2): Check for TARGET_SHORT_BY_BYTES before arm_arch4.
4428
4429         * invoke.texi (ARM Options): Document -mtune= and -mfp= options.
4430
4431 1999-02-22  Philip Blundell  <philb@gnu.org>
4432
4433         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Replace default
4434         definition with one including cache synchronization.
4435         (CLEAR_INSN_CACHE): Correct syscall number and enable definition.
4436         Move definition of inhibit_libc to...
4437         * config/arm/xm-linux.h: ... here.
4438
4439         * config/arm/t-linux: Disable multilib configurations since the
4440         only effect for most people is to cause builds to fail.
4441
4442         * config/arm/elf.h (ASM_FILE_START): Add .file directive.
4443         (ASM_SPEC): Translate -mapcs-float to -mfloat for the assembler.
4444
4445         * config/arm/linux-elf.h (DEFAULT_VTABLE_THUNKS): Define.
4446         (HANDLE_SYSV_PRAGMA): Likewise.
4447         (LIB_SPEC): Copy definition from generic Linux files.
4448         (LIBGCC_SPEC): Include -lfloat if -msoft-float was given.
4449         (FP_DEFAULT): Set to SOFT3 on 32-bit targets.
4450         (DWARF2_DEBUGGING_INFO): Define.
4451         (PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG.
4452
4453 Mon Feb 22 16:54:18 1999  Andrew MacLeod  <amacleod@cygnus.com>
4454
4455         * loop.c (libcall_other_regs): Make extern.
4456         * rtl.h (find_last_value): Add parameter to prototype.
4457         (libcall_other_reg): Add extern declaration.
4458         * rtlanal.c (find_last_value): Add another parameter to allow
4459         a definition using a hardware register to be found as well.
4460
4461 Mon Feb 22 13:33:47 1999  Mark Mitchell  <mark@markmitchell.com>
4462
4463         * cse.c (dump_class): New function.
4464         (invalidate_memory): Fix typo in comment.
4465         * function.c (temp_slot): Add an alias set field.
4466         (assign_stack_temp): Only reuse slots if they will have the
4467         same alias set as before.
4468         (combine_temp_slots): Don't combine if -fstrict-aliasing;
4469         that's unsafe.
4470         * rtl.c (copy_rtx): Copy all the flags (in particular,
4471         MEM_SCALAR_P).
4472
4473 Mon Feb 22 14:13:23 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
4474
4475         * configure.in (i[34567]86-*-linux-gnu*,
4476         i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*,
4477         i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as
4478         fixincludes.
4479
4480         * configure: Rebuilt.
4481
4482         * fixinc.x86-linux-gnu: New script for fixing asm-statements bug
4483         on x86 linux.
4484
4485         * fixinc/fixinc.x86-linux-gnu: Copy of the previous one.
4486
4487         * fixinc/mkfixinc.sh (i[34567]86-*-linux-gnu*,
4488         i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*,
4489         i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as
4490         fixincludes.
4491
4492 Mon Feb 22 08:55:05 1999  Ovidiu Predescu  <ovidiu@cup.hp.com>
4493
4494         * objc/objc-act.c (encode_type): Temporary revert to the old
4495         behavior of encoding types as the new one seems to break the
4496         encoding of bitfields.
4497
4498 Mon Feb 22 11:40:44 1999  Craig Burley  <craig@jcb-sc.com>
4499 Sat Feb 20 09:59:36 1999  Craig Burley  <craig@jcb-sc.com>
4500
4501         * Makefile.in (all.internal, all.cross): Depend on `doc'
4502         target, to ensure docs get made before installation.
4503
4504         Decrease spurious warnings from -fsyntax-only:
4505         * stmt.c (expand_expr_stmt): Expand expr even when -fsyntax-only.
4506
4507 Mon Feb 22 10:55:00 1999  Gavin Romig-Koch  <gavin@cygnus.com>
4508
4509         * c-lex.c (yylex): Replace warning about integer constants being
4510         larger than long-longs, with a warning about integer constants
4511         being larger than the largest target integer.
4512
4513 Mon Feb 22 08:35:38 1999  Craig Burley  <craig@jcb-sc.com>
4514
4515         Fix -fsyntax-only ICEs:
4516         * varasm.c (assemble_zeros, assemble_variable,
4517         output_constant_def): Do nothing when -fsyntax-only.
4518
4519 Fri Feb 19 18:18:56 1999  Don Bowman  <don@pixstream.com>
4520
4521         * configure.in (mips*-*-vxworks*): Enable gthreads vxworks support.
4522         * configure: Rebuilt.
4523
4524 Sun Feb 21 20:34:44 1999  Jeff Law  (law@cygnus.com)
4525
4526         * version.c: Bump for snapshot.
4527
4528 Sun Feb 21 20:35:10 1999  Jeffrey A Law  (law@cygnus.com)
4529
4530         * config/aoutos.h (ASM_OUTPUT_CONSTRUCTOR): Delete.
4531         (ASM_OUTPUT_DESTRUCTOR, ASM_OUTPUT_GC_ENTRY): Likewise.
4532         * tm.texi: Update docs for constructors and destructors.
4533
4534 Sun Feb 21 17:11:18 1999  Richard Henderson  <rth@cygnus.com>
4535
4536         * genattrtab.c (check_attr_value): Allow negative const_int if
4537         negative_ok.  Accept integral arithmetic operators.  Accept
4538         direct references to other attributes.  Accept symbol_ref in
4539         non-constant attributes.
4540         (max_attr_value): Add new argument `unknownp'.  Update all callers.
4541         (or_attr_value): Likewise.
4542         (simplify_knowing): Don't optimize if max_attr_value unknown.
4543         (write_length_unit_log): Likewise with or_attr_value.
4544         (find_and_mark_used_attributes): Don't fallthru case.
4545         (write_attr_set): Pass thru all non-cond expressions.
4546         (write_attr_value): Handle symbol_ref, attr, and arithmetic.
4547
4548 Sun Feb 21 13:16:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4549
4550         * regmove.c (discover_flags_reg): Use word_mode instead of SImode.
4551
4552 Sun Feb 21 13:15:40 1999  Richard Henderson  <rth@cygnus.com>
4553
4554         * regmove.c (discover_flags_reg): Remove cc0 code.
4555         (mark_flags_life_zones) [HAVE_cc0]: Force use of cc0; bail if
4556         a potential flags register was identified.
4557
4558 Sat Feb 20 16:16:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4559
4560         * rs6000.md (scc plus ltu): Fix typo in last change.
4561
4562 Sat Feb 20 09:08:44 1999  Richard Earnshaw  (rearnsha@arm.com)
4563
4564         * xm-arm.h (HOST_BITS_PER_LONGLONG): Define.
4565
4566 Fri Feb 19 23:02:02 1999  Richard Henderson  <rth@cygnus.com>
4567
4568         * regmove.c (discover_flags_reg): New function.
4569         (flags_set_1, mark_flags_life_zones): New functions.
4570         (regmove_optimize): Call them.
4571         (fixup_match_1): Use insn modes rather than sets_cc0_p.
4572
4573 Fri Feb 19 22:47:01 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4574
4575         * rtlanal.c (insn_first_p): Fix return value for insn == reference.
4576
4577         * loop.c (strength_reduce, check_final_value, check_dbra_loop):
4578         Use loop_insn_first_p.
4579
4580 Fri Feb 19 15:49:26 1999  Michael Meissner  <meissner@cygnus.com>
4581                           David Edelsohn  <edelsohn@gnu.org>
4582
4583         * rs6000.md (scc plus eq): Fix output template.
4584         (scc plus ltu): Fix output template and collapse variants
4585         correcting early clobbers.
4586         (scc plus geu): Fix output template.
4587         (scc plus gt): Fix output template.
4588         (scc plus gtu): Fix output template and collapse variants.
4589
4590 Fri Feb 19 15:43:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4591
4592         * cppinit.c (print_help): Remove unescaped newline in string.
4593
4594 Fri Feb 19 19:55:06 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4595
4596         * loop.c (strength_reduce): Check for intervening jumps when
4597         converting biv increment to giv.
4598
4599 Thu Feb 18 16:36:58 1999  Per Bothner  <bothner@cygnus.com>
4600
4601         * tree.def (TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR): New tree nodes,
4602         * expr.c (expand_expr): Support new tree nodes.
4603
4604 Fri Feb 19 10:17:56 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
4605
4606         * config/m68k/m68k.c (m68k_align_loops_string,
4607         m68k_align_jumps_string, m68k_align_funcs_string): Add const.
4608         * config/m68k/m68k.h (m68k_align_loops_string,
4609         m68k_align_jumps_string, m68k_align_funcs_string): Likewise.
4610
4611 Thu Feb 18 23:28:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4612
4613         * bitmap.c (bitmap_print): Qualify a char* with the `const' keyword.
4614
4615         * bitmap.h (bitmap_print): Likewise.
4616
4617         * c-decl.c (builtin_function, grokdeclarator, grokfield): Likewise.
4618
4619         * c-lang.c (build_objc_string): Likewise.
4620
4621         * c-lex.c (yyerror, extend_token_buffer): Likewise.  Don't include
4622         limits.h or ctype.h.  Remove unused variable `p'.
4623
4624         * c-lex.h (yyerror): Qualify a char* with the `const' keyword.
4625
4626         * c-pragma.c (handle_pragma_token): Likewise.
4627
4628         * c-pragma.h (handle_pragma_token): Likewise.
4629
4630         * c-tree.h (build_objc_string, builtin_function, grokfield,
4631         build_indirect_ref, lvalue_or_else, readonly_warning, error_init,
4632         pedwarn_init): Likewise.
4633
4634         * c-typeck.c (convert_for_assignment, warn_for_assignment,
4635         push_string, warning_init, incomplete_type_error,
4636         build_indirect_ref, lvalue_or_else, readonly_warning,
4637         build_c_cast, spelling, push_member_name, print_spelling,
4638         error_init, pedwarn_init, start_init): Likewise.
4639
4640         * objc/objc-act.c (build_objc_string): Likewise.
4641
4642         * print-tree.c (print_node_brief, print_node): Likewise.
4643
4644         * tree.h (lvalue_or_else, print_node, print_node_brief): Likewise.
4645
4646 Thu Feb 18 20:44:21 1999  David Edelsohn  <edelsohn@gnu.org>
4647
4648         * regclass.c (record_reg_classes): Correctly handle 'p' constraint.
4649
4650 Thu Feb 18 19:59:37 1999  Marc Espie  <espie@cvs.openbsd.org>
4651
4652         * configure.in :Handle OpenBSD platforms.
4653         * configure: Rebuilt.
4654         * config/openbsd.h: New file.
4655         * config/xm-openbsd.h: New file.
4656         * config/t-openbsd: New file.
4657         * config/t-openbsd-thread: New file.
4658
4659 Thu Feb 18 18:47:09 1999  Jeffrey A Law  (law@cygnus.com)
4660
4661         * function.c (assign_stack_temp_for_type): Round SIZE before calling
4662         assign_stack_local for BLKmode slots.
4663
4664 Fri Feb 19 01:45:06 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4665
4666         * loop.c (strength_reduce): For derived givs, replace the
4667         giv this was derived from with its new_reg.
4668         (recombine_givs): Don't set new_reg for derived giv.
4669         And don't print it, print SUM instead.
4670
4671 Thu Feb 18 15:52:49 1999  Jim Wilson  <wilson@cygnus.com>
4672
4673         * m68kelf.h (ASM_RETURN_CASE_JUMP): Add 5200 support.
4674
4675 1999-02-18  Zack Weinberg  <zack@rabi.columbia.edu>
4676
4677         * cpplib.c: Kill define of STDC_VALUE.  Don't include output.h
4678           or prefix.h. Change CPP_IS_MACRO_BUFFER to not refer to
4679           macro_cleanup.
4680           (GET_ENV_PATH_LIST, PATH_SEPARATOR, STANDARD_INCLUDE_DIR,
4681           predefs, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
4682           CPP_WCHAR_TYPE, USER_LABEL_PREFIX, REGISTER_PREFIX, struct
4683           cpp_pending, version_string, struct default_include,
4684           include_defaults_array, path_include, cpp_options_init,
4685           dump_special_to_buffer, initialize_builtins, cpp_start_read,
4686           cpp_reader_init, nreverse_pending, push_pending, print_help,
4687           cpp_handle_option, cpp_handle_options, cpp_finish,
4688           cpp_cleanup): Move to cppinit.c.
4689           (macro_cleanup, struct arglist, collect_expansion,
4690           create_definition, compare_defs, comp_def_part, ARG_BASE,
4691           struct argdata, macarg, change_newlines, timestamp,
4692           monthnames, special_symbol, unsafe_chars, macroexpand,
4693           push_macro_expansion): Move to cpphash.c.
4694           (quote_string, check_macro_name, cpp_expand_to_buffer,
4695           output_line_command, cpp_undef): Export.
4696           (null_underflow, null_cleanup, handle_directive): Make static.
4697
4698         * cpplib.h: Prototype now-exported functions.  Adjust decls of
4699           syntax tables so we can include cpplib.h in cppinit.c.
4700         * cpphash.h: Prototype all functions exported by cpphash.c.
4701         * cppinit.c: Make syntax tables initialized data if possible
4702           (uses GCC designated-initializer extension).
4703         * cppexp.c: Make cpp_lex static.
4704         * Makefile.in: Move -D switches for the various include dirs
4705           from cpplib.o rule to cppinit.o rule.  Adjust dependencies.
4706
4707 Thu Feb 18 13:15:56 1999  Marc Espie  <espie@cvs.openbsd.org>
4708
4709         * alpha/openbsd.h: New file.
4710         * alpha/xm-openbsd.h: New file.
4711         * sparc/openbsd.h: New file.
4712         * sparc/xm-openbsd.h: New file.
4713         * m68k/openbsd.h: New file.
4714         * m68k/xm-openbsd.h: New file.
4715         * i386/openbsd.h: New file, originally from netbsd.
4716         * i386/xm-openbsd.h: New file.
4717
4718 1999-02-17  Zack Weinberg  <zack@rabi.columbia.edu>
4719
4720         * Makefile.in: Correct dependencies for cpplib object files.
4721
4722 Wed Feb 17 14:04:18 1999  Michael Meissner  <meissner@cygnus.com>
4723
4724         * rs6000.md ({add,sub}si3 `.'): Add alternatives to use CR other
4725         than cr0.
4726
4727 Wed Feb 17 16:59:28 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4728
4729         * loop.c (strength_reduce): Don't move giv insn for biv turned giv
4730         below scan_start.
4731
4732 Wed Feb 17 10:56:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4733
4734         * tree.c (tree_node_kind_names, print_obstack_name,
4735         get_identifier, maybe_get_identifier, build_string,
4736         build_expr_wfl, is_attribute_p, lookup_attribute,
4737         print_obstack_statistics, get_file_function_name_long, tree_check,
4738         tree_class_check, expr_check): Qualify a char* with the `const'
4739         keyword.
4740
4741         * tree.h (get_identifier, maybe_get_identifier, build_string,
4742         build_expr_wfl, is_attribute_p, lookup_attribute,
4743         print_obstack_statistics, print_obstack_name, tree_check,
4744         tree_class_check, expr_check): Likewise.
4745
4746 Tue Feb 16 21:29:38 1999  Jeffrey A Law  (law@cygnus.com)
4747
4748         * i386/freebsd-elf.h, i386/gas.h, i386/linux.h: Fix minor spacing
4749         errors.
4750
4751         * calls.c (store_one_arg): Mark any slots used for the argument
4752         as in-use immediately after we're done saving any slots which
4753         will be overwritten by this argument.
4754
4755 Tue Feb 16 21:02:07 1999  Anton Hartl  <toni@devsoft.com>
4756
4757         * rs6000.md (call_value): Fix typo.
4758
4759 Wed Feb 17 01:29:07 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4760
4761         * loop.c (strength_reduce): Calculate maybe_dead before
4762         calling recombine_givs.
4763
4764 Wed Feb 17 00:43:12 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4765
4766         * loop.c (strength_reduce): Dump biv increment -> giv conversions.
4767
4768 Tue Feb 16 15:31:39 1999  Ovidiu Predescu  <ovidiu@cup.hp.com>
4769
4770         * objc/objc-act.c (encode_type): Encode the type instead of
4771         encoding the mode of the type (patch from Richard Frith-Macdonald
4772         <richard@brainstorm.co.uk>).
4773
4774 Tue Feb 16 10:53:51 1999  Richard Earnshaw  (rearnsha@arm.com)
4775
4776         * config/arm/arm.md (*zeroextractqi_compare0_scratch): Re-add load
4777         instruction killed in previous change.  Simplify mask generation.
4778         (*zeroextractsi_compare0_scratch): Simplify mask generation.
4779
4780 Tue Feb 16 09:52:26 1999  Nick Clifton  <nickc@cygnus.com>
4781
4782         * config/arm/arm.md (zeroextractqi_compare0_scratch): Ensure that
4783         bitfield does not overflow a byte boundary.
4784
4785 Tue Feb 16 01:37:33 1999  Charles G Waldman  <cgw@alum.mit.edu>
4786
4787         * c-common.c (shorten_compare): Get the min/max value from the
4788         underlying type of an enumeration, not the enumerated type itself.
4789
4790 Mon Feb 15 23:04:48 1999  Jeffrey A Law  (law@cygnus.com)
4791
4792         * jump.c: Include insn-attr.h.
4793         (delete_computation): If reload has completed and insn scheduling
4794         after reload is enabled, then do not depend on REG_DEAD notes.
4795         * Makefile.in (jump.o): Depend on insn-attr.h.
4796
4797 Mon Feb 15 16:57:38 1999  Richard Henderson  <rth@cygnus.com>
4798
4799         * i386.md (addsi3): Allow lea for any constant_p.
4800
4801 1999-02-15  Zack Weinberg  <zack@rabi.columbia.edu>
4802
4803         * toplev.c (documented_lang_options): Remove -fident and
4804           -fnoident, which are now handled by the language independent
4805           option parser.
4806
4807 1999-02-15  Zack Weinberg  <zack@rabi.columbia.edu>
4808
4809         * c-common.c (UNGETC [USE_CPPLIB=1]): Do nothing if c is EOF.
4810         * c-lex.c: Likewise.
4811         * cpplib.c (cpp_push_buffer, cpp_pop_buffer): Use a linked
4812         list in malloced memory for the buffer stack.
4813         (cpp_get_token): Don't pop the last buffer off the stack.
4814         Calls after CPP_EOF has been returned produce CPP_EOF with no
4815         state change.
4816         (cpp_finish): Pop last buffer here.
4817         (do_line): Don't free ip->last_nominal_fname if it is equal to
4818         ip->fname.
4819         (special_symbol): If a T_CONST is the empty string, push a
4820         single `@ ' escape instead.
4821         (macroexpand): Special symbol buffers have escapes too.
4822         * cpplib.h (struct cpp_buffer): Remove unused fields, add prev
4823         buffer pointer.
4824         (struct cpp_reader): Remove buffer_stack.  Add
4825         buffer_stack_depth.
4826         (CPP_PREV_BUFFER, CPP_NULL_BUFFER): Buffer stack is now a
4827         linked list.
4828
4829 Mon Feb 15 14:44:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4830
4831         * cccp.c: Don't define HOST_WIDE_INT.  Replace all occurrences of
4832         WIDE_INT with WIDEST_INT.
4833
4834         * cexp.y: Likewise.
4835         Don't define unsigned_HOST_WIDE_INT, CHAR_BIT or
4836         HOST_BITS_PER_WIDE_INT.  Replace occurrences of PRINTF_PROTO_1()
4837         style with PVPROTO() ATTRIBUTE_PRINTF_1 style macros.  Replace
4838         occurrences of "unsigned_HOST" with "unsigned HOST".  Provide a
4839         definition of variable `c89' when compiling a test binary and set it.
4840
4841         * system.h: Don't define the PRINTF_PROTO_* macros.
4842
4843 Mon Feb 15 11:33:51 1999  Jeffrey A Law  (law@cygnus.com)
4844
4845         * loop.c (mark_loop_jump): Handle LO_SUM.  If we encounter something
4846         we do not understand, mark the loop and containing loops as invalid.
4847
4848 Mon Feb 15 00:40:45 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4849
4850         * alias.c (init_alias_analysis): Avoid self-referential value
4851         when setting reg_known_value from REG_EQUAL notes.
4852
4853 Sun Feb 14 23:12:10 1999  Richard Henderson  <rth@cygnus.com>
4854
4855         * i386.c (legitimate_address_p): Verify modes of base and index.
4856
4857 Sun Feb 14 23:01:28 1999  Richard Henderson  <rth@cygnus.com>
4858
4859         * i386.c (legitimate_pic_address_disp_p): Remove static.
4860         * i386.h (LEGITIMATE_PIC_OPERAND_P): Use it instead of
4861         open-coding cases.
4862
4863 Sun Feb 14 21:03:28 1999  Jeffrey A Law  (law@cygnus.com)
4864
4865         * except.c (start_catch_handler): Use emit_cmp_and_jump_insns.
4866         * explow.c (probe_stack_range): Likewise.
4867         * expmed.c (do_cmp_and_jump): Likewise.
4868         * expr.c (store_expr, expand_expr, expand_builtin): Likewise.
4869         (do_tablejump): Likewise.
4870         * stmt.c (expand_expr_stmt, expand_end_case): Likewise.
4871         (do_jump_if_equal, emit_case_nodes): Likewise.
4872         * optabs.c (emit_cmp_and_jump_insns): Clarify comments.  If UNSIGNEDP,
4873         then convert comparison to an unsigned code before emitting the jump.
4874         (expand_float, expand_fix): Use emit_cmp_and_jump_insns.
4875
4876 Sun Feb 14 02:24:15 1999  Jeff Law  (law@cygnus.com)
4877
4878         * version.c: Bump for snapshot.
4879
4880 Sun Feb 14 01:15:04 1999  Jeff Law  (law@cygnus.com)
4881
4882         * version.c: Bump for snapshot.
4883
4884 Sun Feb 14 00:45:50 1999  Jeffrey A Law  (law@cygnus.com)
4885
4886         * loop.c: Disable recent loop changes.  Temporary as Joern
4887         continues to fix problems.
4888
4889 Sat Feb 13 23:29:42 1999  Richard Henderson  <rth@cygnus.com>
4890
4891         * loop.c (combine_givs_used_by_other): Delete.
4892         (combine_givs_benefit_from): Delete.
4893         (combine_givs): Deny combination of givs only used once.  Simplify
4894         code with the death of combine_givs_benefit_from.
4895
4896 Sun Feb 14 11:24:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4897
4898         * loop.c (scan_loop): Call reg_in_basic_block_p before
4899         loop_reg_used_before_p.
4900
4901 Sat Feb 13 05:32:00 1999  Richard Earnshaw  (rearnsha@arm.com)
4902
4903         * arm.md: Use gen_rtx_FOO instead of gen_rtx (FOO, ...).
4904         * arm.h: Likewise.
4905         * arm.c: Likewise.
4906
4907         * arm.h (TARGET_OPTIONS): Reformat for clarity.
4908         (GO_IF_LEGITIMATE_ADDRESS): When generating PIC, references to symbols
4909         in the constant pool aren't valid.
4910         (LEGITIMATE_PIC_OPERAND_P): Likewise.
4911
4912         * arm.c: Include "system.h", not stdio.h and string.h.
4913
4914 Fri Feb 12 13:06:28 1999  Jim Wilson  <wilson@cygnus.com>
4915
4916         * stmt.c (expand_return): Return if optimize_tail_recursion succeeded.
4917         (optimize_tail_recursion): Change return type from void to int.
4918         Add return statements.
4919         * tree.h (optimize_tail_recursion): Change prototype to match.
4920
4921 Fri Feb 12 21:09:51 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4922
4923         * reload.c (find_reloads_subreg_address): New function, broken out of
4924         find_reloads_toplev.
4925         (find_reloads_toplev, find_reloads_address_1): Use it.
4926
4927 Fri Feb 12 13:20:52 1999  Jeffrey A Law  (law@cygnus.com)
4928
4929         * h8300.md (zero_extendhisi2 H8/300 variant): Correctly handle
4930         extending a CONST_INT.
4931
4932         * h8300.md (peephole for combining memrefs): Delete incorrect peephole.
4933
4934 Fri Feb 12 18:29:11 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4935
4936         * loop.c (loop_insn_first_p, biv_elimination_giv_has_0_offset):
4937         New functions.
4938         (maybe_eliminate_biv_1): Use biv_elimination_giv_has_0_offset.
4939
4940 Fri Feb 12 16:56:10 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4941
4942         * loop.c (load_mems): Don't guess how to do a load / store, use
4943         emit_move_insn.
4944
4945 Fri Feb 12 09:24:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4946
4947         * system.h: Provide a definition for HOST_WIDEST_INT, etc.
4948
4949 Fri Feb 12 23:37:26 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4950
4951         * config/c4x/c4x.c (c4x_address_cost): Revert 9 Feb change.
4952
4953 Fri Feb 12 00:51:26 1999  Jeffrey A Law  (law@cygnus.com)
4954
4955         * reload.c (find_reloads_address_1): Fix handling of an autoincremented
4956         pseudo which is homed in the stack.
4957
4958         * mips.c (save_restore_insns): Fix loop to save/restore FP registers.
4959         (compute_frame_size): Change loop over FP regs to be consistent
4960         with the loop in save_restore_insns.
4961
4962 Thu Feb 11 17:38:40 1999  Jim Wilson  <wilson@cygnus.com>
4963
4964         * i960/i960.h (OVERRIDE_OPTIONS): Warn if -mlong-double-64 is used.
4965         (LONG_DOUBLE_TYPE_SIZE): Undef then unconditionally define to 96.
4966
4967 Thu Feb 11 15:11:35 1999  Jeffrey A Law  (law@cygnus.com)
4968
4969         * mn10200.md (bset); Re-enable.
4970
4971 Thu Feb 11 15:20:49 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
4972
4973         * sh.md (is_sfunc): New attribute.
4974         * sh.h (INSN_SETS_ARE_DELAYED, INSN_REFERENCES_ARE_DELAYED): Use it.
4975
4976 Thu Feb 11 01:06:49 1999  Nathan Sidwell  <nathan@acm.org>
4977
4978         * fold-const.c (range_binop): Take account of the bounded nature
4979         of fixed length arithmetic when comparing unbounded ranges.
4980
4981 Thu Feb 11 00:08:17 1999  John Wehle  (john@feith.com)
4982
4983         * function.c (assign_stack_temp_for_type): Clear best_p
4984         when an exact match is found.
4985
4986         * i386.h (LOCAL_ALIGNMENT): Define.
4987         * function.c (assign_stack_local, assign_outer_stack_local): Use it.
4988         (assign_stack_temp_for_type): New function based on assign_stack_temp.
4989         (assign_stack_temp): Call it.
4990         (assign_temp): Use assign_stack_temp_for_type, not assign_stack_temp.
4991         * stmt.c: Use assign_temp, not assign_stack_temp.
4992         * tm.texi: Document LOCAL_ALIGNMENT.
4993
4994 Wed Feb 10 23:28:28 1999  Jeffrey A Law  (law@cygnus.com)
4995
4996         * reorg.c: Finish deleting half-deleted comment.
4997
4998 Wed Feb 10 17:12:21 1999  Jim Wilson  <wilson@cygnus.com>
4999
5000         * emit-rtl.c (operand_subword): Sign extend REAL_VALUE_TO_TARGET_SINGLE
5001         result.
5002         * final.c (split_double): Sign extend REAL_VALUE_TO_TARGET_DOUBLE
5003         result.
5004         * real.c (endian): Delete sign extension code.
5005         * config/m32r/m32r.md (movsf_insn+1): REAL_VALUE_TO_TARGET_SINGLE call
5006         replaced with operand_subword call.
5007
5008 Wed Feb 10 15:16:39 1999  Richard Henderson  <rth@cygnus.com>
5009
5010         * alpha.md (cmov compound patterns): Delete.  Jump can now
5011         create the correct constructs in the first place.
5012
5013 Wed Feb 10 11:03:22 1999  Richard Henderson  <rth@cygnus.com>
5014
5015         * configure.in (alphaev6*): Fix typo in target_cpu_default2.
5016
5017 Wed Feb 10 13:59:18 1999  Dave Brolley  <brolley@cygnus.com>
5018
5019         * mbchar.c (local_mb_cur_max): Handle the case where MB_CUR_MAX is 0.
5020
5021 Wed Feb 10 10:35:05 1999  Jim Wilson  <wilson@cygnus.com>
5022
5023         * tmp-emsgids.c: Delete.
5024
5025 Wed Feb 10 09:57:08 1999  Mark Mitchell  <mark@markmitchell.com>
5026
5027         * rtlanal.c (for_each_rtx): Fix declaration to conform to GNU
5028         coding standards.
5029
5030 Wed Feb 10 10:09:41 1999  Jeffrey A Law  (law@cygnus.com)
5031
5032         * mn10200.md (bset, bclr): Operand 0 is a read/write operand.
5033
5034         * reload1.c (reload_combine_note_store): Second argument is no
5035         longer unused/ignored.  Handle multi-register hard regs.
5036         (move2add_note_store): Simplify.
5037
5038 Wed Feb 10 10:05:23 1999  Mumit Khan  <khan@xraylith.wisc.edu>
5039
5040         * collect2.c (collect_execute): Remove cygwin-specific code.
5041
5042 Tue Feb  9 17:27:29 1999  Nathan Sidwell  <nathan@acm.org>
5043
5044         * system.h (_, N_): Remove dummy i18n macros.
5045         * protoize.c: Move inclusion of intl.h to after system.h.
5046         * cexp.y: Include intl.h.
5047         * cexp.c: Rebuilt.
5048
5049 Tue Feb  9 16:52:22 1999  Mumit Khan  <khan@xraylith.wisc.edu>
5050
5051         * i386/cygwin.h (SUBTARGET_OVERRIDE_OPTIONS): New macro to ignore
5052         fpic/fPIC for windows32 targets.
5053         * i386/xm-cygwin.h (GET_ENV_PATH_LIST): Replace '\\' in windows32
5054         paths with '/'.
5055         * i386/mingw32.h (CPP_SPEC): Define.
5056         (CPP_PREDEFINES): Add MINGW32 version id.
5057         * i386/crtdll.h (CPP_PREDEFINES): Likewise.
5058
5059         * Makefile.in (collect2$(exeext)): Delete redundant dependency and
5060         add missing exeext to target.
5061
5062         * gcc.c (convert_filename): Handle null filename argument.
5063
5064 Wed Feb 10 15:46:10 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5065
5066         * config/c4x/c4x.md (*movhf_noclobber, *movhi_noclobber): Use
5067         m constraint instead of QT.
5068
5069 1999-02-09  Brendan Kehoe  <brendan@cygnus.com>
5070
5071         * cpplib.c (special_symbol): Move IP to be declared in function
5072         scope, rather than individual case statements.
5073
5074 1999-02-09  Zack Weinberg  <zack@rabi.columbia.edu>
5075
5076         * cppfiles.c (finclude): Handle pipes properly under old BSD
5077           derivatives.
5078
5079 1999-02-09  Melissa O'Neill  <oneill@cs.sfu.ca>
5080
5081         * system.h: Provide fallback definitions for S_ISCHR,
5082           S_ISSOCK, S_ISFIFO, O_NONBLOCK, and O_NOCTTY.
5083
5084 1999-02-09  Zack Weinberg  <zack@rabi.columbia.edu>
5085
5086         * cpplib.c (do_define): Allow redefining __STDC__ with -D.
5087
5088 1999-02-09  Jim Blandy  <jimb@zwingli.cygnus.com>
5089
5090         * configure.in: For PowerPC configurations, accept "401", "ec603e",
5091         "740", and "750" as valid arguments to --with-cpu.
5092         * configure: Rebuilt.
5093
5094 Tue Feb  9 00:00:14 1999  Mark Kettenis  <kettenis@gnu.org>
5095
5096         * configure.in (i[34567]86-*gnu*): Set float_format to i386.
5097         * configure: Rebuilt.
5098
5099 Mon Feb  8 22:38:24 1999  Jeffrey A Law  (law@cygnus.com)
5100
5101         * rs6000.md: Revert "alternate use of crs if cr0 not available"
5102         patches from 01-22-1999, 01-24-1999, 01-26-1999, and 02-08-1999.
5103
5104 Mon Feb  8 21:36:44 1999  Richard Henderson  <rth@cygnus.com>
5105
5106         * output.h (current_function_has_computed_jump): Rename from
5107         current_function_addresses_labels.
5108         * function.h (struct function): Likewise for addresses_labels member.
5109         * rtl.h (FUNCTION_FLAGS_HAS_COMPUTED_JUMP): Likewise.
5110         * function.c (current_function_has_computed_jump): Likewise.
5111         Update all references.
5112         * integrate.c (function_cannot_inline_p):
5113         Test current_function_has_computed_jump instead of addresses_labels.
5114         (initialize_for_inline): Likewise save.
5115         (output_inline_function): Likewise restore.
5116
5117         * expr.c (expand_expr): Don't reference addresses_labels variables.
5118         * stmt.c (expand_computed_goto): Set has_computed_jump.
5119
5120 1999-02-08  Michael Meissner  <meissner@cygnus.com>
5121
5122         This is being installed only to get it into the repository to help
5123         with the revert, resubmit & review process for the massive rs6000.md
5124         changes.
5125         * rs6000.md (andsi3_internal1 splitter): Don't split if using the
5126         rlwinm instruction.
5127         (anddi3_internal1): Likewise.
5128         (andsi3_internal{2,3}): Correct some insn lengths.
5129         (anddi3*): Restore missing TARGET_POWERPC64, and don't emit old
5130         mnemonics.
5131
5132 Mon Feb  8 21:31:06 1999  Richard Henderson  <rth@cygnus.com>
5133
5134         * loop.c (reg_single_usage): New file-scope variable ...
5135         (scan_loop): ... moved out of here.  Always initialize.
5136         Test loop_has_call instead of reg_single_usage not zero.
5137         Free reg_single_usage after strength reduction.
5138         (count_loop_regs_set): Assume single_usage non-zero.
5139         (combine_givs_used_by_other): Test reg_single_usage.
5140         (load_mems_and_recount_loop_regs_set): Remove reg_single_usage
5141         as a parameter.  Assume non-zero.
5142
5143 1999-02-08  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
5144
5145         * cpplib.c (special_symbol): Rewrite.  Don't copy things
5146           multiple times.  Handle __STDC__ specially.  T_CONST
5147           indicates a constant /string/.  Don't handle T_*_TYPE and
5148           T_SPEC_DEFINED.  Use cpp_buf_line_and_col instead of
5149           adjust_position.  Determine the file buffer only if needed.
5150           (initialize_builtins): Handle __SIZE_TYPE__,
5151           __PTRDIFF_TYPE__, __WCHAR_TYPE__, __USER_LABEL_PREFIX__, and
5152           __REGISTER_PREFIX__ with T_CONST special hashtab entries.
5153           Don't provide __OBJC__; the driver does that.  Provide
5154           __STDC_VERSION__, using T_CONST.  Use T_STDC for
5155           __STDC__.  Give install the length of all symbols defined.
5156           (eval_if_expression): Drop code to insert and remove the
5157           "defined" special symbol.
5158
5159         * cpplib.h: Remove SELF_DIR_DUMMY (no longer used).  Remove
5160           T_*_TYPE and T_SPEC_DEFINED from enum node_type; add T_STDC.
5161
5162         * cpphash.c (install): Drop the `ivalue' parameter.  Constify
5163           the `value' parameter.  All callers changed.
5164         * cpphash.h (install): Change prototype to match.
5165           (union hashval): Remove `ival' member.
5166         * cppexp.c (cpp_lex): Handle `defined' here.
5167
5168 Mon Feb  8 17:29:42 1999  Jeffrey A Law  (law@cygnus.com)
5169
5170         * pa.h (EXTRA_CONSTRAINT): Fix comment.
5171
5172 Mon Feb  8 18:57:45 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
5173
5174         * c-typeck.c (check_init_type_bitfields): Use nonincremental
5175         initialization of unions whose first member is a bitfield.
5176         Remove unnecessary code for checking the declaration mode
5177         after DECL_C_BIT_FIELD.
5178
5179         * varasm.c (output_constructor): Additional comment about the
5180         constructor of bitfield union initialization.
5181
5182 Tue Feb  9 11:55:04 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5183
5184         * config/c4x/c4x.md (*movhi_stik): New pattern.
5185         (movhi): Allow some immediate constants to be directly
5186         stored in memory.
5187
5188 Tue Feb  9 11:34:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5189
5190         * config/c4x/c4x.md (all call patterns): Add constraints "Ur".
5191         (call, call_value): Force address into a register if not valid
5192         for a call instruction.
5193         (load_immed_address): Emit a USE of the SYMBOL_REF that is
5194         forced into memory.
5195         * config/c4x/c4x.c (c4x_print_operand): Fix 'C' and 'U' modifiers.
5196
5197 Tue Feb  9 11:08:41 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5198
5199         * config/c4x/c4x.c (call_address_operand, symbolic_address_operand):
5200         Rename from call_operand and symbolic_operand respectively.  All
5201         callers changed.
5202         * config/c4x/c4x.md (call_address_operand, symbolic_address_operand):
5203         Likewise.
5204         * config/c4x/c4x.h (call_address_operand, symbolic_address_operand):
5205         Likewise.
5206         (PREDICATE_CODES): Allow CONST, LABEL_REF for call_address_operand.
5207
5208 Tue Feb  9 10:52:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5209
5210         * config/c4x/c4x.c (c4x_legitimize_address): Don't generate a
5211         LO_SUM address for HImode or HFmode but instead force address into
5212         a register so that it is offsettable.
5213         (c4x_emit_move_sequence): Handle LO_SUM immediate address.
5214
5215 Tue Feb  9 10:46:42 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5216
5217         * config/c4x/c4x.c (c4x_address_cost): Return cost of 1 for
5218         REG+REG addressing if strength reduction enabled.
5219
5220 Tue Feb  9 10:10:31 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5221
5222         * config/c4x/t-c4x  (LIBGCC2_CFLAGS): Delete.
5223         (TARGET_LIBGCC2_CFLAGS): Define.
5224
5225 1999-02-08  Nick Clifton  <nickc@cygnus.com>
5226
5227         * config/v850/v850.md: Replace \\n\\t with \\;
5228
5229         * config/v850/v850.md: Enforce TARGET_LONG_CALLS option.
5230         * config/v850/v850.c (construct_restore_jr, construct_save_jarl):
5231         Enforce TARGET_LONG_CALLS option.
5232
5233 Mon Feb  8 11:43:07 1999  Donn Terry  <donn@interix.com>
5234
5235         * real.c (PUT_REAL) [XFmode]: Zero the balance of the structure.
5236
5237 Mon Feb  8 11:37:24 1999  Marc Espie  (espie@cvs.openbsd.org)
5238
5239         * m88k/t-luna-gas: Remove bash dependency.
5240
5241 Mon Feb  8 11:34:44 1999  Graham  <grahams@rcp.co.uk>
5242
5243         * collect2.c (xrealloc): Fix typo in last change.
5244
5245 Mon Feb  8 09:13:38 1999  Jeff Law  (law@cygnus.com)
5246
5247         * version.c: Bump for snapshot.
5248
5249 Sun Feb  7 22:18:42 1999  Robert Lipe  <robertlipe@usa.net>
5250
5251         * tree.h (TYPE_CHECK): Make it clear to the preprocessor
5252         that we do not want macro replacement within a character constant.
5253         (TYPE_CHECK1): Likewise.
5254
5255 Sun Feb  7 15:37:10 1999  Jason Merrill  <jason@yorick.cygnus.com>
5256
5257         * tree.h (DECL_P): New macro.
5258
5259 Sun Feb  7 01:15:04 1999  Jeff Law  (law@cygnus.com)
5260
5261         * version.c: Bump for snapshot.
5262
5263 Sat Feb  6 18:14:46 1999  Jeffrey A Law  (law@cygnus.com)
5264
5265         * mn10300.md (reload_insi): Do not earlyclobber the output operand.
5266
5267         * README.g77, gcc.c, gcc.texi: Update email addresses.
5268         * invoke.texi system.h: Likewise.
5269
5270 Sat Feb  6 11:04:08 1999  Jim Wilson  <wilson@cygnus.com>
5271
5272         * unroll.c (find_splittable_givs): After express_from, call replace_rtx
5273         to convert dest_reg to new_reg.
5274
5275 Sat Feb  6 10:31:35 1999  Jeffrey A Law  (law@cygnus.com)
5276
5277         * reload1.c (reload_combine_note_store): Be more careful with
5278         STRICT_LOW_PART, ZERO_EXTRACT and SIGN_EXTRACT.
5279         (move2add_note_store): Likewise.
5280
5281 Sat Feb  6 10:18:01 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5282
5283         * cppfiles.c (read_and_prescan): Cast the result of `xrealloc' to
5284         U_CHAR* when assigning to one.  Ensure the values of a ?: operator
5285         have the same type.
5286
5287         * cppinit.c (initialize_char_syntax): Use K&R function definition.
5288
5289 Sat Feb  6 11:17:03 1999  Richard Earnshaw  <rearnsha@arm.com>
5290
5291         Support for ARM9
5292         * config/arm/arm.c (all_procs): Add arm9 and arm9tdmi.
5293         * config/arm/arm.h ((TARGET_CPU_arm9, TARGET_CPUD_arm9tdmi): Define.
5294         (TARGET_CPU_DEFAULT): Rework to support ARM9.
5295         (CPP_CPU_ARCH_SPEC): Likewise.
5296         (enum processor_type): Likewise.
5297         * config/arm/arm.md (attr cpu): Add arm9.
5298
5299         General scheduling changes
5300         * config/arm/arm.c (MAX_INSNS_SKIPPED): Delete.
5301         (max_insns_skipped): New variable.
5302         (arm_override_options): If generating hard floating point code for
5303         the FPA, emit code for version 3.
5304         When optimizing for space, don't synthesize constants.
5305         Reword several flags based on the requested processor and optimization
5306         level.
5307         (use_return_insn): New argument iscond, all callers changed.  Don't
5308         use a return insn if it will be conditional and that would be
5309         expensive; eg on StrongARM.
5310         (arm_adjust_cost): Anti- and output- dependencies normally have no
5311         cost.
5312         (load_multiple_sequence): Newer ARMs don't benefit from ldm if
5313         the sequence is short.
5314         (final_prescan_insn): Use max_insns_skipped instead of
5315         MAX_INSNS_SKIPPED.  Note whether we will make a return instruction
5316         conditional, and aviod this if it would be expensive.
5317         * config/arm/arm.md (scheduling attributes and function units):
5318         Rewrite to better describe ARM8, 9 and StrongARM.
5319
5320         * config/arm/arm.md (*movhi_insn_littleend): Make op0 predicate
5321         s_register_operand.
5322         (*ifcompare_plus_move): Use arm_rhs_operand in place of
5323         arm_rhsm_operand.  Rework constraints.
5324         (*if_plus_move): Likewise.
5325         (*ifcompare_move_plus): Likewise.
5326         (*if_move_plus): Likewise.
5327         (*ifcompre_arith_move): Likewise.
5328         (*if_arith_move): Likewise.
5329         (*ifcompare_move_arith): Likewise.
5330         (*if_move_arith): Likewise.
5331
5332         * config/arm/xm-netbsd.h: Don't include arm/xm-arm.h.
5333
5334 1999-02-05  Michael Meissner  <meissner@cygnus.com>
5335
5336         * loop.c (check_dbra_loop): A store using an address giv for which
5337         we have no life information is not reversible.
5338
5339 Fri Feb  5 17:08:01 1999  Dave Brolley  <brolley@cygnus.com>
5340
5341         * function.c (fixup_var_refs): Scan catch_clauses too.
5342
5343 Fri Feb  5 11:49:49 1999  Benjamin Kosnik  <bkoz@loony.cygnus.com>
5344
5345         * c-common.c (decl_attributes): Fix reserved space for init_priority.
5346         * tree.h (MAX_RESERVED_INIT_PRIORITY): New macro.
5347
5348 Fri Feb  5 12:37:05 1999  Jeffrey A Law  (law@cygnus.com)
5349
5350         * loop.c (strength_reduce): Clear not_every_iteration when
5351         passing the NOTE_INSN_LOOP_CONT note.
5352
5353         * haifa-sched.c (add_dependence): Do not add a dependency on a
5354         note.
5355
5356 Fri Feb  5 10:55:43 1999  Nick Clifton  <nickc@cygnus.com>
5357
5358         * recog.c (split_block_insns): Only call update_flow_info if
5359         instruction scheduling is enabled.
5360
5361 1999-02-05  Zack Weinberg  <zack@rabi.columbia.edu>
5362
5363         * Makefile.in (gen-protos): Use libcpp.a like everyone else.
5364
5365 Fri Feb  5 07:09:29 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5366
5367         * loop.c (first_loop_store_insn): New file-scope variable.
5368         (prescan_loop): Set it.
5369         (check_dbra_loop): Check if a store depends on a register
5370         that is set after the store.
5371
5372 Fri Feb  5 06:55:15 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5373
5374         * unroll.c (entire file): Remove tabs / spaces at end of lines.
5375         Replace spaces with tabs where appropriate.
5376
5377 Thu Feb  4 15:12:41 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5378
5379         * loop.c (scan_loop): New argument loop_cont.  Changed caller.
5380         (strength_reduce): New argument loop_cont. Changed caller.
5381         Before clearing not_every_iteration after a label, check if
5382         we are not already past LOOP_CONT.
5383
5384 1999-02-04  Zack Weinberg  <zack@rabi.columbia.edu>
5385
5386         * cpperror.c (cpp_print_containing_files): Fix formatting
5387         bug induced by merge.
5388
5389 1999-02-04  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5390
5391         * cpplib.c (initialize_char_syntax): Move to cppinit.c.
5392         (cpp_define): Remove redundant syntax checks.
5393         (make_assertion): Rename cpp_assert, remove redundant syntax
5394         checks, export.
5395         (cpp_options_init): Don't init things to zero twice.
5396         (cpp_expand_to_buffer): Use memcpy, not a char-by-char loop.
5397         (do_include): Kill excessively verbose #import warning that
5398         snuck back in in the gcc2 merge.
5399         (convert_string): Removed.
5400         (do_line): Rewrite with simple last-name-used cache instead of
5401         private hashtable.
5402         (cpp_start_read): Call initialize_char_syntax here, not...
5403         (cpp_reader_init): ...here.
5404         (cpp_handle_options): Support the -std switch.
5405         * cpplib.h (cpp_buffer): Add last_nominal_fname member.
5406         (cpp_options): Add c9x flag.
5407         Declare all the is_* tables and trigraph table here, as const.
5408         Prototype cpp_assert and initialize_char_syntax.
5409         * cppinit.c: New file.
5410         * cppfiles.c (read_and_prescan): Optimize.
5411         * Makefile.in (LIBCPP_OBJS): Add cppinit.o.
5412
5413 Thu Feb  4 10:46:30 1999  Gavin Romig-Koch  <gavin@cygnus.com>
5414
5415         * config/mips/mips.md ([u]divmodsi4,[u]divmoddi4,[u]divsi3,[u]divdi3,
5416         [u]modsi3,[u]moddi3) : Don't copy the "zero" argument to a register
5417         before calling gen_div_trap.
5418
5419 Wed Feb  3 21:56:27 1999  Jeffrey A Law  (law@cygnus.com)
5420
5421         * configure.in (hppa1.1-*-*, hppa2*-*): Use symbolic value rather
5422         than numeric value for target_cpu_default..
5423         * configure: Rebuilt.
5424
5425 Wed Feb  3 21:55:56 1999  Marc Espie  <Marc.Espie@liafa.jussieu.fr>
5426
5427         * Makefile.in (xgcc$(exeext)): Remove choose-temp, pexecute and
5428         mkstemp.  Get them from libiberty.
5429         (COLLECT2_OBJS): Similarly for choose-temp, cplus-dem and mkstemp.
5430         (PROTO_OBJS): Similarly for choose-temp, getopt, getopt1 and pexecute.
5431         (cplus-dem.o, pexecute.o, choose-temp.o): Remove build rules.
5432         (mkstemp.o, getopt1.o, getopt.o): Likewise.
5433
5434         * pa-gas.h (TARGET_DEFAULT): Use symbolic values rather than numeric
5435         values.
5436         * pa-hpux.h (LINK_SPEC): Likewise.
5437         * pa-hpux10.h (LINK_SPEC): Likewise.
5438         * pa-hpux9.h (LINK_SPEC): Likewise.
5439         * pa-osf.h (LINK_SPEC): Likewise.
5440         * pa-pro.h (TARGET_DEFAULT): Likewise.
5441         * pa1.h (TARGET_DEFAULT): Likewise.
5442         * pa.h (MASK_*): New defines.
5443         (TARGET_*): Use symbolic values rather than numeric values.
5444         (TARGET_SWITCHES): Likewise.
5445         (TARGET_DEFAULT): Likewise.
5446         (CPP_SPEC): Likewise.
5447
5448 Wed Feb  3 21:07:38 1999  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
5449
5450         * reload1.c (reload_cse_regs_1): Undo Jan 16 patch.
5451         * reload.c (find_reusable_reload): New function, broken out of
5452         push_reload.  Add code to verify that none of the involved
5453         outputs are subject to earlyclobbers.
5454         (push_reload): Break out new function find_reusable_reload.
5455         Delete "register" keyword for IN, OUT args.
5456
5457 Wed Feb  3 15:51:04 1999  Gavin Romig-Koch  <gavin@cygnus.com>
5458
5459         * config/mips/mips.c (true_reg_or_0_operand) : New function.
5460         * config/mips/mips.h (PREDICATE_CODES): Add true_reg_or_0_operand.
5461         * config/mips/mips.md (div_trap,div_trap_normal,div_trap_mips16):
5462         Use true_reg_or_0_operand for div_trap.
5463
5464 Wed Feb  3 20:44:59 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5465
5466         * loop.h (express_from): Declare.
5467         (struct induction): Replace derived flag with derived_from pointer.
5468         * loop.c (strength_reduce, record_giv, recombine_givs): Likewise.
5469         (express_from): No longer static.
5470         * unroll.c (find_splittable_givs): Replace derived with derived_from.
5471         When processing an address giv with which another giv has been
5472         combined that has also been derived from a third giv, handle like
5473         having combined with the third giv.
5474         Set splittable_regs_updates appropriately for derived givs.
5475
5476 Wed Feb  3 15:26:58 1999  Gavin Romig-Koch  <gavin@cygnus.com>
5477
5478         * config/mips/mips.md (div_trap_mips16): Remove nop's after branches.
5479
5480 Wed Feb  3 11:56:23 1999  Jeffrey A Law  (law@cygnus.com)
5481
5482         * pa.c (insn_sets_and_refs_are_delayed): New function.
5483         * pa.h (INSN_SETS_ARE_DELAYED): Use it.
5484         (INSN_REFERENCES_ARE_DELAYED): Likewise.
5485
5486 Wed Feb  3 06:24:49 1999  Richard Earnshaw  (rearnsha@arm.com)
5487
5488         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Delete.
5489         * config/arm/t-linux (LIBGCC2_CFLAGS): Delete.
5490         (TARGET_LIBGCC2_CFLAGS): Define.
5491         (LIBGCC2_DEBUG_CFLAGS): Define.
5492         * config/arm/t-netbsd: Likewise.
5493         * config/arm/t-semi: Likewise.
5494         * config/arm/t-semiaof: Likewise.
5495         * config/arm/t-riscix: Likewise.
5496
5497 Wed Feb  3 10:59:07 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
5498
5499         * config/m68k/m68k.c (print_operand_address): When printing a
5500         SYMBOL_REF that ends in `.<letter>' put parentheses around it.
5501
5502 Tue Feb  2 23:38:35 1999  David O'Brien  <obrien@FreeBSD.org>
5503
5504         * i386/freebsd*.h now allows '$' in label names and does not use the
5505         PCC struct return method.
5506
5507 Tue Feb  2 22:38:23 1999  Jim Wilson  <wilson@cygnus.com>
5508
5509         * Makefile.in: Change all uses of AR to AR_FOR_TARGET.  Change all uses
5510         of HOST_AR to AR.  Likewise for AR_FLAGS, RANLIB, and RANLIB_TEST.
5511         (RANLIB_TEST): Test to see if ranlib exists.  Only test absolute file
5512         names if host == target.
5513         (HOST_AR, HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Delete.
5514         (AR_FLAGS_FOR_TARGET): Renamed from AR_FOR_TARGET_FLAGS.
5515         (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Delete rules
5516         setting them to *_FOR_TARGET.
5517         * cross-make (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST):
5518         Delete.
5519
5520 Tue Feb  2 22:38:19 1999  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
5521
5522         * toplev.h (read_integral_parameter): Declare.
5523         * toplev.c (read_integral_parameter): New function.
5524
5525 Fri Jan 29 21:00:56 1999  Bob Manson  <manson@charmed.cygnus.com>
5526
5527         * resource.c, resource.h: New files.
5528         * Makefile.in (OBJS): Add it.
5529
5530         * haifa-sched.c (regno_use_in): Moved to rtlanal.c.
5531         (split_block_insns): Moved to recog.c.
5532         (update_flow_info): Make public.
5533         * rtl.h: Declare them.
5534
5535         * reorg.c: Moved the functions dealing with computing resource
5536         usage to resource.c.
5537
5538         * sched.c (regno_use_in): Moved to rtlanal.c.
5539         (update_flow_info): Make public.
5540         (schedule_insns): Use split_block_insns.
5541
5542         * recog.c (split_block_insns): New function.
5543
5544 Tue Feb  2 22:03:26 1999  David Edelsohn  <edelsohn@gnu.org>
5545
5546         * rs6000/linux.h (LINK_START_DEFAULT_SPEC): Delete, unused.
5547         (LINK_OS_DEFAULT_SPEC): Delete, unused.
5548
5549 Tue Feb  2 20:29:34 1999  Catherine Moore  <clm@cygnus.com>
5550
5551         * configure.in (arm-*-oabi): Support.
5552         * configure: Regenerate.
5553         * config/arm/unknown-elf-oabi.h: New file.
5554
5555 Tue Feb  2 19:43:59 1999  Jeffrey A Law  (law@cygnus.com)
5556
5557         * i386.md (ashlsi3): Turn into a define_expand an anonymous pattern.
5558         Make the anonymous pattern match when ! optimize_size.
5559         (ashlsi3 size optimizer): New pattern.
5560
5561         * intl/Makefile.in (uninstall): Add missing "; \".
5562
5563 Tue Feb  2 18:21:23 1999  Stan Cox  <scox@cygnus.com>
5564
5565         * sparc.h (TARGET_CPU_sparc86x): Added. TARGET_CPU_sparclite86x
5566         synonym.
5567
5568 Tue Feb  2 20:24:11 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5569
5570         * loop.c (loop_optimize): Fix value max_uid_for_loop is reset
5571         to after find_and_verify_loops call.
5572
5573 Tue Feb  2 19:48:29 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5574
5575         * (recombine_givs): Don't use a giv that's likely to be dead to
5576         derive others.
5577
5578         * loop.c (recombine_givs): Fix test for lifetime overlaps / loop
5579         wrap around when deriving givs.
5580
5581 Mon Feb  1 20:00:40 1999  Richard Henderson  <rth@cygnus.com>
5582
5583         * recog.c (check_asm_operands): Treat indeterminate operand ok
5584         results as success.  Try harder to resolve a matching constraint.
5585         * stmt.c (expand_asm_operands): Recognize when an output operand's
5586         constraint does not allow memory.  Treat indeterminate operand ok
5587         results as failure.  Try harder to resolve a matching constraint.
5588
5589 Mon Feb  1 15:00:02 1999  Ken Raeburn  <raeburn@cygnus.com>
5590
5591         Use varrays for constant-equivalence data:
5592
5593         * varray.h (struct const_equiv_data): New type.
5594         (union varray_data_tag): New element const_equiv.
5595         (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV): New macros.
5596         (VARRAY_SIZE): New macro, returns number of elements.
5597         * integrate.h: Include varray.h.
5598         (struct inline_remap): Replace const_equiv_map, const_age_map and
5599         const_equiv_map_size with a const_equiv_varray element.
5600         (MAYBE_EXTEND_CONST_EQUIV_VARRAY): New macro; grows varray if
5601         needed.
5602         (SET_CONST_EQUIV_DATA): New macro; sets rtx and age fields
5603         simultaneously, growing the varray if needed.
5604
5605         * integrate.c (global_const_equiv_map,
5606         global_const_equiv_map_size): Deleted, replaced by....
5607         (global_const_equiv_varray): New variable.
5608         (expand_inline_function): References changed.
5609         * integrate.h: Update declarations.
5610
5611         * integrate.c (process_reg_parm, expand_inline_function,
5612         copy_rtx_and_substitute, try_constants, subst_constants,
5613         mark_stores): Use varray allocation and accessor macros, new
5614         integrate.h macros, and global_const_equiv_varray.  Don't
5615         conditionalize non-NULL stores on array size; instead, expand the
5616         array as needed.
5617         * unroll.c (unroll_loop): Likewise.
5618
5619         * unroll.c (unroll_loop): Initialize const_equiv_varray element to
5620         zero.  After allocating varray, always exit through bottom of
5621         function, where it can be deallocated if needed.  Don't explicitly
5622         reallocate const_equiv_map storage; instead, just ensure the
5623         varray has been initialized, and update the global reference.
5624
5625 Mon Feb  1 09:40:25 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5626
5627         * system.h (inline, const): Handle these for stage2 (and later) gcc.
5628
5629         * dwarf2out.c (inline): Don't define.
5630
5631         * dwarfout.c (inline): Likewise.
5632
5633 Sun Jan 31 22:04:37 1999  Richard Henderson  <rth@cygnus.com>
5634
5635         * loop.c (recombine_givs): Dump recombination and derivation data.
5636
5637 Sun Jan 31 20:34:29 1999  Zack Weinberg  <zack@rabi.columbia.edu>
5638
5639         * flags.h: Declare flag_no_ident.
5640         * toplev.c: Define flag_no_ident.  Process -f(no-)ident here.
5641         * c-tree.h: Don't declare flag_no_ident.
5642         * c-decl.c: Don't define flag_no_ident.  Don't process
5643           -f(no-)ident switches here.
5644
5645         * config/elfos.h (ASM_FILE_END): Output final .ident directive
5646           only if !flag_no_ident.
5647         * config/ptx4.h: Likewise.
5648         * config/svr4.h: Likewise.
5649         * config/alpha/elf.h: Likewise.
5650         * config/arm/linux-elf.h: Likewise.
5651         * config/i386/sco5.h: Likewise.
5652         * config/i860/fx2800.h: Likewise.
5653         * config/mips/gnu.h: Likewise.
5654         * config/i386/osfrose.h: Likewise.
5655
5656         * gcc.c (C specs): Map -Qn to -fno-ident.
5657         * objc/lang-specs.h: Likewise.
5658
5659 Mon Feb  1 10:52:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5660
5661         * configure.in: Don't remove loop.o and unroll.o when
5662         enable-haifa is selected.
5663         * configure: Rebuilt.
5664
5665 Sun Jan 31 13:22:02 1999  John Wehle  (john@feith.com)
5666
5667         * i386.md (movsicc, movhicc, movsfcc, movdfcc,
5668         movxfcc, movdicc): Delete unconstrained alternatives.
5669         * i386.c (output_fp_conditional_move,
5670         output_int_conditional_move): Delete unused case.
5671
5672 Sun Jan 31 01:15:04 1999  Jeff Law  (law@cygnus.com)
5673
5674         * version.c: Bump for snapshot.
5675
5676 Sun Jan 31 00:52:37 1999  Richard Henderson  <rth@cygnus.com>
5677
5678         * alpha.md (mov patterns): Emit the assembler aliases mov and fmov
5679         instead of bis and cpys.  Combine alternatives where possible.
5680
5681 Sat Jan 30 23:14:13 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5682
5683         * gcov.c (fnotice): Add missing FILE* parameter.
5684         (function_summary): Fix format specifiers in calls to `fnotice'.
5685         (output_data): Likewise.
5686
5687         * toplev.c (fnotice): Constify char* parameter.
5688
5689         * toplev.h (fnotice): Add prototype.
5690         Wrap prototype with BUFSIZ to protect FILE* usage.
5691
5692 Sun Jan 31 15:33:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5693
5694         * config/c4x/c4x.h (RTX_COSTS): Explicitly define c4x costs.
5695
5696 Sat Jan 30 08:27:23 1999  Jeffrey A Law  (law@cygnus.com)
5697
5698         * combine.c (distribute_notes): Handle REG_EH_REGION notes.
5699
5700         * alias.c (fixed_scalar_and_varying_struct_p): Add "static" to
5701         function definition.
5702         (aliases_everything_p, write_dependence_p):Likewise.
5703
5704         * install.texi: Fix merge lossages.
5705
5706         * cccp.c (main): Only call setlocale (LC_MESSAGES, ...) if LC_MESSAGES
5707         is defined.
5708         * collect2.c (main): Likewise.
5709         * cppmain.c (main): Likewise.
5710         * gcc.c (main): Likewise.
5711         * gcov.c (main): Likewise.
5712         * protoize.c (main): Likewise.
5713         * toplev.c (main): Likewise.
5714
5715         * pa.md (parallel shift and shiftadd): Mark output of shift as an
5716         earlyclobber.
5717
5718         * loop.c: Disable recent loop changes.  Temporary as Joern
5719         continues to fix problems.
5720
5721 Sat Jan 30 03:24:37 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5722
5723         * loop.c (strength_reduce): Size reg_map according to reg_iv_type.
5724
5725 Fri Jan 29 18:26:07 1999  Dave Brolley  <brolley@cygnus.com>
5726
5727         * emit-rtl.c (remove_insn): New function.
5728         * rtl.h (remove_insn): Add prototype.
5729         * function.c (reposition_prologue_and_epilogue_notes): Call remove_insn.
5730
5731 Fri Jan 29 22:34:41 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5732
5733         * loop.c (recombine_givs): Don't try to derive givs that have combined.
5734
5735 Fri Jan 29 15:00:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5736
5737         * toplev.c (notice, fnotice): Check ANSI_PROTOTYPES, not __STDC__,
5738         when declaring arguments and calling va_arg() to initialize them.
5739
5740         * collect2.c (notice): Likewise.
5741
5742         * loop.c (find_life_end): Use PROTO() macro in the prototype.
5743
5744 Fri Jan 29 14:36:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5745
5746         * collect2.c (error): Fix typo in declaration.
5747
5748         * cpperror.c (cpp_message): Likewise.
5749
5750         * cpplib.c (cpp_warning): Likewise.
5751
5752         * cpplib.h (cpp_notice): Use PVPROTO not VPROTO, also add
5753         ATTRIBUTE_PRINTF_1.
5754
5755         * toplev.c (error): Fix typo in declaration.
5756
5757 Fri Jan 29 15:44:13 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5758
5759         * loop.c (strength_reduce): Fix HAVE_cc0 handling when scanning
5760         forward from cont dominator.
5761
5762 Fri Jan 29 07:10:27 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5763
5764         * cccp.c (eprint_string): Constify a char*.
5765         (notice): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
5766         (vnotice): Constify a char*.
5767         (error): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
5768         (verror): Constify a char*.
5769         (warning): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
5770         (vwarning): Constify a char*.
5771         (error_with_line): Likewise.  Use PVPROTO not VPROTO, add
5772         ATTRIBUTE_PRINTF_2.
5773         (verror_with_line): Constify a char*.
5774         (vwarning_with_line): Likewise.
5775         (warning_with_line): Likewise.  Use PVPROTO not VPROTO, add
5776         ATTRIBUTE_PRINTF_2.
5777         (pedwarn): Constify a char*.  Use PVPROTO not VPROTO, add
5778         ATTRIBUTE_PRINTF_1.
5779         (pedwarn_with_line): Likewise with ATTRIBUTE_PRINTF_2.
5780         (pedwarn_with_file_and_line): Likewise with ATTRIBUTE_PRINTF_4.
5781         Also correct typo in parameter name declaration.
5782         (make_assertion): Constify a char*.
5783         (quote_string_for_make): Likewise.
5784         (deps_output): Likewise.
5785         (fatal): Likewise.  Use PVPROTO not VPROTO, add
5786         ATTRIBUTE_PRINTF_1.  Use ATTRIBUTE_NORETURN not an explicit
5787         "__attribute__ ((noreturn))".
5788         (fancy_abort): Likewise for ATTRIBUTE_NORETURN.
5789         (pfatal_with_name): Likewise.
5790         (pipe_closed): Likewise.
5791         (memory_full): Likewise.
5792
5793 Fri Jan 29 00:14:55 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5794
5795         * loop.c (strength_reduce): Grow set_in_loop / n_times_set /
5796         may_not_optimize to proper size when converting biv increments
5797         into givs.
5798         If necessary, reallocate reg_iv_type / reg_iv_info before calling
5799         recombine_givs.
5800
5801 Thu Jan 28 23:24:08 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5802
5803         * loop.c (recombine_givs): New parameter unroll_p.  If set, don't
5804         generate complex adds.  Changed caller.
5805         Don't generate adds that cost more than the original one.
5806         (strength_reduce): Warning fixes.
5807
5808 Thu Jan 28 09:41:11 1999  Jeffrey A Law  (law@cygnus.com)
5809
5810         * configure.in (hppa1.0-hp-hpux10*): Use t-pa.
5811         * configure: Rebuilt.
5812
5813 Wed Jan 27 23:39:53 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5814
5815         * rtl.h (insn_first_p, no_jumps_between_p): Declare.
5816         * rtlanal.c (insn_first_p, no_jumps_between_p): New function.
5817         * loop.h (varray.h): Include.
5818         (struct induction): Change combined_with to unsigned.
5819         New members derived, ix and last_use.
5820         (reg_iv_type, reg_iv_info): Now varray_type.  All references changed.
5821         (REG_IV_TYPE, REG_IV_INFO): Define.
5822         (first_increment_giv, last_increment_giv): Declare.
5823         * loop.c (loop_number_loop_cont): New static variable.
5824         (loop_number_cont_dominator): Likewise.
5825         (reg_iv_type, reg_iv_info): Now varray_type.
5826         (first_increment_giv, last_increment_giv): New variables.
5827         (compute_luids, verify_dominator, find_life_end): New functions.
5828         (cmp_recombine_givs_stats, recombine_givs): Likewise.
5829         (loop_optimize): Allocate loop_number_loop_cont and
5830         loop_number_cont_dominator.  Use compute_luids.
5831         (find_and_verify_loops): Initialize loop_number_loop_cont and
5832         loop_number_cont_dominator.
5833         (strength_reduce): Try to find bivs that can be expressed as givs
5834         of another biv, and to convert biv increments into givs.
5835         Call recombine_givs.  Handle derived givs.
5836         (record_biv): New argument location.  All callers changed.
5837         (record_giv): Initialize derived and last_use fields.
5838         (basic_induction_var): New argument location.  All callers changed.
5839         (combine_givs): Don't combine a DEST_REG giv with a DEST_ADDR giv.
5840         Increment combined_with instead of setting to 1.
5841         * unroll.c (derived_regs): New static variable.
5842         (unroll_loop): Initialize it.
5843         Allocate local_regno according to max_reg_num.
5844         (copy_loop_body): Cope with derived givs.
5845         (find_splittable_givs): Check for Givs made from biv increments.
5846         Set derived_regs for givs.
5847         * Makefile.in (stmt.o, loop.o, unroll.o): Depend on loop.h .
5848
5849 Wed Jan 27 19:31:36 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
5850
5851         * function.c (purge_addressof_1): Handle case when a register
5852         has been used in a wider mode.
5853
5854 1999-01-27  Bruce Korb  <autogen@linuxbox.com>
5855
5856         * fixinc/fixincl.c, fixinc/server.[ch]:
5857         Removed the last of the capitalized variable and proc names.
5858
5859         * fixinc/server.c: Removed the process open code.
5860         * fixinc/procopen.c: New file containing the proc open code.
5861         * fixinc/inclhack.tpl: Added code to bypass a readability test
5862         when a file is not present.  A problem on some systems.
5863         * fixinc/inclhack.sh, fixinc/fixincl.sh: Regenerated.
5864
5865 Wed Jan 27 11:58:18 1999  Dave Brolley  <brolley@cygnus.com>
5866
5867         * cpplib.h (cpp_notice): Add prototype.
5868
5869 Wed Jan 27 02:20:48 1999  Jeffrey A Law  (law@cygnus.com)
5870
5871         * Merge gcc2 snapshot 19980929.
5872
5873         * cccp.c (PRINTF_PROTO): Remove.
5874         (PRINTF_PROTO_{1,2,3,4}: Likewise.
5875         * cexp.y: Likewise.
5876         * system.h: Add PRINTF_PROTO and PRINTF_PROTO_{1,2,3,4}.
5877
5878         * fix-header.c (cpp_file_lin_for_message): Delete.  In libcpp.
5879         (cpp_print_containing_files, v_cpp_message, cpp_message): Likewise.
5880         (cpp_fatal, cpp-Pfatal_with_name): Likewise.
5881
5882         * gen-protos.c (hashf): Delete in cpphash.o.
5883         * gen-protos.c (hashf): Delete in cpphash.o.
5884
5885         * expr.c: Do not merge SAVE_STACKAREA_MODE changes.
5886         * expmed.c: Likewise.
5887         * rs6000.md: Likewise.
5888
5889         * rs6000.c, rs6000.md: Do not merge formatting changes yet.
5890
5891 Wed Jan 27 01:13:42 1999  Richard Henderson  <rth@cygnus.com>
5892
5893         * rs6000.c (input_operand): Don't expect CONST around CONSTANT_P_RTX.
5894         * rs6000.md (movsi, movdi): Likewise.
5895
5896 Tue Jan 26 13:31:38 1999  Jim Wilson  <wilson@cygnus.com>
5897
5898         * function.c (expand_function_end): Pass arg_pointer_save_area to
5899         validize_mem before using it.  Emit code into a sequence.
5900
5901 Tue Jan 26 13:41:38 1999  David Edelsohn  <edelsohn@gnu.org>
5902
5903         * rs6000.md (doz + set cr and or + set cr patterns): Add missing
5904         '#' to split patterns.  Correct indentation of some new patterns.
5905
5906 1999-01-26  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
5907
5908         * cppfiles.c (safe_read): Deleted.
5909         (read_and_prescan): New function, replaces safe_read, converts
5910         and/or warns about trigraphs, silently converts odd line
5911         terminators (\r, \n\r, \r\n).  Warns about no newline at EOF.
5912         (finclude): Use read_and_prescan; turn off nonblocking mode on
5913         the input descriptor; remove file-size-examination and
5914         no-newline-at-EOF gunk which is longer necessary; be more
5915         careful about checking that we've been handed a legitimate
5916         file to read (only real files, pipes, and ttys are acceptable).
5917         * cpplib.h (cpp_options): Rename no_trigraphs flag to
5918         `trigraphs' and invert its sense.
5919         (trigraph_table): Declare.
5920         (cpp_warning_with_line): Prototype.
5921         * cpplib.c: Remove all references to trigraph_pcp. Define
5922         trigraph_table; initialize it in initialize_char_syntax.  Open
5923         files in nonblocking mode.  s/no_trigraphs/trigraphs/
5924         throughout, and invert sense.  Put cpp_warning_with_line back
5925         in and export it.
5926
5927 Tue Jan 26 23:21:49 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5928
5929         * config/c4x/c4x.h (COUNTER_REGS): New register class.
5930         * config/c4x/c4x.md (*rptb_init): Change constraints.
5931         (rptb_end): Emit alternate looping instructions if
5932         RC register not allocated for loop counter.
5933         (decrement_and_branch_on_count): Allow other registers
5934         for loop counter.
5935
5936 1999-01-25  Zack Weinberg  <zack@rabi.columbia.edu>
5937
5938         * cppexp.c (struct arglist): Removed.
5939         (parse_number): Use HOST_WIDE_INT for the accumulator.
5940         Allow two `l' suffixes unless C89.  Clean up.  Make static.
5941         (parse_charconst): New function broken out of cpp_lex.
5942         Code cleaned up drastically.  Don't use a token_buffer.
5943         (token_buffer): Removed.
5944         (cpp_lex): Don't call parse_number on a constant string.
5945         Use parse_charconst.
5946         (cpp_parse_expr): Properly handle an ERROR op returned by
5947         cpp_lex.
5948
5949 1999-01-25  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5950
5951         * cpplib.c: Don't include signal.h, sys/times.h, or
5952         sys/resource.h. Don't declare localtime.
5953         (macroexpand): Handle special symbols here.
5954         (push_macro_expansion): Chop off the trailing '@ ' if possible
5955         here.
5956         (cpp_get_token): Don't do either of the above two things here.
5957         Move `string' label just after case '"' so that wide strings
5958         don't crash the preprocessor.
5959
5960 Sun Jan 24 20:13:45 1999  David Edelsohn  <edelsohn@gnu.org>
5961
5962         * rs6000.md (left shift + set cr patterns): Add missing '#' to
5963         split patterns.
5964         (move register + set cr pattern): Likewise.
5965         (movdi, !TARGET_POWERPC64 splitters): Add back in Jan. 15th patch,
5966         inadvertently deleted.
5967
5968 Sun Jan 24 08:07:59 1999  Jeffrey A Law  (law@cygnus.com)
5969
5970         * stmt.c (stmt_loop_nest_empty): New function.
5971         * tree.h (stmt_loop_nest_empty): Declare it.
5972         * rtl.def (CALL_PLACEHOLDER): New rtx code.
5973
5974 Sun Jan 24 21:24:43 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5975
5976         * config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info):
5977         New functions.
5978         (c4x_check_legit_addr): Remove USE and PLUS, allow
5979         LO_SUM, and disable SYMBOL_REF, LABEL_REF, and CONST cases.
5980         (c4x_legitimize_address): Penalize SYMBOL_REF, LABEL_REF, and
5981         CONST cases.  Add LO_SUM.
5982         (c4x_print_operand): Modified 'C' and 'R' cases for calls.
5983         Added 'U' case.  Remove dependence on SYMBOL_REF_FLAG.
5984         (c4x_print_operand_address): Handle LO_SUM.
5985         (c4x_scan_for_ldp): Delete.  Hooray!
5986         (c4x_process_after_reload): Remove call to c4x_scan_for_ldp.
5987         Split all insns.
5988         (c4x_immed_int_constant): Renamed from c4x_int_constant.  All callers
5989         changed.
5990         (c4x_immed_float_constant): Renamed from c4x_float_constant.  All
5991         callers changed.
5992         (c4x_T_constraint): Allow LO_SUM, disable SYMBOL_REF, LABEL_REF,
5993         and CONST.
5994         (c4x_U_constraint, symbolic_operand): New functions.
5995         (src_operand): Allow 'I' constants in HImode.  Allow LO_SUM,
5996         disable SYMBOL_REF, LABEL_REF, and CONST.
5997         (lsrc_operand, tsrc_operand): Call src_operand instead of
5998         general_operand.
5999         (c4x_operand_subword): Update comments.
6000
6001         * config/c4x/c4x.c (TARGET_LOAD_ADDRESS): New macro.
6002         (LEGITIMATE_CONSTANT_P): Allow SYMBOL_REF, LABEL_REF, CONST,
6003         plus HIGH and LO_SUM for the C40.
6004         (ENCODE_SECTION_INFO): Define macro.
6005         (symbolic_operand, c4x_U_constraint, c4x_emit_move_sequence): New
6006         prototypes.
6007         (PREDICATE_CODES): Add symbolic_operand.
6008
6009         * config/c4x/c4x.md (movqi, movgqf, movhi, movhi): Call
6010         c4x_emit_move_sequence.
6011         (floatunsqiqf2, fixuns_truncqfqi2): Rework emitted RTL
6012         to avoid symbol references.
6013         (all patterns with g constraint): Replace 'g' constraint with 'rIm'.
6014         (set_high): Renamed from set_high_use.
6015         (set_lo_sum): Renamed from set_ior_lo_use.
6016         (all call patterns): Make MEM explicit in call address operands.
6017         Modified output templates to use 'U' modifier.
6018
6019 Sun Jan 24 01:15:05 1999  Jeff Law  (law@cygnus.com)
6020
6021         * version.c: Bump for snapshot.
6022
6023 Sat Jan 23 22:34:57 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6024
6025         * final.c (bb_str): Qualify a char* with the keyword `const'.
6026         (add_bb_string, final_scan_insn, output_asm_insn): Likewise.
6027
6028         * fix-header.c (read_scan_file): Likewise.
6029
6030         * genoutput.c (output_epilogue, process_template): Likewise.
6031
6032         * local-alloc.c (requires_inout, block_alloc): Likewise.
6033
6034         * output.h (output_asm_insn, assemble_string): Likewise.
6035
6036         * recog.c (recog_constraints, check_asm_operands,
6037         decode_asm_operands, extract_insn, preprocess_constraints,
6038         constrain_operands): Likewise.
6039
6040         * recog.h (operand_alternative, recog_constraints, insn_template,
6041         insn_outfun, insn_operand_constraint, insn_name): Likewise.
6042
6043         * regclass.c (record_reg_classes, scan_one_insn): Likewise.
6044
6045         * regmove.c (find_matches): Likewise.
6046
6047         * reload.c (alternative_allows_memconst): Likewise.
6048
6049         * reload1.c (constraint_accepts_reg_p,
6050         reload_cse_simplify_operands): Likewise.
6051
6052         * rtl.h (decode_asm_operands): Likewise.
6053
6054         * scan.h (fn_decl): Likewise.
6055
6056         * varasm.c (assemble_string): Likewise.
6057
6058 Sat Jan 23 01:37:36 1999  Jeffrey A Law  (law@cygnus.com)
6059
6060         * configure.in (gcc_tooldir): Handle case where exec_prefix has
6061         not been explicitly set.
6062         * configure: Rebuilt.
6063
6064         * fold-const.c (lshift_double): Mark 'prec' arguments as possibly
6065         unused.
6066
6067         * bitmap.h (bitmap_head_def): Make indx field unsigned.
6068
6069         * configure.in (gcc_tooldir): When not making a relative gcc_tooldir,
6070         use $exec_prefix/$target_alias for gcc_tooldir.
6071         * configure: Rebuilt.
6072
6073 Fri Jan 22 11:48:56 1999  Richard Henderson  <rth@cygnus.com>
6074
6075         * cppp.c (xrealloc): Fix typo last change.
6076         * cppalloc.c, gcc.c, genattr.c, genattrtab.c, gencodes.c: Likewise.
6077         * genconfig.c, genemit.c, genextract.c, genflags.c: Likewise.
6078         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
6079
6080 1999-01-22  Michael Meissner  <meissner@cygnus.com>
6081
6082         * rs6000.h (CR0_REGNO_P): New macro to test if cr0.
6083         (CR_REGNO_NOT_CR0_P): New macro to test if cr, but not cr0.
6084         (PREDICATE_CODES): Add cc_reg_not_cr0_operand.
6085         (cc_reg_not_cr0_operand): Add declaration.
6086
6087         * rs6000.c (cc_reg_not_cr0_operand): Return true if register is a
6088         pseudo register, or a control register that is not CR0.
6089
6090         * rs6000.md (all combiner patterns building . instructions): For
6091         all `.' instructions that do something and set cr0, add an
6092         alternative that does the operation, and then sets a different
6093         flag, in order to avoid using the costly mcrf instruction and also
6094         allow cr0 to be clobbered in asm statements.  Also fix a few
6095         patterns that used the wrong register.
6096
6097         * rs6000.h (rs6000_cpu_select): Make string, names be const char *.
6098         (rs6000_debug_name): Make const char *, not char *.
6099
6100         * sysv4.h (rs6000_{abi,sdata}_name): Make const char *.
6101
6102         * rs6000.c (rs6000_{debug,abi,sdata}_name): Make const char *.
6103         (rs6000_select): Use const char * in casts.
6104
6105 Fri Jan 22 07:43:01 1999  Jeffrey A Law  (law@cygnus.com)
6106
6107         * Makefile.in (gcc_tooldir): Move before first reference.
6108         Let autoconf substitute in a value.
6109         * configure.in (gcc_tooldir): Only use a relative path to the
6110         tool directory if $exec_prefix == $prefix.
6111         * configure: Rebuilt.
6112
6113         * Makefile.in (tooldir): Replace with gcc_tooldir.
6114
6115 Thu Jan 21 23:21:57 1999  Jeffrey A Law  (law@cygnus.com)
6116
6117         * m68k.md (ashldi_const): Disable for !TARGET_5200.  Fix indentation.
6118         (ashldi3 expander): Similarly.  Update comments.
6119         (ashrdi_const, lshrdi_const): Fix indentation.
6120         (ashrdi3, lshrdi3): Fix indentation.  Update comments.
6121
6122 Thu Jan 21 21:53:36 1999  Richard Henderson  <rth@cygnus.com>
6123
6124         * emit-rtl.c (try_split): Don't try to split non-instructions.
6125
6126 Thu Jan 21 23:47:30 1999  Andrew MacLeod  <amacleod@cygnus.com>
6127
6128         * expr.c (emit_push_insn): Fix dumb typo.
6129
6130 Thu Jan 21 20:24:02 1999  Richard Henderson  <rth@cygnus.com>
6131
6132         * rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept
6133         transformations that we have performed earlier.
6134         * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
6135
6136         * alpha.md (prologue_stack_probe_loop): Don't do our own label
6137         handling, call gen_label_rtx instead.
6138
6139 Thu Jan 21 17:45:18 1999  Richard Henderson  <rth@cygnus.com>
6140
6141         * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): Add missing `then'.
6142
6143         * cccp.c (xrealloc): Call malloc given a NULL old pointer.
6144         * collect2.c, cppalloc.c, gcc.c, genattr.c, genattrtab.c: Likewise.
6145         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
6146         * genflags.c, genopinit.c, genoutput.c, genpeep.c: Likewise.
6147         * genrecog.c, mips-tfile.c, protoize.c: Likewise.
6148
6149 Thu Jan 21 19:44:55 1999  Michael Meissner  <meissner@cygnus.com>
6150
6151         * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): If
6152         --with-gnu-ld, use x-aix41-gld instead of x-aix41 to suppress
6153         adding -Wl,-bbigtoc to BOOT_LDFLAGS.
6154         * configure: Regenerate.
6155
6156         * config/rs6000/x-aix41-gld: New file, don't set BOOT_LDFLAGS.
6157
6158 Thu Jan 21 15:48:03 1999  Dave Brolley  <brolley@cygnus.com>
6159
6160         * cppexp.c (cpp_lex): Allocate token_buffer dynamically.
6161
6162 Thu Jan 21 14:18:04 1999  Andrew MacLeod  <amacleod@cygnus.com>
6163
6164         * expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use
6165         move_by_pieces.
6166         (MOVE_MAX_PIECES): Define maximum number of bytes to move at once.
6167         (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults.
6168         (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults.
6169         (move_by_pieces): Use new macros.
6170         (emit_block_move): Use new macros.
6171         (clear_by_pieces): Use new macros.
6172         (clear_storage): Use new macros.
6173         (emit_push_insn): Use new macros.
6174         (expand_expr): Use new macros.
6175         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT):
6176         Define.
6177         (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define.
6178         (MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE.
6179         (MOVE_MAX_PIECES): Move 8 bytes on SH4.
6180         * tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT,
6181         USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT,
6182         USE_STORE_PRE_DECREMENT): Describe new macros.
6183
6184 Thu Jan 21 14:13:31 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
6185
6186         * varasm.c (output_constant_pool): Use floor_log2 instead of
6187         exact_log2 for ASM_OUTPUT_ALIGN.
6188
6189         * stor-layout.c (layout_type): Do machine-dependent extra alignment.
6190
6191         * emit-rtl.c (operand_subword): Handle case when a subword outside
6192         the operand.
6193
6194         * tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of
6195         the macros.
6196
6197 Thu Jan 21 01:59:30 1999  Richard Henderson  <rth@cygnus.com>
6198
6199         * cse.c (fold_rtx): Revert 29 Dec change.
6200         (cse_insn): Revert 12 Jan change.
6201         * expr.c (expand_builtin): Don't emit CONST around CONSTANT_P_RTX.
6202         * regclass.c (reg_scan_mark_refs): Revert 29 Dec change.
6203         * rtl.def: Likewise.
6204         * rtl.h (CONSTANT_P): Likewise.
6205
6206         * expr.c (emit_move_insn): Never try to flush CONSTANT_P_RTX
6207         to memory.
6208         * recog.c (immediate_operand): Accept CONSTANT_P_RTX.
6209         * alpha.c (input_operand): Likewise.
6210         * c4x.c (const_operand): Likewise.
6211
6212         * explow.c (allocate_dynamic_stack_space): Use register_operand
6213         instead of arith_operand, which does not exist.
6214
6215         * 1750a.h: Fix comment closure.
6216         * a29k.c (a29k_set_memflags): Fix typo in 19 Jan change.
6217         * arc.md (one_cmplsi2_set_cc_insn): Fix set mode mismatch.
6218         * arm.h (TARGET_SWITCHES): Fix typo.
6219         * i370.md (anon mult and div patterns): Fix set mode mismatch.
6220         * i860.c (output_delayed_branch): Fix operands to constrain_operands.
6221         (output_delay_insn): Likewise.
6222         * m88k.md (anon rotate insns): Fix set mode mismatch.
6223         (anon BLKmode moves): Commonize and fix set mode mismatches.
6224         * ns32k.md (udivmoddi[shq]i4_internal): Fix mode mismatch.
6225         * romp.md (movdf): Fix typo.
6226
6227 Thu Jan 21 00:29:35 1999  Nathan Sidwell  <nathan@acm.org>
6228
6229         * Makefile.in (install-common): Remove extraneous chmod for gcov
6230         install.
6231
6232 Wed Jan 20 18:15:08 1999  Dave Brolley  <brolley@cygnus.com>
6233
6234         * function.c (assign_parms): Save and restore setting of
6235         TREE_USED (parm).
6236
6237 Wed Jan 20 12:51:42 1999  Mark Mitchell  <mark@markmitchell.com>
6238
6239         * arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout.
6240         Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate.
6241
6242 Tue Jan 19 21:20:52 1999  Richard Henderson  <rth@cygnus.com>
6243
6244         * recog.c (pop_operand): New function.
6245         * recog.h (pop_operand): Declare it.
6246         * genrecog.c (preds): Define it.
6247
6248         * expr.c (do_jump_for_compare): Handle conditional branch expanders
6249         emitting multiple jump instructions.
6250         * jump.c (condjump_label): New function.
6251         * rtl.h (condjump_label): Declare it.
6252
6253 Tue Jan 19 21:08:20 1999  Richard Henderson  <rth@cygnus.com>
6254
6255         * expr.c (emit_move_insn_1): Revert 17 Dec change.  Don't emit
6256         clobber during or after reload.
6257
6258 Tue Jan 19 16:56:03 1999  Richard Henderson  <rth@cygnus.com>
6259
6260         * genoutput.c (name_for_index): New function.
6261         (scan_operands, validate_insn_alternatives): Use it.
6262         * genrecog.c (insn_name_ptr_size): New variable.
6263         (make_insn_sequence): Fill in insn_name_ptr.
6264         (merge_trees): Use it.
6265
6266 Tue Jan 19 16:37:36 1999  Richard Henderson  <rth@cygnus.com>
6267
6268         * i386/isc.h (TARGET_DEFAULT): Define symbolicly.
6269         * i386/isccoff.h, i386/next.h, i386/sco.h, i386/sco5.h: Likewise.
6270         * i386/scodbx.h, i386/sequent.h, i386.unix.h: Likewise.
6271
6272 Tue Jan 19 15:00:10 1999  Jeffrey A Law  (law@cygnus.com)
6273
6274         * loop.c (NUM_STORES): Delete.
6275         (loop_store_mems): Turn into an EXPR_LIST of MEMs.
6276         (prescan_loop): Properly initialize loop_mems_idx.
6277         (note_addr_stored): Simplify using list structure instead of
6278         fixed sized array.
6279         (invariant_p, check_dbra_loop, load_mems): Similarly.
6280
6281         * flow.c (invalidate_from_autoinc): New function.
6282         (mark_set_1, mark_used_regs): Use it.
6283
6284         * Makefile.in (protoize.o, unprotoize.o): Depend on Makefile.
6285
6286 1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
6287
6288         * invoke.texi (-mlong-double-64): New option description.
6289
6290 1999-01-19  Jim Wilson  <wilson@cygnus.com>
6291
6292         * libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to
6293         LIBGCC2_LONG_DOUBLE_TYPE_SIZE.
6294         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.  Set to LONG_DOUBLE_TYPE_SIZE
6295         if not defined.
6296         * i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics.
6297         (CPP_SPECS): Add -mlong-double-64 support.
6298         (TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New.
6299         (TARGET_SWITCHES): Add -mlong-double-64 support.
6300         (LONG_DOUBLE_TYPE_SIZE): Likewise.
6301         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
6302         * i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float.
6303         (CPP_SPECS): Add -mlong-double-64 support.
6304         * i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64.
6305         (MULTILIB_DIRNAMES): Add ld64.
6306         * i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise.
6307
6308 Tue Jan 19 11:54:04 1999  Jason Merrill  <jason@yorick.cygnus.com>
6309
6310         * calls.c (expand_call): Strip a TARGET_EXPR if we're passing by
6311         invisible reference.
6312
6313 Tue Jan 19 14:51:36 1999  David Edelsohn  <edelsohn@gnu.org>
6314
6315         * rs6000.c (offsettable_addr_operand): Delete.
6316         (offsettable_mem_operand): New function.
6317         * rs6000.h (PREDICATE_CODES): Reflect function change.
6318         (RS6000_SAVE_TOC): Represent address as MEM.
6319         * win-nt.h (RS6000_SAVE_TOC): Same.
6320         * rs6000.md (indirect calls): Change offsettable address parameter
6321         to offsettable memory parameter.
6322
6323 Tue Jan 19 10:24:53 1999  Mark Mitchell  <mark@markmitchell.com>
6324
6325         * rtl.h (rtx_def): Update documentation.
6326         (MEM_IN_STRUCT_P): Likewise.
6327         (MEM_SCALAR_P): New macro.
6328         (MEM_COPY_ATTRIBUTES): Likewise.
6329         (MEM_SET_IN_STRUCT_P): Likewise.
6330         * rtl.texi (MEM_SCALAR_P): Document.
6331         * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES.
6332         (fixed_scalar_and_varying_struct_p): New function.  Use
6333         MEM_SCALAR_P rather than !MEM_IN_STRUCT_P.
6334         (aliases_everything_p): Likewise.
6335         (true_dependence): Use them.
6336         (write_dependence_p): New function, containing code common to
6337         anti_dependence and output_dependence.
6338         (anti_dependence): Use it.
6339         (output_dependence): Likewise.
6340         * calls.c (save_fixed_argument_area): Don't clear
6341         MEM_IN_STRUCT_P.
6342         (expand_call): Use MEM_SET_IN_STRUCT_P.
6343         (emit_library_call): Don't clear MEM_IN_STRUCT_P.
6344         (emit_library_call_value): Likewise.
6345         (store_one_arg): Use MEM_SET_IN_STRUCT_P.
6346         * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES.
6347         (make_extraction): Likewise.
6348         (simplify_shift_const): Likewise.
6349         (gen_lowpart_for_combine): Likewise.
6350         * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES.
6351         * emit-rtl.c (operand_subword): Likewise.
6352         (change_address): Likewise.
6353         * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES.
6354         * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES.
6355         (emit_group_store): Use MEM_SET_IN_STRUCT_P.
6356         (copy_blkmode_from_reg): Likewise.
6357         (store_field): Likewise.
6358         (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P
6359         heuristically.  Use MEM_SET_IN_STRUCT_P.
6360         (get_memory_rtx): Likewise.
6361         * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES.
6362         * function.c (assign_stack_temp): Clear MEM_SCALAR_P and
6363         MEM_ALIAS_SET on newly returned MEMs.
6364         (assign_temp): Use MEM_SET_IN_STRUCT_P.
6365         (put_reg_into_stack): Likewise.
6366         (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES.
6367         (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P.
6368         (assign_parms): Likewise.
6369         (expand_function): Likewise.
6370         * integrate.c (expand_inline_function): Likewise.
6371         (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES.
6372         * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P.
6373         * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES.
6374         * print-rtl.c (print_rtx): Print /f for frame_related.
6375         * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES.
6376         * reload1.c (reload): Copy MEM_SCALAR_P as well.
6377         * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P.
6378         (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES.
6379         * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P.
6380         (output_constant_def): Likewise.
6381         * a29k.c (a29k_set_memflags_1): Take scalar_p.
6382         Set MEM_SCALAR_P.
6383         (a29k_set_memflags): Use it.
6384         * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES.
6385         * c4x.c (c4x_scan_for_ld): Likewise.
6386         * h8300.c (fix_bit_operand): Likewise.
6387         * m88k.c (legitimize_address): Likewise.
6388         (block_move_loop): Likewise.
6389         (block_move_no_loop): Likewise.
6390         (block_move_sequence): Likewise.
6391         (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
6392         * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise.
6393         * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES.
6394         * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
6395         * arm.h (arm_gen_load_multiple): Take scalar_p.
6396         (arm_store_load_multiple): Likewise.
6397         * arm.c (arm_gen_load_multiple): Likewise.
6398         (arm_gen_store_multiple): Likewise.
6399         (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P.
6400
6401 Tue Jan 19 12:30:37 1999  Andrew MacLeod  <amacleod@cygnus.com>
6402
6403         * optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all
6404         calls within a libcall block to indicate no throws are possible.
6405         * flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for
6406         libcall blocks. Don't add edges to exception handlers if we see
6407         a REG_EH_REGION note with a value of 0.
6408         (make_edges): Override active_eh_region vector if the call has a note
6409         indicating the call does not throw.
6410
6411 1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
6412
6413         * config/rs6000/sysv4.h (CC1_SPEC): Fix correct numbers of {}.
6414
6415 Tue Jan 19 06:26:30 1999  Jeffrey A Law  (law@cygnus.com)
6416
6417         * Makefile.in (cccp.o, cpplib.o): Depend on Makefile.
6418
6419 Mon Jan 18 09:56:41 1999  Jason Merrill  <jason@yorick.cygnus.com>
6420
6421         * invoke.texi (C++ Dialect Options): Document -fno-rtti.
6422
6423 1999-01-18  Vladimir N. Makarov  <vmakarov@cygnus.com>
6424
6425         *  invoke.texi (-mcpu=740, -mcpu=750): New options.
6426         (-m(no-)multiple, -m(no-)string): Describe cases for PPC740 &
6427         PPC750.
6428
6429 1999-01-18  Michael Meissner  <meissner@cygnus.com>
6430
6431         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
6432         supported with -mcpu=xxx.
6433         (processor_type): Add PROCESSOR_PPC750.
6434         (ADJUST_PRIORITY): Call rs6000_adjust_priority.
6435         (RTX_COSTS): Supply costs for 750 multiply/divide operations.
6436         (rs6000_adjust_priority): Add declaration.
6437
6438         * rs6000.c (rs6000_override_options): -mcpu={750,740} now sets the
6439         processor type as 750, not 603.  Allow -mmultiple and -mstring on
6440         little endian 750 systems.
6441         (rs6000_adjust_priority): Stub for now.
6442         (get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle.
6443
6444         * rs6000.md (function/cpu attributes): Add initial ppc750 support.
6445
6446         * sysv4.h (STRICT_ALIGNMENT): Don't force strict alignment if
6447         little endian.
6448         (CC1_SPEC): Pass -mstrict-align if little endian, and not
6449         overridden.
6450         (CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs.
6451         (SUBTARGET_EXTRA_SPECS): Add cc1 endian specs.
6452
6453         * {sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC): Override, default is
6454         little endian.
6455
6456         * t-ppcgas (MULTILIB_*): Delete obsolete Solaris multilibs.
6457
6458 Mon Jan 18 12:03:08 1999  Gavin Romig-Koch  <gavin@cygnus.com>
6459
6460         * config/mips/mips.md (div_trap): Split div_trap_mips16
6461         from div_trap.
6462         (div_trap_normal,div_trap_mips16): Correct the length attributes.
6463
6464 Mon Jan 18 11:48:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6465
6466         * cpplib.c (special_symbol): Qualify a char* with the `const' keyword.
6467         Instead of writing to const char *buf directly, use a non-const
6468         variable `wbuf' to allocate and write a string, then set buf = wbuf.
6469
6470         * cppulp.c (user_label_prefix): Qualify a char* with the `const'
6471         keyword.
6472
6473         * dyn-string.c (dyn_string_append): Likewise.
6474
6475         * dyn-string.h (dyn_string_append): Likewise.
6476
6477         * final.c (end_final, output_operand_lossage, asm_fprintf): Likewise.
6478
6479         * output.h (end_final, output_operand_lossage, asm_fprintf,
6480         named_section, decode_reg_name, make_decl_rtl, user_label_prefix):
6481         Likewise.
6482
6483         * profile.c (init_branch_prob): Likewise.
6484
6485         * toplev.c (set_target_switch, vmessage,
6486         v_message_with_file_and_line, v_message_with_decl,
6487         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
6488         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
6489         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
6490         v_pedwarn_with_file_and_line, vsorry, v_really_sorry,
6491         open_dump_file, dump_rtl, clean_dump_file,
6492         print_version, print_single_switch, print_switch_values,
6493         dump_base_name, debug_args, lang_independent_options,
6494         user_label_prefix, documented_lang_options, target_switches,
6495         target_options, print_time, pfatal_with_name, fatal_io_error,
6496         fatal_insn, default_print_error_function, print_error_function,
6497         report_error_function, error_with_file_and_line, error_with_decl,
6498         error_for_asm, error, fatal, warning_with_file_and_line,
6499         warning_with_decl, warning_for_asm, warning, pedwarn,
6500         pedwarn_with_decl, pedwarn_with_file_and_line, sorry,
6501         really_sorry, botch, output_quoted_string, output_file_directive,
6502         open_dump_file, rest_of_decl_compilation, display_help, main):
6503         Likewise.
6504
6505         * toplev.h (print_time, fatal, fatal_io_error, pfatal_with_name,
6506         fatal_insn, warning, error, pedwarn, pedwarn_with_file_and_line,
6507         warning_with_file_and_line, error_with_file_and_line, sorry,
6508         really_sorry, default_print_error_function, report_error_function,
6509         rest_of_decl_compilation, pedwarn_with_decl, warning_with_decl,
6510         error_with_decl, error_for_asm, warning_for_asm, output_quoted_string,
6511         output_file_directive, botch): Likewise.
6512
6513         * tree.h (make_decl_rtl): Likewise.
6514
6515         * varasm.c (strip_reg_name, named_section, decode_reg_name,
6516         make_decl_rtl): Likewise.
6517
6518 Mon Jan 18 11:35:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
6519
6520         * Makefile.in (TCL_LIBRARY): Use 'cd' to find the library
6521         directory logically rather than physically.
6522
6523 Mon Jan 18 09:05:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6524
6525         * loop.c (insert_bct): Hide the definition of variables
6526         `increment_direction', `compare_direction', `add_iteration' and
6527         `loop_var_mode'.
6528
6529         * recog.c (mode_dependent_address_p): Mark parameter `addr' with
6530         ATTRIBUTE_UNUSED.  Mark label `win' with ATTRIBUTE_UNUSED_LABEL.
6531         (mode_independent_operand): Mark label `lose' with
6532         ATTRIBUTE_UNUSED_LABEL.
6533
6534         * regclass.c (n_occurrences): Remove prototype and definition.
6535
6536         * reload.c (find_reloads_address_1): Mark variable `tem' with
6537         ATTRIBUTE_UNUSED.
6538
6539         * reload1.c (reload): Cast the first two arguments of `bcopy' to PTR.
6540
6541         * sbitmap.c (sbitmap_copy): Likewise.
6542
6543         * scan-decls.c (scan_decls): Hide label `handle_comma'.
6544
6545         * toplev.c (output_lang_identify): Mark prototype with
6546         ATTRIBUTE_UNUSED.
6547
6548         * tree.c (make_node): Cast the first argument of `bzero' to PTR.
6549         (make_tree_vec): Likewise.
6550         (build1): Likewise.
6551
6552         * varasm.c (assemble_static_space): Mark variable `tem' with
6553         ATTRIBUTE_UNUSED.
6554
6555 Mon Jan 18 04:28:36 1999  Nathan Sidwell  <nathan@acm.org>
6556
6557         * Makefile.in (GCOV_INSTALL_NAME): New macro.
6558         (install-common): Use it.
6559         (uninstall): Use it.
6560         (uninstall): Use correct names for protoize and unprotoize.
6561
6562 Mon Jan 18 03:52:56 1999  Christian Bruel  <Christian.Bruel@st.com>
6563                           Jeffrey A Law  (law@cygnus.com)
6564
6565         * flow.c (last_mem_set): Delete variable.  References removed.
6566         (mem_set_list): New variable.
6567         (life_analysis): Initialize and finalize alias analysis.
6568         (propagate_block); Initialize mem_set_list.  Clear for CALL_INSNs.
6569         (insn_dead_p): For a store to memory, search the entire mem_set_list
6570         for a match.
6571         (mark_set_1): Kill entries on the mem_set_list for aliased writes or
6572         changes to their addresses.  Add new entries to the mem_set_list for
6573         memory writes writes.
6574         (mark_used_regs): Kill entries on the mem_set_list which may be
6575         referenced by a load operation.
6576
6577 Mon Jan 18 01:01:02 1999  Jeffrey A Law  (law@cygnus.com)
6578
6579         * alias.c (base_alias_check): Add missing return for differing
6580         symbols case.
6581
6582 Mon Jan 18 00:36:13 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6583
6584         * mips-tdump.c (print_file_desc): Handle unknown filenames and
6585         missing local symbols.
6586
6587 Sun Jan 17 21:04:31 1999  Richard Henderson  <rth@cygnus.com>
6588
6589         * jump.c (rtx_renumbered_equal_p): Special case CODE_LABEL.
6590
6591         * system.h (bcopy): Implement with memmove not memcpy.
6592
6593 Sun Jan 17 19:23:20 1999  Jeffrey A Law  (law@cygnus.com)
6594
6595         * Makefile.in (cppulp.o): Add dependencies.
6596
6597         * i386.md (integer conditional moves): Add missing earlyclobbers.
6598
6599         * regmove.c (optimize_reg_copy_1): Undo Aug 18 change.  Update
6600         REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change
6601         where a register is live.
6602
6603 Sun Jan 17 03:20:47 1999  H.J. Lu  (hjl@gnu.org)
6604
6605         * reg-stack.c (subst_stack_regs_pat): Abort if the destination
6606         of a FP conditional move is not on the FP register stack.
6607
6608 Sun Jan 17 01:15:04 1999  Jeff Law  (law@cygnus.com)
6609
6610         * version.c: Bump for snapshot.
6611
6612 Sat Jan 16 23:40:33 1999  Jeffrey A Law  (law@cygnus.com)
6613
6614         * reload1.c (reload_cse_regs_1): Do not call
6615         reload_cse_simplify_operands for an insn with asm operands.
6616
6617         * cccp.c (print_help): Fix typos.
6618         * cpplib.c (print_help): Fix typos.
6619         * toplev.c (f_optiosn): Fix typos.
6620         (documented_lang_options): Fix typos.
6621
6622 Sat Jan 16 21:48:17 1999  Marc Espie  (Marc.Espie@openbsd.org)
6623
6624         * gcc.c (do_spec_1): Fix obvious typo.
6625
6626 Sat Jan 16 19:31:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6627
6628         * c-decl.c (duplicate_decls): If `warn_traditional', warn when
6629         a non-static function declaration follows a static one.
6630
6631         * invoke.texi (-Wtraditional): Document the extra check now done
6632         by this flag.
6633
6634 Sat Jan 16 15:13:46 1999  Jeffrey A Law  (law@cygnus.com)
6635
6636         * pa.md (shadd): Create shadd insns, even if the result of the shift is
6637         needed without the addition.
6638
6639 Sat Jan 16 10:48:16 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
6640
6641         * sh.md (movdf, movsf): Temporary workaround for no_new_pseudos lossage.
6642
6643 Fri Jan 15 23:44:37 1999  Richard Henderson  <rth@cygnus.com>
6644
6645         * sparc.c (sparc_issue): Add hypersparc/sparclite86x entries.
6646
6647 Fri Jan 15 22:30:04 1999  David Edelsohn  <edelsohn@gnu.org>
6648
6649         * rs6000.h (CONST_OK_FOR_LETTER_P): Do not assume 32-bit CONST_INT.
6650         * rs6000.c (u_short_cint_operand, add_operand, logical_operand,
6651         non_add_cint_operand, non_logical_cint_operand): Likewise.
6652         (get_issue_rate): Add CPU_PPC604E case.
6653         * rs6000.md (movdi, !TARGET_POWERPC64 splitters): Handle 64-bit hosts.
6654
6655 Fri Jan 15 18:42:12 1999  Richard Henderson  <rth@cygnus.com>
6656
6657         * expr.c (queued_subexp_p): Make public.
6658         * expr.h (queued_subexp_p): Declare it.
6659         * recog.c (asm_operand_ok): New function.
6660         (check_asm_operands): Use it.  After reload, use constrain_operands
6661         instead.
6662         * recog.h (asm_operand_ok): Declare it.
6663         * stmt.c (expand_asm_operands): Use it to try harder to make
6664         asms initially satisfy their constraints.
6665
6666 Fri Jan 15 17:43:59 1999  Jeffrey A. Law  <law@rtl.cygnus.com>
6667
6668         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do not create
6669         (mem (lo_sum (...)) for TFmode unless TARGET_V9.
6670
6671 Sat Jan 16 12:47:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6672
6673         * config/c4x/c4x.md (not_repeat_reg): Allow ldp instruction
6674         in delay slot of RPTBD.
6675
6676 Sat Jan 16 12:26:40 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6677
6678         * config/c4x/libgcc.S (___divhi3, ___modhi3): Fix long long
6679         divide and modulo sign problem.
6680
6681 Fri Jan 15 11:02:31 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6682
6683         * unroll.c (loop_iterations): Return 0 if the last loop insn
6684         is not a jump insn or if the loop has multiple back edges.
6685
6686 1999-01-15  Manfred Hollstein  <manfred@s-direktnet.de>
6687
6688         * configure.in (fixinc_defs): Do not define for m[68]8k-motorola-sysv{,3};
6689         it's working properly now.  Remove comment saying "see m68k-motorola-sysv
6690         as an example".
6691         * configure: Regenerate using autoconf.
6692
6693         * fixinc/fixincl.c (main): Do not ignore SIGCHLD.
6694
6695 Thu Jan 14 22:38:41 1999  Jeffrey A Law  (law@cygnus.com)
6696
6697         * unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share
6698         a register with another DEST_ADDR giv if the address is not valid.
6699
6700         * pa.c (hppa_expand_epilogue): Save and restore the static chain
6701         around the call to mcount.
6702
6703         * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf.
6704
6705         * stmt.c (expand_end_case): Use emit_cmp_and_jump_insns to avoid
6706         generating non-canonical rtl.
6707
6708 1999-01-14  Vladimir N. Makarov  <vmakarov@cygnus.com>
6709
6710         * config/i960/i960.c (i960_output_move_double_zero,
6711         i960_output_move_quad_zero): New functions for moving zeros.
6712         (i960_output_move_double, i960_output_move_quad): Additional code
6713         for situation when moving unaligned register group.
6714
6715         * config/i960/i960.h (i960_output_move_double_zero,
6716         i960_output_move_quad_zero): The function definitions.
6717
6718         * config/i960/i960.md (movdi+1, movti+1): Usage of the functions.
6719
6720 1999-01-13  Vladimir N. Makarov  <vmakarov@cygnus.com>
6721
6722         * config/i960/i960.c (i960_function_prologue): New code (optimal
6723         solution) for saving global registers in local registers.
6724         (form_reg_groups, reg_group_compare, split_reg_group): New
6725         functions used by the code.
6726         (reg_group): New structure definition for the new code.
6727
6728 1999-01-13  Manfred Hollstein  <manfred@s-direktnet.de>
6729
6730         * fixinc/fixincl.c (create_file): Pass file creation mask as
6731         third parameter to "open".  Use O_TRUNC flag to open instead of
6732         explicitly unlink'ing the file.
6733         (process): and forget about the "chmod" stuff.
6734
6735 Wed Jan 13 20:12:37 1999  Richard Henderson  <rth@cygnus.com>
6736
6737         * integrate.c (expand_inline_function): Recognize (mem (addressof))
6738         and substitute.  Copy the return value from there into a new pseudo.
6739
6740 Wed Jan 13 16:47:00 1999  Catherine Moore  <clm@cygnus.com>
6741
6742         * config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN
6743         before generating a call to abort for volatile functions.
6744         * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define.
6745         (TARGET_ABORT_NORETURN): Define.
6746         (abort-on-noreturn): New option.
6747
6748 Thu Jan 14 13:52:42 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6749
6750         * config/c4x/c4x.md (in_annul_slot_3): Correctly allow unarycc
6751         and binarycc operations in 3rd annulled delay slot!
6752
6753 Wed Jan 13 16:16:44 1999  Catherine Moore  <clm@cygnus.com>
6754
6755         * config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN
6756         before generating a call to abort for volatile functions.
6757         * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define.
6758         (TARGET_ABORT_NORETURN): Define.
6759         (abort-on-noreturn): New option.
6760
6761 Wed Jan 13 13:30:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6762
6763         * cccp.c (xstrdup): Renamed from `savestring'.  All callers changed.
6764         Remove prototype which we get from libiberty.h.
6765
6766         * collect2.c (xstrdup): Likewise.
6767
6768         * genextract.c (xstrdup): Likewise for `copystr'.
6769         (mybzero): Remove it and use `memset' instead.
6770
6771         * genoutput.c (mybcopy, mybzero): Remove these.  All callers changed
6772         to use `memcpy' and `memset' instead.
6773
6774         * genrecog.c (xstrdup): Renamed from `copystr'.  All callers
6775         changed.  Remove prototype.
6776         (mybcopy, mybzero): Remove these and use memcpy/memset.
6777
6778 Wed Jan 13 00:59:04 1999  Jeffrey A Law  (law@cygnus.com)
6779
6780         * mips.h (LOAD_EXTEND_OP): Correct for SImode and CCmode moves when
6781         generating code for TARGET_64BIT.
6782
6783 Tue Jan 12 14:05:37 1999  David Edelsohn  <edelsohn@gnu.org>
6784
6785         * rs6000.c (print_operand, cases 'm' and 'M'): Do not depend on
6786         HOST_WIDE_INT word-size.
6787         (rs6000_stack_info): Remove redundant alignment of fpmem.
6788
6789 Tue Jan 12 14:05:37 1999  Richard Henderson  <rth@cygnus.com>
6790
6791         * rs6000.c (short_cint_operand): Remove CONSTANT_P_RTX handling.
6792         (u_short_cint_operand, reg_or_cint_operand, logical_operand): Likewise.
6793         (input_operand): Adjust CONSTANT_P_RTX handling.
6794         * rs6000.h (PREDICATE_CODES): Remove CONSTANT_P_RTX references.
6795         * rs6000.md (movsi): Adjust CONSTANT_P_RTX handling.
6796         (movhi, movqi): Remove CONSTANT_P_RTX handling.
6797         (movdi): Adjust CONSTANT_P_RTX handling.
6798
6799 1999-01-12  Manfred Hollstein  <manfred@s-direktnet.de>
6800
6801         * configure: Regenerate using autoconf.
6802
6803         * fixinc/Makefile.in (INCLUDES): Add -I$(srcdir)/../../include.
6804         * fixinc/fixincl.c (SIGCHLD): Use SIGCLD on (very) old systems.
6805         (process): "fchmod" isn't available on all systems, use "chmod"
6806         instead.
6807         * fixinc/server.c: Add #include <sys/types.h>.
6808         (STDIN_FILENO): Add default definition if no include file defines
6809         it already.
6810         (STDOUT_FILENO): Likewise.
6811
6812 Tue Jan 12 10:23:24 1999  Stan Cox  <scox@cygnus.com>
6813
6814         * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls.
6815
6816 1999-01-12  Manfred Hollstein  <manfred@s-direktnet.de>
6817
6818         * m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to
6819         ensure all prototypes necessary for building libio will be available.
6820         * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Remove
6821         definitions here as they are not host specific.
6822         * m88k/sysv3.h, m88k/xm-sysv3.h: Likewise.
6823
6824 Tue Jan 12 02:53:46 1999  Richard Henderson  <rth@cygnus.com>
6825
6826         * cse.c (cse_insn): Never prefer (const (constant_p_rtx)).
6827
6828 Tue Jan 12 02:36:10 1999  Jeff Law  (law@cygnus.com)
6829
6830         * version.c: Bump for snapshot.
6831
6832 Tue Jan 12 01:30:19 1999  Richard Henderson  <rth@cygnus.com>
6833
6834         * rtl.c (rtx_alloc): Use memset instead of inline loop.
6835
6836         * recog.h (recog_op_alt): Declare extern.
6837
6838 Tue Jan 12 00:23:31 1999  Richard Henderson  <rth@cygnus.com>
6839
6840         * function.c (purge_addressof_1): If the note accesses a mem+addressof
6841         in a wider mode than any replacement, adjust the cached replacement.
6842         Cache trivial substitutions as well.
6843
6844 Tue Jan 12 00:06:00 1999  Richard Henderson  <rth@cygnus.com>
6845
6846         * Makefile.in (OBJECTS): Add sbitmap.o.
6847         (BASIC_BLOCK_H): Add sbitmap.h.
6848         * basic-block.h: Move simple bitmap code to sbitmap.h.
6849         * flow.c: Move simple bitmap code to sbitmap.c.
6850         * sbitmap.h, sbitmap.c: New files.
6851
6852 Mon Jan 11 23:51:50 1999  Richard Henderson  <rth@cygnus.com>
6853
6854         * alpha.h (TARGET_SWITCHES): Document switches.
6855         (TARGET_OPTIONS): Likewise.
6856
6857         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Use HOST_WIDE_INT_PRINT_DEC.
6858
6859 Mon Jan 11 22:54:14 1999  Richard Henderson  <rth@cygnus.com>
6860
6861         * tree.c (new_alias_set): Return zero if !flag_strict_aliasing.
6862
6863 Mon Jan 11 22:36:01 1999  Richard Henderson  <rth@cygnus.com>
6864
6865         * basic-block.h (basic_block_head): Rename to x_basic_block_head.
6866         (basic_block_end): Rename to x_basic_block_end.
6867         (BLOCK_HEAD, BLOCK_END): Update.
6868
6869         * caller-save.c: Change basic_block_head/end references to
6870         BLOCK_HEAD/END.
6871         * combine.c, flow.c, function.c, gcse.c, global.c: Likewise.
6872         * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise.
6873         * regmove.c, reload1.c, reorg.c, sched.c: Likewise.
6874
6875 Sat Jan  9 23:54:09 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6876
6877         * gcc.c (xstrerror): Renamed from my_strerror.  All callers
6878         changed.  Remove prototype since we get that from libiberty.h.
6879
6880         * protoize.c (xstrerror): Likewise.
6881
6882 Sat Jan  9 23:22:04 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6883
6884         * gcc.c (read_specs): Ensure format specifiers match their arguments.
6885
6886 Sat Jan  9 20:04:24 1999  Richard Henderson  <rth@cygnus.com>
6887
6888         * tree.c (copy_node): Oops.  That would be copy not zero
6889         in that last change.
6890
6891 Sun Jan 10 15:35:41 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6892
6893         * config/c4x/c4x.c: Include system.h.
6894         (c4x_caller_save_map): Disable caller save for RC.
6895         (c4x_optimization_options): Disable scheduling before reload.
6896         (valid_parallel_load_store) : Define return type as int.
6897         Remove unused variable regs.
6898         * config/c4x/c4x.h (REGISTER_MOVE_COST): Make independent of register
6899         class.
6900         * config/c4x/c4x.md (rotlqi3, rotrqi3): Fix up emitted RTL to
6901         handle rotations.
6902         (*db, decrement_and_branch_until_zero): Fix up constraints
6903         to keep reload happy.
6904
6905 Sat Jan  9 18:35:29 1999  Richard Henderson  <rth@cygnus.com>
6906
6907         * tree.c (make_node): Call bzero instead of inline clear.
6908         (copy_node, make_tree_vec, build1): Likewise.
6909         (get_identifier): Call strlen instead of inline count.
6910         (maybe_get_identifier): Likewise.
6911
6912 Sun Jan 10 14:04:51 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6913
6914         * config/c4x/c4x.md (in_annul_slot_3): Allow unarycc and binarycc
6915         operations in 3rd annulled delay slot.
6916         (*lshrqi3_const_set): Disallow c constraint for operand0.
6917         (modhi3+1, modhi3+2): Set attribute type to multi.
6918         * config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of
6919         != operator.
6920
6921 Sat Jan  9 11:44:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6922
6923         * gansidecl.h: Allow attribute unused on labels only when we are
6924         version 2.93 or higher.  Not all versions of 2.92 have this feature.
6925
6926         * version.c: Bump minor number to 93.
6927
6928 Fri Jan  8 10:51:13 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
6929
6930         * config/m68k/m68k.h: Declare output_function_epilogue.
6931         * recog.h: Declare next_insn_tests_no_inequality.
6932
6933 Fri Jan  8 01:43:53 1999  Jeffrey A Law  (law@cygnus.com)
6934
6935         * stmt.c (optimize_tail_recursion): New function, extracted from ...
6936         (expand_return): Use optimize_tail_recursion.
6937         * tree.h (optimize_tail_recursion): Declare.
6938
6939         * toplev.c (compile_file): Move call to output_func_start_profiler
6940         to after the loop to emit deferred functions.
6941
6942 Thu Jan  7 19:52:53 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6943
6944         * system.h (abort): Supply more detailed information on how to
6945         report an Internal Compiler Error.
6946
6947 Thu Jan  7 09:25:58 1999  Bruce Korb  (korb@datadesign.com)
6948
6949         * fixinc/fixincl.c (*): More decapitalization of variables
6950         plus some explanatory comments.
6951
6952         * fixinc/Makefile.in fixinc/mkfixinc.sh:
6953         When the fixincl program does not work for a certain system,
6954         we substitute a shell script.  Added user commentary when
6955         this happens.
6956
6957 Thu Jan  7 11:26:17 1999  Mark Mitchell  <mark@markmitchell.com>
6958
6959         * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to
6960         allocate memory that will live beyond this function.
6961         (expand_call): Free it here.
6962
6963 Thu Jan  7 03:08:17 1999  Richard Henderson  <rth@cygnus.com>
6964
6965         * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for
6966         integer data not destined for fp regs.
6967         (LEGITIMIZE_RELOAD_ADDRESS): New.
6968
6969 Thu Jan  7 03:03:42 1999  Stan Cox  <scox@cygnus.com>
6970                           Richard Henderson  <rth@cygnus.com>
6971
6972         Support for Hypersparc and Sparclite86x:
6973         * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New.
6974         (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets.
6975         (ASM_CPU32_DEFAULT_SPEC): Likewise.
6976         (TARGET_CPU_DEFAULT): Likewise.
6977         (enum processor_type): Likewise.
6978         (CPP_ENDIAN_SPEC): Handle little endian data.
6979         (LIBGCC2_WORDS_BIG_ENDIAN): Likewise.
6980         (ADJUST_COST): Call sparc_adjust_cost.
6981         * sparc.c (sparc_override_options): Fix up for the new targets.
6982         (supersparc_adjust_cost): Make static.
6983         (hypersparc_adjust_cost): New.
6984         (ultrasparc_adjust_cost): Make static.
6985         (sparc_adjust_cost): New.
6986         * sparc.md (attr cpu): Add hypersparc and sparclite86x.
6987         (function_unit): Add hypersparc scheduling rules.
6988
6989         * configure.in (with_cpu handler): Recognize hypersparc.
6990
6991 Thu Jan  7 23:54:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6992
6993         * config/c4x/c4x.c: Added space after negation operator.
6994         * config/c4x/c4x.h: Likewise.
6995         * config/c4x/c4x.md: Likewise.
6996
6997 Thu Jan  7 23:39:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6998
6999         * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class.
7000
7001 Thu Jan  7 00:29:25 1999  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
7002
7003         * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases,
7004         when a test can't be performed due to limited width of
7005         HOST_BITS_PER_WIDE_INT, use the more conservative approximation.
7006         Fix UDIV case for cases where the first operand has the highest bit
7007         set.
7008
7009 Thu Jan  7 00:01:38 1999  Lutz Vieweg  <lkv@mania.robin.de>
7010
7011         * pa.h (reg_class): Add FPUPPER_REGS.
7012         (REG_CLASS_NAMES): Similarly.
7013         (REG_CLASS_CONTENTS): Similarly.
7014         (REGNO_REG_CLASS): Handle FPUPPER_REGS.
7015         (FP_REG_CLASS_P): Likewise.
7016         (REG_CLASS_FROM_LETTER): Similarly.
7017         (CLASS_MAX_NREGS): Similarly.
7018
7019 1999-01-06  Brendan Kehoe  <brendan@cygnus.com>
7020
7021         * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h
7022         for a typedef of bool.  Make sure to have a copy of the file is
7023         in place before we look to fix it.  Fix typo in variable name to
7024         FILE.
7025
7026 Wed Jan  6 07:51:05 1999  Richard Henderson  <rth@cygnus.com>
7027
7028         * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use
7029         value_mode for the return mode.
7030
7031 Wed Jan  6 17:55:19 1999  Robert Lipe  <robertlipe@usa.net>
7032
7033         * configure.in: New flag --with-dwarf2.  If set, enables DWARF-2
7034         debugging as default.
7035
7036         * config/tm-dwarf2.h: New file.
7037
7038 Wed Jan  6 16:08:54 1999  Jeffrey A Law  (law@cygnus.com)
7039
7040         * h8300.h (ASM_OUTPUT_LABELREF): Define.
7041
7042         * pa.h (DONT_RECORD_EQUIVALENCE): Kill.
7043         * local-alloc.c (update_equiv_regs): Corresponding changes.
7044         * tm.texi (DONT_RECORD_EQUIVALENCE): Kill.
7045
7046         * calls.c (special_function_p): Push alloca test inside the large
7047         conditional which excludes functions not at file scope or not
7048         extern.
7049
7050         * calls.c (special_function_p): New function broken out of
7051         expand_call.
7052         (precompute_register_parameters): Likewise.
7053         (store_one_arg): Likewise.
7054         (store_unaligned_argumetns_into_pseudos): Likewise.
7055         (save_fixed_argument_area): Likewise.
7056         (restore_fixed_argument_area): Likewise.
7057         (expand_call): Corresponding changes.
7058
7059 Thu Jan  7 00:12:24 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7060
7061         * config/c4x/c4x.md (addqi3): If the destination operand is
7062         a hard register other than an extended precision register,
7063         emit addqi3_noclobber.
7064         (*addqi3_noclobber_reload): New pattern added so that reload
7065         will recognize a store of a pseudo, equivalent to the sum
7066         of the frame pointer and a constant, as an add insn.
7067
7068 1999-01-06  Manfred Hollstein  <manfred@s-direktnet.de>
7069
7070         * fixinc/fixincl.c: Re-indent according to the GNU standards.
7071         fixinc/server.c: Likewise.
7072         fixinc/server.h: Likewise.
7073
7074 Wed Jan  6 10:43:29 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
7075
7076         * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX
7077         handling.
7078         (const_sint32_operand): Likewise.
7079
7080 Wed Jan  6 09:44:51 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7081
7082         * toplev.h: In addition to checking _JBLEN, also check if `setjmp'
7083         is a macro when deciding if we can use `jmp_buf' in prototypes.
7084
7085 Wed Jan  6 03:18:53 1999  Mark Elbrecht  <snowball3@usa.net>
7086
7087         * configure.in (pc-msdosdjgpp): Set x_make to x-go32.
7088         * configure: Rebuilt.
7089         * i386/xm-go32.h: Define LIBSTDCXX.
7090         * i386/x-go32: New.
7091         * i386/go32.h (MD_EXEC_PREFIX): Define.
7092         (FILE_NAME_ABSOLUTE_P): Define.
7093         (LINK_COMMAND_SPEC): Define.
7094
7095 Wed Jan  6 02:23:36 1999  "Charles M. Hannum"  <root@ihack.net>
7096
7097         * expr.c (store_expr): If the lhs is a memory location pointed
7098         to be a postincremented (or postdecremented) pointer, always
7099         force the rhs to be evaluated into a pseudo.
7100
7101 Wed Jan  6 00:54:21 1999  Geoff Keating  <geoffk@ozemail.com.au>
7102
7103         * real.c (mtherr): Print more reasonable warning messages.
7104
7105 Tue Jan  5 21:57:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7106
7107         * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h.
7108
7109         * cccp.c: Include prefix.h, don't prototype prefix.c functions.
7110         (new_include_prefix): Constify char* parameters.
7111
7112         * cppfiles.c (read_name_map): Likewise.
7113         (append_include_chain): Likewise.  Also, use a writable char* copy
7114         of parameter `dir' which we then modify, rather than using the
7115         parameter itself to store the new writable string.
7116         (remap_filename): Constify some variables.  Also, use a writable
7117         char* to store an allocated string which we will be modifying.
7118
7119         * cpplib.c: Include prefix.h, don't prototype prefix.c functions.
7120         (cpp_start_read): Constify variable `str'.
7121
7122         * cpplib.h (append_include_chain): Constify a char* parameter.
7123
7124         * gcc.c Include prefix.h, don't prototype prefix.c functions.
7125         (add_prefix, save_string): Constify char* parameters.
7126         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
7127
7128         * prefix.c: Include prefix.h.
7129         (get_key_value, translate_name, save_string, update_path,
7130         set_std_prefix): Constify various char* parameters and variables.
7131         (save_string): Use xmalloc, not malloc.
7132         (translate_name): Use a writable temporary variable to create and
7133         modify a string before setting it to a const char*.
7134
7135         * prefix.h: New file to prototype functions exported from prefix.c.
7136
7137 Tue Jan  5 08:52:18 1999  Bruce Korb  (korb@datadesign.com)
7138
7139         * fixinc/fixincl.c (various): Added debug code so
7140         Manfred can trace the processing.
7141
7142         * fixinc/inclhack.def (sys/utsname.h): Provide forward declaration of
7143         struct utsname on Ultrix V4.[35].
7144
7145         * fixinc/{fixincl.x|fixincl.sh|inclhack.sh} : Regenerated.
7146
7147 Mon Jan  4 15:37:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7148
7149         * cpplib.c (skip_if_group): Split out the logic that handles
7150         directive recognition to its own function.  Don't use
7151         parse markers; use a bare pointer into the buffer.  Use
7152         copy/skip_rest_of_line instead of doing it by hand.  Remove
7153         `return on any directive' mode which was never used, and take
7154         only one argument.
7155         (consider_directive_while_skipping): New function, subroutine
7156         of skip_if_group.  Logic streamlined a bit.
7157         (conditional_skip, do_elif, do_else): Call skip_if_group with
7158         only one argument.
7159
7160 Mon Jan  4 15:27:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7161
7162         * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an
7163         error.
7164
7165 Mon Jan  4 11:55:51 1999  Jason Merrill  <jason@yorick.cygnus.com>
7166
7167         * extend.texi (Bound member functions): Document.
7168
7169 Mon Jan  4 11:01:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7170
7171         * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string,
7172         lang_to_string, type_to_string): Make return type const char*.
7173         (print_symbol): Apply `const' keyword to a char*.
7174         (print_file_desc): Cast structure member `crfd' to ulong when
7175         comparing against one.
7176
7177         * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*.
7178         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
7179         (progname, input_name): Apply `const' keyword to a char*.
7180         Don't redundantly include sys/stat.h.
7181         (alloc_info): Apply `const' keyword to a char*.
7182         (st_to_string, sc_to_string): Likewise.
7183         (hash_string): Cast variable `hash_string' to a symint_t when
7184         comparing against one.
7185         (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one.
7186         Likewise cast it to long when comparing against one.
7187         (add_local_symbol): Apply `const' keyword to a char*.
7188         (add_ext_symbol): Likewise.
7189         (add_unknown_tag): Likewise.
7190         (add_procedure): Cast a printf-style field width to an int.
7191         (add_file): Cast PAGE_USIZE to long when comparing against one.
7192         (parse_begin): Cast a printf-style field width to an int.
7193         (parse_bend): Likewise.
7194         (parse_def): Likewise.
7195         (parse_end): Likewise.
7196         (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED.
7197         (parse_stabs_common): Fix format specifier.
7198         (parse_input): Change type of variable `i' to Size_t.
7199         (write_object): Fix arguments to match format specifiers.
7200         Cast variable `num_write' to long when comparing against one.
7201         (read_seek): Cast variable `sys_read' to symint_t when comparing
7202         against one.  Fix arguments to match format specifiers.  Cast
7203         variable `size' to long when comparing against one.
7204         (copy_object): Cast result of `sizeof' to int when comparing
7205         against one.  Fix arguments to match format specifiers.  Cast
7206         variable `ifd' to long when comparing against a signed value.
7207         Likewise, likewise.
7208
7209 Mon Jan  4 10:30:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7210
7211         * c-common.c (decl_attributes): Allow applying attribute `unused'
7212         on a LABEL_DECL.
7213
7214         * c-parse.in (label): Parse attributes after a label, and call
7215         `decl_attributes' to handle them.
7216
7217         * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
7218
7219         * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
7220         generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
7221
7222         * invoke.texi: Note that labels can be marked `unused'.
7223
7224 Sun Jan  3 23:32:18 1999  Jeff Law  (law@cygnus.com)
7225
7226         * version.c: Bump for snapshot.
7227
7228 Sun Jan  3 23:00:42 1999  Jeffrey A Law  (law@cygnus.com)
7229
7230         * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing
7231         RTL for a compare/jump sequence.
7232
7233 Sun Jan  3 22:58:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7234
7235         * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL
7236         for a target with HAVE_cc0 defined.
7237         (emit_cmp_and_jump_insns): New function.
7238         * expr.h (emit_cmp_and_jump_insns): Prototype it.
7239         * loop.c (check_dbra_loop): Use it to replace calls
7240         to emit_cmp_insn and emit_jump_insn and to canonicalize
7241         the comparison if necessary.
7242         * unroll.c (unroll_loop): Likewise.
7243
7244 Sun Jan  3 21:01:04 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7245
7246         * fixincludes (sys/utsname.h): Provide forward declaration of
7247         struct utsname on Ultrix V4.[35].
7248
7249         * mips.md (div_trap): Use local labels instead of dot-relative
7250         branches.
7251
7252 Sun Jan  3 20:40:34 1999  Jeffrey A Law  (law@cygnus.com)
7253
7254         * pa.md (branch, negated branch): Handle (const_int 0) as first
7255         source operand.
7256         * pa.c (output_cbranch): Likewise.
7257
7258 Sun Jan  3 03:20:38 1999  David Edelsohn  <edelsohn@gnu.org>
7259
7260         * rs6000.c (rs6000_stack_info): Undo spurious part of last
7261         change.
7262
7263 1999-01-01  Manfred Hollstein  <manfred@s-direktnet.de>
7264
7265         * extend.texi (__builtin_constant_p): Add missing @smallexample.
7266
7267 Fri Jan  1 11:48:20 1999  Jeffrey A Law  (law@cygnus.com)
7268
7269         * i386.md (doubleword shifts): Fix dumb mistakes in previous change.
7270
7271 Wed Dec 30 23:38:55 1998  Jeffrey A Law  (law@cygnus.com)
7272
7273         * m68k.md (adddi_dilshr32): Allow all operands to be registers too.
7274         (adddi_dishl32): Similarly.
7275
7276         * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
7277         for each insn in the skipped block.
7278
7279         * reload1.c (reload_as_needed): Verify that the insn satisfies its
7280         constraints after replacing a register address with an autoincrement
7281         address for reload inheritance purposes.
7282
7283         * i386.md (doubleword shifts): Avoid namespace pollution.
7284
7285 Wed Dec 30 23:00:28 1998  David O'Brien  <obrien@NUXI.com>
7286
7287         * configure.in (FreeBSD ELF): Needs special crt files.
7288
7289 Wed Dec 30 22:50:13 1998  Geoffrey Noer  <noer@cygnus.com>
7290
7291         * i386/xm-cygwin.h: Change DIR_SEPARATOR to forward slash.
7292
7293 1998-12-30  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
7294
7295         * loop.c (check_dbra_loop): While reversing the loop, if the
7296         comparison value has a VOID mode use the mode of the other operand
7297         to compute the mask.
7298
7299 Wed Dec 30 22:24:00 1998  Michael Meissner  <meissner@cygnus.com>
7300
7301         * rs6000.md ({save,restore}_stack_function): Take 2 operands to
7302         avoid warnings in compiling explow.c.
7303
7304         (patch from Ken Raeburn, raeburn@cygnus.com)
7305         * rs6000.c (rs6000_stack_info): Force 8-byte alignment of
7306         fpmem_offset.  Compute total size after that, and then
7307         rs6000_fpmem_offset using both values.
7308
7309 Mon Dec 28 19:26:32 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7310
7311         * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in
7312         the future; indeed that already happens in some cases.
7313
7314 Tue Dec 29 11:58:53 1998  Richard Henderson  <rth@cygnus.com>
7315
7316         * sparc.c (input_operand): Recognize (const (constant_p_rtx)).
7317         (arith_operand): Remove constant_p_rtx handling.
7318         (const64_operand, const64_high_operand): Likewise.
7319         (arith11_operand, arith10_operand, arith_double_operand): Likewise.
7320         (arith11_double_operand, arith10_double_operand, small_int): Likewise.
7321         (small_int_or_double, uns_small_int, zero_operand): Likewise.
7322         * sparc.h (PREDICATE_CODES): Likewise.
7323
7324         * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX.
7325
7326 Tue Dec 29 11:32:54 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7327
7328         * rtl.def (CONSTANT_P_RTX): Clarify commentary.
7329         * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to
7330         consider constant CONSTRUCTOR constant and to defer some cases
7331         to cse.
7332         * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX.
7333         * regclass.c (reg_scan_mark_refs, case CONST): Likewise.
7334
7335 Tue Dec 29 11:30:10 1998  Richard Henderson  <rth@cygnus.com>
7336
7337         * expr.c (init_expr_once): Kill can_handle_constant_p recognition.
7338         * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code.
7339
7340         * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling.
7341         (reg_or_8bit_operand, cint8_operand, add_operand): Likewise.
7342         (sext_add_operand, and_operand, or_operand): Likewise.
7343         (reg_or_cint_operand, some_operand, input_operand): Likewise.
7344         * alpha.h (PREDICATE_CODES): Likewise.
7345
7346 Sat Dec 26 23:26:26 1998  Jeff Law  (law@cygnus.com)
7347
7348         * version.c: Bump for snapshot.
7349
7350 Sat Dec 26 09:17:04 1998  Jeffrey A Law  (law@cygnus.com)
7351
7352         * gengenrtl.c (gencode): Always use bzero to clear memory instead
7353         of dangerous casts and stores.
7354
7355         * Makefile.in (compare, gnucompare): Add missing else true clauses.
7356
7357 Fri Dec 25 23:00:56 1998  Jeffrey A Law  (law@cygnus.com)
7358
7359         * alpha.md (builtin_longjmp): Add missing "DONE".
7360
7361 Thu Dec 24 10:39:57 1998  Stan Cox  <scox@cygnus.com>
7362
7363         * gcc.c (execute): Enable -pipe with win32.
7364
7365 Wed Dec 23 10:27:44 1998  Nick Clifton  <nickc@cygnus.com>
7366
7367         * config/arm/t-arm-elf: Add multiplib option for leading
7368         underscores.
7369
7370         * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable
7371         'user_label_prefix' rather than macro USER_LABEL_PREFIX.
7372
7373         (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather
7374         than variable 'reload_address_base_reg_class'.  [Note this
7375         change is unrelated to the others in this patch].
7376
7377         * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no
7378         leading underscore.
7379
7380 Wed Dec 23 09:51:32 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7381
7382         * alias.c (record_alias_subset): Remove ignored `&'.
7383         (init_alias_once): Likewise.
7384
7385         * c-lex.c (UNGETC): Cast first argument of comma expression to void.
7386
7387         * config/mips/mips.c (mips_asm_file_end): Cast the result of
7388         fwrite to `int' when comparing against one.
7389
7390         * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
7391         (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
7392
7393         * cse.c (rehash_using_reg): Change type of variable `i' to
7394         unsigned int.
7395
7396         * dwarf2out.c (initial_return_save): Cast -1 to unsigned before
7397         assigning it to one.
7398
7399         * except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
7400
7401         * final.c (final_scan_insn): Likewise for variable `i'.
7402         (output_asm_insn): Cast a char to unsigned char when used as an
7403         array index.
7404
7405         * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
7406         assigning it to one.
7407
7408         * loop.c (strength_reduce): Remove unused variables `count' and `temp'.
7409
7410         * recog.c (preprocess_constraints): Cast a char to unsigned char
7411         when used as an array index.
7412
7413         * regmove.c (find_matches): Likewise.
7414
7415         * reload1.c (calculate_needs): Add default case in switch.
7416         (eliminate_regs_in_insn): Initialize variable `offset'.
7417         (set_offsets_for_label): Change type of variable `i' to unsigned.
7418         (reload_as_needed): Wrap variable `i' in macro check on
7419         AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
7420
7421         * scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
7422         with ATTRIBUTE_UNUSED.  Cast variable `start_written' to size_t
7423         when comparing against one.
7424
7425         * stor-layout.c (layout_decl): Cast maximum_field_alignment to
7426         unsigned when comparing against one.  Likewise for
7427         GET_MODE_ALIGNMENT().
7428         (layout_record): Cast record_align to int when comparing against a
7429         signed value.
7430         (layout_type): Cast TYPE_ALIGN() to int when comparing against a
7431         signed value.
7432
7433         * tree.c (get_identifier): Cast variable `len' to unsigned when
7434         comparing against one.
7435         (maybe_get_identifier): Likewise
7436
7437 Wed Dec 23 00:10:01 1998  Jeffrey A Law  (law@cygnus.com)
7438
7439         * toplev.c (rest_of_compilation): Do not set reload_completed.
7440         * reload1.c (reload): Set reload_completed before calling
7441         cleanup_subreg_operands.
7442
7443 Tue Dec 22 23:58:31 1998  Richard Henderson  <rth@cygnus.com>
7444
7445         * reload1.c (emit_reload_insns): Check `set' not null before use.
7446
7447 Tue Dec 22 15:15:45 1998  Nick Clifton  <nickc@cygnus.com>
7448
7449         * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to
7450         'int'.
7451
7452 Tue Dec 22 13:55:44 1998  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
7453
7454         * halfpic.c (half_pic_encode): Delete redundant code.
7455
7456 Tue Dec 22 13:02:22 1998  Michael Meissner  <meissner@cygnus.com>
7457
7458         * toplev.c (main): Delete handling of -dM as a preprocessor
7459         option.
7460
7461 Mon Dec 21 17:39:38 1998  Michael Meissner  <meissner@cygnus.com>
7462
7463         * toplev.c (main): Don't emit any warnings when using -dD, -dM, or
7464         -dI, which are handled by the preprocessor.
7465
7466 Sun Dec 20 16:13:44 1998  John F. Carr  <jfc@mit.edu>
7467
7468         * configure.in: Handle Digital UNIX 5.x the same as 4.x.
7469         * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".".
7470
7471 Sun Dec 20 07:39:52 1998  Jeff Law  (law@cygnus.com)
7472
7473         * version.c: Bump for snapshot.
7474
7475 Sat Dec 19 22:24:22 1998  Jeff Law  (law@cygnus.com)
7476
7477         * version.c: Bump for snapshot.
7478
7479 Sat Dec 19 21:41:32 1998  Jeff Law  (law@cygnus.com)
7480
7481         * version.c: Bump for snapshot.
7482
7483 Sat Dec 19 09:52:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7484
7485         * genattr.c (fatal): Qualify a char* with the `const' keyword.
7486
7487         * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set,
7488         write_unit_name, write_eligible_delay, expand_units,
7489         make_length_attrs, write_attr_case, find_attr,
7490         make_internal_attr): Likewise.
7491         * gencheck.c (tree_codes): Likewise.
7492         * gencodes.c (fatal): Likewise.
7493         * genconfig.c (fatal): Likewise.
7494         * genemit.c (fatal): Likewise.
7495         * genextract.c (fatal, walk_rtx, copystr): Likewise.
7496         * genflags.c (fatal): Likewise.
7497         * genopinit.c (fatal, optabs, gen_insn): Likewise.
7498         * genoutput.c (fatal, error, predicates): Likewise.
7499         * genpeep.c (fatal): Likewise.
7500         * genrecog.c (fatal, decision, pred_table, add_to_sequence,
7501         write_tree_1, write_tree, change_state, copystr, indents): Likewise.
7502
7503 Thu Dec 17 18:21:49 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7504
7505         * configure.in (with-fast-fixincludes): Fix whitespace.
7506         * configure: Rebuilt.
7507
7508         * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific
7509         asm() etc. function declarations in __DECC.
7510
7511 Thu Dec 17 13:57:23 1998  Nick Clifton  <nickc@cygnus.com>
7512
7513         * expr.c (emit_move_insn_1): Only emit a clobber if the target
7514         is a pseudo register.
7515
7516 Thu Dec 17 13:50:29 1998  Nick Clifton  <nickc@cygnus.com>
7517
7518         * gcse.c: Include expr.h in order to get the prototype for
7519         get_condition() which is used in delete_null_pointer_checks().
7520
7521 Thu Dec 17 15:58:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7522
7523         * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros.
7524
7525 Thu Dec 17 12:31:12 1998  Jim Wilson  <wilson@cygnus.com>
7526
7527         * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS.
7528         (ALL_CFLAGS): Delete SCHED_CFLAGS.
7529
7530 1998-12-17  Vladimir N. Makarov  <vmakarov@cygnus.com>
7531
7532         * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of
7533         ';').
7534
7535 1998-12-17  Michael Tiemann  <tiemann@axon.cygnus.com>
7536
7537         * i960.md (extend*, zero_extend*): Don't generate rtl that looks
7538         like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides
7539         optimizations from the combiner.
7540
7541 Thu Dec 17 08:27:03 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7542
7543         * loop.c (combine_givs_used_by_other): Don't depend on n_times_set.
7544
7545 Wed Dec 16 17:30:35 1998  Nick Clifton  <nickc@cygnus.com>
7546
7547         * toplev.c (main): Disable optimize_size if a specific
7548         optimization level is requested.  Always set optimization
7549         level to 2 if -Os is specified.
7550
7551 Wed Dec 16 16:33:04 1998  Dave Brolley  <brolley@cygnus.com>
7552
7553         * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
7554         cpplib.
7555         * cpplib.c (cpp_start_read): If in_fname is not initialized, try to
7556         initialize it using fname.
7557
7558 1998-12-16  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7559
7560         * cpplib.c (do_include): Treat #include_next in the
7561         primary source file as #include plus warning.  Treat
7562         #include_next in a file included by absolute path as an
7563         error.  fp == CPP_NULL_BUFFER is a fatal inconsistency.
7564
7565 Wed Dec 16 12:28:54 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7566
7567         * cccp.c: Don't define MIN/MAX anymore.
7568         * cpplib.c: Likewise.
7569         * machmode.h: Likewise.
7570         * system.h: Provide definitions for MIN/MAX.
7571
7572 Tue Dec 15 23:47:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7573
7574         * fix-header.c: Don't define xstrdup here.
7575
7576 Wed Dec 16 05:11:04 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7577
7578         * loop.c (consec_sets_giv): New argument last_consec_insn.
7579         (strength_reduce): Provide / use it.
7580
7581 Wed Dec 16 17:24:07 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7582
7583         * loop.h (loop_info): New field 'vtop'.
7584         * loop.c (check_dbra_loop): Use loop_info->vtop rather than
7585         scanning loop for vtop.
7586         * unroll.c (subtract_reg_term, find_common_reg_term): New functions.
7587         (loop_iterations): Use them to determine if loop has a constant
7588         number of iterations.  Set loop_info->vtop.  Don't subtract
7589         common reg term from initial_value and final_value if have a
7590         do-while loop.
7591
7592 Tue Dec 15 13:49:55 1998  Jeffrey A Law  (law@cygnus.com)
7593
7594         * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2.
7595
7596         * mn10300.md (bset, bclr): Operand 0 is a read/write operand.
7597
7598         * mn10200.md (abssf2, negsf2): New expanders.
7599
7600         * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders.
7601
7602 Tue Dec 15 11:55:30 1998  Nick Clifton  <nickc@cygnus.com>
7603
7604         * integrate.c (copy_rtx_and_substitute): If a SUBREG is
7605         replaced by a CONCAT whose components do not have the same
7606         mode as the original SUBREG, use a new SUBREG to restore the
7607         mode.
7608
7609         * emit-rtl.c (subreg_realpart_p): Cope with subregs containing
7610         multiword complex values.
7611
7612 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7613
7614         * cppalloc.c: Add xstrdup here.
7615         * cpplib.h: Remove savestring prototype.
7616         * cpplib.c: Remove savestring function. s/savestring/xstrdup/
7617           throughout.
7618         * cppfiles.c: s/savestring/xstrdup/ throughout.
7619
7620 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7621
7622         * cpplib.c: Make all directive handlers read their own
7623           arguments.
7624           (struct directive): Remove last two arguments from FUNC
7625           member prototype. Remove `command_reads_line' member
7626           entirely.
7627           (directive_table): Remove initializations of
7628           command_reads_line flag.  Pretty-print.
7629           (eval_if_expression, do_define, do_line, do_include,
7630           do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef,
7631           do_else, do_elif, do_sccs, do_assert, do_unassert,
7632           do_warning): Take only two args.
7633
7634           (cpp_define): Call do_define with two args and the text to
7635           define stuffed into a buffer.
7636           (make_assertion): Call do_assert with two args.
7637           (handle_directive): Call do_line with two args. Call
7638           kt->func with two args.  Remove command_reads_line
7639           processing.
7640           (do_define, do_undef, do_error, do_warning, do_pragma,
7641           do_sccs): Read the rest of the line here.
7642           (do_ident): Gobble rest of line, as cccp does.
7643           (cpp_undef): New function.
7644           (cpp_start_read): Call cpp_undef instead of do_undef.
7645
7646 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7647
7648         * cpphash.h (union hash_value): Remove `keydef' member, add a
7649           `struct hashnode *aschain' member for #assert.
7650
7651         * cpplib.c (struct tokenlist_list, struct
7652           assertion_hashnode): Delete structure definitions.
7653           (assertion_install, assertion_lookup, delete_assertion,
7654           check_assertion, compare_token_lists, reverse_token_list,
7655           read_token_list, free_token_list): Delete functions.
7656           (parse_assertion): New function.
7657           (cpp_cleanup): Don't destroy the assertion_hashtable.
7658
7659           (do_assert): Gut and rewrite.  #assert foo (bar) places
7660           entries for `#foo' and `#foo(bar)' in the macro hash table,
7661           type T_ASSERT.  The value union's `aschain' member is used
7662           to chain all answers for a given predicate together.
7663           (do_unassert): Also rewritten.  Take an un-asserted
7664           answer off the chain from its predicate and call
7665           delete_macro on the hashnode, or walk a predicate chain
7666           calling delete_macro on all the entries.
7667           (cpp_read_check_assertion): Simply call parse_assertion to
7668           get the canonical assertion name, and look that up in the
7669           hash table.
7670
7671         * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab):
7672         Removed.
7673
7674         * cpphash.c (install): Use bcopy instead of an explicit loop
7675           to copy the macro name.
7676
7677         * cppexp.c (cpp_lex): Convert the result of
7678           cpp_read_check_assertion to a `struct operation' directly;
7679           don't go through parse_number.
7680
7681 Tue Dec 15 18:27:39 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7682
7683         * loop.h (struct induction): Delete times_used member.
7684         * loop.c (n_times_set): Rename to set_in_loop.  Changed all users.
7685         (n_times_used): Rename to n_times_set.  Changed all users.
7686         (scan_loop): Free reg_single_usage before strength reduction.
7687         (record_giv, combine_givs): Remove handling of times_used member.
7688         (combine_givs_used_once): Rename to:
7689         (combine_givs_used_by_other) .  Changed all callers.
7690
7691 Tue Dec 15 01:45:26 1998  Jason Merrill  <jason@yorick.cygnus.com>
7692
7693         * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P
7694         instead of TREE_CODE_CLASS == 't'.
7695         (gen_type_die): Likewise.
7696         (scope_die_for): Ignore FUNCTION_TYPE "scopes".
7697
7698 Mon Dec 14 16:23:27 1998  Jim Wilson  <wilson@cygnus.com>
7699
7700         * real.c (endian): Disable last change unless
7701         HOST_BITS_PER_WIDE_INT is greater than 32.
7702
7703 Mon Dec 14 17:13:36 1998  Andrew MacLeod  <amacleod@cygnus.com>
7704
7705         * output.h (force_data_section): New prototype.
7706         * varasm.c (force_data_section): New function to force the
7707         data section, regardless of what in_section thinks.
7708         * dwarf2out.c (output_call_frame_info): Call force_data_section
7709         since varasm may not realize we've changes sections.
7710
7711 Mon Dec 14 14:09:34 1998  Nick Clifton  <nickc@cygnus.com>
7712
7713         * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes
7714           after completing reload.
7715
7716         * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are
7717           deleted after reload.
7718
7719 Mon Dec 14 01:39:28 1998  Jeffrey A Law  (law@cygnus.com)
7720
7721         * rtl.h (multiple_sets): Fix prototype.
7722         * rtlanal.c (multiple_sets): Fix return type.
7723
7724 Sun Dec 13 12:43:58 1998  Jeff Law  (law@cygnus.com)
7725
7726         * version.c: Bump for snapshot.
7727
7728 Sun Dec 13 01:05:22 1998  Jeff Law  (law@cygnus.com)
7729
7730         * version.c: Bump for snapshot.
7731
7732 1998-12-13  Manfred Hollstein  <manfred@s-direktnet.de>
7733
7734         * protoize.c (fputs): Wrap extern declaration in #ifndef fputs.
7735
7736 Sun Dec 13 00:24:14 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7737
7738         * rtl.h (recompute_reg_usage): Add second argument.
7739         * flow.c (recompute_reg_usage): Likewise.
7740         * toplev.c (rest_of_compilation): Supply second argument to
7741         recompute_reg_usage.
7742
7743         * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0
7744         after reload.
7745
7746 Sat Dec 12 23:39:10 1998  Jeffrey A Law  (law@cygnus.com)
7747
7748         * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32.
7749         (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000.
7750         (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000,
7751         mcpu32 or m5200.
7752
7753         * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character.
7754
7755         * rtlanal.c (multiple_sets): New function.
7756         * rtl.h (multiple_sets): Declare it.
7757         * local-alloc.c (wipe_dead_reg): Use it.
7758         * global.c (global_conflicts): Likewise.
7759
7760 Sat Dec 12 22:13:02 1998  Mark Mitchell  <mark@markmitchell.com>
7761
7762         * global.c (record_conflicts): Don't use an array of shorts to
7763         store an array of ints.
7764         (global_conflicts): Likewise.
7765
7766 Sat Dec 12 16:49:24 1998  Richard Henderson  <rth@cygnus.com>
7767
7768         * alpha.c (alpha_expand_block_move): mode_for_size expects
7769         bits, not bytes.  Infer extra alignment from addressof.
7770
7771 1998-12-11  Michael Meissner  <meissner@cygnus.com>
7772
7773         * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the
7774         .sbss section, not .sdata.
7775
7776 1998-12-11  Manfred Hollstein  <manfred@s-direktnet.de>
7777
7778         * cccp.c: Do not #include <sys/stat.h> here; this is already done
7779         by "system.h".
7780         * collect2.c: Likewise.
7781         * cpplib.h: Likewise.
7782         * gcc.c: Likewise.
7783         * gcov.c: Likewise.
7784         * getpwd.c: Likewise.
7785         * protoize.c: Likewise.
7786         * toplev.c: Likewise.
7787
7788         * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h"
7789         and don't try to define it here.
7790         * Makefile.in (cppmain.o): Depend on machmode.h.
7791         (cpplib.o): Likewise.
7792         (cpperror.o): Likewise.
7793         (cppexp.o): Likewise.
7794         (cppfiles.o): Likewise.
7795         (cpphash.o): Likewise.
7796         (cppalloc.o): Likewise.
7797         (fix-header.o): Likewise.
7798         (scan-decls.o): Likewise.
7799
7800 Fri Dec 11 11:02:49 1998  Stan Cox  <scox@cygnus.com>
7801
7802         * sh.c (print_operand): Lookup interrupt_handler attribute instead
7803         of relying on static variable.
7804         * (calc_live_regs): Likewise.
7805         * (sh_pragma_insert_attributes): Create interrupt_handler
7806         attribute if a pragma was specified.
7807         * (sh_valid_machine_decl_attribute): Don't set static flag.
7808         * sh.h (PRAGMA_INSERT_ATTRIBUTES): New.
7809
7810 Fri Dec 11 12:56:07 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7811
7812         * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START
7813         to determine if a register is live at a jump destination.
7814         Everything is dead at a BARRIER.
7815
7816 Thu Dec 10 16:02:06 1998  Jim Wilson  <wilson@cygnus.com>
7817
7818         * cse.c (simplify_unary_operation): Sign-extend constants when
7819         they have the most significant bit set for the target.
7820         * real.c (endian): Sign-extend 32 bit output values on a 64 bit
7821         host.
7822         * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in
7823         HOST_WIDE_INT temporary before negating it.
7824         * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000.
7825
7826 Thu Dec 10 15:05:59 1998  Dave Brolley  <brolley@cygnus.com>
7827
7828         * objc/objc-act.c (lang_init_options): Enclose cpplib related code in
7829         #if USE_CPPLIB.
7830
7831 Thu Dec 10 13:39:46 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7832
7833         * collect2.h: New header file for prototypes.
7834
7835         * Makefile.in (collect2.o, tlink.o): Depend on collect2.h.
7836
7837         * collect2.c: Include collect2.h.
7838         * tlink.c: Likewise.
7839
7840 Wed Dec  9 23:55:11 1998  Jeffrey A Law  (law@cygnus.com)
7841
7842         * flow.c: Update some comments.
7843
7844 Wed Dec  9 15:29:26 1998  Dave Brolley  <brolley@cygnus.com>
7845
7846         * objc/objc-act.c (cpp_initialized): Removed.
7847         (lang_init_options): Initialize cpplib.
7848         (lang_decode_option): Move initialization of cpplib to
7849         lang_init_options.
7850         * c-lang.c (parse_options,parse_in): Added.
7851         (lang_init_options): Initialized cpplib here.
7852         * c-decl.c (parse_options,cpp_initialized): Removed.
7853         (c_decode_option): Move initialization of cpplib to
7854         lang_init_options.
7855
7856 Wed Dec  9 19:36:57 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7857
7858         * reload1.c (reload_combine, reload_combine_note_store):
7859         Make STORE_RUID always valid.
7860         (reload_combine): Check if BASE is clobbered too early.
7861
7862 Wed Dec  9 09:53:58 1998  Nick Clifton  <nickc@cygnus.com>
7863
7864         * reload.c (find_reloads): Display the insn that cannot be
7865         reloaded.
7866
7867 Wed Dec  9 12:15:26 1998  Dave Brolley  <brolley@cygnus.com>
7868
7869         * cccp.c (create_definition): Fix end of buffer logic.
7870
7871 Wed Dec  9 10:15:45 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7872
7873         * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function
7874         pointer parameters changed to use the PARAMS() macro.
7875
7876 Wed Dec  9 09:12:40 1998  Andrew MacLeod  <amacleod@cygnus.com>
7877
7878         * except.h (struct handler_info): Add handler_number field.
7879         * except.c (gen_exception_label): EH labels no longer need to be
7880         on the permanent obstack.
7881         (get_new_handler): Set the label number field.
7882         (output_exception_table_entry): Regenerate handler label reference
7883         from the label number field.
7884         (init_eh): Remove a blank line.
7885         * integrate.c (get_label_from_map): Labels no longer need to be
7886         on the permanent obstack.
7887
7888 Tue Dec  8 22:04:33 1998  Jim Wilson  <wilson@cygnus.com>
7889
7890         * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand
7891         only when OUTER_CODE is SET.
7892
7893 Tue Dec  8 22:47:15 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7894
7895         * loop.c (strength_reduce): If scan_start points to the loop exit
7896         test, be wary of subversive use of gotos inside expression statements.
7897         Don't set maybe_multiple for a backward jump that does not
7898         include the label under consideration into its range.
7899         * unroll.c (biv_total_increment): Make use of maybe_multiple field.
7900
7901 Tue Dec  8 22:33:18 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
7902
7903         * explow.c (plus_constant_wide): Don't immediately return with
7904         result of recursive call.
7905
7906 Tue Dec  8 15:32:56 1998  Andrew MacLeod  <amacleod@cygnus.com>
7907
7908         * eh-common.h (struct eh_context): Add table_index for rethrows.
7909
7910         * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes.
7911         (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be
7912         processed when inlined or unrolled (ie duplicated in some way).
7913
7914         * rtl.c (reg_note_name): Add strings for new reg_note enums.
7915
7916         * expr.h (rethrow_libfunc): New library decl.
7917
7918         * optabs.c (rethrow_libfunc): Initialize.
7919
7920         * except.h (struct eh_entry): Add new field 'rethrow_label'.
7921         (new_eh_region_entry): No longer exported from except.c.
7922         (duplicate_handlers): Renamed to duplicate_eh_handlers and
7923         different prototype.
7924         (rethrow_symbol_map, rethrow_used): New exported functions.
7925         (eh_region_from_symbol): New exported function.
7926
7927         * except.c (create_rethrow_ref): New function to create a single
7928         SYMBOL_REF for a rethrow region.
7929         (push_eh_entry): Initialize a rethrow ref.
7930         (func_eh_entry): Add a rethrow_label field.
7931         (new_eh_region_entry): Make static, and initialize the rethrow entry.
7932         (duplicate_eh_handlers): Create a new region, and remap labels/symbols.
7933         (eh_region_from_symbol): Find an EH region based on its rethrow symbol.
7934         (rethrow_symbol_map): Given a label map, maps a rethrow symbol for
7935         a region into an appropriate new symbol.
7936         (rethrow_used): Indicate whether a rethrow symbol has been referenced.
7937         (expand_eh_region_end): Don't issue jump around code for new-exceptions.
7938         (end_catch_handler): Emit a barrier for new-exceptions since
7939         control can never drop through the end of a catch block.
7940         (expand_end_all_catch): new-exceptions never fall through a catch
7941         block.
7942         (expand_rethrow): Use __rethrow routine for new exceptions.
7943         (output_exception_table_entry): Generate rethrow labels, if needed.
7944         (output_exception_table): Generate start and end rethrow labels.
7945         (init_eh): Create rethrow symbols for beginning and end of table.
7946         (scan_region): Don't eliminate EH regions which are the targets of
7947         rethrows.
7948
7949         * flow.c (make_edges): Add different edges for rethrow calls,
7950         identified by having the REG_EH_RETHROW reg label.
7951         (delete_unreachable_blocks): Don't delete regions markers which are
7952         the target of a rethrow.
7953
7954         * integrate.c (save_for_inline_eh_labelmap): New callback routine to
7955         allow save_for_inline_copying to call duplicate_eh_handlers.
7956         (save_for_inline_copying): Call duplicate_eh_handlers instead of
7957         exposing internal details of exception regions.
7958         (copy_for_inline): Check if SYMBOL_REFs need adjustment.
7959         (expand_inline_function_eh_labelmap): New callback routine to
7960         allow expand_inline_function to call duplicate_eh_handlers.
7961         (expand_inline_function): Call duplicate_eh_handlers instead of
7962         exposing internal details of exception regions.
7963         (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST
7964         flag is set.
7965
7966         * libgcc2.c (find_exception_handler): Generalize to enable it to
7967         pick up processing where it left off last time for a rethrow.
7968         (__unwinding_cleanup): New function. debug hook which is called before
7969         unwinding when __throw finds there is nothing but cleanups left.
7970         (throw_helper): Common parts of __throw extracted out for reuse.
7971         (__throw): Common parts moved to throw_helper.
7972         (__rethrow): New function for performing rethrows.
7973
7974 Tue Dec  8 13:11:04 1998  Jeffrey A Law  (law@cygnus.com)
7975
7976         * reload1.c (current_function_decl): Tweak declaration.
7977
7978 Tue Dec  8 10:23:52 1998  Richard Henderson  <rth@cygnus.com>
7979
7980         * c-decl.c (flag_isoc9x): Default off.
7981         (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x.
7982         * cccp.c (print_help, main): Likewise.
7983         * gcc.c (default_compilers): Update for -std=gnu*.
7984
7985 Tue Dec  8 01:14:46 1998  Jeffrey A Law  (law@cygnus.com)
7986
7987         * Makefile.in (DEMANGLE_H): Change location to shared demangle.h.
7988         * demangle.h: Deleted.
7989
7990         * reload1.c (current_function_decl): Declare.
7991
7992 Tue Dec  8 11:58:51 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7993
7994         * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'.
7995
7996 Tue Dec  8 09:28:36 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7997
7998         * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set.
7999
8000 1998-12-08  Ulrich Drepper  <drepper@cygnus.com>
8001
8002         * configure.in: Test for availability of putc_unlocked, fputc_unlocked,
8003         and fputs_unlocked.
8004         * configure: Rebuilt.
8005         * system.h: If the *_unlocked functions are available use them
8006         instead of the locked counterparts by defining macros.
8007         * config.in: Regenerated.
8008
8009 Tue Dec  8 00:34:05 1998  Mike Stump  <mrs@wrs.com>
8010
8011         * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is
8012         wrong and should only be used for dump related things, not
8013         debugging information, instead main_input_filename should be used.
8014         Also, reuse output_file_directive if possible.
8015         * i386/aix386ng.h (ASM_FILE_START): Likewise.
8016         * i386/isc.h (ASM_FILE_START): Likewise.
8017         * i386/win-nt.h (ASM_FILE_START): Likewise.
8018         * i386/sun386.h (ASM_FILE_START): Likewise.
8019
8020 Mon Dec  7 23:56:28 1998  Robert Lipe  <robertl@dgii.com>
8021
8022         * configure.in (mips*-*-linux*): Handle big and little endian
8023         systems.
8024         * configure: Rebuilt.
8025
8026 Mon Dec  7 23:14:51 1998  Mike Stump  <mrs@wrs.com>
8027
8028         * emit-rtl.c: Fix typo.
8029
8030 Mon Dec  7 23:07:38 1998  Nathan Sidwell  <nathan@acm.org>
8031
8032         * reload1.c (eliminate_regs): Don't do anything, if we're not
8033         generating code.
8034
8035 Mon Dec  7 15:27:09 1998  DJ Delorie  <dj@cygnus.com>
8036
8037         * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA.
8038         Add comment.
8039         * mips/mips.c (mips_select_section): Add comment.
8040
8041 Mon Dec  7 17:55:06 1998  Mike Stump  <mrs@wrs.com>
8042
8043         * cccp.c (ignore_escape_flag): Add support for \ as `natural'
8044         characters in file names in #line to be consistent with #include
8045         handling.  We support escape processing in the # 1 "..." version of
8046         the command.  See also support in cp/lex.c.
8047         (handle_directive): Likewise.
8048         (do_line): Likewise.
8049
8050 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
8051
8052         * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM
8053           so it'll work on non-ASCII platforms.  Always consider $ an
8054           identifier character.  Take no arguments.
8055           (cpp_reader_init): Call initialize_char_syntax with no
8056           arguments.
8057           (cpp_start_read): Don't call initialize_char_syntax again.
8058           Clear is_idchar['$'] and is_idstart['$'] if not
8059           opts->dollars_in_ident.
8060
8061         * cpplib.h (struct cpp_reader): Replace void *data element by
8062           cpp_options *opts.  Rearrange elements to make gdb printout
8063           less annoying (put buffer stack at end).
8064           (CPP_OPTIONS): Get rid of now-unnecessary cast.
8065
8066         * cppmain.c: s/data/opts/ when initializing cpp_reader
8067           structure.
8068         * c-decl.c: Likewise.
8069         * objc/objc-act.c: Likewise.
8070         * fix-header.c: Likewise.
8071
8072 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
8073
8074         * cpplib.h (struct cpp_buffer): Replace dir and dlen members
8075         with a struct file_name_list pointer.
8076         (struct cpp_reader): Add pointer to chain of `actual
8077         directory' include searchpath entries.
8078         (struct file_name_list): Add *alloc pointer for the sake of
8079         the actual-directory chain.
8080
8081         Move definition of HOST_WIDE_INT here.
8082         (cpp_parse_escape): Change prototype to match changes in
8083         cppexp.c.
8084
8085         * cppfiles.c (actual_directory): New function.
8086         (finclude): Use it to initialize the buffer's actual_dir
8087         entry.
8088         (find_include_file): We don't need to fix up max_include_len
8089         here.
8090
8091         * cpplib.c (do_include): Don't allocate a file_name_list on
8092         the fly for current directory "" includes, use the one that's
8093         been preallocated in pfile->buffer->actual_dir.  Hoist out
8094         duplicate code from the search_start selection logic.
8095         (cpp_reader_init): Initialize pfile->actual_dirs.
8096
8097         Remove definition of HOST_WIDE_INT.  Change calls
8098         to cpp_parse_escape to match changes in cppexp.c (note
8099         hardcoded MASK, which is safe since this is the source
8100         character set).
8101
8102         * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c
8103         to handle wide character constants in #if directives.  The
8104         function now returns a HOST_WIDE_INT, and takes a third
8105         argument which is a binary mask for all legal values (0x00ff
8106         for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.)  Define
8107         MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK.  Change callers of
8108         cpp_parse_escape to match.  [Fixes c-torture/execute/widechar-1.c]
8109
8110 Mon Dec  7 15:38:25 1998  Dave Brolley  <brolley@cygnus.com>
8111
8112         * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1.
8113
8114 Mon Dec  7 15:38:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8115
8116         * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB.
8117         * cppalloc.c: Move function `xcalloc' from cpplib.c to here.
8118         * cpplib.c: Move function `xcalloc' from here to cppalloc.c.
8119
8120 Mon Dec  7 11:30:49 1998  Nick Clifton  <nickc@cygnus.com>
8121
8122         * final.c (output_asm_name): Use tabs to separate comments from
8123         assembly text.
8124
8125         Include instruction lengths (if defined) in output.
8126
8127 Mon Dec  7 10:53:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8128
8129         * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value
8130         in the loop_info structure.
8131
8132 Mon Dec  7 11:04:40 1998  Catherine Moore  <clm@cygnus.com>
8133
8134         * configure.in (arm*-*-ecos-elf): New target.
8135         * configure: Regenerated.
8136         * config/arm/elf.h (ASM_WEAKEN_LABEL): Define.
8137         * config/arm/ecos-elf.h: New file.
8138         * config/arm/unknown-elf.h (TARGET_VERSION): Check
8139         for redefinition.
8140
8141 Mon Dec  7 16:15:51 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
8142
8143         * sh.c (output_far_jump): Emit braf only for TARGET_SH2.
8144
8145 Sun Dec  6 04:19:45 1998  Jeff Law  (law@cygnus.com)
8146
8147         * version.c: Bump for snapshot.
8148
8149 Sun Dec  6 05:16:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8150
8151         * loop.c (check_dbra_loop): New argument loop_info.  Update fields
8152         as needed.
8153
8154 Sun Dec  6 03:40:13 1998  Jeff Law  (law@cygnus.com)
8155
8156         * version.c: Bump for snapshot.
8157
8158 Sun Dec  6 07:49:29 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
8159
8160         * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger
8161         compressed reports are ok and preferred over URLs.
8162
8163 Sun Dec  6 07:45:33 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
8164
8165         * invoke.texi (Warning Options): Soften the tone of -pedantic.
8166
8167 Sun Dec  6 00:20:44 1998  H.J. Lu  (hjl@gnu.org)
8168
8169         * print-rtl.c (print_rtx): Add prototype.
8170
8171         * unroll.c (iteration_info): Make it static.
8172
8173 Sun Dec  6 01:19:46 1998  Richard Henderson  <rth@cygnus.com>
8174
8175         * alias.c (memrefs_conflict_p): A second ANDed address
8176         disables the aligned address optimization.
8177
8178 Sat Dec  5 18:48:25 1998  Richard Henderson  <rth@cygnus.com>
8179
8180         * alpha.c (alpha_emit_set_const_1): Fix parenthesis error
8181         in -c << n case.
8182
8183 Sat Dec  5 15:14:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
8184
8185         * i960.h (BOOL_TYPE_SIZE): Define.
8186
8187 Sun Dec  6 00:28:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8188
8189         * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality
8190         from old valid_parallel_operands_4.
8191         (valid_parallel_operands_4): Check that operands for 4 operand
8192         parallel insns are valid, excluding load/store insns.
8193         * config/c4x/c4x.h (valid_parallel_load_store): Add prototype.
8194         * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use
8195         valid_parallel_load_store instead of valid_parallel_operands_4.
8196         (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber,
8197         *negqf2_movqf_clobber, *absqi2_movqi_clobber,
8198         *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber,
8199         *notqi_movqi_clobber): Use valid_parallel_operands_4.
8200         (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber,
8201         *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber,
8202         *subqi3_movqi_clobber): Use valid_parallel_operands_5.
8203
8204 Sat Dec  5 23:52:01 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8205
8206         * config/c4x/c4x.c (iteration_info): Delete extern.
8207
8208 Fri Dec  4 20:15:57 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
8209
8210         * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality.
8211
8212         * final.c (cleanup_subreg_operands): Delete some unused code.
8213
8214         * recog.h (MAX_RECOG_ALTERNATIVES): New macro.
8215         (struct insn_alternative): New structure definition.
8216         (recog_op_alt): Declare variable.
8217         (preprocess_constraints): Declare function.
8218         * recog.c (recog_op_alt): New variable.
8219         (extract_insn): Verify number of alternatives is in range.
8220         (preprocess_constraints): New function.
8221         * reg-stack.c: Include recog.h.
8222         (constrain_asm_operands): Delete.
8223         (get_asm_operand_lengths): Delete.
8224         (get_asm_operand_n_inputs): New function.
8225         (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and
8226         N_OUTPUTS args.  All callers changed.
8227         Compute number of inputs and outputs here by calling
8228         get_asm_operand_n_inputs.
8229         Instead of constrain_asm_operands, call extract_insn,
8230         constrain_operands and preprocess_constraints.  Use information
8231         computed by these functions throughout.
8232         (record_reg_life): Delete code that is unused due to changes in
8233         record_asm_reg_life.
8234         (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS,
8235         N_INPUTS and N_OUTPUTS args.  All callers changed.
8236         Similar changes as in record_asm_reg_life.
8237         (subst_stack_regs): Move n_operands declaration into the if statement
8238         where it's used.
8239         Delete code that is unused due to changes in subst_asm_stack_regs.
8240         * stmt.c (expand_asm_operands): Verify number of alternatives is in
8241         range.
8242         * Makefile.in (reg-stack.o): Depend on recog.h.
8243
8244 Fri Dec  4 02:23:24 1998  Jeffrey A Law  (law@cygnus.com)
8245
8246         * except.c (set_exception_version_code): Argument is an "int".
8247
8248 Fri Dec  4 01:29:28 1998  Jeffrey A Law  (law@cygnus.com)
8249
8250         * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now.
8251         * configure: Rebuilt.
8252
8253 Fri Dec  4 01:29:28 1998  Robert Lipe  <robertl@dgii.com>
8254
8255         * configure.in (mipsel-*-linux*): New target.
8256         * mips/linux.h: New file, based on other Linux targets.
8257
8258 Thu Dec  3 11:19:50 1998  Mike Stump  <mrs@wrs.com>
8259
8260         * gthr-vxworks.h (__ehdtor): Fix memory leak.  The delete hook
8261         runs in the context of the deleter, not the deletee, so we must
8262         use taskVarGet to find the correct memory to free.
8263         (__gthread_key_create): Initialize the task
8264         variable subsystem so that the task variable is still active when
8265         the delete hook is run.
8266
8267 1998-12-03  Joseph S. Myers  <jsm28@cam.ac.uk>
8268
8269         * pdp11.h: Use optimize_size for space optimizations.
8270         * pdp11.c: Likewise.
8271         * pdp11.md: Likewise.
8272
8273         * pdp11.h (TARGET_40_PLUS): Fix typo.
8274
8275 Thu Dec  3 11:48:32 1998  Jeffrey A Law  (law@cygnus.com)
8276
8277         * local-alloc.c (block_alloc): Slightly retune heuristic to widen
8278         qty lifetimes.
8279
8280 Thu Dec  3 22:30:18 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8281
8282         * alias.c (addr_side_effect_eval): New function.
8283         (memrefs_conflict_p): Use it.
8284         * rtl.h (addr_side_effect_eval): Prototype it.
8285
8286 1998-12-02  Joseph S. Myers  <jsm28@cam.ac.uk>
8287
8288         * pdp11.md (extendsfdf2): Fix mode mismatch in SET.
8289
8290 Wed Dec  2 11:23:07 1998  Jim Wilson  <wilson@cygnus.com>
8291
8292         * reload.c (find_reloads): When force const to memory, put result
8293         in substed_operand not *recog_operand_loc.
8294
8295 1998-12-02  Ulrich Drepper  <drepper@cygnus.com>
8296
8297         * c-lex.c: Fix indentation from last patch.
8298         Remove trailing whitespace.
8299         * real.c: Likewise.
8300
8301 Wed Dec  2 10:11:12 1998  Jeffrey A Law  (law@cygnus.com)
8302
8303         * flow.c (delete_block): Call set_last_insn after we have reset
8304         NEXT_INSN (kept_tail).
8305
8306 Wed Dec  2 00:47:31 1998  Jeffrey A Law  (law@cygnus.com)
8307
8308         * mips.md (trap_if): Use "$0" for the value zero.
8309
8310 Tue Dec  1 20:49:49 1998  Ulrich Drepper  <drepper@cygnus.com>
8311                           Stephen L Moshier  <moshier@world.std.com>
8312                           Richard Henderson  <rth@cygnus.com>
8313
8314         * c-common.c (declare_function_name): Declare predefined variable
8315         `__func__'.
8316
8317         * c-decl.c (flag_isoc9x): Set to 1 by default.
8318         (c_decode_option): Handle -std= option.  Remove -flang-isoc9x.
8319         (grokdeclarator): Always emit warning about implicit int for ISO C 9x.
8320
8321         * c-parse.in: Allow constructors in ISO C 9x.
8322         Rewrite designator list handling.
8323         Allow [*] parameters.
8324         Don't warn about comma at end of enum definition for ISO C 9x.
8325
8326         * cccp.c (c9x): New variable.
8327         (rest_extension): New variable.
8328         (print_help): Document new -std= option.
8329         (main): Recognize -std= option.  Set c9x appropriately.
8330         (create_definition): Recognize ISO C 9x vararg macros.
8331
8332         * gcc.c (default_compilers): Adjust specs for -std options.
8333         (option_map): Add --std.
8334         (display_help): Document -std.
8335
8336         * toplev.c (documented_lang_options): Add -std and remove
8337         -flang-isoc9x.
8338
8339         * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
8340         or REAL_VALUE_HTOF based on base of the constants.
8341         * fold-const.c (real_hex_to_f): New function.  Replacement function
8342         for hex FP conversion if REAL_ARITHMETIC is not defined.
8343         * real.c (asctoeg): Add handling of hex FP constants.
8344         * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
8345         real_hex_to_f.
8346
8347 Tue Dec  1 16:45:49 1998  Stan Cox  <scox@cygnus.com>
8348
8349         * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add
8350         -mcheck-range-division/-mcheck-zero-division checking.  Avoid as macro
8351         expansion.  Use hi/lo as destination register.
8352         (div_trap): New.
8353         (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*,
8354         umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking.
8355         Avoid as macro expansion.  Use hi/lo as destination register.
8356
8357         * mips.h (MASK_CHECK_RANGE_DIV): New.
8358         (MASK_NO_CHECK_ZERO_DIV): New.
8359         (ELIMINABLE_REGS): Added GP_REG_FIRST + 31.
8360         (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting
8361         return address for leaf functions out of r31 to support
8362         builtin_return_address.
8363
8364 Tue Dec  1 15:03:30 1998  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
8365
8366         * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x),
8367         NEXT_INSN(x) to check insn x.
8368
8369 Tue Dec  1 15:20:44 1998  Jeffrey A Law  (law@cygnus.com)
8370
8371         * flow.c (delete_block): Call set_last_insn if we end up deleting the
8372         last insn in the rtl chain.
8373
8374         * reload1.c (reload): Do not set reload_completed or split insns
8375         here.  Instead...
8376         * toplev.c (rest_of_compilation): Set reload_completed after
8377         reload returns.  Split insns after reload_cse has run.
8378
8379 Tue Dec  1 11:55:04 1998  Richard Henderson  <rth@cygnus.com>
8380
8381         * final.c (final_scan_insn): Abort if block_depth falls below 0.
8382
8383 Tue Dec  1 10:23:16 1998  Nick Clifton  <nickc@cygnus.com>
8384
8385         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc.
8386
8387 Tue Dec  1 10:22:18 1998  Nick Clifton  <nickc@cygnus.com>
8388
8389         * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove
8390         use of user-label_prefix.
8391
8392 Tue Dec  1 17:58:26 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
8393
8394         * reload1.c (emit_reload_insns): Clear spill_reg_store
8395         when doing a new non-inherited reload from the same pseudo.
8396
8397         * local-alloc.c (function_invariant_p): New function.
8398         (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P
8399         to decide if an equivalence should be recorded.
8400         * reload1.c (num_eliminable_invariants): New static variable.
8401         (reload): Set it.  Use function_invariant_p instead of CONSTANT_P
8402         to decide if an equivalence should be recorded.
8403         Unshare PLUS.
8404         (calculate_needs_all_insns): Skip insns that only set an equivalence.
8405         Take num_eliminable_invariants into account when deciding
8406         if register elimination should be done.
8407         (reload_as_needed): Take num_eliminable_invariants into account
8408         when deciding if register elimination should be done.
8409         (eliminate_regs): Handle non-constant reg_equiv_constant.
8410         * rtl.h (function_invariant_p): Declare.
8411
8412 Mon Nov 30 02:00:08 1998  Jeff Law  (law@cygnus.com)
8413
8414         * version.c: Bump for snapshot.
8415
8416 Mon Nov 30 00:42:59 1998  Jeff Law  (law@cygnus.com)
8417
8418         * version.c: Bump for snapshot.
8419
8420 Sun Nov 29 22:59:40 1998  Jason Merrill  <jason@yorick.cygnus.com>
8421
8422         * except.c (add_new_handler): Complain about additional handlers
8423         after one that catches everything.
8424
8425 Sat Nov 28 10:56:32 1998  Jeffrey A Law  (law@cygnus.com)
8426
8427         * configure.in (alpha*-*-netbsd): Fix typo.
8428         * configure: Rebuilt.
8429
8430 Fri Nov 27 12:28:56 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8431
8432         * system.h: Include libiberty.h.
8433
8434         * c-aux-info.c: Remove prototypes for concat/concat3.  Change
8435         function `concat' from fixed parameters to variable parameters,
8436         as is done in libiberty.  All callers of concat/concat3
8437         changed to use the new `concat' with variable args.
8438
8439         * cccp.c: Remove things made redundant by libiberty.h and/or
8440         conform to libiberty standards.
8441         * cexp.y: Likewise.
8442         * collect2.c: Likewise.
8443         * config/1750a/1750a.h: Likewise.
8444         * cppalloc.c: Likewise.
8445         * cppexp.c: Likewise.
8446         * cppfiles.c: Likewise.
8447         * cpphash.c: Likewise.
8448         * cpplib.c: Likewise.
8449         * dyn-string.c: Likewise.
8450         * fix-header.c: Likewise.
8451         * gcc.c: Likewise.
8452         * gcov.c: Likewise.
8453         * genattr.c: Likewise.
8454         * genattrtab.c: Likewise.
8455         * gencheck.c: Likewise.
8456         * gencodes.c: Likewise.
8457         * genconfig.c: Likewise.
8458         * genemit.c: Likewise.
8459         * genextract.c: Likewise.
8460         * genflags.c: Likewise.
8461         * gengenrtl.c: Likewise.
8462         * genopinit.c: Likewise.
8463         * genoutput.c: Likewise.
8464         * genpeep.c: Likewise.
8465         * genrecog.c: Likewise.
8466         * getpwd.c: Likewise.
8467         * halfpic.c: Likewise.
8468         * hash.c: Likewise.
8469         * mips-tdump.c: Likewise.  Wrap malloc/realloc/calloc prototypes
8470         in NEED_DECLARATION_* macros.
8471
8472         * mips-tfile.c: Remove things made redundant by libiberty.h and/or
8473         conform to libiberty standards.
8474         (fatal): Fix const-ification of variable `format' in
8475         !ANSI_PROTOTYPES case.
8476
8477         * prefix.c: Remove things made redundant by libiberty.h and/or
8478         conform to libiberty standards.
8479
8480         * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid
8481         conflicting with function `spaces' from libiberty.
8482
8483         * profile.c: Remove things made redundant by libiberty.h and/or
8484         conform to libiberty standards.
8485         * protoize.c: Likewise.
8486         * rtl.h: Likewise.
8487         * scan.h: Likewise.
8488         * tlink.c: Likewise.
8489         * toplev.c: Likewise.
8490         * toplev.h: Likewise.
8491         * tree.h: Likewise.
8492
8493 Thu Nov 26 08:38:06 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8494
8495         * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition.
8496
8497 Thu Nov 26 23:45:37 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8498
8499         * README.C4X: Updated URLs.
8500         * config/c4x/c4x.c (c4x_address_conflict): Fix typo.
8501         (valid_parallel_operands_5): Remove unused variable.
8502
8503 Thu Nov 26 23:40:03 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8504
8505         * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo.
8506
8507 1998-11-26  Manfred Hollstein  <manfred@s-direktnet.de>
8508
8509         * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages
8510         which can be configured.
8511         (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@
8512         (Makefile): Pass actual LANGUAGES through the environment when
8513         re-configuring.
8514         (cstamp-h): Likewise.
8515         (config.status): Likewise.
8516
8517         * configure.in (enable_languages): Add new configuration parameter
8518         "--enable-languages=lang1,lang2,...".
8519         (${srcdir}/*/config-lang.in): Change handling to configure only
8520         those directories, that the user might have enabled; default to
8521         "all" existing languages.
8522         * configure: Regenerate.
8523
8524 Thu Nov 26 00:19:19 1998  Richard Henderson  <rth@cygnus.com>
8525
8526         * rtlanal.c (regs_set_between_p): New function.
8527         * rtl.h (regs_set_between_p): Prototype it.
8528         * jump.c (jump_optimize): Use it instead of modified_between_p
8529         in the Sep 2 change.
8530
8531 Wed Nov 25 23:32:02 1998  Ian Dall  <Ian.Dall@dsto.defence.gov.au>
8532                           Matthias Pfaller  <leo@dachau.marco.de>
8533
8534         * invoke.texi (Option Summary, NS32K Options): Add description
8535         of NS32K specific options.
8536
8537         * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2,
8538         fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2,
8539         fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3,
8540         negdf2, absdf2): Use l instead of f since the double class and
8541         float class are no longer the same.
8542         (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3,
8543         divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2,
8544         ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...):
8545         Use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been
8546         fixed.
8547         (cmpsi, cmphi, cmpqi): Use general_operand instead of
8548         non_immediate_operand. Removes erroneous assumption that can't
8549         compare constants.
8550         (movsf, movsi, movhi, movqi,...): New register numbering scheme.
8551         (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded
8552         constants.
8553         (movstrsi, movstrsi1, movstrsi2): Completely new block move
8554         scheme.
8555         (...): Patterns to exploit multiply-add instructions.
8556         (udivmodsi4, udivmodsi_internal4, udivmodhi4,
8557         udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): New
8558         patterns to exploit extended divide insns.
8559         (udivsi3, udivhi3, udivqi3): Remove since superseded by udivmodsi
8560         etc patterns.
8561
8562         * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex
8563         float return values as well as simple scalar floats.
8564         (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES):
8565         Support new flag to denote 32381 fpu.
8566         (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081.
8567         (CONDITIONAL_REGISTER_USAGE): Disable extra 32381 registers if not
8568         compiling for 32381.
8569         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
8570         REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES,
8571         REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM,
8572         L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
8573         LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES,
8574         REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS,
8575         REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE,
8576         REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P,
8577         REG_OK_FOR_BASE_P, MEM_REG): New register scheme to include 32381
8578         fpu registers and special register classes for new 32381
8579         instructions dotf and polyf.
8580         (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to
8581         be tieable.
8582         (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX,
8583         INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is
8584         required.
8585         (SMALL_REGISTER_CLASSES): Make dependent on -mmult-add option.
8586         (MOVE_RATIO): Set to zero because of smart movstrsi implementation.
8587         (REGISTER_MOVE_COST): Move code to register_move_cost function for
8588         ease of coding and debugging.
8589         (CLASS_LIKELY_SPILLED_P): Under new register scheme class
8590         LONG_FLOAT_REGO is likely spilled but not caught by default
8591         definition.
8592         (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): Use macro
8593         instead of hard coded numbers in range check.
8594         (ASM_OUTPUT_LABELREF_AS_INT): Delete since unused.
8595         (...): Add prototypes for functions in ns32k.c but disable because
8596         of problems when ns32k.h is included in machine independent files.
8597
8598         * ns32k.c: Include "system.h", "tree.h", "expr.h", "flags.h".
8599         (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names,
8600         hard_regno_mode_ok, secondary_reload_class,
8601         print_operand, print_operand_address): New register scheme to
8602         include 32381 fpu registers and special register classes for new
8603         32381 instructions dotf and polyf.
8604         (gen_indexed_expr): Make static to keep namespace clean.
8605         (check_reg): Remove since never called.
8606         (move_tail, expand_block_move): Helper functions for "movstrsi"
8607         block move insn.
8608         (register_move_cost): Helper function for REGISTER_MOVE_COST macro.
8609         Increase cost of moves which go via memory.
8610         * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag.
8611         (CPP_PREDEFINES): No longer predefine "unix".
8612
8613         * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...):
8614         Remove erroneous %$. print_operand() can work out from the rtx is
8615         an immediate prefix is required.
8616
8617         * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE,
8618         VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES,
8619         SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling
8620         convention.
8621         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of
8622         pic operands.
8623
8624         * ns32k.c (symbolic_reference_mentioned_p, print_operand):
8625         Correct handling of pic operands.
8626         (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p,
8627         ns32k_comp_type_attributes, ns32k_return_pops_args): Support for
8628         -mrtd calling convention.
8629
8630 Wed Nov 25 23:42:20 1998  Tom Tromey  <tromey@cygnus.com>
8631
8632         * gcc.c (option_map): Recognize --output-class-directory.
8633
8634 Thu Nov 26 18:26:21 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8635
8636         * loop.h (precondition_loop_p): Added new mode argument.
8637         * unroll.c (precondition_loop_p): Likewise.
8638         (approx_final_value): Function deleted and subsumed
8639         into loop_iterations.
8640         (loop_find_equiv_value): New function.
8641         (loop_iterations): Use loop_find_equiv_value to find increments
8642         too large to be immediate constants.  Also use it to find terms
8643         common to initial and final iteration values that can be removed.
8644
8645 Thu Nov 26 18:05:04 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8646
8647         * loop.h (struct loop_info): Define new structure.
8648         (precondition_loop_p): Added prototype.
8649         (unroll_loop): Added new argument loop_info to prototype.
8650         (final_biv_value, final_giv_value): Added new argument n_iterations
8651         to prototype.
8652         * loop.c (strength_reduce): Declare new structure loop_iteration_info
8653         and new pointer loop_info.
8654         (loop_n_iterations): Replace global variable by element in
8655         loop_info structure.
8656         (check_final_value): New argument n_iterations.
8657         (insert_bct): New argument loop_info.
8658         (loop_unroll_factor): Replace global array by element in
8659         loop_info structure.
8660         (loop_optimize): Remove code to allocate and initialize
8661         loop_unroll_factor_array.
8662         * unroll.c (precondition_loop_p): No longer static since
8663         used by branch on count optimization.
8664         (precondition_loop_p, unroll_loop): New argument loop_info.
8665         (final_biv_value, final_giv_value, find_splittable_regs): New
8666         argument n_iterations.
8667         (loop_iteration_var, loop_initial_value, loop_increment,
8668         loop_final_value, loop_comparison_code, loop_unroll_factor):
8669         Replaced global variables by loop_info structure.
8670         (loop_unroll_factor): Replace global array by element in
8671         loop_info structure.
8672
8673 Thu Nov 26 17:49:29 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8674
8675         * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn
8676         when loop reversed.
8677
8678         * unroll.c (precondition_loop_p): Return loop_initial_value
8679         for initial_value instead of loop_iteration_var.
8680
8681 Thu Nov 26 17:15:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8682
8683         * config/c4x/c4x.md: Fix minor formatting problems.  Update docs.
8684         (*b, *b_rev, *b_noov, *b_noov_rev, *db,
8685         decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch
8686         to output the instruction sequences.
8687         (rpts): Delete.
8688         (rptb_top): Provide alternatives to use any register or memory
8689         for loop counter.
8690         (rptb_end): Emit use of operands rather than assigning them
8691         explicitly to the RS and RE registers.
8692
8693 Thu Nov 26 16:37:59 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8694
8695         * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p,
8696         c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p,
8697         c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg,
8698         c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after,
8699         c4x_merge_notes, c4x_parallel_process,
8700         c4x_combine_parallel_independent, c4x_combine_parallel_dependent,
8701         c4x_combine_parallel): Delete.
8702
8703 Thu Nov 26 15:16:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8704
8705         * config/c4x/c4x.c (c4x_override_options): For compatibility
8706         with old target options clear flag_branch_on_count_reg if
8707         -mno-rptb specified and set flag_argument_alias is -mno-aliases
8708         specified.
8709         (c4x_output_cbranch): Handle a sequence of insns rather than a
8710         single insn.
8711         (c4x_rptb_insert): Do not emit a RPTB insn if the RC register
8712         has not been allocated as the loop counter.
8713         (c4x_address_conflict): Do not allow two volatile memory references.
8714         (valid_parallel_operands_4, valid_parallel_operands_5,
8715         valid_parallel_operands_6): Reject pattern if the register destination
8716         of the first set is used as part of an address in the second set.
8717
8718 Thu Nov 26 14:56:32 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8719
8720         * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG.
8721         (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES
8722         is no longer enabled if PARALLEL_MPY_FLAG set.
8723         (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity.
8724         (REG_CLASS_CONTENTS): Add braces around initializers.
8725         (HAVE_MULTIPLE_PACK): Define.
8726         (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with
8727         REAL_VALUE_TO_DECIMAL.
8728         (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with
8729         REAL_VALUE_TO_DECIMAL.
8730         (ar0_reg_operand): Add prototype.
8731         (ar0_mem_operand): Likewise.
8732         (ar1_reg_operand): Likewise.
8733         (ar1_mem_operand): Likewise.
8734         (ar2_reg_operand): Likewise.
8735         (ar2_mem_operand): Likewise.
8736         (ar3_reg_operand): Likewise.
8737         (ar3_mem_operand): Likewise.
8738         (ar4_reg_operand): Likewise.
8739         (ar4_mem_operand): Likewise.
8740         (ar5_reg_operand): Likewise.
8741         (ar5_mem_operand): Likewise.
8742         (ar6_reg_operand): Likewise.
8743         (ar6_mem_operand): Likewise.
8744         (ar7_reg_operand): Likewise.
8745         (ar7_mem_operand): Likewise.
8746         (ir0_reg_operand): Likewise.
8747         (ir0_mem_operand): Likewise.
8748         (ir1_reg_operand): Likewise.
8749         (ir1_mem_operand): Likewise.
8750         (group1_reg_operand): Likewise.
8751         (group1_mem_operand): Likewise.
8752         (ir1_reg_operand): Likewise.
8753         (arx_reg_operand): Likewise.
8754         (not_rc_reg): Likewise.
8755         (not_modify_reg): Likewise.
8756         (c4x_group1_reg_operand): Remove prototype.
8757         (c4x_group1_mem_operand): Likewise.
8758         (c4x_arx_reg_operand): Likewise.
8759
8760 Wed Nov 25 19:02:55 1998  (Stephen L Moshier)  <moshier@world.std.com>
8761
8762         * emit-rtl.c (gen_lowpart_common): Remove earlier change.
8763         * real.c (make_nan): Make SIGN arg actually specify the sign bit.
8764
8765 Thu Nov 26 14:12:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8766
8767         * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern
8768         during reload.
8769
8770 Wed Nov 25 22:05:28 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
8771
8772         * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1
8773         unless FMOVD_WORKS is defined.
8774
8775 Wed Nov 25 20:11:04 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
8776
8777         * regclass.c (init_reg_sets): Move code that calculates tables
8778         dependent on reg_class_contents from here...
8779         (init_reg_sets_1): To here.
8780
8781 Wed Nov 25 14:54:46 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
8782
8783         * cpplib.h: Delete struct import_file.  Add ihash element to
8784         struct cpp_buffer.  Delete dont_repeat_files and
8785         import_hash_table elements from cpp_reader; change
8786         all_include_files to a hash table.  Delete all foobar_include
8787         / last_foobar_include elements from struct cpp_options; put
8788         back four such: quote_include, bracket_include,
8789         system_include, after_include.  Redo struct file_name_list
8790         completely.  Add new structure type include_hash.  Add
8791         prototypes for merge_include_chains and include_hash.  Change
8792         prototypes for finclude, find_include_file, and
8793         append_include_chain to match changes below.
8794
8795         * cppfiles.c (simplify_pathname, include_hash,
8796         remap_filename, merge_include_chains): New functions.
8797         (add_import, lookup_import, open_include_file): Removed.
8798         (INO_T_EQ): Define this (copied from cccp.c).
8799         (hack_vms_include_specification): Remove all calls and #if 0
8800         out the definition.  It was being called incorrectly and at
8801         the wrong times.  Until a VMSie can look at this, it's better
8802         to not pretend to support it.
8803         (append_include_chain): Change calling convention; now takes
8804         only one directory at a time, and sets up the data structure
8805         itself.
8806         (redundant_include_p): Rewritten - this is now used for all
8807         include redundancy, whether by #ifndef, #import, or #pragma
8808         once.  Looks up things in the include hash table.
8809         (file_cleanup): Decrement pfile->system_include_depth here if
8810         it's >0.
8811         (find_include_file): Calling convention changed; now passes
8812         around a struct include_hash instead of 3 separate parameters.
8813         Guts ripped out and replaced with new include_hash mechanism.
8814         (finclude): Calling convention changed as for
8815         find_include_file.  Error exits pulled out-of-line.  Reformat.
8816         (safe_read): Return a long, not an int.
8817         (deps_output): Don't recurse.
8818
8819         * cpplib.c (is_system_include): Deleted.
8820         (path_include): Fix up call to append_include_chain.
8821         (do_include): Fix up calls to find_include_file and finclude.
8822         Clean up dependency output a bit.  Shorten obnoxiously lengthy
8823         #import warning message.  Don't decrement
8824         pfile->system_include_depth here.
8825         (do_pragma): Understand the include_hash structure.  Reformat.
8826         (do_endif): Correct handling of control macros.  Understand
8827         the include_hash.
8828         (cpp_start_read): Fix up calls to finclude.  Call
8829         merge_include_chains.
8830         (cpp_handle_option): Fix up calls to append_include_chain.
8831         Understand the four partial include chains.
8832         (cpp_finish): Add debugging code (#if 0-ed out) for the
8833         include_hash.
8834         (cpp_cleanup): Free the include_hash, not the import hash and
8835         the all_include and dont_repeat lists which no longer exist.
8836
8837 Wed Nov 25 11:26:19 1998  Jeffrey A Law  (law@cygnus.com)
8838
8839         * toplev.c (no_new_pseudos): Define.
8840         (rest_of_compilation): Set no_new_pseudos as needed.
8841         * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
8842         if no_new_pseudos is set.
8843         * rtl.h (no_new_pseudos): Declare it.
8844         * reload1.c (reload): Update comments.
8845         * md.texi: Corresponding changes.
8846
8847 Wed Nov 25 11:26:17 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
8848
8849         * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
8850         (choose_reload_regs): Rename it here as well.  When computing it,
8851         also merge in used hardregs.
8852
8853 1998-11-25  Zack Weinberg  <zack@rabi.phys.columbia.edu>
8854
8855         * gcc.c: Split out Objective-C specs to...
8856         * objc/lang-specs.h: here. (New file.) Make the specs cpplib
8857         aware.
8858
8859         * c-lex.c (init_parse): Always initialize the filename global.
8860         * objc/objc-act.c (lang_init): Always call check_newline at
8861         beginning of file.
8862
8863 Wed Nov 25 00:48:29 1998  Graham  <grahams@rcp.co.uk>
8864
8865         * reload1.c (reload): Remove unused variable.
8866         (reload_reg_free_for_value_p): Add missing parameter definition.
8867
8868         * jump.c (jump_optimize): Remove unused variable.
8869
8870 Wed Nov 25 00:07:11 1998  Jeffrey A Law  (law@cygnus.com)
8871
8872         * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h.
8873
8874         * cse.c (fold_rtx): Make autoincrement addressing mode tests be
8875         runtime selectable.
8876         * expr.c (move_by_pieces): Similarly.
8877         (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly.
8878         * flow.c (find_auto_inc): Similarly.
8879         (try_pre_increment): Similarly.
8880         * loop.c (strength_reduce): Similarly.
8881         * regclass.c (auto_inc_dec_reg_p): Similarly.
8882         * regmove.c (try_auto_increment): Similarly.
8883         (fixup_match_1): Similarly.
8884         * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined.
8885         (HAVE_PRE_DECREMENT): Similarly.
8886         (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly.
8887         * Corresponding changes to all target header files.
8888         * tm.texi: Update docs for autoinc addressing modes.
8889
8890 Tue Nov 24 20:24:59 1998  Jim Wilson  <wilson@cygnus.com>
8891
8892         * configure.in (m68020-*-elf*, m68k-*-elf*): New targets.
8893         * configure: Rebuild.
8894         * config/elfos.h: New file.
8895         * config/m68k/m68020-elf.h, config/m68k/m68kelf.h,
8896         config/m68k/t-m68kelf: New file.
8897
8898 Tue Nov 24 13:40:06 1998  Jeffrey A Law  (law@cygnus.com)
8899
8900         * Makefile.in (HOST_AR): Define.
8901         (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly.
8902         (libcpp.a): Use the host tools explicitly.
8903         (STAGESTUFF): Add libcpp.a.
8904
8905 Tue Nov 24 09:33:49 1998  Nick Clifton  <nickc@cygnus.com>
8906
8907         * config/m32r/m32r.md (movstrsi_internal): Describe changes made
8908         to source and destination registers.
8909
8910 Mon Nov 23 20:28:02 1998  Mike Stump  <mrs@wrs.com>
8911
8912         * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
8913         The strategy we now use is to pre allocate the top_elt along
8914         with the EH context so that each thread has its own top_elt.
8915         This is necessary as the dynamic cleanup chain is used on the
8916         top element of the stack and each thread MUST have its own.
8917         (eh_context_static): Likewise.
8918         (new_eh_context): Likewise.
8919         (__sjthrow): Likewise.
8920
8921 Mon Nov 23 20:25:03 1998  Jason Merrill  <jason@yorick.cygnus.com>
8922
8923         * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while.
8924         * i386.md (prologue_get_pc): Remove unused variable.
8925
8926 Mon Nov 23 17:05:40 1998  Geoffrey Noer  <noer@cygnus.com>
8927
8928         * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_.
8929
8930 Mon Nov 23 16:40:00 1998  Ulrich Drepper  <drepper@cygnus.com>
8931
8932         * Makefile.in (OBJS): Add graph.o.
8933         (graph.o): New dependency list.
8934         * flags.h: Declare dump_for_graph and define graph_dump_types type.
8935         * print-rtl.c (dump_for_graph): Define new variable.
8936         (print_rtx): Rewrite to allow use in graph dumping functions.
8937         * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file,
8938         finish_graph_dump_file.
8939         Define graph_dump_format.
8940         (compile_file): If graph dumping is enabled also clear these files.
8941         Finish graph dump files.
8942         (rest_of_compilation): Also dump graph information if enabled.
8943         (main): Recognize -dv to enabled VCG based graph dumping.
8944         * graph.c: New file.  Graph dumping functions.
8945
8946 Mon Nov 23 16:39:04 1998  Richard Henderson  <rth@cygnus.com>
8947
8948         * configure.in: Look for <sys/stat.h>.
8949         * system.h: Include it before substitute S_ISREG definitions.
8950
8951 Mon Nov 23 17:40:37 1998  Gavin Romig-Koch  <gavin@cygnus.com>
8952
8953         * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage.
8954         * config/mips/iris6.h: Same.
8955         * config/mips/mips.md: Same.
8956         * config/mips/mips.c: Same; also add "-mabi=o64" option.
8957         * config/mips/mips.h: Same; also define ABI_O64.
8958
8959 Mon Nov 23 17:02:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8960
8961         *  configure.in: Use AC_PREREQ(2.12.1).
8962
8963 Mon Nov 23 10:16:38 1998  Melissa O'Neill  <oneill@cs.sfu.ca>
8964
8965         * cccp.c (S_ISREG, S_ISDIR): Delete defines.
8966         * cpplib.c, gcc.c: Likewise.
8967         * system.h (S_ISREG, S_ISDIR): Define if not already defined.
8968
8969 Mon Nov 23 09:53:44 1998  Richard Henderson  <rth@cygnus.com>
8970
8971         * local-alloc.c (local_alloc): Use malloc not alloca for
8972         reg_qty, reg_offset, ref_next_in_qty.
8973
8974 Mon Nov 23 16:46:46 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
8975
8976         * caller-save.c (insert_one_insn): Initialize the live_before and
8977         live_after register sets.
8978
8979         Add SH4 support:
8980
8981         * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define.
8982         (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define.
8983         * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS.
8984         (fp_reg_names, assembler_dialect): New variables.
8985         (print_operand_address): Handle SUBREGs.
8986         (print_operand): Added 'o' case.
8987         Don't use adj_offsettable_operand on PRE_DEC / POST_INC.
8988         Name of FP registers depends on mode.
8989         (expand_block_move): Emit different code for SH4 hardware.
8990         (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate.
8991         (from_compare): Likewise.
8992         (add_constant): New argument last_value.  Changed all callers.
8993         (find_barrier): Don't try HImode load for FPUL_REG.
8994         (machine_dependent_reorg): Likewise.
8995         (sfunc_uses_reg): A CLOBBER cannot be the address register use.
8996         (gen_far_branch): Emit a barrier after the new jump.
8997         (barrier_align): Don't trust instruction lengths before
8998         fixing up pcloads.
8999         (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG.
9000         Use auto-inc addressing for fp registers if doubles need to
9001         be loaded in two steps.
9002         Set sh_flag_remove_dead_before_cse.
9003         (push): Support for TARGET_FMOVD.  Use gen_push_fpul for fpul.
9004         (pop): Support for TARGET_FMOVD.  Use gen_pop_fpul for fpul.
9005         (calc_live_regs): Support for TARGET_FMOVD.  Don't save FPSCR.
9006         Support for FIRST_XD_REG .. LAST_XD_REG.
9007         (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG.
9008         (sh_expand_epilogue): Likewise.
9009         (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4.
9010         (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account.
9011         (arith_reg_operand): FPUL_REG is OK for SH4.
9012         (fp_arith_reg_operand, fp_extended_operand): New functions.
9013         (tertiary_reload_operand, fpscr_operand): Likewise.
9014         (commutative_float_operator, noncommutative_float_operator): Likewise.
9015         (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise.
9016         (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise.
9017         (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise.
9018         (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise.
9019         * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only.
9020         (CONDITIONAL_REGISTER_USAGE): Likewise.
9021         (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define.
9022         (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define.
9023         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define.
9024         (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd.
9025         (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer
9026         to -1 and sh_flag_remove_dead_before_cse to 1.
9027         (ASSEMBLER_DIALECT): Define to assembler_dialect.
9028         (assembler_dialect, fp_reg_names): Declare.
9029         (OVERRIDE_OPTIONS): Add code for TARGET_SH4.
9030         Hide names of registers that are not accessible.
9031         (CACHE_LOG): Take TARGET_CACHE32 into account.
9032         (LOOP_ALIGN): Take TARGET_HARWARD into account.
9033         (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define.
9034         (FIRST_PSEUDO_REGISTER: Now 49.
9035         (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers.
9036         (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG.
9037         (HARD_REGNO_MODE_OK): Update.
9038         (enum reg_class): Add DF_REGS and FPSCR_REGS.
9039         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise.
9040         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update.
9041         (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define.
9042         (NPARM_REGS): Eight floating point parameter registers on SH4.
9043         (BASE_RETURN_VALUE_REG): SH4 also passes double values
9044         in floating point registers.
9045         (GET_SH_ARG_CLASS): Likewise.
9046         Complex float types are also returned in float registers.
9047         (BASE_ARG_REG): Complex float types are also passes in float registers.
9048         (FUNCTION_VALUE): Change mode like PROMOTE_MODE does.
9049         (LIBCALL_VALUE): Remove trailing semicolon.
9050         (ROUND_REG): Round when double precision value is passed in floating
9051         point register(s).
9052         (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are
9053         passed on the stack.
9054         (FUNCTION_ARG): Little endian adjustment for SH4 SFmode.
9055         (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4.
9056         (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account.
9057         (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD.
9058         (MODE_DISP_OK_8): Not for SH4 DFmode.
9059         (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode.
9060         Allow indexed addressing for PSImode after reload.
9061         (LEGITIMIZE_ADDRESS): Not for SH4 DFmode.
9062         (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode.
9063         Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS.
9064         (DOUBLE_TYPE_SIZE): 64 for SH4.
9065         (RTX_COSTS): Add PLUS case.
9066         Increase cost of ASHIFT, ASHIFTRT, LSHIFTRT case.
9067         (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS,
9068         MAC_REGS, PR_REGS, DF_REGS.
9069         (REGISTER_NAMES): Use fp_reg_names.
9070         (enum processor_type): Add PROCESSOR_SH4.
9071         (sh_flag_remove_dead_before_cse): Declare.
9072         (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare.
9073         (PREDICATE_CODES): Add binary_float_operator,
9074         commutative_float_operator, fp_arith_reg_operand, fp_extended_operand,
9075         fpscr_operand, noncommutative_float_operator.
9076         (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR.
9077         (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4.
9078         * sh.md (attribute cpu): Add value sh4.
9079         (attrbutes fmovd, issues): Define.
9080         (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv.
9081         (function units memory, int, mpy, fp): Make dependent on issue rate.
9082         (function units issue, single_issue, load_si, load): Define.
9083         (function units load_store, fdiv, gp_fpul): Define.
9084         (attribute hit_stack): Provide proper default.
9085         (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4.
9086         (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns.
9087         (udivsi3, divsi3): Emit special patterns for SH4 hardware,
9088         (mulsi3_call): Now uses match_operand for function address.
9089         (mulsi3): Also emit code for SH1 case.  Wrap result in REG_LIBCALL /
9090         REG_RETVAL notes.
9091         (push, pop, push_e, pop_e): Now define_expands.
9092         (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders.
9093         (movsi_ie): Added y/i alternative.
9094         (ic_invalidate_line_i, movdf_i4): New insns.
9095         (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters.
9096         (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders.
9097         (movdf): Add special code for SH4.
9098         (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible.
9099         (call_valuei, calli, call_value): Likewise.
9100         (movsf): Emit no-op move.
9101         (mov_nop, movsi_y): New insns.
9102         (blt, sge): Generalize to handle DFmode.
9103         (return predicate): Call emit_fpscr_use and remove_dead_before_cse.
9104         (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4.
9105         (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns.
9106         (fpu_switch0, fpu_switch1, movpsi): New expanders.
9107         (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters.
9108         (toggle_sz): New insn.
9109         (addsf3, subsf3, mulsf3, divsf3): Now define_expands.
9110         (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns.
9111         (macsf3): Make use of fpscr visible.  Disable for SH4.
9112         (floatsisf2): Make use of fpscr visible.
9113         (floatsisf2_i4): New insn.
9114         (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4.
9115         (ieee_ccmpeqsf_t): Likewise.
9116         (fix_truncsfsi2): Emit different code for SH4.
9117         (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns.
9118         (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns.
9119         (negsf2, sqrtsf2, abssf2): Now expanders.
9120         (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders.
9121         (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns.
9122         (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns.
9123         (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders.
9124         (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns.
9125         (fix_truncdfsi2_i4_2+1): New splitters.
9126         (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns.
9127         (extendsfdf2, truncdfsf2): New expanders.
9128         (truncdfsf2_i4): New insn.
9129         * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4.
9130         (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4.
9131         * float-sh.h: When testing for __SH3E__, also test for
9132         __SH4_SINGLE_ONLY__ .
9133         * va-sh.h (__va_freg): Define to float.
9134         (__va_greg, __fa_freg, __gnuc_va_list, va_start):
9135         Define for __SH4_SINGLE_ONLY__ like for __SH3E__ .
9136         (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise.
9137         (__PASS_AS_FLOAT): Use different definition for __SH4__ and
9138          __SH4_SINGLE__.
9139         (TARGET_SH4_P): Define.
9140         (va_arg): Use it.
9141
9142         * sh.md (movdf_k, movsf_i): Tweak the condition so that
9143         init_expr_once is satisfied about the existence of load / store insns.
9144
9145         * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie):
9146         Change m constraint in source operand to mr / mf.
9147
9148         * va-sh.h (__va_arg_sh1): Use __asm instead of asm.
9149
9150         * (__VA_REEF): Define.
9151         (__va_arg_sh1): Use it.
9152
9153         * va-sh.h (va_start, va_arg, va_copy): Add parentheses.
9154
9155 Sun Nov 22 21:34:02 1998  Jeffrey A Law  (law@cygnus.com)
9156
9157         * i386/dgux.c (struct option): Add new "description field".
9158         * m88k/m88k.c (struct option): Likewise.
9159
9160 Sun Nov 22 16:07:57 1998  Jeff Law  (law@cygnus.com)
9161
9162         * version.c: Bump for snapshot.
9163
9164 Sun Nov 22 13:40:02 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
9165
9166         * regmove.c (regmove_profitable_p): Use return value of find_matches
9167         properly.
9168
9169 Sun Nov 22 02:47:37 1998  Jeff Law  (law@cygnus.com)
9170
9171         * version.c: Bump for snapshot.
9172
9173 Sat Nov 21 22:12:09 1998  Jeffrey A Law  (law@cygnus.com)
9174
9175         * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called
9176         without reload having been called earlier.
9177
9178         * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP
9179         addressing modes.
9180         (v850_reorg): Similarly.
9181
9182         * loop.c (check_dbra_loop): Avoid using gen_add2_insn.
9183
9184 Sat Nov 21 02:18:38 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9185
9186         * loop.c (move_movables): Start of libcall might be new loop start.
9187
9188 Fri Nov 20 12:14:16 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9189
9190         * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS().
9191
9192 Fri Nov 20 08:34:00 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
9193
9194         * function.c (nonlocal_goto_handler_slots): Renamed from
9195         nonlocal_goto_handler_slot; now an EXPR_LIST chain.
9196         (push_function_context_to): Adjust for this change.
9197         (pop_function_context_from): Likewise.
9198         (init_function_start): Likewise.
9199         (expand_function_end): Likewise.
9200         * function.h (struct function): Likewise.
9201         * calls.c (expand_call): Likewise.
9202         * explow.c (allocate_dynamic_stack_space): Likewise.
9203         * expr.h (nonlocal_goto_handler_slots): Rename its declaration.
9204         * stmt.c (declare_nonlocal_label): Make a new handler slot for each
9205         label.
9206         (expand_goto): When doing a nonlocal goto, find corresponding handler
9207         slot for it.  Don't put the label address in the static chain register.
9208         (expand_end_bindings): Break out nonlocal goto handling code into
9209         three new functions.
9210         (expand_nl_handler_label, expand_nl_goto_receiver,
9211         expand_nl_goto_receivers): New static functions, broken out of
9212         expand_end_bindings and adapted to create one handler per nonlocal
9213         label.
9214         * function.c (delete_handlers): Delete insn if it references any of
9215         the nonlocal goto handler slots.
9216         * i960.md (nonlocal_goto): Comment out code that modifies
9217         static_chain_rtx.
9218         * sparc.md (nonlocal_goto): Likewise.
9219         (goto_handler_and_restore_v9): Comment out.
9220         (goto_handler_and_restore_v9_sp64): Comment out.
9221
9222 Thu Nov 19 23:44:38 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
9223
9224         * expr.c (STACK_BYTES): Delete unused macro.
9225         * calls.c: Provide default for PREFERRED_STACK_BOUNDARY.
9226         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
9227         (expand_call): Likewise.
9228         (emit_library_call): Likewise.
9229         (emit_library_call_value): Likewise.
9230         * function.c: Provide default for PREFERRED_STACK_BOUNDARY.
9231         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
9232         * explow.c: Provide default for PREFERRED_STACK_BOUNDARY.
9233         (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
9234         (allocate_dynamic_stack_space): Likewise.
9235         * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro.
9236         (STACK_BOUNDARY): Update description to reflect the new situation.
9237
9238 Thu Nov 19 22:20:51 1998  Jeffrey A Law  (law@cygnus.com)
9239
9240         * reorg.c (relax_delay_slots): When optimizing for code size, if a
9241         return with a filled delay slot is followed by a return with an
9242         unfilled delay slot, delete the first return and reemit the insn
9243         that was previously in its delay slot.
9244
9245         * i860.c (single_insn_src_p): Add missing parens.
9246         * ginclude/math-3300.h: Likewise.
9247
9248 Thu Nov 19 20:55:59 1998  H.J. Lu  (hjl@gnu.org)
9249
9250         * regclass.c (init_reg_sets_1): Add prototype.
9251         (init_reg_modes): Likewise.
9252
9253 1998-11-19  Zack Weinberg  <zack@rabi.phys.columbia.edu>
9254
9255         * c-common.c: Change warning messages to say `comparison is
9256         always true' or `comparison is always false' instead of the
9257         confusing `is always 0', `is always 1'.
9258
9259 Thu Nov 19 19:05:49 1998  Per Bothner  <bothner@cygnus.com>
9260
9261         * print-tree.c (print_node): After printing BLOCK or BIND_EXPR,
9262         break instead of return (which loses closing '>').
9263
9264 Thu Nov 19 19:34:13 1998  Jeffrey A Law  (law@cygnus.com)
9265
9266         * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not
9267         standard 387 constants.
9268
9269         * i386.md (jump): Explicitly set "memory" attribute.
9270         (indirect_jump, prologue_set_stack_ptr): Likewise.
9271         (prologue_get_pc_and_set_got, pop): Likewise.
9272         (allocate_stack_worder, blockage, return_internal): Likewise.
9273         (return_pop_internal, nop): Likewise.
9274         (epilogue_set_stack_ptr, leave): Likewise.
9275
9276 Thu Nov 19 15:42:54 1998  Nick Clifton  <nickc@cygnus.com>
9277
9278         * config/arm/coff.h: Set USER_LABEL_PREFIX to "_".
9279
9280 Thu Nov 19 23:20:59 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9281
9282         * reload1.c (reload_reg_free_for_value_p):
9283         Early auto_inc reloads don't conflict with outputs.
9284
9285 Thu Nov 19 12:58:55 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9286
9287         * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h).
9288         Instead call AC_HEADER_SYS_WAIT.
9289
9290         * collect2.c: Don't provide defaults for sys/wait.h macros.
9291         * gcc.c: Likewise.
9292         * protoize.c: Likewise.  Also, don't include sys/wait.h.
9293
9294         * system.h: Include sys/wait.h and provide macro defaults.
9295
9296 1998-11-19  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
9297
9298         * Makefile.in (mandir): Set to @mandir@.
9299         (man1dir): New variable to hold the former value of $(mandir).
9300         Replace all uses of $(mandir) by $(man1dir).
9301
9302 Wed Nov 18 16:31:28 1998  Jim Wilson  <wilson@cygnus.com>
9303
9304         * reload.c (find_reloads_address_part): If have a CONST_INT, create
9305         a new one before passing it to force_const_mem.
9306
9307         * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in
9308         find_reloads_address call.
9309
9310 Wed Nov 18 22:13:00 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9311
9312         * expr.c (store_expr): Don't generate load-store pair
9313         if TEMP is identical (according to ==) with TARGET.
9314
9315 Tue Nov 17 22:25:16 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9316
9317         * reload1.c (reload_reg_free_for_value_p): When considered reload
9318         has an output, matching inputs are not sufficient to avoid conflict.
9319
9320 Tue Nov 17 11:51:16 1998  Mark Mitchell  <mark@markmitchell.com>
9321
9322         * hash.h (hash_table_key): New type.
9323         (hash_entry): Change `string' field to generic `key'.
9324         (hash_table): Add `comp' and `hash' functions.
9325         (hash_table_init): Take them as input.
9326         (hash_table_init_n): Likewise.
9327         (hash_lookup): Modify for generic keys.
9328         (hash_newfunc): Likewise.
9329         (hash_traverse): Likewise.
9330         (string_hash): New function.
9331         (string_compare): Likewise.
9332         (string_copy): Likewise.
9333         * hash.c (hash_table_init_n): Modify for generic keys.
9334         (hash_table_init): Likewise.
9335         (hash_lookup): Likewise.
9336         (hash_newfunc): Likewise.
9337         (hash_traverse): Likewise.
9338         (string_hash): Split out from hash_lookup.
9339         (string_compare): New function.
9340         (string_copy): Split out from hash_lookup.
9341         * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash
9342         tables.
9343         (symbol_hash_lookup): Likewise.
9344         (file_hash_newfunc): Likewise.
9345         (file_hash_lookup): Likewise.
9346         (demangled_hash_newfunc): Likewise.
9347         (demangled_hash_lookup): Likewise.
9348         (tlink_int): Likewise.
9349         (read_repo_file): Likewise.
9350         (recompile_files): Likewise.
9351         (demangle_new_symbols): Likewise.
9352         (scan_linker_output): Likewise.
9353
9354 Tue Nov 17 17:13:53 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9355
9356         * flow.c (insn_dead_p): New argument NOTES.  Changed all callers.
9357
9358 Mon Nov 16 17:56:07 1998  David Edelsohn  <edelsohn@gnu.org>
9359
9360         * rs6000.c (output_mi_thunk): Improve test for local branch.
9361
9362 Mon Nov 16 17:56:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9363
9364         * rs6000.c (output_mi_thunk): Correct test for aggregate values.
9365
9366 Mon Nov 16 21:02:52 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9367
9368         * reload1.c (reload_reg_free_before_p): Delete.
9369         Changed all callers to use reload_reg_free_for_value_p instead.
9370         (reload_reg_free_for_value_p): Handle more reload types.
9371         A RELOAD_FOR_INPUT doesn't conflict with its
9372         RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS.
9373         Add special case for OUT == const0_rtx.
9374         Added ignore_address_reloads argument.  Changed all callers.
9375
9376 Mon Nov 16 02:22:29 1998  Jason Merrill  <jason@yorick.cygnus.com>
9377
9378         * toplev.c (compile_file): Don't pedwarn about undefined static
9379         functions just because we passed -Wunused.
9380
9381 Mon Nov 16 04:41:41 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9382
9383         * function.c (purge_addressof_1): Unshare rtl created by
9384         store_bit_field.
9385
9386 Mon Nov 16 04:23:06 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9387
9388         * regmove.c (regmove_optimize): Don't do anything but
9389         optimize_reg_copy[123] when flag_regmove is not set.
9390
9391 Sat Nov 14 15:05:07 1998  Richard Henderson  <rth@cygnus.com>
9392
9393         * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode
9394         value in paradoxical SImode result, rather than truncating midpoint.
9395
9396 Fri Nov 13 22:19:23 1998  Richard Henderson  <rth@cygnus.com>
9397
9398         * alpha.c (reg_not_elim_operand): New.
9399         * alpha.h (PREDICATE_CODES): Add it.
9400         * alpha.md (s48addq, s48subq patterns): Use it as the predicate
9401         for the multiplicand.
9402
9403 Fri Nov 13 22:50:37 1998  David Edelsohn  <edelsohn@gnu.org>
9404
9405         * rs6000.md (movsf): Remove explicit secondary-reload-like
9406         functionality.  Only truncate SFmode store if in FPR.
9407         (movsf splitters): Combine const_double splitters.
9408         (movsf_hardfloat): Add GPR support.
9409
9410 Fri Nov 13 11:02:11 1998  Stan Cox  <scox@cygnus.com>
9411
9412         * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to
9413         deprecate -mlive-g0 and -mbroken-saverestore.
9414         * t-splet (MULTILIB_OPTIONS): Likewise.
9415
9416         * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size
9417         in a leaf function.  Clarify total_size/extra_size relationship.
9418
9419 Thu Nov 12 19:20:57 1998  Geoffrey Noer  <noer@cygnus.com>
9420
9421         * i386/cygwin32.asm: Delete.
9422         * i386/cygwin.asm: New file, renamed from cygwin32.asm.
9423         * i386/cygwin32.h: Delete.
9424         * i386/cygwin.h: New file, renamed from cygwin32.h.
9425         * i386/t-cygwin32: Delete.
9426         * i386/t-cygwin: New file, renamed from t-cygwin32.  Include
9427         cygwin.asm instead of cygwin32.asm.  Remove "32" from comment.
9428         * i386/x-cygwin32: Delete.
9429         * i386/x-cygwin: New file, renamed from x-cygwin32.
9430         * i386/xm-cygwin32: Delete.
9431         * i386/xm-cygwin: New file, renamed from xm-cygwin32.  Use newly
9432         renamed cygwin_ funcs for path translations.
9433         * i386/win32.h: Define __CYGWIN__ when -mcygwin given.
9434         * i386/winnt.c: Remove "32" from comment about cygwin.
9435         * i386/mingw32.h: Fix references to cygwin32.h in light of above.
9436         * rs6000/cygwin32.h: Delete.
9437         * rs6000/cygwin.h: New file, renamed from cygwin32.h.  Add
9438         -D__CYGWIN__ to CPP_PREDEFINES.
9439         * rs6000/x-cygwin32: Delete.
9440         * rs6000/x-cygwin: New file, renamed from x-cygwin32.
9441         * rs6000/xm-cygwin32: Delete.
9442         * rs6000/xm-cygwin: New file, renamed from xm-cygwin32.
9443
9444         * configure.in: Check for cygwin* instead of cygwin32.  Account
9445         for the rename of cygwin-related config files to lose the "32"s.
9446         * configure: Regenerate.
9447
9448         * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c,
9449         toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__.
9450
9451 Wed Nov 11 12:25:19 1998  Tom Tromey  <tromey@cygnus.com>
9452
9453         * Makefile.in (JAVAGC): New macro.
9454         * configure: Rebuilt.
9455         * configure.in: Recognize --enable-java-gc argument.  Subst
9456         `JAVAGC' variable.
9457
9458 Thu Nov 12 03:32:16 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9459
9460         Handle equivalences that have been obscured by gcse:
9461
9462         * reload1.c (reload): Handle equivalences set up in multiple places.
9463         * local-alloc.c (reg_equiv_init_insns): New variable.
9464         (no_equiv): New function.
9465         (update_equiv_regs): Handle equivalences set up in multiple places.
9466         Don't ignore an insn just because its destination is likely to be
9467         spilled.
9468
9469 Wed Nov 11 13:46:13 1998  Jim Wilson  <wilson@cygnus.com>
9470
9471         * except.c (expand_eh_return): Readd force_operand call lost in
9472         Sept 15 change.
9473
9474 Tue Nov 10 17:04:11 1998  David Edelsohn  <edelsohn@gnu.org>
9475
9476         * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case.
9477
9478 1998-11-09  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
9479
9480         * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H.
9481
9482 Mon Nov  9 20:15:19 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
9483
9484         * regmove.c (regmove_optimize): Fix error in last change.
9485
9486 Mon Nov  9 16:37:52 1998  Andrew Cagney  <cagney@b1.cygnus.com>
9487
9488         * mips.c (function_prologue): When TARGET_MIPS16, adjust the register
9489         offset in the .mask pseudo to compensate for frame pointer adjustments.
9490         (mips16_fp_args, build_mips16_call_stub): For little endian, do not
9491         word swap arguments moved to/from FP registers.
9492         * mips16.S (DFREVCMP): Reverse arguments to OPCODE.
9493
9494 Mon Nov  9 09:47:06 1998  Jeff Law  (law@cygnus.com)
9495
9496         * version.c: Bump for snapshot.
9497
9498 Mon Nov  9 02:14:14 1998  Jeff Law  (law@cygnus.com)
9499
9500         * version.c: Bump for snapshot.
9501
9502 Mon Nov  9 03:06:24 1998  Jeffrey A Law  (law@cygnus.com)
9503
9504         * reload1.c (delete_output_reload_insn): If a pseudo is set multiple
9505         times, then it can not be completely replaced.
9506
9507 Mon Nov  9 00:39:02 1998  Richard Henderson  <rth@cygnus.com>
9508
9509         * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length.
9510
9511 Sun Nov  8 17:50:30 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9512
9513         * gansidecl.h: Prepend a "G" to the macro wrapping this file
9514         (to distinguish it from the macro wrapping ansidecl.h.)
9515         Include libiberty's ansidecl.h.  Remove all redundant definitions.
9516         Define the PROTO() style macros in terms of the PARAMS() ones.
9517
9518
9519         * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not
9520         __STDC__, when deciding whether to use ANSI variable args.
9521         (emit_library_call_value): Likewise.
9522
9523         * cccp.c (error): Likewise.
9524         (warning): Likewise.
9525         (error_with_line): Likewise.
9526         (warning_with_line): Likewise.
9527         (pedwarn): Likewise.
9528         (pedwarn_with_line): Likewise.
9529         (pedwarn_with_file_and_line): Likewise.
9530         (fatal): Likewise.
9531
9532         * cexp.y (error): Likewise.
9533         (pedwarn): Likewise.
9534         (warning): Likewise.
9535
9536         * collect2.c (fatal_perror): Likewise.
9537         (fatal): Likewise.
9538         (error): Likewise.
9539
9540         * combine.c (gen_rtx_combine): Likewise.
9541
9542         * cpperror.c (cpp_message): Likewise.
9543         (cpp_fatal): Likewise.
9544
9545         * cpplib.c (cpp_error): Likewise.
9546         (cpp_warning): Likewise.
9547         (cpp_pedwarn): Likewise.
9548         (cpp_error_with_line): Likewise.
9549         (cpp_warning_with_line): Likewise.
9550         (cpp_pedwarn_with_line): Likewise.
9551         (cpp_pedwarn_with_file_and_line): Likewise.
9552
9553         * cpplib.h: Don't define PARAMS() macro.
9554
9555         * demangle.h: Likewise.
9556
9557         * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__,
9558         when deciding whether to use ANSI variable args.
9559
9560         * emit-rtl.c (gen_rtx): Likewise.
9561         (gen_rtvec): Likewise.
9562
9563         * final.c (asm_fprintf): Likewise.
9564
9565         * fix-header.c (cpp_message): Likewise.
9566         (fatal): Likewise.
9567         (cpp_fatal): Likewise.
9568
9569         * gcc.c (concat): Likewise.
9570         (fatal): Likewise.
9571         (error): Likewise.
9572
9573         * genattr.c (fatal): Likewise.
9574
9575         * genattrtab.c (attr_rtx): Likewise.
9576         (attr_printf): Likewise.
9577         (fatal): Likewise.
9578
9579         * gencodes.c (fatal): Likewise.
9580
9581         * genconfig.c (fatal): Likewise.
9582
9583         * genemit.c (fatal): Likewise.
9584
9585         * genextract.c (fatal): Likewise.
9586
9587         * genflags.c (fatal): Likewise.
9588
9589         * genopinit.c (fatal): Likewise.
9590
9591         * genoutput.c (fatal): Likewise.
9592         (error): Likewise.
9593
9594         * genpeep.c (fatal): Likewise.
9595
9596         * genrecog.c (fatal): Likewise.
9597
9598         * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when
9599         deciding whether to declare `tree_node' and `rtx_def'.
9600
9601         * hash.h: Don't define stuff we get from gansidecl.h.
9602
9603         * mips-tfile.c: Likewise.  Define __proto() in terms of PARAMS().
9604         (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
9605         whether to use ANSI variable args.
9606         (error): Likewise.
9607
9608         * prefix.c (concat): Likewise.
9609
9610         * scan.h: Likewise.
9611
9612         * system.h: Likewise.
9613
9614         * toplev.c (error_with_file_and_line): Likewise.
9615         (error_with_decl): Likewise.
9616         (error_for_asm): Likewise.
9617         (error): Likewise.
9618         (fatal): Likewise.
9619         (warning_with_file_and_line): Likewise.
9620         (warning_with_decl): Likewise.
9621         (warning_for_asm): Likewise.
9622         (warning): Likewise.
9623         (pedwarn): Likewise.
9624         (pedwarn_with_decl): Likewise.
9625         (pedwarn_with_file_and_line): Likewise.
9626         (sorry): Likewise.
9627         (really_sorry): Likewise.
9628
9629         * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
9630         whether to declare `tree_node' and `rtx_def'.
9631
9632         * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when
9633         deciding whether to use ANSI variable args.
9634         (build_nt): Likewise.
9635         (build_parse_node): Likewise.
9636
9637 Sun Nov  8 13:10:55 1998  Jeff Law  (law@cygnus.com)
9638
9639         * version.c: Bump for snapshot.
9640
9641 Sat Nov  7 23:34:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9642
9643         * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB.
9644
9645 Sat Nov  7 22:26:19 1998  David Edelsohn  <edelsohn@gnu.org>
9646
9647         * collect2.c (main, case 'b'): Use else if.
9648
9649 Sat Nov  7 15:35:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9650
9651         * configure.in (host_xm_file, build_xm_file, xm_file, tm_file):
9652         Arrange to include gansidecl.h in {ht}config.h & tm.h just
9653         before the config/ directory headers.
9654         (tm_file_list, host_xm_file_list, build_xm_file_list): Handle
9655         gansidecl.h in the list of dependencies.
9656
9657         * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h.
9658         (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib,
9659         mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o,
9660         gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o,
9661         dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o,
9662         cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o):
9663         Likewise.
9664
9665         * cccp.c: Don't include gansidecl.h.
9666         * cexp.y: Likewise.
9667         * collect2.c: Likewise.
9668         * config/c4x/c4x.c: Likewise.
9669         * config/v850/v850.h: Likewise.
9670         * cppalloc.c: Likewise.
9671         * cpperror.c: Likewise.
9672         * cppexp.c: Likewise.
9673         * cppfiles.c: Likewise.
9674         * cpphash.c: Likewise.
9675         * cpplib.c: Likewise.
9676         * cppmain.c: Likewise.
9677         * cppulp.c: Likewise.
9678         * demangle.h: Likewise.
9679         * doprint.c: Likewise.
9680         * dyn-string.c: Likewise.
9681         * eh-common.h: Likewise.
9682         * fix-header.c: Likewise.
9683         * frame.c: Likewise.
9684         * gcc.c: Likewise.
9685         * gcov.c: Likewise.
9686         * gen-protos.c: Likewise.
9687         * gencheck.c: Likewise.
9688         * halfpic.h: Likewise.
9689         * hash.c: Likewise.
9690         * machmode.h: Likewise.
9691         * mbchar.c: Likewise.
9692         * prefix.c: Likewise.
9693         * protoize.c: Likewise.
9694         * recog.h: Likewise.
9695         * rtl.h: Likewise.
9696         * scan-decls.c: Likewise.
9697         * tree.h: Likewise.
9698         * varray.h: Likewise.
9699
9700 Sat Nov  7 11:37:53 1998  Richard Henderson  <rth@cygnus.com>
9701
9702         * i386.md (call_value_pop): If we're not popping anything,
9703         defer to call_value.
9704         (call_pop): Likewise defer to call.
9705
9706 Sat Nov  7 02:49:56 1998  Richard Henderson  <rth@cygnus.com>
9707
9708         * function.c (purge_addressof): Clear purge_addressof_replacements
9709         only after processing the whole function.
9710
9711 Sat Nov  7 00:54:55 1998  Jeffrey A Law  (law@cygnus.com)
9712
9713         * reload1.c (reload): If we can not perform a particular elimination
9714         when we thought we could earlier, then we must always iterate through
9715         the loop at least one more time.
9716
9717 Fri Nov  6 19:37:33 1998  Richard Henderson  <rth@cygnus.com>
9718
9719         * alpha.c (add_operand): Simplify the CONST_INT match.
9720         (sext_add_operand): Correct typo in comparison by using
9721         CONST_OK_FOR_LETTER_P.
9722         * alpha.md (s?addq): Use sext_add_operand to allow the negative
9723         constant alternatives to be generated.
9724         (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow
9725         small constants, since the hw instructions do.
9726
9727 Fri Nov  6 20:15:19 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
9728
9729         * reload1.c (emit_reload_insns): When rewriting the SET_DEST of a
9730         previous insn to store directly into our reload register, make sure
9731         that if the source of the previous insn is a reload register, its
9732         spill_reg_store and spill_reg_stored_to values are cleared.
9733
9734 Fri Nov  6 16:35:10 1998  David Edelsohn  <edelsohn@gnu.org>
9735
9736         * rs6000.md (floatunssidf2_internal splitter): Use base register
9737         operand, not hard-coded SP.
9738
9739 Fri Nov  6 04:07:53 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9740
9741         * jump.c (calculate_can_reach_end): Fix thinko.
9742
9743 Fri Nov  6 00:16:04 1998  Jeffrey A Law  (law@cygnus.com)
9744
9745         * reorg.c (fill_simple_delay_slots): Fix typo.
9746
9747         * romp.h (LEGITIMIZE_ADDRESS): Fix typo.
9748
9749 Fri Nov  6 00:10:00 1998  Jan Hubicka  (hubicka@freesoft.cz)
9750
9751         * i386.md (extendsidi2): Use # in the output template.
9752         (extendsidi splitters): New splitters.
9753
9754 Thu Nov  5 11:13:27 1998  Nick Clifton  <nickc@cygnus.com>
9755
9756         * configure.in: Use unknown-elf.h as tm_file for arm-elf
9757         configurations.
9758         * configure: Regenerate.
9759
9760 Thu Nov  5 07:59:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9761
9762         * jump.c (init_label_info, delete_barrier_successors,
9763         mark_all_labels, delete_unreferenced_labels,
9764         delete_noop_moves, calculate_can_reach_end): New functions broken
9765         out of jump_optimize.
9766         (jump_optimize): Use them.
9767
9768 Thu Nov  5 07:57:45 1998  Andrew MacLeod  <amacleod@cygnus.com>
9769
9770         * except.c (expand_fixup_region_end): Make sure outer context labels
9771         are not issued in an inner context during cleanups.
9772
9773 Thu Nov  5 04:03:06 1998  Richard Henderson  <rth@cygnus.com>
9774
9775         * alpha.md (addsi3, subsi3): No new temporaries once cse is
9776         no longer expected.
9777
9778 Thu Nov  5 03:29:19 1998  Richard Henderson  <rth@cygnus.com>
9779
9780         * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as
9781         to expose this midpoint to CSE.
9782
9783 Thu Nov  5 03:42:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9784
9785         * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again.
9786
9787 Thu Nov  5 10:53:01 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
9788
9789         * configure.in: Bring over gcc2 change of Nov 19 1997.
9790
9791 Wed Nov  4 23:43:08 1998  Graham  <grahams@rcp.co.uk>
9792
9793         * toplev.c (output_lang_identify): Make definition dependent on
9794         ASM_IDENTIFY_LANGUAGE.
9795
9796         * print-rtl.c (spaces): Make static.
9797
9798 Wed Nov  4 22:16:36 1998  Hans-Peter Nilsson  <hp@axis.se>
9799
9800         * extend.texi: Clarify proper uses for register clobbers in asms.
9801
9802 Wed Nov  4 22:16:36 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
9803
9804         * recog.h (enum op_type): Define.
9805         (constrain_operands): Adjust prototype.
9806         (recog_op_type): Declare new variable.
9807         * recog.c (recog_op_type): New variable.
9808         (insn_invalid_p): Allow modifying an asm statement after reload.
9809         (extract_insn): Set up recog_op_type.
9810         (constrain_operands): Lose INSN_CODE_NUM arg.  All callers changed.
9811         Don't compute operand types, use recog_op_type.
9812         Use the information computed by extract_insn instead of the previous
9813         method of finding it by insn code number.
9814         * caller-save.c (init_caller_save): Use extract_insn, not insn_extract.
9815         * reorg.c (fill_slots_from_thread): Likewise.
9816         * reload1.c (reload_as_needed): Likewise.
9817         (gen_reload): Likewise.
9818         (inc_for_reload): Likewise.
9819         (reload_cse_simplify_operands): Likewise.
9820         Use the information computed by extract_insn instead of the previous
9821         method of finding it by insn code number.
9822         * genattrtab.c (write_attr_case): Generate call to extract_insn, not
9823         insn_extract.
9824         * final.c (final_scan_insn): Use extract_insn, not insn_extract.
9825         (cleanup_operand_subregs): Use extract_insn, not insn_extract.
9826         Use the information computed by extract_insn instead of the previous
9827         method of finding it by insn code number.
9828         * regmove.c (find_matches): Likewise.  Change meaning of the return
9829         value to be nonzero if the optimization can be performed, zero if
9830         not.  All callers changed.
9831         Shorten some variable names to fix formatting problems.
9832         (regmove_optimize): Shorten some variable names to fix formatting
9833         problems.
9834         Use the information computed by extract_insn instead of the previous
9835         method of finding it by insn code number.
9836         * regclass.c (scan_one_insn): Likewise.
9837         (record_reg_classes): Don't compute operand types, use recog_op_type.
9838         * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use
9839         recog_constraints instead.
9840
9841 Wed Nov  4 21:37:46 1998  Jeffrey A Law  (law@cygnus.com)
9842
9843         * rtl.h (flow2_completed): Declare.
9844         * flow.c (flow2_completed): Definition.
9845         * toplev.c (rest_of_compilation): Set and clear flow2_completed
9846         as necessary.
9847
9848 Wed Nov  4 19:15:37 1998  Melissa O'Neill  <oneill@cs.sfu.ca>
9849
9850         * Makefile.in (libcpp.a): Ranlib libcpp.a.
9851
9852         * cppulp.c (user_label_prefix): Initialize.
9853
9854 Wed Nov  4 19:07:08 1998  John Wehle  (john@feith.com)
9855
9856         * flow.c (mark_regs_live_at_end): Mark the stack pointer as live
9857         at a RETURN if current_function_sp_is_unchanging is set.
9858
9859 Wed Nov  4 18:16:29 1998  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
9860
9861         * emit-rtl.c (try_split): Fixed error in Oct 10 patch.
9862
9863 Wed Nov  4 15:11:15 1998  Geoffrey Noer  <noer@cygnus.com>
9864
9865         * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL,
9866         TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New.
9867         (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options.
9868         (CPP_PREDEFINES): Don't define __CYGWIN32__ here.
9869         (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options.
9870         (CPP_SPEC): Handle -mno-cygwin option.  Define __CYWIN__ in addition
9871         to __CYGWIN32__.
9872         (LIB_SPEC): Handle -mno-cygwin option.
9873         (LINK_SPEC): Handle -mdll.
9874
9875 Wed Nov  4 22:56:14 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
9876
9877         * reload.c (find_reloads): Fix test for usage by other reload
9878         to handle secondary reloads properly.
9879
9880 Wed Nov  4 17:25:10 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9881
9882         * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an
9883         intermediate structure which has exactly the members provided by
9884         ELIMINABLE_REGS.  Define NUM_ELIMINABLE_REGS in terms of the
9885         static intermediate structure.
9886
9887         (init_elim_table): Xmalloc() `reg_eliminate', and initialize it
9888         from the intermediate structure.  Do the same analogous fix in
9889         the case where ELIMINABLE_REGS is not defined.
9890
9891 Tue Nov  3 20:50:03 1998  Jeffrey A Law  (law@cygnus.com)
9892
9893         * pa.h (SELECT_SECTION): Fix thinko.
9894
9895 Tue Nov  3 17:51:36 1998  Jim Wilson  <wilson@cygnus.com>
9896
9897         * dwarf2out.c (output_call_frame_info): Comments on last change.
9898
9899 Tue Nov  3 07:51:43 1998  Richard Earnshaw  (rearnsha@arm.com)
9900
9901         * arm.c (add_constant): When taking the address of an item in the
9902         pool, get the mode of the item addressed.
9903
9904         * arm.c (final_prescan_insn case INSN): If an insn doesn't
9905         contain a SET or a PARALLEL, don't consider it for conditional
9906         execution.
9907
9908         Restore ABI compatibility for NetBSD.
9909         * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in
9910         arm.h.
9911         (RETURN_IN_MEMORY): Likewise.
9912
9913 Mon Nov  2 11:46:17 1998  Doug Evans  <devans@canuck.cygnus.com>
9914
9915         * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations.
9916         (m32r_output_block_move): Rewrite bytes < 4 handling.
9917
9918 Mon Nov  2 10:10:35 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9919
9920         * configure.in: Call AC_FUNC_VFORK.
9921
9922         * collect2.c: Define VFORK_STRING as a printable string for
9923         error messages (either "vfork" or "fork".)  If HAVE_VFORK_H is
9924         defined, include vfork.h.  If VMS is defined, define vfork()
9925         appropriately.  Remove vfork check on USG, we're using autoconf.
9926         (collect_execute): Pass VFORK_STRING to fatal_perror instead of
9927         checking locally what string to pass.
9928         (scan_prog_file): Likewise.
9929         (scan_libraries): Likewise.
9930
9931         * gcc.c: Remove vfork check on USG, we're using autoconf.
9932         Besides, no calls to vfork/fork occur in this file.
9933
9934         * protoize.c: Likewise.
9935
9936 Mon Nov  2 07:52:28 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
9937
9938         * configure.in (DEFAULT_LINKER): Renamed from LD.
9939         (DEFAULT_ASSEMBLER): Renamed from AS; reverted Schwab's patch.
9940         (gcc_cv_as): Try $DEFAULT_ASSEMBLER before $AS.
9941         * configure: Rebuilt.
9942
9943 Mon Nov  2 01:48:10 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
9944
9945         * BUGS: Fix the regexp for `more' to find the appropriate node.
9946         Reported by Joerg Pietschmann  <joerg_pietschmann@zkb.ch>
9947
9948         * BUGS: Added link to the WWW FAQ.
9949
9950 Sun Nov  1 18:27:15 1998  Jeff Law  (law@cygnus.com)
9951
9952         * version.c: Bump for snapshot.
9953
9954 Sun Nov  1 11:04:32 1998  Jeffrey A Law  (law@cygnus.com)
9955
9956         * From Christian Gafton:
9957         * i386/linux.h (CPP_PREDEFINES): Add -D__i386__.
9958         * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__.
9959         * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__.
9960
9961 Sat Oct 31 21:42:39 1998  Mark Mitchell  <mark@markmitchell.com>
9962
9963         * c-common.c (c_get_alias_set): Allow all type-punning through
9964         unions.  Don't get confused about the type of a bit-field, despite
9965         the antics of build_modify_expr.
9966
9967 Sat Oct 31 22:35:29 1998  Jean-Pierre Radley  <jpr@jpr.com>
9968
9969         * fixinc.sco: Parameterize #include_next values.
9970         * fixinc/fixinc.sco: Likewise.
9971
9972 Sat Oct 31 20:39:35 1998  Jeffrey A Law  (law@cygnus.com)
9973
9974         * toplev.c (rest_of_compilation): No longer set reload_completed.
9975         * reload1.c (reload): Set it here.  Perform instruction splitting
9976         after reload has completed if we will be running the scheduler
9977         again.
9978
9979 Sat Oct 31 12:30:02 1998  Jeffrey A Law  (law@cygnus.com)
9980
9981         * jump.c (jump_optimize): Initialize mappings from INSN_UID to
9982         EH region if exceptions are enabled and we're performing cross
9983         jump optimizations.
9984         (find_cross_jump): Exit loop if the insns are in different EH regions.
9985
9986 Sat Oct 31 10:02:48 1998  Mark Mitchell  <mark@markmitchell.com>
9987
9988         * dwarf2out.c (output_call_frame_info): Use
9989         ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c.
9990
9991 Sat Oct 31 10:23:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9992
9993         Reinstall Apr 24th fix, lost during May 6th gcc2 merge:
9994         * c-common.c (check_format_info): Don't check for the 'x'
9995         format character twice, instead check for 'x' and 'X'
9996
9997 Fri Oct 30 14:50:25 1998  Jeffrey A Law  (law@cygnus.com)
9998
9999         * configure.in (assembler features): Also make gas is configured if
10000         we find it in the source tree.
10001
10002 Fri Oct 30 13:23:20 1998  Richard Henderson  <rth@cygnus.com>
10003
10004         * i386.c (i386_comp_type_attributes): Compare whether the
10005         attributes are defined, not their tree nodes.
10006
10007 Fri Oct 30 11:39:47 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
10008
10009         * configure.in (gxx_include_dir): Bitten by autoconf quoting
10010         characters.  :-(
10011         * configure: Rebuilt.
10012
10013 Fri Oct 30 10:43:29 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
10014
10015         * configure.in: Ignore non-absolute value in $AS.
10016
10017 Fri Oct 30 00:54:25 1998  Peter Jakubek  <pjak@snafu.de>
10018
10019         * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.
10020
10021 Fri Oct 30 00:42:34 1998  Mark Elbrecht  <snowball3@usa.net>
10022
10023         * configure.in (msdosdjgpp): Set exeext and target_alias.
10024
10025 Thu Oct 29 23:55:43 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10026
10027         * flow.c (XNMALLOC): New macro.
10028         (flow_int_list_blocks, basic_block_succ, basic_block_pred): New
10029         static variables.
10030         (add_edge, add_edge_to_label): New static functions.
10031         (free_bb_memory): New function.
10032         (flow_delete_insn): Delete function.
10033         (basic_block_drops_in): Delete variable.
10034         (find_basic_blocks): Allocate and initialize basic_block_head,
10035         basic_block_succ.  Don't allocate basic_block_drops_in.
10036         Call free_bb_memory at the beginning.
10037         (find_basic_blocks_1): Don't do multiple passes.
10038         Delete code to compute basic_block_drops_in.
10039         After calling make_edges, mark blocks reached by current block live.
10040         Update test for unreachable live blocks.
10041         (mark_label_ref): Delete args X, CHECKDUP.  Add PRED arg.  All callers
10042         changed.
10043         Simplify to call add_edge_to_label when a LABEL_REF is found.
10044         (make_edges): Simplify to call add_edge_to_label instead of
10045         mark_label_ref most of the time.
10046         Compute here whether control drops into the next block.
10047         (delete_unreachable_blocks): Return void.  All callers changed.
10048         Delete unreachable blocks in reverse order.
10049         After deleting all unreachable blocks, renumber the remaining ones
10050         and update n_basic_blocks.
10051         (delete_block): Speed up deletion a bit.
10052         Don't set basic_block_drops_in for deleted blocks.
10053         (free_basic_block_vars): Don't free basic_block_drops_in.
10054         (life_analysis_1): Update to use new edge representation.
10055         (dump_flow_info): Delete code to print basic block info; call
10056         dump_bb_data instead.
10057         (compute_preds_succs): Delete code to recompute basic_block_drops_in
10058         and uid_block_number.
10059         Simply copy the previously computed cfg.
10060         (dump_bb_data): New arg LIVE_INFO.  All callers changed.
10061         Print register lifetime information if LIVE_INFO is nonzero.
10062         * basic-block.h (dump_bb_data): Adjust prototype.
10063         * gcse.c (gcse_main): Update call to dump_bb_data.
10064         * rtl.h (free_bb_memory): Declare.
10065         * toplev.c (rest_of_compilation): Call free_bb_memory.
10066
10067         * reload1.c (struct elim_table): Delete MAX_OFFSET member.
10068         (update_eliminable_offsets): Don't compute it.
10069         (set_initial_elim_offsets): Don't initialize it.
10070         Break out some code into set_initial_label_offsets so the rest of
10071         this function can be called from reload_as_needed.
10072         Assume that INITIAL_FRAME_POINTER_OFFSET is defined when
10073         ELIMINABLE_REGS isn't.
10074         (set_initial_label_offsets): New function, broken out of
10075         set_initial_elim_offsets.
10076         (set_offsets_for_label): New function, broken out of set_label_offsets
10077         and reload_as_needed.
10078         (reload): Call the two new functions.
10079         (reload_as_needed): Call set_initial_elim_offsets instead of
10080         duplicating the code.  Likewise for set_offsets_for_label.
10081
10082         * reload1.c (choose_reload_regs): Fix typo in Oct 17 change.
10083         (emit_reload_insns): Ensure that when we set reg_reloaded_valid for
10084         any hard reg, reg_reloaded_dead contains valid data.
10085
10086 Thu Oct 29 22:30:54 1998  Marcus Meissner  <Marcus.Meissner@informatik.uni-erlangen.de>
10087
10088         * i386.c (i386_comp_type_attributes): Return nonzero for mismatched
10089         "stdcall" and "cdecl" attributes.
10090
10091 Thu Oct 29 19:05:17 1998  Jim Wilson  <wilson@cygnus.com>
10092
10093         * sched.c (update_flow_info): Add code to ! found_orig_dest case to
10094         handle deleted no-op moves of hard registers.
10095         * haifa-sched.c (update_flow_info): Likewise.
10096
10097 Thu Oct 29 18:07:47 1998  Jeffrey A Law  (law@cygnus.com)
10098
10099         * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end
10100         of the sequences to reload the HILO register which do not actually
10101         reference HILO.
10102
10103 Thu Oct 29 12:39:35 1998  Jim Wilson  <wilson@cygnus.com>
10104
10105         * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field.
10106
10107 Thu Oct 29 14:10:22 1998  Andrew MacLeod  <amacleod@cygnus.com>
10108
10109         * except.c (emit_eh_context): Make the EH context register stay alive
10110         at -O0 so stupid.c doesn't get confused.
10111
10112 1998-10-29  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
10113
10114         * emit-rtl.c (try_split): Do not try to split a BARRIER.
10115
10116 Thu Oct 29 01:33:54 1998  Jan Hubicka  <hubicka@freesoft.cz>
10117                           Jeffrey A Law  (law@cygnus.com)
10118
10119         * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM.
10120         (zero_extendsidi2): Use # in output template and handle completely by
10121         splits.
10122         (zero_extend splitters): New define_splits.
10123         (ashiftrt_32): New pattern.
10124
10125 Wed Oct 28 22:58:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
10126
10127         * tree.c (append_random_chars): New fn.
10128         (get_file_function_name_long): Use it.
10129
10130 Wed Oct 28 22:27:05 1998  Richard Henderson  <rth@cygnus.com>
10131
10132         * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
10133         (LIBCPP_OBJS): New.  Add cppulp.o.
10134         (cppmain, fix-header): Depend on and use libcpp.a.
10135         * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead
10136         of the individual object files.
10137         * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@,
10138         last.
10139
10140         * cccp.c (user_label_prefix): New.
10141         (main): Set it off -f*leading-underscore.
10142         (special_symbol): Use it.
10143         * cpplib.c (special_symbol): Likewise.
10144         (cpp_handle_option): Handle -f*leading-underscore.
10145         * cppulp.c: New file.
10146
10147         * output.h (user_label_prefix): Declare it.
10148         * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix.
10149         * toplev.c (f_options, main): Handle -f*leading-underscore.
10150
10151         * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of
10152         referencing USER_LABEL_PREFIX directly.
10153         * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise.
10154         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
10155         * final.c (asm_fprintf): Use user_label_prefix instead.
10156         * arm/thumb.c (thumb_print_operand): Likewise.
10157
10158         * gcc.c (default_compilers): Pass -f*leading-underscore on to
10159         cpp wherever appropriate.
10160
10161 Wed Oct 28 23:09:25 1998  Robert Lipe  <robertl@dgii.com>
10162
10163         * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer-
10164         specific compiler switches.
10165
10166 Wed Oct 28 21:05:53 1998  Jeffrey A Law  (law@cygnus.com)
10167
10168         * Makefile.in (c-common.o): Depend on c-pragma.h.  Use $(RTL_H) instead
10169         of rtl.h.
10170
10171 Wed Oct 28 20:52:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10172
10173         * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
10174         structure which has exactly the members provided by EXTRA_SPECS.
10175         Xmalloc() the real `extra_specs', and initialize it from this
10176         intermediate structure.
10177
10178         * alpha.h (EXTRA_SPECS): Revert change for missing initializers.
10179
10180         * mips.h  (EXTRA_SPECS): Likewise.
10181
10182         * sparc.h (EXTRA_SPECS): Likewise.
10183
10184 Wed Oct 28 16:46:07 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
10185
10186         * function.c (purge_addressof_1): Instead of aborting when a
10187         bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
10188         work just put the ADDRESSOF on stack.  Otherwise remember all such
10189         successful replacements, so that exactly the same replacements
10190         can be made on the REG_NOTEs.  Remove the special case for CALL
10191         insns again.
10192         (purge_addressof_replacements): New variable.
10193         (purge_addressof): Clear it at end.
10194
10195 1998-10-28  Zack Weinberg  <zack@rabi.phys.columbia.edu>
10196
10197         * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB.
10198           (lang_init): Call check_newline always.
10199         * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling
10200           cpp_start_read, set yy_cur and yy_lim to read from
10201           parse_in.token_buffer, so that we'll see the first #line
10202           directive.
10203         * cpplib.c (cpp_start_read): finclude the main input file
10204           before processing -include/-imacros.   Process -imacros and
10205           -include separately, and handle -include by stacking a
10206           buffer for the file in question as if it'd been #included.
10207         * toplev.c (documented_lang_options): Recognize -H when
10208           USE_CPPLIB is on.
10209
10210 1998-10-28  Zack Weinberg  <zack@rabi.phys.columbia.edu>
10211
10212         * cpplib.c: Merge do_once into do_pragma.  Break file handling
10213           code out of do_include.
10214           Move append_include_chain, deps_output,
10215           file_cleanup, redundant_include_p, import_hash,
10216           lookup_import, add_import, read_filename_string, read_name_map,
10217           open_include_file, finclude, safe_read to cppfiles.c.
10218           Move prototypes for deps_output, append_include_chain,
10219           finclude to cpplib.h.  Move definition of struct
10220           file_name_list there also.
10221
10222         * cppfiles.c: New file.  Contains all the above functions
10223           broken out of cpplib.c; also hack_vms_include_specification
10224           from cccp.c and find_include_file, a new function broken out of
10225           do_include.
10226
10227         * Makefile.in (cppmain): Depend on cppfiles.o.
10228           (fix-header): Likewise.
10229           (cppfiles.o): New target.
10230         * configure.in (--enable-c-cpplib): Add cppfiles.o to
10231           extra_c_objs.  Add ../cppfiles.o to extra_cxx_objs.
10232
10233 Wed Oct 28 14:06:49 1998  Jim Wilson  <wilson@cygnus.com>
10234
10235         * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
10236         if pending_types is non-zero.
10237         (dwarfout_finish): Verify pending_types is zero before finishing.
10238
10239 Wed Oct 28 10:29:09 1998  Nick Clifton  <nickc@cygnus.com>
10240
10241         * expr.c (convert_move): Use shifts to perform the move if a
10242         suitable extend pattern cannot be found.  Code written by
10243         Richard Henderson <rth@cygnus.com>.
10244
10245 Wed Oct 28 03:59:29 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10246
10247         * regclass.c (renumber, regno_allocated): New static variables, moved
10248         out of allocate_reg_info.
10249         (allocate_reg_info): Move these two variables outside the function.
10250         Move code to free memory into new function free_reg_info.
10251         (free_reg_info): New function, broken out of allocate_reg_info.
10252         * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info.
10253         * rtl.h (allocate_reg_info): Don't declare.
10254         (free_reg_info): Declare.
10255
10256         * final.c (cleanup_subreg_operands): ASM_INPUTs need no treatment.
10257
10258 Wed Oct 28 02:38:12 1998  Jason Merrill  <jason@yorick.cygnus.com>
10259
10260         * toplev.c (compile_file): Temporarily revert last change.
10261
10262 Wed Oct 28 00:00:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
10263
10264         * c-typeck.c (convert_for_assignment): Parenthesize.
10265
10266 1998-10-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
10267
10268         * reload1.c (delete_output_reload): Avoid ambigous else.
10269
10270 Wed Oct 28 00:10:35 1998  Jeffrey A Law  (law@cygnus.com)
10271
10272         * toplev.c (compile_file): Call allocate_reg_info to free register
10273         table memory.
10274         * rtl.h (allocate_reg_info): Declare.
10275
10276         * PROJECTS: Remove entry for local spilling.
10277
10278         * final.c (cleanup_subreg_operands): New function.
10279         (final_scan_insn): Use it.
10280         (alter_subreg): Clear the "used" field when we turn a SUBREG into
10281         a REG.
10282         * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG
10283         operands when reload has finished.
10284         * reload.h (cleanup_subreg_operands): Declare..
10285         * flow.c (life_analysis_1): No longer delete CLOBBER insns after
10286         reload.  Handled in reload itself.
10287
10288 Tue Oct 27 23:32:34 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10289
10290         * reload1.c (verify_initial_offsets): New function.
10291         (reload): Call it after reload_as_needed.  Also verify that the frame
10292         size stays constant during reload_as_needed.
10293         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change.
10294
10295         * reload.h (struct insn_chain): Add need_operand_change element.
10296         * reload1.c (new_insn_chain): Clear it.
10297         (calculate_needs_all_insns): Set it; don't overload need_reload.
10298         (reload_as_needed): Use it.
10299
10300         * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of
10301         reload_address_base_reg_class throughout.  Similar for INDEX_REG_CLASS
10302         and reload_address_index_reg_class.
10303         (find_reloads_address_1): Likewise.
10304         * reload.h (reload_address_base_reg_class,
10305         reload_address_index_reg_class): Don't declare.
10306         * reload1.c (reg_old_renumber, pseudo_previous_regs,
10307         pseudo_forbidden_regs, bad_spill_regs_global): New static variables.
10308         (used_spill_regs): Now static.
10309         (reload_address_base_reg_class, reload_address_index_reg_class,
10310         regs_explicitly_used, counted_for_groups, counted_for_nongroups,
10311         basic_block_needs, max_needs, group_size, group_mode, max_groups,
10312         max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn,
10313         forbidden_regs):
10314         Deleted variables.
10315         (init_reload): Delete code to compute base/index reg classes.
10316         (reload): Delete variable J.
10317         Delete code to manage basic_block_needs.
10318         Don't compute regs_explicitly_used.
10319         Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs,
10320         pseudo_previous_regs.
10321         Initialize bad_spill_regs_global.
10322         Don't call order_regs_for_reload here.
10323         Don't initialize spill_reg_order and n_spills.
10324         Don't forbid explicitly used regs to be used for spill regs.
10325         Change main loop to infinite loop, with explicit break statements.
10326         Make SOMETHING_CHANGED variable local to that loop.
10327         Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn,
10328         max_groups_insn, max_nongroups_insn, group_size, group_mode.
10329         Make sure spilled_pseudos is cleared before calling spill_hard_reg or
10330         new_spill_reg.
10331         Don't call dump_needs.
10332         Delete code to reset potential_reload_regs.
10333         Delete code to terminate loop conditional on the global needs variables
10334         showing no further needs.
10335         (calculate_needs_all_insns): Return void.  All callers changed.
10336         Initialize something_needs_elimination here, not in reload.
10337         Delete avoid_return_reg kludge.
10338         (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void.
10339         All callers changed.
10340         Initialize the group_mode and group_size elements of the arg CHAIN.
10341         Delete code to manage basic_block_needs.
10342         Operate on elements of CHAIN instead of global variables.
10343         Delete avoid_return_reg kludge.
10344         (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void.
10345         All callers changed.
10346         Operate on elements of CHAIN instead of global variables.
10347         Delete special SMALL_REGISTER_CLASSES code.
10348         Delete spill_failure code; now in new_spill_reg.
10349         (find_group): Lose GLOBAL arg, take CHAIN arg, return void.
10350         All callers changed.
10351         Operate on elements of CHAIN instead of global variables.
10352         (maybe_mark_pseudo_spilled): New static function.
10353         (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void.
10354         All callers changed.
10355         Operate on elements of CHAIN instead of global variables.
10356         Call order_regs_for_reload here, not in reload.
10357         Initialize spill_reg_order and n_spills.
10358         Simplify test whether an asm insn is involved.
10359         Delete spill_failure code; now in new_spill_reg.
10360         Call maybe_mark_pseudo_spilled for everything marked as live in
10361         CHAIN.  Merge CHAIN's used_spill_regs into the global variable
10362         used_spill_regs.
10363         (dump_needs): Take CHAIN arg.  No longer static, to prevent the
10364         compiler from optimizing this function (now unused) away.
10365         Operate on elements of CHAIN instead of global variables.
10366         (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg.  All callers
10367         changed.
10368         Operate on elements of CHAIN instead of global variables.
10369         (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args,
10370         take CHAIN arg.  All callers changed.
10371         Operate on elements of CHAIN instead of global variables.
10372         (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take
10373         CHAIN, NONGROUP args.  Return void.  All callers changed.
10374         Verify caller isn't trying to spill a pseudo.
10375         Simplify test for illegal reg, just use bad_spill_regs.
10376         Generate better error messages.
10377         Operate on elements of CHAIN instead of global variables.
10378         Mark spilled register in CHAIN's used_spill_regs element.
10379         Don't call spill_hard_reg.
10380         (spill_hard_reg): Lose GLOBAL arg, return void.  All callers changed.
10381         Mark spilled hard regs in bad_spill_regs_global.
10382         Mark affected pseudos in spilled_pseudos, but don't spill them.
10383         (ior_hard_reg_set): New static function.
10384         (finish_spills): Return int.  All callers changed.
10385         Compute spill_reg_order, n_spills and spill_regs here.  Also update
10386         regs_ever_live for regs used as spills.
10387         For every pseudo in spilled_pseudos, spill it and mark the previous
10388         hard reg it had in pseudo_previous_regs.  Compute which hard regs
10389         are used as spills in insns during which it is live, and retry global
10390         register allocation.  Update all life information in the
10391         reload_insn_chain not to include pseudos without hard regs.
10392         Call alter_reg for all affected speudos.
10393
10394         (scan_paradoxical_subregs): Disable SMALL_REGISTER_CLASSES special
10395         case, it's not clear what it's supposed to do.
10396
10397         (hard_reg_use_compare): Take bad_spill_regs into account.
10398         (pseudos_counted): New static variable.
10399         (count_pseudo): New static function.
10400         (order_regs_for_reload): Take CHAIN arg.  All callers changed.
10401         Initialize bad_spill_regs from bad_spill_regs_global, then merge any
10402         hard registers explicitly used across the current insn into the set.
10403         Compute hard_reg_n_uses taking only pseudos live across this insn
10404         into account.
10405         Tweak sorting of potential_reload_regs.
10406         (compare_spill_regs): Delete function.
10407         (reload_as_needed): Don't sort the spill_regs array, it's computed
10408         in proper order in finish_spills.
10409         Delete avoid_return_reg kludge.
10410         Delete code to manage basic_block_needs.
10411         (allocate_reload_reg): Minor speed/readability tweaks.
10412         Operate on elements of CHAIN instead of global variables.
10413         (choose_reload_regs): Lose AVOID_RETURN_REG arg.  All callers changed.
10414         Delete avoid_return_reg kludge.
10415         Initialize reload_reg_used from CHAIN's used_spill_regs element.
10416         Delete unused label FAIL.
10417         (reload_combine): Replace reload_address_index_reg_class with
10418         INDEX_REGS.
10419         Don't use used_spill_regs to determine information about lifetime of
10420         hard regs.
10421
10422 Tue Oct 27 13:15:02 1998  Nick Clifton  <nickc@cygnus.com>
10423
10424         * toplev.c (display_help): Ignore empty target specific
10425         options, and if -W is also specified on the command line then
10426         display undocumented options.
10427
10428         * config/arm/arm.c: Updated with changes in devo sources.
10429         * config/arm/arm.h: Updated with changes in devo sources.
10430         * config/arm/lib1funcs.asm: Updated with changes in devo sources.
10431         * config/arm/lib1thumb.asm: Add ELF support.
10432
10433 Tue Oct 27 16:11:43 1998  David Edelsohn  <edelsohn@gnu.org>
10434
10435         * collect2.c (aix64_flag): New variable.
10436         (main, case 'b'): Parse it.
10437         (GCC_CHECK_HDR): Object magic number must match mode.
10438         (scan_prog_file): Only check for shared object if valid header.
10439         Print debugging if header/mode mismatch.
10440
10441 Tue Oct 27 10:15:02 1998  Nick Clifton  <nickc@cygnus.com>
10442
10443         Added support for arm-elf-linux configuration, submitted by Philip
10444         Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf
10445         code developed by Catherine Moore <clm@cygnus.com>.  The following
10446         files are affected:
10447
10448         * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf
10449         targets.
10450
10451         * configure: Regenerated.
10452
10453         * config/arm/aout.h: Add default definitions of REGISTER_PREFIX,
10454         USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX.  Make other macro
10455         definitions conditional on their not having been already defined.
10456
10457         * config/arm/lin1funcs.asm: Add ELF only macros to generate .size
10458         and .type directives, and add "(PLT)" qualification to function
10459         calls.
10460
10461         * config/arm/linux.h: Deleted.  This file is now superseded by
10462         either linux-elf.h or linux-aout.h.
10463
10464         * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling.
10465         (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel
10466         support).
10467         Move definitions from old linux.h file here.
10468
10469         * config/arm/elf.h: New file.  Generic ARM/ELF support.
10470
10471         * config/arm/linux-aout.h: New file.  Support for Linux with a.out.
10472
10473         * config/arm/linux-elf.h: New file.  Support for Linux with ELF.
10474
10475         * config/arm/linux-elf26.h: New file.  Support for Linux with ELF
10476         using the 26bit APCS.
10477
10478         * config/arm/unknown-elf.h: New file.  Support for OS'es other
10479         than Linux with ELF.
10480
10481         * config/arm/t-arm-elf: New file.  makefile fragment for arm-elf
10482         builds.
10483
10484         * config/arm/coff.h: Include aout.h for basic assembler macros.
10485         Add support for -mstructure_size_boundary=<n> command line option.
10486
10487         * config/arm/arm.h: Add support for -mstructure_size_boundary=<n>
10488         command line option.  Make macro definitions conditional on their
10489         not having been already defined.
10490
10491         * config/arm/arm.c: Add support for -mstructure_size_boundary=<n>
10492         command line option.
10493
10494
10495 Tue Oct 27 08:56:46 1998  Andrew MacLeod  <amacleod@cygnus.com>
10496
10497         * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING
10498         has been changed to not include a newline. Use this macro instead.
10499         (output_enumeral_list, const_value_attribute, name_attribute,
10500         comp_dir_attribute, prototyped_attribute, producer_attribute,
10501         inline_attribute, pure_or_virtual_attribute, output_inheritance_die,
10502         dwarfout_file_scope_decl, generate_new_sfname_entry,
10503         generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use
10504         ASM_OUTPUT_DWARF_STRING_NEWLINE macro.
10505
10506 Mon Oct 26 13:35:02 1998  Richard Henderson  <rth@cygnus.com>
10507
10508         * combine.c (subst): Process the inputs to a parallel asm_operands
10509         only once.
10510
10511 Mon Oct 26 13:32:31 1998  Richard Henderson  <rth@cygnus.com>
10512
10513         * stmt.c (expand_asm_operands): Accept `=' or `+' at any position.
10514
10515 Mon Oct 26 12:53:14 1998  Jeffrey A Law  (law@cygnus.com)
10516
10517         * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document.
10518
10519 Mon Oct 26 00:36:58 1998  Jeff Law  (law@cygnus.com)
10520
10521         * version.c: Bump for snapshot.
10522
10523 Sun Oct 25 23:36:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
10524
10525         * stmt.c (expand_fixup): Set fixup->before_jump to a
10526         NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
10527
10528 Sun Oct 25 15:49:57 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10529
10530         * Makefile.in (recog.o): Depend on toplev.h.
10531         (insn-emit.o): Depend on recog.h.
10532         (insn-peep.o): Depend on recog.h and insn-config.h.
10533
10534         * combine.c (simplify_set): Remove unused variable `scratches'.
10535
10536         * final.c (final_scan_insn): Wrap declaration of variables `vlen'
10537         and `idx' in macro conditional controlling their use.
10538
10539         * genemit.c (main): Make the generated output file include
10540         recog.h.  Don't have it declare `insn_operand_constraint', since
10541         we get it from recog.h.
10542
10543         * genpeep.c (main): Make the generated output file include
10544         insn-config.h and recog.h.
10545
10546         * recog.c: Include toplev.h.
10547         (extract_insn): Remove unused variable `p'.
10548
10549         * regclass.c (fix_register): Add missing braces around initializer
10550         for `what_option'.
10551         (allocate_reg_info): Move variable `i' into the scope where it is
10552         used.  Change its type to `size_t'.
10553
10554 Sun Oct 25 13:10:15 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10555
10556         * reload.c (push_reload): When merging reloads, make sure
10557         that reload_in_reg and reload_in are from the same reload in
10558         all cases.
10559
10560 Sun Oct 25 12:07:00 1998  Mumit Khan  <khan@xraylith.wisc.edu>
10561
10562         * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
10563         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
10564
10565 Fri Oct 23 23:42:03 1998  David Edelsohn  <edelsohn@gnu.org>
10566
10567         * loop.c (loop_has_tablejump): New variable.
10568         (prescan_loop): Scan for it.
10569         (insert_bct): Replace explicit scan with use of it.
10570         * regclass.c (regclass): Restore loop variable j.
10571         (record_reg_classes): Deterine op_types modifiers and initialize
10572         classes[i] before matching constraints.  Handle matching
10573         constraints 5-9.
10574
10575 Fri Oct 23 13:55:48 1998  Jim Wilson  <wilson@cygnus.com>
10576
10577         * m32r/m32r.c (gen_split_move_double): Call alter_subreg.  Delete
10578         subreg support.
10579
10580 Fri Oct 23 16:19:24 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10581
10582         * mips.h (EXTRA_SPECS): Add missing initializers.
10583
10584 Fri Oct 23 16:08:39 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10585
10586         * sparc.h (EXTRA_SPECS): Add missing initializers.
10587         (sparc_defer_case_vector): Provide a prototype.
10588
10589         * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when
10590         comparing it to the result of a pointer subtraction.
10591
10592 Fri Oct 23 15:34:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10593
10594         * alpha.c (override_options): Use ISDIGIT(), not isdigit().  Cast
10595         the argument to (unsigned char).
10596
10597         * alpha.h (EXTRA_SPECS): Add missing initializers.
10598         (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
10599         format specifier.
10600
10601 Fri Oct 23 13:12:35 1998  Jeffrey A Law  (law@cygnus.com)
10602
10603         * flow.c (life_analysis_1): Enable "rescan" code after reload.
10604         (propagate_block): Delete dead code after reload.
10605
10606         * sched.c (update_flow_info): Revert Oct 19, 1998 change.  Brings
10607         back Oct 15, 1998 change.
10608         * haifa-sched.c (update_flow_info): Likewise.
10609         * flow.c (life_analysis_1): Delete CLOBBER insns after reload.
10610
10611         * mn10200.md (truncated shift): Accept constant inputs too.
10612
10613 Fri Oct 23 04:06:57 1998  Richard Earnshaw  (rearnsha@arm.com)
10614
10615         * machmode.h (mode_mask_array): No longer const.
10616         * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined.
10617
10618 Fri Oct 23 11:19:06 1998  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10619
10620         * frame.c: Somewhat explain `FDE'.
10621         Suggested by Brendan Kehoe
10622
10623 Fri Oct 23 00:56:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
10624
10625         * expr.c (pending_chain): Move up.
10626         (save_expr_status): Do save pending_chain.
10627         (restore_expr_status): And restore it.
10628         * function.h (struct function): Add pending_chain.
10629
10630 1998-10-23  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
10631
10632         * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The
10633         did not match the code.
10634
10635 Fri Oct 23 00:07:01 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10636
10637         * regclass.c (regclass): Break out some code into new function
10638         scan_one_insn, and into regclass_init.
10639         (init_cost): New static variable, moved out of regclass.
10640         (regclass_init): Initialize it here, not in .
10641         (scan_one_insn): New static function, broken out of regclass.
10642         * recog.c (apply_change_group): Break out some code into new
10643         function insn_invalid_p.
10644         (insn_invalid_p): New static fn, broken out of apply_change_group.
10645
10646 Thu Oct 22 22:34:42 1998  Jim Wilson  <wilson@cygnus.com>
10647
10648         * reload1.c (reload_as_needed): When rewrite POST_INC, verify
10649         reg_reloaded_contents matches incremented pseudo.
10650
10651         * v850/v850.c (v850_reorg): Call alter_subreg.  Delete subreg support.
10652
10653 Fri Oct 23 11:11:56 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10654
10655         * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for
10656         addressing modes with side effects.  These are currently
10657         placeholders for the C4x target.
10658
10659 Thu Oct 22 16:46:35 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10660
10661         * loop.c (express_from): Make sure that when generating a PLUS of
10662         a PLUS, any constant expression appears on the outermost PLUS.
10663
10664 Thu Oct 22 15:46:23 1998  Per Bothner  (bothner@cygnus.com)
10665
10666         * Makefile.in (distdir-cvs, distdir-start): Clean up so it
10667         works if "$(srcdir)" != ".".
10668
10669 Wed Oct 21 19:23:59 1998  Jim Wilson  <wilson@cygnus.com>
10670
10671         * expmed.c (store_bit_field): If need to add a SUBREG, then remove
10672         existing SUBREG if we can, otherwise abort.
10673
10674 Wed Oct 21 09:58:51 1998  Mark Mitchell  <mark@markmitchell.com>
10675
10676         * c-common.c (c_apply_type_quals_to_decl): Don't crash when
10677         `restrict' is applied to a non-pointer variable.
10678
10679 Wed Oct 21 09:18:58 1998  Mark Mitchell  <mark@markmitchell.com>
10680
10681         * invoke.texi: Document -flang-isoc9x.
10682
10683         * Makefile.in (OBJS): Add splay-tree.o.
10684         (c-common.o): Depend on rtl.h.
10685         (splay-tree.o): List dependencies and provide build rule.
10686
10687         * rtl.h (record_alias_subset): New function.
10688         * alias.c: Include splay-tree.h.
10689         (alias_set_entry): New type.
10690         (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove.
10691         (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p.
10692         (mems_in_disjoin_alias_sets_p): New function.
10693         (alias_set_compare): Likewise.
10694         (insert_subset_children): Likewise.
10695         (get_alias_set_entry): Likewise.
10696
10697         * tree.h (TYPE_RESTRICT): New macro.
10698         (TYPE_UNQUALIFIED): New manifest constant.
10699         (TYPE_QUAL_CONST): Likewise.
10700         (TYPE_QUAL_VOLATILE): Likewise.
10701         (TYPE_QUAL_RESTRICT): Likewise.
10702         (tree_type): Add restrict_flag.  Reduce count of free bits.
10703         (DECL_POINTER_ALIAS_SET): New macro.
10704         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
10705         (tree_decl): Add pointer_alias_set.
10706         (build_qualified_type): New function.
10707         (build_type_variant): Define in terms of build_qualified_type.
10708         * tree.c (set_type_quals): New function.
10709         (make_node): Initialize DECL_POINTER_ALIAS_SET.
10710         (build_type_attribute_variant): Use build_qualified_type and
10711         set_type_quals.
10712         (build_type_variant): Rename, and modify, to become...
10713         (build_qualified_type): New function.
10714         (build_complex_type): Use set_type_quals.
10715
10716         * c-tree.h (C_TYPE_OBJECT_P): New macro.
10717         (C_TYPE_FUNCTION_P): Likewise.
10718         (C_TYPE_INCOMPLETE_P): Likewise.
10719         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
10720         (c_apply_type_quals_to_decl): New function.
10721         (c_build_qualified_type): New function.
10722         (c_build_type_variant): Define in terms of c_build_qualified_type.
10723         (flag_isoc9x): Declare.
10724         * c-typeck.c (qualify_type): Use c_build_qualified_type.
10725         (common_type): Change to use TYPE_QUALS.
10726         (comptypes): Likewise.
10727         (convert_for_assignment): Likewise.
10728         * c-aux-info.c (gen_type): Likewise.  Deal with `restrict'.
10729         * c-decl.c (flag_isoc9x): Define.
10730         (c_decode_option): Handle -flang-isoc9x.
10731         (grokdeclarator): Update to handle restrict.  Use TYPE_QUALS,
10732         c_build_qualified_type, etc.  Use c_apply_type_quals_to_decl.
10733         * c-lex.c (init_lex): Deal with restrict.
10734         (init_lex): Don't treat restrict as a reserved word in
10735         -traditional mode, or without -flang-isoc9x.
10736         * c-lex.h (rid): Add RID_RESTRICT.
10737         * c-parse.gperf (restrict, __restrict, __restrict__): Make
10738         equivalent to RID_RESTRICT.
10739         * c-parse.in (TYPE_QUAL): Update comment.
10740         * c-common.c: Include rtl.h.
10741         (c_find_base_decl): New function.
10742         (c_build_type_variant): Rename, and modify, to become ...
10743         (c_build_qualified_type): New function.
10744         (c_apply_type_quals_to_decl): Likewise.
10745         (c_get_alias_set): For INDIRECT_REFs, check to see if we can find
10746         a particular alias set for the reference.
10747         * toplev.c (documented_lang_options): Add -flang-isoc9x.
10748
10749 Wed Oct 21 09:15:06 1998  Nick Clifton  <nickc@cygnus.com>
10750
10751         * config/arm/arm.h (TARGET_SWITCHES): Document arm specific
10752         command line switches.
10753
10754 Tue Oct 20 10:04:51 1998  Graham  <grahams@rcp.co.uk>
10755
10756         * reload.c (loc_mentioned_in_p): Add missing braces to bind
10757         else to correct if.
10758
10759 Mon Oct 19 16:34:05 1998  Tom Tromey  <tromey@cygnus.com>
10760
10761         * gcc.c (option_map): Added --classpath and --CLASSPATH.
10762
10763 Tue Oct 20 10:59:02 1998  Gavin Romig-Koch  <gavin@cygnus.com>
10764
10765         * regclass.c (fix_register): Add error message.
10766         * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the
10767           new error message.
10768
10769 Tue Oct 20 10:12:17 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10770
10771         * c-decl.c (warn_missing_noreturn): New global variable.
10772         (c_decode_option): Check for new flags -W{no-}missing-noreturn.
10773         (finish_function): Implement missing noreturn warning.
10774
10775         * c-tree.h (warn_missing_noreturn): Declare extern.
10776
10777         * invoke.texi: Document new flags.
10778
10779         * toplev.c (documented_lang_options): Add description.
10780
10781 Tue Oct 20 22:16:11 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10782
10783         * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT
10784         loop optimization stable for the C4x.
10785         (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop,
10786         c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get,
10787         c4x_rptb_emit_init, c4x_rptb_process): Deleted (superseded by BCT
10788         loop optimization).
10789         (c4x_address_conflict): Be more paranoid when packing a volatile
10790         memref in a parallel load/store.
10791
10792 Tue Oct 20 21:56:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10793
10794         * config/c4x/c4x.md (repeat_block_top, repeat_block_end,
10795         repeat_block_filler): Deleted.
10796         (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber):
10797         Condition code not set if destination register from 'c' class.
10798         (*subbqi3_carry_clobber): Fix typo.
10799
10800 1998-10-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
10801
10802         * reorg.c (steal_delay_list_from_target): Check for insns that
10803         modify the condition codes and effect the direction of the jump
10804         in the sequence.
10805
10806 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
10807
10808         * function.c (purge_addressof_1): Replace call to
10809         emit_insns_before() with emit_insn_before().
10810
10811 Mon Oct 19 19:34:03 1998  Mike Stump  <mrs@wrs.com>
10812
10813         * libgcc2.c (__pure_virtual): Call __terminate instead of _exit.
10814
10815 Mon Oct 19 13:26:24 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10816
10817         * jump.c (sets_cc0_p): Compile only if HAVE_cc0.
10818
10819 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
10820
10821         * gcse.c (compute_hash_table): Correctly identify hard regs which are
10822         clobbered across calls.
10823
10824         * loop.c (scan_loop): Be more selective about what invariants are
10825         moved out of a loop.
10826
10827 Mon Oct 19 10:46:58 1998  Jeff Law  (law@cygnus.com)
10828
10829         * version.c: Bump for snapshot.
10830
10831 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
10832
10833         * libgcc2.c (eh_context_static): Do not call malloc to allocate the
10834         static eh_context structure.
10835
10836 Mon Oct 19 10:45:40 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10837
10838         * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.  All
10839         callers changed.
10840         (try_combine): Don't update max_scratch.
10841         * flow.c (max_scratch, num_scratch): Delete variables.
10842         (life_analysis_1): Don't initialize max_scratch.
10843         (propagate_block): Don't update max_scratch.
10844         (mark_set_1): Don't increment num_scratch.
10845         * regs.h (max_scratch): Delete declaration.
10846
10847 Mon Oct 19 10:28:15 1998  Jeffrey A Law  (law@cygnus.com)
10848
10849         * reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
10850         is nonzero.  This is temporary!
10851
10852         * sched.c (update_flow_info): Handle death notes made invalid by
10853         instruction splitting.  Partially reverts Oct 15, 1998 patch.
10854         * haifa-sched.c (update_flow_info): Likewise.
10855
10856 Sun Oct 18 17:31:26 1998  Jeffrey A Law  (law@cygnus.com)
10857
10858         * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL
10859         if it has a nonzero DECL_INITIAL.
10860
10861 Sat Oct 17 23:18:08 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10862
10863         * Makefile.in (flow.o): Depend on recog.h.
10864
10865         * cpplib.h (directive_table): Add missing initializiers.
10866         (finclude): Change type of variable `bsize' to size_t.
10867
10868         * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
10869
10870         * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
10871
10872         * fix-header.c (lookup_std_proto): Cast the result of `strlen' to
10873         `int' when comparing against one.
10874         (cpp_file_line_for_message): Mark parameter `pfile' with
10875         ATTRIBUTE_UNUSED.
10876         (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
10877
10878         * flow.c: Include recog.h.
10879         (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
10880
10881         * function.c (thread_prologue_and_epilogue_insns): Mark parameter
10882         `f' with ATTRIBUTE_UNUSED.
10883         (reposition_prologue_and_epilogue_notes): Likewise.
10884
10885         * genopinit.c (gen_insn): Cast argument of ctype functions to
10886         `unsigned char'.
10887
10888         * haifa-sched.c: Include recog.h.
10889         (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
10890         comparing against one.
10891
10892         * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
10893
10894         * mips-tfile.c (parse_end): Cast the argument of ctype function to
10895         `unsigned char'.
10896         (parse_ent): Likewise.
10897         (parse_input): Likewise.
10898
10899         * optabs.c (init_libfuncs): Likewise.
10900
10901         * protoize.c (find_rightmost_formals_list): Likewise.
10902
10903         * recog.h (const_double_operand): Fix typo in prototype.
10904
10905         * tlink.c (scan_linker_output): Cast the argument of ctype
10906         function to `unsigned char'.
10907
10908         * toplev.c (check_lang_option): Cast the result of `strlen' to
10909         `int' when comparing against one.
10910
10911 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
10912
10913         * gcse.c (dump_cuid_table): Correct typo.
10914
10915 Sat Oct 17 11:02:47 1998  Nick Clifton  <nickc@cygnus.com>
10916
10917         * toplev.c (display_help): Prepend '-m' to target specific
10918         options.
10919         (check_lang_option): Ignore text after end of first word of a
10920         language specific option.
10921
10922 Sat Oct 17 02:26:03 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
10923
10924         * reload1.c (reg_used_by_pseudo): New static variable.
10925         (choose_reload_regs): Initialize it.
10926         Use it instead of testing spill_reg_order to determine whether a
10927         pseudo is live in a hard register across the current insn.
10928         Fix a typo in a reference to reload_reg_rtx.
10929
10930         * flow.c (propagate_block): Replace code that computes and uses
10931         regs_sometimes_live with simpler code that just walks the set of
10932         currently live registers.
10933
10934         * Makefile.in (insn-extract.o): Fix dependencies.
10935         * genextract.c (main): Generate includes for insn-config.h and
10936         recog.h.
10937         Delete generation of declarations which are now in recog.h.
10938         * genrecog.c (main): Delete generation of definitions which are
10939         now in recog.c.
10940         * local-alloc.c (block_alloc): Use extract_insn and the variables
10941         it sets up instead of looking up values by insn_code.
10942         * recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
10943         recog_dup_num): Define here instead of generating the definition in
10944         genrecog.c.
10945         (recog_n_operands, recog_n_dups, recog_n_alternatives,
10946         recog_operand_mode, recog_constraints, recog_operand_address_p):
10947         New variables.
10948         (extract_insn): New function.
10949         * recog.h (extract_insn): Declare function.
10950         (which_alternative, recog_n_operands, recog_n_dups,
10951         recog_n_alternatives, recog_operand_mode, recog_constraints,
10952         recog_operand_address_p): Declare variables.
10953         * regclass.c (n_occurrences): New static function.
10954         * reload.c (n_occurrences): Delete function.
10955         (find_reloads): Use extract_insn.
10956         * reload.h (n_occurrences): Delete declaration.
10957
10958 Sat Oct 17 01:17:51 1998  Jeffrey A Law  (law@cygnus.com)
10959
10960         * reload1.c (reload_as_needed): Fix test for when to call
10961         update_eliminable_offsets.
10962
10963 Fri Oct 16 20:40:50 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
10964
10965         Fix consistency problems with reg_equiv_{mem,address};
10966         Improve reload inheritance;
10967
10968         * reload.c (reload_out_reg): New variable.
10969         (loc_mentioned_in_p, remove_address_replacements): New functions.
10970         (remove_replacements): Deleted.
10971         (push_reload): Set reload_out_reg[i].
10972         When merging, also set reload_{in,out}_reg[i], and remove
10973         duplicate address reloads.
10974         (combine_reloads): Copy reload_out_reg[i].
10975         (find_reloads): Do make_memloc substitution also when
10976         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
10977         are both nonzero.
10978         Include *recog_operand_loc in commutativity operand changes.
10979         Generate optional output reloads.
10980         Delete reference to n_memlocs.  Don't set *recog_operand_loc before
10981         processing operands.  Call make_memloc in reg_equiv_address code.
10982         Set *recog_operand_loc only after processing operands, and only
10983         if replace is true.  Return a value.
10984         When changing address reload types for operands that didn't get
10985         reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
10986         RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
10987         Don't emit USEs for pseudo SUBREGs when not replacing.
10988         (find_reloads_address): Do make_memloc substitution also when
10989         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
10990         are both nonzero.
10991         (find_reloads_toplev): Likewise.
10992         Call make_memloc in reg_equiv_address code.
10993         (debug_reload_to_stream): Add code to output reload_out_reg.
10994         (make_memloc): Delete local variable i, ifdefed out code, and
10995         references to memlocs and n_memlocs.
10996         (memlocs, n_memlocs): Delete.
10997         (push_secondary_reload): Clear reload_out_reg.
10998         (find_reloads_address_1): Provide memrefloc argument to all calls
10999         to find_reloads_address.
11000         In AUTO_INC code, handle non-directly addressable equivalences properly.
11001         * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
11002         (find_reloads): Add return type.
11003         (remove_address_replacements, deallocate_reload_reg): Declare.
11004         * reload1.c (num_not_at_initial_offset): No longer static.
11005         (delete_address_reloads, delete_address_reloads_1): Likewise.
11006         (deallocate_reload_reg): New function.
11007         (spill_reg_stored_to): New array.
11008         (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
11009         (eliminate_regs_in_insn): Move assignments of previous_offset and
11010         max_offset fields, and recalculation of num_not_at_initial_offset
11011         into new static function:
11012         (update_eliminable_offsets) .
11013         (reload_as_needed): Call update_eliminable_offsets after calling
11014         find_reloads.
11015         Call forget_old_reloads_1 with contents of reloaded auto_inc
11016         expressions if the actual addressing can't be changed to match the
11017         auto_inc.
11018         (choose_reload_regs): For inheritance, replace
11019         reload_reg_free_before_p test with reload_reg_used_at_all test, and
11020         remove stand-alone reload_reg_used_at_all test.
11021         Use reload_out_reg to determine which reload regs have output reloads.
11022         Treat reload_override_in more similar to inherited reloads.
11023         Handle (subreg (reg... for inheritance.
11024         For flag_expensive_optimizations, add an extra pass to remove
11025         unnecessary reloads from known working inheritance.
11026         Delete obsolete code for pseudos replaced with MEMs.
11027         Handle inheritance from auto_inc expressions.
11028         (emit_reload_insns): If reload_in is a MEM, set OLD to
11029         reload_in_reg[j].
11030         Don't reload directly from oldequiv; if it's a pseudo with a
11031         stack slot, use reload_in[j].
11032         Check that reload_in_reg[j] is a MEM before replacing reload_in
11033         from reg_reloaded_contents.
11034         Include non-spill registers in reload inheritance processing.
11035         Also try to use reload_out_reg to set spill_reg_store /
11036         reg_last_reload_reg.
11037         In code to set new_spill_reg_store, use single_set to find out if
11038         there is a single set.
11039         Add code that allows to delete optional output reloads.
11040         Add code to allow deletion of output reloads that use no spill reg.
11041         At the end, set reload_override_in to oldequiv.
11042         Also call delete_output_reload if reload_out_reg is equal to old
11043         in oldequiv code.
11044         Add code to call delete_output_reload for stores with no matching load.
11045         Set / use spill_reg_stored_to.
11046         Handle case where secondary output reload uses a temporary, but
11047         actual store isn't found.
11048         When looking for a store of a value not loaded in order to call
11049         delete_output_reload, count_occurrences should return 0 for no
11050         loads; but discount inherited input reloadill_reg_stored_to.
11051         Do checks for extra uses of REG.  Changed all
11052         callers.
11053         Use delete_address_reloads.
11054         (reload): Take return value of find_reloads into account.
11055         If a no-op set needs more than one reload, delete it.
11056         (reload_reg_free_before_p): RELOAD_FOR_INPUT
11057         can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
11058         for the same operand.
11059         (clear_reload_reg_in_use): Check for other reloads that keep a
11060         register in use.
11061         (reload_reg_free_for_value_p): Handle RELOAD_FOR_OPERAND_ADDRESS /
11062         RELOAD_FOR_OPADDR_ADDR.
11063         Take into account when an address address reload is only needed
11064         for the address reload we are considering.
11065         (count_occurrences): Use rtx_equal_p for MEMs.
11066         (inc_for_reload): Return instruction that stores into RELOADREG.
11067         New argument two, IN, and rtx.  Changed all callers.
11068         (calculate_needs_all_insns, reload_as_needed):
11069         Don't clear after_call for a CLOBBER.
11070         Keep track of how many hard registers need to be copied from
11071         after_call, and don't clear after_call before we have seen
11072         that much copies, or we see a different instruction.
11073
11074 Fri Oct 16 10:58:23 1998  Jeffrey A Law  (law@cygnus.com)
11075
11076         * flow.c (find_basic_blocks_1): Do not delete unreachable blocks
11077         after reload has completed.
11078
11079 Fri Oct 16 17:26:10 1998  Dave Brolley  <brolley@cygnus.com>
11080
11081         * cpplib.c (cpp_get_token): Replace whitespace that occurs between
11082         a macro name and the next token with a single blank if that whitespace
11083         is in a macro buffer and the next token is not '('.
11084
11085 Fri Oct 16 15:44:02 1998  Dave Brolley  <brolley@cygnus.com>
11086
11087         * cccp.c (rescan): Handle multibyte characters ending in backslash.
11088         (rescan): Likewise.
11089         (skip_if_group): Likewise.
11090         (skip_to_end_of_comment): Likewise.
11091         (macarg1): Likewise.
11092         (discard_comments): Likewise.
11093         (change_newlines): Likewise.
11094
11095 Fri Oct 16 15:26:24 1998  Dave Brolley  <brolley@cygnus.com>
11096
11097         * c-lex.c (yylex): Fix unaligned access of wchar_t.
11098
11099 Fri Oct 16 10:47:53 1998  Nick Clifton  <nickc@cygnus.com>
11100
11101         * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation.
11102         (TARGET_OPTIONS): Add --help documentation.
11103
11104 Fri Oct 16 11:49:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11105
11106         * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change.
11107
11108 Fri Oct 16 07:08:46 1998  Bruce Korb  <korb@datadesign.com>
11109
11110         * fixinc/* Moved in from ../contrib directory in preparation
11111         for integrating it into the normal build process.  In particular,
11112         fixinc/Makefile.in must be config-ed into the build directory
11113         as fixinc/Makefile.  Proposed patches to ./Makefile.in and
11114         ./configure.in will be "in the mail" momentarily.
11115
11116 Fri Oct 16 08:13:46 1998  David S. Miller  <davem@pierdol.cobaltnet.com>
11117
11118         * cse.c (cse_basic_block): Fixup hash flushing loop so we do not
11119         accidently walk into the free list.  Comment how that can happen.
11120         (invalidate): Fix indentation.
11121
11122 Thu Oct 15 23:53:29 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
11123                           Jeffrey A Law  (law@cygnus.com)
11124
11125         * flow.c (life_analysis_1): Do not clobber regs_ever_live after
11126         reload.  Never perform rescans of the insn chain after reload.
11127         (propagate_block): Do not delete insn or create new autoinc addressing
11128         modes after reload.
11129
11130         * jump.c (jump_optimize): Unconditionally use the code that was
11131         previously conditional on PRESERVE_DEATH_INFO_REGNO_P.
11132         * reload1.c (reload): When reloading is finished, delete all
11133         REG_DEAD and REG_UNUSED notes.
11134         (emit_reload_insns): Delete all code that was conditional on
11135         PRESERVE_DEATH_INFO_REGNO_P.
11136         (no_longer_dead_regs): Delete variable.
11137         (reload_cse_delete_death_notes): Delete function.
11138         (reload_cse_no_longer_dead): Delete function.
11139         (reload_cse_regs_1): Delete all code to handle deletion of death
11140         notes.
11141         (reload_cse_noop_set_p): Likewise.
11142         (reload_cse_simplify_set): Likewise.
11143         (reload_cse_simplify_operands): Likewise.
11144         (reload_cse_move2add): Likewise.
11145         * reorg.c (used_spill_regs): Delete declaration.
11146         (max_label_num_after_reload): Delete declaration.
11147         (find_dead_or_set_registers): Don't assume that spill regs are
11148         dead at a CODE_LABEL.
11149         * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate,
11150         even after reload.
11151         * sched.c (sched_analyze_insn): Likewise.
11152         (update_flow_info): Likewise.
11153         * haifa-sched.c (sched_analyze_insn): Likewise.
11154         (update_flow_info): Likewise.
11155         * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation.
11156         * toplev.c (max_label_num_after_reload): Delete variable.
11157         (rest_of_compilation): Don't set max_label_num_after_reload.
11158         Call life_analysis after reload_cse_regs if optimizing.
11159         * config/gmicro/gmicro.h: Delete comment referring to
11160         PRESERVE_DEATH_INFO_REGNO_P.
11161         * config/i386/i386.h: Likewise.
11162         * config/m88k/m88k.h: Likewise.
11163         * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition.
11164         * config/sh/sh.h: Likewise.
11165
11166 Thu Oct 15 19:48:41 1998  David Edelsohn  <edelsohn@gnu.org>
11167
11168         * loop.c (strength_reduce): Restore marking bct_p as
11169         ATTRIBUTE_UNUSED.
11170         * rs6000.c (optimization_options): Change #ifdef HAIFA to
11171         HAVE_decrement_and_branch_on_count.
11172         (small_data_operand): Remove TARGET_ELF condition for marking
11173         parameters ATTRIBUTE_UNUSED.
11174
11175 Thu Oct 15 11:45:51 1998  Robert Lipe  <robertl@dgii.com>
11176
11177         * config/i386/sco5.h (MAX_OFILE_ALIGNMENT): Define.
11178         (SELECT_SECTION): Resync with svr4.h.
11179
11180 Thu Oct 15 12:42:13 1998  David Edelsohn  <edelsohn@gnu.org>
11181
11182         * loop.c (strength_reduce): Undo Oct 14 change marking bct_p
11183         ATTRIBUTE_UNUSED.
11184
11185 Thu Oct 15 00:57:55 1998  Robert Lipe  <robertl@dgii.com>
11186
11187         * c-pragma.c (handle_pragma_token): Test for null tree before
11188         dereferencing TREE_CODE.
11189
11190 Thu Oct 15 17:36:48 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11191
11192         * config/c4x/c4x.c: Convert to use GEN_INT.
11193         (c4x_parallel_process): Rework to handle new repeat loop structure.
11194
11195         * config/c4x/c4x.md: Convert to use GEN_INT.
11196         (rptb_end): Convert to use GE test.  Replace uses with clobbers.
11197         (decrement_and_branch_on_count): Likewise.
11198
11199         * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that
11200         loop.c has the desired functionality.
11201         (rc_reg_operand): New prototype.
11202
11203         * config/c4x/t-c4x: Can now build all front ends.
11204
11205 Wed Oct 14 23:27:08 1998  Didier FORT  (didier.fort@fedex.com)
11206
11207         * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
11208
11209 Wed Oct 14 22:13:28 1998  Joel Sherrill  (joel@OARcorp.com)
11210
11211         * Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
11212         * config/t-rtems: Do not install assert.h -- use newlib's.
11213
11214 Wed Oct 14 21:57:08 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
11215
11216         * combine.c (combine_instructions): When finished, call init_recog.
11217         * regmove.c (optimize_reg_copy_3): Reject volatile MEMs.
11218
11219 Wed Oct 14 16:10:22 1998  Per Bothner  <bothner@cygnus.com>
11220
11221         * toplev.c: If flag_syntax_only, don't open or write assembler file.
11222
11223 Wed Oct 14 13:26:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11224
11225         * cppalloc.c (memory_full): Mark function prototype with
11226         ATTRIBUTE_NORETURN.
11227
11228         * demangle.h (collect_exit): Likewise.
11229
11230         * fix-header.c (v_fatal, fatal): Likewise.
11231
11232         * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort):
11233         Likewise.
11234
11235         * gcov.c (print_usage): Likewise.
11236
11237         * genattr.c (fatal, fancy_abort): Likewise.
11238
11239         * genattrtab.c (fatal, fancy_abort): Likewise.
11240
11241         * gencodes.c (fatal, fancy_abort): Likewise.
11242
11243         * genconfig.c (fatal, fancy_abort): Likewise.
11244
11245         * genemit.c (fatal, fancy_abort): Likewise.
11246
11247         * genextract.c (fatal, fancy_abort): Likewise.
11248
11249         * genflags.c (fatal, fancy_abort): Likewise.
11250
11251         * genopinit.c (fatal, fancy_abort): Likewise.
11252
11253         * genoutput.c (fatal, fancy_abort): Likewise.
11254
11255         * genpeep.c (fatal, fancy_abort): Likewise.
11256
11257         * genrecog.c (fatal, fancy_abort): Likewise.
11258
11259         * libgcc2.c (__eprintf, __default_terminate, __sjthrow,
11260         __sjpopnthrow, __throw): Likewise.
11261
11262         * objc/objc-act.c (objc_fatal): Likewise.
11263
11264         * protoize.c (usage, aux_info_corrupted,
11265         declare_source_confusing): Likewise.
11266
11267         * rtl.c (dump_and_abort): Likewise.
11268
11269         * rtl.h (sets_cc0_p): Likewise.
11270
11271         * toplev.c (float_signal, pipe_closed): Likewise.
11272
11273 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
11274
11275         * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges
11276         when generating the decision tree for the general case.
11277
11278         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes
11279         wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs.
11280
11281 Wed Oct 14 11:14:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11282
11283         * Makefile.in (sched.o): Depend on recog.h.
11284
11285         * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to
11286         (unsigned) when comparing against one.
11287         (find_base_value): Likewise.
11288         (record_base_value): Cast variable `regno' to (unsigned) when
11289         comparing against one.  Cast the result of REGNO() macro to
11290         (unsigned) when comparing against one.
11291         (memrefs_conflict_p): Change type of variables `r_x' and `r_y'  to
11292         unsigned.
11293         (init_alias_analysis): Add unsigned variable `ui'.  Use it as loop
11294         variable where an unsigned index is needed.
11295
11296         * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code)
11297         before comparing against one.
11298
11299         * collect2.c: Add prototypes for functions `error', `fatal' and
11300         `fatal_perror'.  Make these functions take variable arguments
11301         instead of faking it with a fixed number of args.
11302         (write_c_file_stat): Cast the argument of ctype macro to (unsigned
11303         char).
11304
11305         * combine.c (can_combine_p): Mark parameter `pred' with
11306         ATTRIBUTE_UNUSED.
11307         (find_split_point): Cast variable `src' to (unsigned
11308         HOST_WIDE_INT) when comparing against one.
11309         (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift.
11310         (simplify_logical): Likewise.
11311         (force_to_mode): Cast result of INTVAL() macro to (unsigned
11312         HOST_WIDE_INT) when comparing against one.  Cast 1 to (unsigned
11313         HOST_WIDE_INT) in shift.
11314         (simplify_and_const_int): Cast result of INTVAL() macro to
11315         `unsigned HOST_WIDE_INT' when comparing against one.
11316         (merge_outer_ops): Cast variable const0 to `unsigned
11317         HOST_WIDE_INT' when comparing against the result of
11318         GET_MODE_MASK() macro.
11319         (simplify_comparison): Likewise for variable `c0'.  Cast variable
11320         `const_op' to `unsigned HOST_WIDE_INT' when comparing against
11321         one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast the
11322         result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing
11323         against one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast
11324         result of INTVAL() macro to `unsigned HOST_WIDE_INT' when
11325         comparing against one.
11326         (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'.
11327
11328         config/mips/mips.c (gen_int_relational): Cast result of INTVAL()
11329         macro to `unsigned HOST_WIDE_INT' when comparing against one.
11330         (output_block_move): Cast `sizeof' expression to (int) when
11331         comparing against one.
11332         (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing
11333         against one.
11334         (save_restore_insns): Cast `base_offset' to `long' to match format
11335         specifier in fprintf.
11336
11337         * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro
11338         to `enum machine_mode'.
11339
11340         * flow.c (life_analysis_1): Remove unused variable `insn'.
11341
11342         * gcc.c (translate_options): Move variables `j' and `k' into the
11343         scope in which they are used.  Change their types to `size_t'.
11344         (set_spec): Cast the argument of ctype macro to `unsigned char'.
11345         (read_specs): Likewise.
11346         (process_command): Cast `sizeof' to (int) when comparing against one.
11347         (do_spec_1): Cast the argument of ctype macro to `unsigned char'.
11348         (handle_braces): Cast both sides of `==' expression to `long' to
11349         ensure sign matching.
11350         (main): Cast variable `i' to `int' when comparing against one.
11351
11352         * gcov-io.h (__fetch_long): Change type of parameter `bytes' from
11353         int to size_t.  Cast variable `i' to size_t when comparing against
11354         one.
11355
11356         * genattrtab.c (convert_set_attr_alternative): Remove unused
11357         parameter `insn_code'.  All callers changed.
11358         (convert_set_attr): Likewise.
11359
11360         * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to
11361         size_t when comparing against one.  Likewise for variable `len'.
11362
11363         * global.c (global_alloc): Cast variable `max_regno' to size_t
11364         when comparing against one.  Likewise for variable `max_allocno'.
11365
11366         * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED.
11367
11368         * local-alloc.c (validate_equiv_mem_from_store): Mark parameter
11369         `set' with ATTRIBUTE_UNUSED.
11370         (find_free_reg): Cast `sizeof' expression to (int) when comparing
11371         against one.
11372
11373         * loop.c (count_loop_regs_set): Remove unused variable `dest'.
11374         (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED.
11375         (get_condition): Cast variable `const_val' to `unsigned
11376         HOST_WIDE_INT' when comparing against one.  Cast unsigned
11377         expression to HOST_WIDE_INT when comparing against one.
11378         (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED.
11379         (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to
11380         `unsigned' when comparing against one.
11381
11382         * protoize.c (is_id_char): Change type of parameter `ch' to
11383         unsigned char.
11384         (munge_compile_params): Cast argument of ctype macro to (const
11385         unsigned char).
11386         (process_aux_info_file): Cast variable `aux_info_size' to int when
11387         comparing against one.
11388         (forward_to_next_token_char): Cast argument of ctype macro to
11389         `const unsigned char'.
11390         (edit_formals_lists): Likewise.
11391         (find_rightmost_formals_list): Likewise.
11392         (add_local_decl): Likewise.
11393         (add_global_decls): Likewise.
11394         (edit_fn_definition): Likewise.
11395         (do_cleaning): Likewise.
11396         (scan_for_missed_items): Likewise.
11397         (edit_file): Cast variable `orig_size' to (int) when comparing
11398         against one.
11399         (main): Cast argument of ctype macro to `const unsigned char'.
11400
11401         * recog.c (const_int_operand): Mark parameter `mode' with
11402         ATTRIBUTE_UNUSED.
11403
11404         * regclass.c (record_reg_classes): Change type of variable `c' to
11405         `unsigned char'.  Cast `char' array index to `unsigned char'.
11406
11407         * reload.c (push_secondary_reload): Cast argument to
11408         REG_CLASS_FROM_LETTER() macro to `unsigned char'.
11409
11410         * reload1.c (calculate_needs): Cast `char' array index to
11411         `unsigned char'.
11412         (set_label_offsets): Change type of variable `i' to unsigned int.
11413         Cast result of XVECLEN() macro to unsigned when comparing against
11414         one.
11415         (mark_not_eliminable): Change type of variable `i' to unsigned.
11416         (order_regs_for_reload): Likewise.  Cast `max_regno' to unsigned
11417         when comparing against one.
11418         (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when
11419         comparing against one.
11420         (choose_reload_regs): Hide unused label `fail'.
11421         (reload_cse_simplify_operands): Cast `char' array index to
11422         `unsigned char'.
11423         (reload_combine_note_store): Mark parameter `set' with
11424         ATTRIBUTE_UNUSED.  Cast UNITS_PER_WORD to unsigned when comparing
11425         against one.
11426         (reload_cse_move2add): Remove unused variable `src2'.
11427
11428         * sched.c: Include recog.h.
11429         (sched_note_set): Remove unused parameter `b'.  All callers
11430         changed.
11431         (split_hard_reg_notes): Likewise for parameter `orig_insn'.
11432         (blockage_range): Cast result of UNIT_BLOCKED() macro to (int)
11433         when comparing against one.
11434
11435         * stupid.c (stupid_find_reg): Mark parameter `changes_size' with
11436         ATTRIBUTE_UNUSED.  Cast `sizeof' expression to (int) when
11437         comparing against one.
11438
11439         * unroll.c (precondition_loop_p): Remove unused parameter
11440         `loop_end'.  All callers changed.
11441
11442 Tue Oct 13 22:12:11 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
11443
11444         * reload1.c (maybe_fix_stack_asms): New static function.
11445         (reload): Call it.
11446
11447         * reload.h (compute_use_by_pseudos): Declare.
11448
11449         * reload1.c (spilled_pseudos, insns_need_reload): New variables.
11450         (something_needs_reloads): Delete variable.
11451         (finish_spills): New function.
11452         (compute_use_by_pseudos): New function.
11453
11454         (delete_caller_save_insns): Lose argument FIRST.  All callers changed.
11455         Use the reload_insn_chain instead of walking the rtl directly.
11456
11457         (reload): Allocate and free spilled_pseudos.
11458         Ensure that all calls of spill_hard_reg are followed by a call to
11459         finish_spills.
11460         Use the insns_need_reload list instead of something_needs_reloads
11461         to find out if reload_as_needed must be called.
11462         Clear unused_insn_chains at the end.
11463
11464         (calculate_needs_all_insns): Lose FIRST parameter.  All callers
11465         changed.
11466         Delete code to keep track of current basic block.
11467         Walk reload_insn_chain instead of the rtl structure.  Build the
11468         insns_need_reload chain.
11469         Remember which insns need reloading/elimination by setting the
11470         appropriate fields in struct insn_chain, not by putting modes on the
11471         insn.
11472
11473         (calculate_needs): Lose THIS_BLOCK arg.  Accept arg CHAIN instead of
11474         arg INSN.  All callers changed.
11475         Delete declaration of struct needs.
11476         Don't set something_needs_reloads.
11477         Record insn needs in the CHAIN argument.
11478
11479         (spill_hard_reg): Record the affected pseudos in spilled_pseudos.
11480
11481         (reload_as_needed): Lose FIRST arg.  All callers changed.
11482         Walk the reload_insn_chain instead of the rtx structure.
11483         Delete code to keep track of current basic block.
11484         Rename one of the NEXT variables to OLD_NEXT.
11485
11486         (allocate_reload_reg): Accept arg CHAIN instead of arg INSN.  All
11487         callers changed.
11488         (choose_reload_regs): Likewise.
11489
11490         (emit_reload_insns): Replace INSN and BB args with arg CHAIN.  All
11491         callers changed.
11492
11493         * caller-save.c (MOVE_MAX_WORDS): New macro.  Use it throughout
11494         instead of (MOVE_MAX / UNITS_PER_WORD) computation.
11495         (hard_regs_live, hard_regs_need_restore): Delete variables.
11496         (n_regs_saved): Now static.
11497         (referenced_regs, this_insn_sets): New variables.
11498
11499         (setup_save_areas): Restructure the code a bit.
11500
11501         (restore_referenced_regs): Delete function.
11502         (mark_referenced_regs): New function, similar to the old
11503         restore_referenced_regs, but mark registers in referenced_regs.
11504
11505         (clear_reg_live): Delete function.
11506         (mark_set_regs): Renamed from set_reg_live.  All callers changed.
11507         Only mark registers in this_insn_sets.
11508
11509         (save_call_clobbered_regs): Rework this function to walk the
11510         reload_insn_chain instead of using the list of instructions directly.
11511         Delete code to keep track of register lives, compute live regs on the
11512         fly from information in the chain.
11513         Instead of calling restore_referenced_regs, use mark_referenced_regs,
11514         then walk the set it computes and call insert_restore as appropriate.
11515
11516         (insert_restore): Lose INSN and BLOCK args.  Add CHAIN arg.  All
11517         callers changed.
11518         Restructure the code a bit.  Test hard_regs_saved instead of
11519         hard_regs_need_restore.
11520         (insert_save): Lose INSN and BLOCK args.  Add CHAIN and TO_SAVE
11521         args.  All callers changed.
11522         Restructure the code a bit.  Use TO_SAVE to determine which regs to
11523         save instead of more complicated test.
11524         (insert_one_arg): Lose INSN and BLOCK args.  Add CHAIN arg.  All
11525         callers changed.
11526         Create a new insn_chain structure for the new insn and place it
11527         into the chain.
11528
11529         * rtl.texi: Update documentation to reflect that reload no longer
11530         puts modes on the insns.
11531
11532 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
11533
11534         * function.c (purge_addressof_1): Force the first argument of a
11535         CALL insn to memory.
11536
11537 Wed Oct 14 00:38:40 1998  Jeffrey A Law  (law@cygnus.com)
11538
11539         * rtl.h: Delete duplicate prototypes.  Add some missing
11540         prototypes.
11541         * rtlanal.c (for_each_rtx): Formatting tweak.
11542
11543 1998-10-13  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
11544
11545         * real.c (emdnorm and etoasc): Disable round to even for c4x target
11546         to be compatible with TI compiler.
11547
11548         * Makefile.in (USER_H): Add va-c4x.h to definition.
11549
11550 Tue Oct 13 23:03:37 1998  Richard Henderson  <rth@cygnus.com>
11551
11552         * function.c (purge_addressof_1): Fix typo in inequality: do
11553         bitfield optimization for equal mode sizes.
11554         * expmed.c (store_bit_field): Don't take subregs of subregs in
11555         the movstrict case.  Tidy a potential problem in the multi-word case.
11556         (extract_bit_field): Likewise.
11557
11558 Tue Oct 13 22:12:11 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
11559
11560         * flow.c (find_basic_blocks): Emit NOPs after normal calls in this
11561         function.
11562         Compute max_uid_for_flow by calling get_max_uid after the scan.
11563         (find_basic_blocks_1): Don't emit NOPs here.
11564
11565 Tue Oct 13 22:05:49 1998  Richard Henderson  <rth@cygnus.com>
11566
11567         * alias.c (base_alias_check): Accept new args for the modes of the
11568         two references.  Use them to determine if an AND can overlap.  Update
11569         all callers.
11570         (memrefs_conflict_p): Assume sizes are aligned, and uses them
11571         to determine if an AND can overlap.
11572
11573 Tue Oct 13 17:51:04 1998  Jim Wilson  <wilson@cygnus.com>
11574
11575         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16
11576         check.  Add comment to document problems with TARGET_SUN_FPA version
11577         of this macro.
11578         * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves.
11579
11580 Tue Oct 13 17:46:18 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11581
11582         * Makefile.in (gencheck.o): Depend on gansidecl.h.
11583
11584         * c-common.c (print_char_table): Add missing initializers.
11585         (scan_char_table): Likewise.
11586         (time_char_table): Likewise.
11587
11588         * c-decl.c (c_decode_option): Mark parameter `argc' with
11589         ATTRIBUTE_UNUSED.
11590         (declare_parm_level): Mark parameter `definition_flag' with
11591         ATTRIBUTE_UNUSED.
11592
11593         * c-lex.c (readescape): Use `(unsigned)1' in shift.
11594         (yylex): Likewise.  Cast `sizeof' to an (int) when comparing
11595         against one.
11596
11597         * calls.c (store_one_arg): Remove unused parameter `fndecl'.  All
11598         callers changed.
11599         (emit_call_1): Mark parameters `fndecl' and `funtype' with
11600         ATTRIBUTE_UNUSED.
11601         (expand_call): Cast result of MIN() to (unsigned int) when
11602         comparing against an unsigned value.
11603
11604         * cccp.c (pcfinclude): Remove unused parameter `limit'.  All
11605         callers changed.
11606         (make_definition): Remove unused parameter `op'.  All callers
11607         changed.
11608         (create_definition): Cast REST_EXTENSION_LENGTH to (long) when
11609         comparing against the result of pointer arithmetic.
11610
11611         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned)
11612         when comparing against one.
11613
11614         * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and
11615         HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against
11616         one.
11617         (output_die): Move variable `i' into the scope in which it is
11618         used.  Change its type to `unsigned'.
11619         (output_die): Cast the result of `strlen' to (int) when passing it
11620         to ASM_OUTPUT_ASCII().
11621         (output_pubnames): Likewise.
11622         (output_line_info): Likewise.
11623
11624         * emit-rtl.c (global_rtl): Add missing initializers.
11625
11626         * explow.c (promote_mode): Mark parameter `for_call' with
11627         ATTRIBUTE_UNUSED.
11628
11629         * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to
11630         `unsigned HOST_WIDE_INT' when comparing against one.
11631         (synth_mult): Change type of variable `cost' to int.
11632         (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift.
11633
11634         * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned)
11635         when comparing against one.
11636         (get_inner_reference): Change variable `alignment' to unsigned.
11637         (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned
11638         int) when comparing against one.
11639         (expand_builtin_setjmp): Change type of variable `i' to size_t.
11640
11641         * fold-const.c (div_and_round_double): Cast BASE to
11642         (HOST_WIDE_INT) when comparing against one.
11643
11644         * gencheck.c: Include gansidecl.h.
11645         (main): Mark parameter `argv' with ATTRIBUTE_UNUSED.
11646
11647         * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and
11648         `tcode' with ATTRIBUTE_UNUSED.
11649
11650         * real.c (edivm): Cast constant value to (unsigned long) in
11651         expression compared against an unsigned value.
11652
11653         * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when
11654         comparing against one.
11655         (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int)
11656         when comparing against one.
11657
11658         * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to
11659         (unsigned int) when comparing against one.  Likewise for
11660         GET_MODE_BITSIZE.
11661         (smallest_mode_for_size): Likewise.
11662         (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED.
11663         (restore_storage_status): Likewise.
11664
11665         * toplev.c (debug_args): Add missing initializer.
11666         (f_options): Spelling correction.  Add missing initializers.
11667         (documented_lang_options): Likewise.
11668         (debug_end_source_file): Mark parameter `lineno' with
11669         ATTRIBUTE_UNUSED.
11670
11671         * tree.c (valid_machine_attribute): Mark parameters `attr_args',
11672         `decl' and `type' with ATTRIBUTE_UNUSED.
11673
11674         * varasm.c (decode_reg_name): Cast `sizeof' expression to (int)
11675         when comparing against one.
11676         (assemble_variable): Mark parameter `top_level' with
11677         ATTRIBUTE_UNUSED.
11678         (assemble_external_libcall): Mark parameter `fun' with
11679         ATTRIBUTE_UNUSED.
11680         (output_constant_pool): Mark parameters `fnname' and `fndecl' with
11681         ATTRIBUTE_UNUSED.
11682
11683 Tue Oct 13 12:51:04 1998  Nick Clifton  <nickc@cygnus.com>
11684
11685         * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration.
11686         Replace use of r5 with use of r19.
11687
11688         * config/v850/v850.h (LINK_POINTER_REGNUM): Define.
11689
11690         * config/v850/v850.c (compute_register_save_size): Allow for the
11691         fact that helper functions save all registers, not just those used
11692         by the function.
11693
11694         Replace constant 31 with macro LINK_POINTER_REGNUM.
11695
11696         * config/v850/v850.md: Use 'indirect_operand' rather than
11697         'memory_operand' for bit test/set/clear patterns.
11698
11699 Tue Oct 13 11:49:14 1998  Jason Merrill  <jason@yorick.cygnus.com>
11700
11701         * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL.
11702         * varasm.c (assemble_start_function et al): Don't call
11703         ASM_GLOBALIZE_LABEL for weak symbols.
11704
11705 Tue Oct 13 11:37:45 1998  Nick Clifton  <nickc@cygnus.com>
11706
11707         * cse.c (equiv_constant): Check for NULL return from
11708         gen_lowpart_if_possible().
11709
11710 Tue Oct 13 11:24:51 1998  Jeffrey A Law  (law@cygnus.com)
11711
11712         * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands.
11713
11714         * collect2.c (main): Pass -EL/-EB through to the compiler.
11715
11716 1998-10-12  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
11717
11718         * expr.c (push_block): Handle targets where the stack grows
11719         to higher addresses, but args grow to lower addresses and
11720         ACCUMULATE_OUTGOING_ARGS is not defined.
11721
11722 Tue Oct 13 08:00:52 1998  Catherine Moore  <clm@cygnus.com>
11723
11724         * config/v850/v850.c (print_operand): Extend meaning
11725         of 'c' operands to support .vtinherit.
11726
11727 Tue Oct 13 21:38:35 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11728
11729         * config/c4x/c4x.c: Convert to gen_rtx_FOO.
11730         Added ATTRIBUTE_UNUSED to unused function arguments.
11731         (rc_reg_operand): New predicate.
11732         (c4x_rptb_insert): New function.
11733         (c4x_rptb_nop_p): Recognize modified rptb_top pattern.
11734         (c4x_optimization_options): New function.
11735
11736         * config/c4x/c4x.md: Convert to gen_rtx_FOO.
11737          (decrement_and_branch_on_count): New pattern.
11738          (rptb_top): Modified pattern to work with BCT optimization.
11739
11740         * config/c4x/c4x.h (RC_REG): New register class.
11741         (rc_reg_operand): Define prototype.
11742         (IS_RC_REG): New macro.
11743         (IS_RC_OR_PSEUDO_REG): New macro.
11744         (IS_RC_OR_PSEUDO_REGNO): New macro.
11745         (OPTIMIZATION_OPTIONS): Define.
11746
11747 Mon Oct 12 19:57:34 1998  Jason Merrill  <jason@yorick.cygnus.com>
11748
11749         * collect2.c (extract_init_priority): No priority is 65535.
11750
11751 Mon Oct 12 12:10:37 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
11752
11753         * Makefile.in (build_tooldir): New variable, same as old
11754         $(tooldir), but without depending on $(libdir)/$(unlibsubdir).
11755         (GCC_FOR_TARGET): Add -B$(build_tooldir)/bin/.
11756         (bootstrap, bootstrap2, bootstrap3, bootstrap4): Likewise.
11757
11758         * configure.in (gxx_include_dir): Set default based on unlibsubdir.
11759         * Makefile.in (tooldir): Likewise.
11760         (cccp.o, cpplib.o): Use unlibsubdir implicitly through
11761         gxx_include_dir, includedir and tooldir.
11762         (protoize.o, unprotoize.o): Likewise.
11763
11764 Mon Oct 12 10:50:44 1998  Nick Clifton  <nickc@cygnus.com>
11765
11766         * config/arm/arm.md: Replace (reg 24) with (reg:CC 24).
11767
11768         * config/arm/thumb.c (thumb_override_options): Add warning about
11769         PIC code not being supported just yet.
11770
11771 Sun Oct 11 16:49:15 1998  John Wehle  (john@feith.com)
11772
11773         * flow.c: Update comment.
11774         (notice_stack_pointer_modification): New static function.
11775         (record_volatile_insns): Use it.
11776         (mark_regs_live_at_end): Mark the stack pointer as alive
11777         at the end of the function if current_function_sp_is_unchanging
11778         is set.
11779         (life_analysis_1): Set current_function_sp_is_unchanging.
11780         * function.c: Define it.
11781         (init_function_start): Initialize it.
11782         * output.h: Declare it.
11783         * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark
11784         the stack pointer as alive at the end of the function if
11785         current_function_sp_is_unchanging is set.
11786         * i386.c (ix86_epilogue): Optimize the restoring
11787         of the stack pointer.
11788
11789 Mon Oct 12 01:22:53 1998  Jeff Law  (law@cygnus.com)
11790
11791         * version.c: Bump for snapshot.
11792
11793 Sun Oct 11 23:04:30 1998  Robert Lipe  <robertl@dgii.com>
11794
11795         * c-pragma.c (handle_pragma_token): If passed a token instead
11796         of a tree, use that as the pack value.
11797
11798 Sun Oct 11 14:21:14 1998  Mark Mitchell  <mark@markmitchell.com>
11799
11800         * flow.c (find_basic_blocks_1): Fix prototype.
11801
11802 Sun Oct 11 05:03:41 1998  Ken Raeburn  <raeburn@cygnus.com>
11803
11804         * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros.
11805         (struct tree_decl): New fields no_check_memory_usage.
11806         * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE.
11807         (init_attributes): Register it as a new attribute.
11808         (decl_attributes): Set flags on functions given that attribute.
11809         * c-decl.c (duplicate_decls): Merge new attribute.
11810         * expr.h (current_function_check_memory_usage): Declare new var.
11811         * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c,
11812         pa.c, sparc.c: Replace uses of flag_check_memory_usage with
11813         current_function_check_memory_usage.
11814         * function.h: Add field to struct function.
11815         * function.c (current_function_check_memory_usage): Define it.
11816         (push_function_context_to, pop_function_context_from): Save and
11817         restore it.
11818         (expand_function_start): Set it, based on global flag and function
11819         attribute.
11820
11821         * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do
11822         check non-automatic variables, to permit detection of writes to
11823         read-only locations in embedded systems without memory management.
11824         * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument
11825         when emitting chkr_set_right_libfunc call, even if the argument is
11826         BLKmode or variable-sized; don't abort.
11827
11828         * optabs.c (init_optabs): Create Checker and __cyg_profile_*
11829         symbols in Pmode, not VOIDmode.
11830
11831 Sun Oct 11 01:03:05 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
11832
11833         * cppexp.c: When forcing unsigned comparisons, cast both sides
11834         of the operation.
11835
11836         * cpphash.h: Move static declaration of hashtab[]...
11837         * cpphash.c: ...here.
11838
11839         * cpplib.c: Cast difference of two pointers to size_t before
11840         comparing it to size_t.  Cast signed to unsigned
11841         before comparing to size_t. (FIXME: struct argdata should use
11842         unsigned buffer sizes.)
11843         * cpplib.h (struct cpp_reader): Declare token_buffer_size as
11844         unsigned int. (CPP_WRITTEN): Cast return value to size_t.
11845         (CPP_RESERVE): Parenthesize N for evaluation order, cast to
11846         size_t before comparison.
11847
11848 Sun Oct 11 00:15:29 1998  Jeffrey A Law  (law@cygnus.com)
11849
11850         * flow.c (find_basic_blocks): Delete "live_reachable_p" argument.
11851         (find_basic_blocks_1): Similarly.
11852         * output.h (find_basic_blocks): Fix prototype.
11853         * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to
11854         find_basic_blocks anymore.
11855
11856 Sat Oct 10 22:00:34 1998  Richard Henderson  <rth@cygnus.com>
11857
11858         * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro.
11859         (sbitmap_free, sbitmap_vector_free): New macros.
11860         * output.h (rtl_dump_file): Declare.
11861
11862 Sat Oct 10 17:01:42 1998  Jeffrey A Law  (law@cygnus.com)
11863
11864         * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION.
11865
11866 Fri Oct  9 22:08:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11867
11868         * fp-bit.c (SFtype): Don't implicitly use int in declaration.
11869         (DFtype): Likewise.
11870         (_fpdiv_parts): Remove unused parameter `tmp', all callers changed.
11871         (divide): Remove unused variable `tmp'.
11872         (si_to_float): Cast numeric constant to (SItype) before comparing
11873         it against one.
11874
11875 Fri Oct  9 16:03:19 1998  Graham  <grahams@rcp.co.uk>
11876
11877         * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use.
11878         * gcc.c (add_preprocessor_option): Correct typo when allocating
11879         memory, sizeof() argument had one too many `*'.
11880         (add_assembler_option): Likewise.
11881         (add_linker_option): Likewise.
11882         * gcov.c (output_data): Likewise.
11883         * local-alloc.c (memref_used_between_p): Likewise.
11884         (update_equiv_regs): Likewise.
11885         * loop.c (strength_reduce): Likewise.
11886         * reg-stack.c (record_asm_reg_life): Likewise.
11887         (subst_asm_stack_reg): Likewise.
11888         * reorg.c (dbr_schedule): Likewise.
11889
11890 Fri Oct  9 15:57:51 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
11891
11892         * flow.c (life_analysis_1): Break out some functions.
11893         (find_basic_blocks_1): Likewise.  Also move some variables out and
11894         make them static.
11895         Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize
11896         new static var nonlocal_label_list with it.
11897         (active_eh_region, nested_eh_region, label_value_list,
11898         nonlocal_label_list): New static variables.
11899         (make_edges, delete_unreachable_blocks, delete_block): New static
11900         functions, broken out of find_basic_blocks_1.
11901         (record_volatile_insns, mark_regs_live_at_end, set_noop_p,
11902         noop_move_p): New static functions, broken out of life_analysis_1.
11903
11904 Fri Oct  9 15:49:29 1998  Richard Henderson  <rth@cygnus.com>
11905
11906         * expmed.c (store_bit_field): Pun non-integral str_rtx modes.
11907         Take extra care for op0 now possibly being a subreg.
11908         (extract_bit_field): Likewise.
11909         * function.c (purge_addressof_1): Revert Oct 4 change.  Drop
11910         the reg to memory if there is no equal sized integral mode.
11911         * stor-layout.c (int_mode_for_mode): New function.
11912         * machmode.h: Prototype it.
11913
11914 Fri Oct  9 14:26:44 1998  Jeffrey A Law  (law@cygnus.com)
11915
11916         * global.c (build_insn_chain): Verify no real insns exist past the
11917         end of the last basic block, then exit the loop.
11918
11919 Fri Oct  9 11:44:47 1998  David Edelsohn  <edelsohn@gnu.org>
11920
11921         * loop.c (insert_bct): Ensure loop_iteration_var non-zero before use.
11922
11923 Thu Oct  8 21:59:47 1998  Dave Brolley  <brolley@cygnus.com>
11924
11925         * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS.
11926
11927 Thu Oct  8 22:03:45 1998  David Edelsohn  <edelsohn@gnu.org>
11928
11929         * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases.
11930
11931 Thu Oct  8 17:00:18 1998  Richard Henderson  <rth@cygnus.com>
11932
11933         * flow.c (find_basic_blocks): Correctly determine when a call
11934         is within an exception region.
11935
11936 Thu Oct  8 17:15:04 1998  Jeffrey A Law  (law@cygnus.com)
11937
11938         * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'.
11939
11940         * cpplib.h: Protect from multiple inclusions.
11941         * cpplib.c: Fix minor formatting problems.
11942
11943         * i386/xm-cygwin32.h: Only define POSIX if it is not already defined.
11944
11945         * jump.c (jump_optimize): Revert accidental patch.
11946
11947         * Makefile.in (cpplib.o): Use unlibsubdir.
11948
11949 Thu Oct  8 12:50:47 1998  Jim Wilson  <wilson@cygnus.com>
11950
11951         * loop.c (get_condition): Allow combine when either compare is
11952         VOIDmode.
11953
11954 Thu Oct  8 11:31:01 1998  Jeff Law  (law@cygnus.com)
11955
11956         * version.c: Bump for snapshot.
11957
11958 Thu Oct  8 12:21:14 1998  Richard Frith-Macdonald  <richard@brainstorm.co.uk>
11959
11960         * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF.
11961         (init_lex): Initialize ridpointers[RID_BYREF].
11962         * c-lex.h (enum rid): Add RID_BYREF.
11963         * c-parse.gperf: Add RID_BYREF as a type qualifier.
11964         * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF.
11965         (encode_type_qualifiers): Similarly.
11966         * c-gperf.h: Rebuilt.
11967
11968 Thu Oct  8 05:56:00 1998  Jeffrey A Law  (law@cygnus.com)
11969
11970         * c-common.c (type_for_mode): Only return TItype nodes when
11971         HOST_BITS_PER_WIDE_INT is >= 64 bits.
11972         * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
11973         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
11974         (init_decl_processing): Only create TItype nodes when
11975         HOST_BITS_PER_WIDE_INT is >= 64 bits.
11976         * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
11977         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
11978
11979 Thu Oct  8 05:05:34 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
11980
11981         * stmt.c (n_occurrences): New static function.
11982         (expand_asm_operands): Verify that all constrains match in the
11983         number of alternatives.
11984         Verify that '+' or '=' are at the beginning of an output constraint.
11985         Don't allow '&' for input operands.
11986         Verify that '%' isn't written for the last operand.
11987         * reload.c (find_reloads): Abort if an asm is found with invalid
11988         constraints; all possible problems ought to be checked for earlier.
11989
11990 Thu Oct  8 04:26:20 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11991
11992         * flags.h (flag_branch_on_count_reg): Always declare.
11993         * toplev.c (flag_branch_on_count_reg): Likewise.
11994         * toplev.c: Fix typos.
11995
11996         * real.c (c4xtoe): Remove unused variables.  Add some missing parens.
11997         (toc4x): Similarly.
11998
11999 Thu Oct  8 01:25:22 1998  Richard Henderson  <rth@cygnus.com>
12000
12001         * flow.c (find_basic_blocks): Calc upper bound for extra nops in
12002         max_uids_for_flow.
12003         (find_basic_blocks_1): Add a nop to the end of a basic block when
12004         a trailing call insn does not have abnormal control flow.
12005         * gcse.c (pre_transpout): New variable.
12006         (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it.
12007         (compute_pre_transpout): Calculate it.
12008         (compute_pre_ppinout): Use it to eliminate impossible placements
12009         due to abnormal control flow through calls.
12010         (compute_pre_data): Call compute_pre_transpout.
12011
12012 Wed Oct  7 21:40:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12013
12014         * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo.
12015
12016 Wed Oct  7 21:19:46 1998  Ken Raeburn  <raeburn@cygnus.com>
12017
12018         * config/mips/mips.md (tablejump_internal3, tablejump_internal4
12019         and matching define_insns): Tack on a `use' of the table label, so
12020         flow analysis will recognize a tablejump.
12021
12022 Wed Oct  7 17:33:39 1998  Richard Henderson  <rth@cygnus.com>
12023
12024         * gcse.c (pre_insert_insn): Tweek to notice that calls do not
12025         always end basic blocks for abnormal edge reasons.
12026
12027 Wed Oct  7 14:40:43 1998  Nick Clifton  <nickc@cygnus.com>
12028
12029         * config/i386/i386.h: Remove definition of
12030         HANDLE_PRAGMA_PACK_PUSH_POP.
12031
12032         * config/i386/go32.h: Add definition of
12033         HANDLE_PRAGMA_PACK_PUSH_POP.
12034
12035         * config/i386/win32.h: Add definition of
12036         HANDLE_PRAGMA_PACK_PUSH_POP.
12037
12038         * config/i386/cygwin32.h: Add definition of
12039         HANDLE_PRAGMA_PACK_PUSH_POP.
12040
12041         * c-pragma.c (insert_pack_attributes): Do not insert
12042         attributes unless #pragma pack(push,<n>) is in effect.
12043
12044 Wed Oct  7 12:10:46 1998  Jim Wilson  <wilson@cygnus.com>
12045
12046         * expr.c (emit_group_store): Handle a PARALLEL destination.
12047
12048 Wed Oct  7 10:07:29 1998  Richard Henderson  <rth@cygnus.com>
12049
12050         * gcse.c (pre_insert_insn): When a call ends a bb, insert
12051         the new insns before the argument regs are loaded.
12052
12053 Wed Oct  7 12:55:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12054
12055         * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf.
12056         (c-parse.gperf): Update comments describing invocation flags.
12057         (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs).
12058
12059 1998-10-07  Manfred Hollstein  <manfred@s-direktnet.de>
12060
12061         * reload1.c (reload): Call free before clobbering the memory
12062         locations or constants pointers.
12063
12064 Wed Oct  7 02:05:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12065
12066         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework
12067         for efficiency by checking whether we need to modify the current
12068         stack permission at all.
12069         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define.
12070         * config/sparc/sparc.c (sparc_initialize_trampoline): Emit
12071         __enable_execute_stack libcall here too if
12072         TRANSFER_FROM_TRAMPOLINE is defined.
12073         * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if
12074         IN_LIBGCC2.
12075
12076 Wed Oct  7 02:27:52 1998  Jeffrey A Law  (law@cygnus.com)
12077
12078         * Makefile.in (DRIVER_DEFINES): Remove last change.
12079
12080 Wed Oct  7 01:08:43 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
12081
12082         * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all
12083         insns we're going to copy.
12084         * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX.
12085
12086         * loop.c (count_one_set): Add prototype.
12087
12088         * caller-save.c (restore_referenced_regs): Lose mode argument.
12089         (insert_save): Lose mode argument.
12090         (insert_restore): Lose mode argument.
12091         (insert_one_insn): Lose mode argument.
12092         (save_call_clobbered_regs): Lose mode argument.
12093         (setup_save_areas): Take no argument and return void.  All callers
12094         changed.
12095         Don't verify validity of memory addresses.
12096         * reload.h (setup_save_ares): Adjust prototype.
12097         (save_call_clobbered_regs): Likewise.
12098         * reload1.c (delete_caller_save_insns): New function.
12099         (caller_save_spill_class): Delete variable.
12100         (caller_save_group_size): Delete variable.
12101         (reload): Call setup_save_areas and save_call_clobbered_regs
12102         in the main loop, before calling calculate_needs_all_insns.
12103         Don't call save_call_clobbered_regs after the loop.
12104         Call delete_caller_save_insns at the end of an iteration if
12105         something changed.
12106         Delete code to manage caller_save_spill_class.
12107         Emit the final note before setting reload_first_uid.
12108         Simplify test that determines whether reload_as_needed gets run.
12109         (calculate_needs): Delete code to manage caller_save_spill_class.
12110
12111 Tue Oct  6 15:42:27 1998  Richard Henderson  <rth@cygnus.com>
12112
12113         * collect2.c (main): Initialize ld_file_name.
12114
12115 Tue Oct  6 15:45:15 1998  Catherine Moore  <clm@cygnus.com>
12116
12117         * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Don't
12118         check for flag_function_sections.
12119
12120 Tue Oct  6 20:02:31 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12121
12122         * cse.c (insert_regs): Fix bug in Sep 24 change.
12123
12124 Tue Oct  6 17:00:42 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12125
12126         * flags.h (flag_dump_unnumbered): Declare.
12127         * toplev.c (flag_dump_unnumbered): Don't declare.
12128         * print-rtl.c (flags.h): Include.
12129         (print_rtl_single): Add return value.
12130         * rtl.h (print_rtl_single): Update declaration.
12131         * flow.c (flag_dump_unnumbered): Don't declare.
12132         (print_rtl_with_bb): Use return value of print_rtl_single.
12133
12134 Tue Oct  6 01:36:00 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
12135
12136         * loop.c (count_one_set): New static function, broken out of
12137         count_loop_regs_set.
12138         (count_loop_regs_set): Call it.
12139         * global.c (mark_reg_store): Handle clobbers here by not calling
12140         set_preference.
12141         (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER
12142         is in fact a clobber.
12143         * integrate.c (process_reg_param): New function, broken out of
12144         expand_inline_function.
12145         (expand_inline_function): Call it.
12146
12147         * i386.md (addsidi3_1): Delete unused variable temp.
12148         (addsidi3_2): Likewise.
12149         (clstrstrsi): Delete unused variable addr1.
12150
12151         * rtl.h: Don't declare any functions also declared in recog.h.
12152
12153         * Makefile.in (stupid.o): Update dependencies.
12154         (global.o): Likewise.
12155
12156         * global.c: Include reload.h.
12157         (reg_becomes_live): New function.
12158         (reg_dies): New function.
12159         (build_insn_chain): New function.
12160         (global_alloc): Call build_insn_chain before calling reload.
12161
12162         * reload.h (struct needs): New structure definition.
12163         (struct insn_chain): Likewise.
12164         (reload_insn_chain): Declare variable.
12165         (new_insn_chain): Declare function.
12166
12167         * reload1.c (reload_startobj): New variable.
12168         (reload_insn_chain): New variable.
12169         (unused_insn_chains): New variable.
12170         (new_insn_chain): New function.
12171         (init_reload): Initialize reload_startobj, not reload_firstobj.
12172         (reload): Initialize reload_firstobj.
12173         Before returning, free everything on the reload_obstack.
12174
12175         * stupid.c: Include insn-config.h, reload.h and basic-block.h.
12176         (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber,
12177         current_chain): New variables.
12178         (reg_where_born): Delete variable.
12179         (REG_WHERE_BORN): New macro.
12180         (find_clobbered_regs): New function.
12181         (stupid_life_analysis): Don't allocate/free reg_where_born.
12182         Allocate and free reg_where_born_exact, reg_where_born_clobber,
12183         reg_where_dead_chain.
12184         Use REG_WHERE_BORN instead of reg_where_born.
12185         While processing the insns, build the reload_insn_chain with
12186         information about register lifetimes.
12187         (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born.
12188         (stupid_mark_refs): Replace arg INSN with arg CHAIN.  All callers
12189         changed.
12190         Compute and information about birth and death of pseudo registers in
12191         reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber.
12192         Delete code to set elements of reg_where_born.
12193
12194 Mon Oct  5 22:34:30 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12195
12196         * tree.def (GOTO_EXPR): Modified documentation.
12197         * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed
12198         goto.
12199
12200 Mon Oct  5 22:43:36 1998  David Edelsohn  <edelsohn@gnu.org>
12201
12202         * unroll.c (loop_iteration_var, loop_initial_value, loop_increment
12203         loop_final_value, loop_comparison_code): No longer static.
12204         (unroll_loop): Delete loop_start_value update.
12205         * loop.h (loop_iteration_var, loop_initial_value, loop_increment,
12206         loop_final_value, loop_comparison_code): Extern.
12207         (loop_start_value): Delete extern.
12208         * loop.c (loop_can_insert_bct, loop_increment, loop_start_value,
12209         loop_comparison_value, loop_comparison_code): Delete.
12210         (loop_optimize): Remove initialization for deleted variables.
12211         (strength_reduce): Delete analyze_loop_iterations call.  Only call
12212         insert_bct if flag_branch_count_on_reg set.
12213         (analyze_loop_iterations): Delete.
12214         (insert_bct): Remove iteration count calculation.  Move checks for
12215         viable BCT optimization to here.  Obtain iteration count from
12216         loop_iterations and correct for unrolling.  Check for enough
12217         iteration to be beneficial.  Comment out runtime iteration count
12218         case.
12219         (insert_bct): Print iteration count in dump file.  Remove
12220         loop_var_mode and use word_mode directly.
12221
12222         * rs6000.h (processor_type): Add PROCESSOR_PPC604e.
12223         * rs6000.c (rs6000_override_options): Use it.
12224         (optimization_options): Enable use of flag_branch_on_count_reg.
12225         * rs6000.md (define_function_unit): Describe 604e.
12226
12227 1998-10-05  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
12228
12229         * loop.c (move_movables): Corrected threshold calculation for
12230         moved_once registers.
12231
12232 Mon Oct  5 21:18:45 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
12233
12234         * loop.c (combine_givs_p): Fix test for identical givs.
12235
12236 Mon Oct  5 10:11:28 1998  Nick Clifton  <nickc@cygnus.com>
12237
12238         * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't
12239         call abort if the function is already defined.
12240
12241 Mon Oct  5 10:02:36 1998  Jeffrey A Law  (law@cygnus.com)
12242
12243         * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if
12244         truncation is not a no-op.
12245
12246 Mon Oct  5 09:02:04 1998  Jeff Law  (law@cygnus.com)
12247
12248         * version.c: Bump for snapshot.
12249
12250 Mon Oct  5 08:19:55 1998  Jeff Law  (law@cygnus.com)
12251
12252         * version.c: Bump for snapshot.
12253
12254 Mon Oct  5 01:07:23 1998  Torbjorn Granlund  <tege@matematik.su.se>
12255
12256         * expmed.c (expand_divmod): Don't widen for computing remainder
12257         if we seem to have a divmod pattern for needed mode.
12258
12259 Mon Oct  5 01:01:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
12260
12261         * cpplib.c (macroexpand): Correct off-by-one error in handling
12262         of escapes.
12263
12264 Sun Oct  4 23:58:30 1998  Richard Henderson  <rth@cygnus.com>
12265
12266         * combine.c (expand_field_assignment): Don't do bitwise operations
12267         on MODE_FLOAT; pun to MODE_INT if possible.
12268
12269 Sun Oct  4 18:33:24 1998  Jason Merrill  <jason@yorick.cygnus.com>
12270                           scott snyder  <snyder@d0sgif.fnal.gov>
12271
12272         * tlink.c (scan_linker_output): Recognize errors from irix 6.2
12273         linker.  Recognize mangled names in quotes.
12274
12275 Sun Oct  4 02:58:20 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
12276
12277         * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64.
12278         (ashlsi3_const1, ashldi3_const1): New combiner patterns.
12279         (ashrsi3_extend, ashrsi3_extend2): New combiner patterns.
12280         (lshrsi3_extend, lshrsi3_extend2): Likewise.
12281
12282 Sun Oct  4 00:23:00 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12283
12284         * function.c (purge_addressof_1): If trying to take a sub-word
12285         integral piece of a floating point mode, put it on the stack.
12286
12287 Sat Oct  3 19:01:03 1998  Richard Henderson  <rth@cygnus.com>
12288
12289         * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.
12290
12291 Sat Oct  3 14:42:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
12292
12293         * PROJECTS: Remove template friends.
12294
12295         * collect2.c (sort_ids): Remove unused variable.
12296
12297         * tm.texi (MATH_LIBRARY): Document.
12298         (NEED_MATH_LIBRARY): Remove.
12299
12300         * varasm.c (assemble_start_function, assemble_variable, weak_finish,
12301         assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too.
12302
12303 Sat Oct  3 16:14:44 1998  John Carr  <jfc@mit.edu>
12304
12305         * dwarf2out.c (expand_builtin_dwarf_reg_size): Initialize
12306         last_end to 0x7fffffff.
12307
12308 Fri Oct  2 19:14:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12309
12310         * function.c (purge_addressof_1): Do not perform endianness
12311         corrections on bitpos, who we call will do it for us.
12312
12313 Fri Oct  2 11:52:35 1998  Jeffrey A Law  (law@cygnus.com)
12314
12315         * h8300.c (WORD_REG_USED): Fix typo.
12316         (initial_offset): Use WORD_REG_USED.
12317
12318         * h8300.c (handle_pragma): Fix typo.
12319
12320 Fri Oct  2 10:51:35 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
12321
12322         * caller-save.c (insert_save_restore): Break this function up
12323         into new functions insert_restore, insert_save and insert_one_insn.
12324         All callers changed.
12325         (insert_restore): New function, mostly broken out of
12326         insert_save_restore.
12327         (insert_save): Likewise.
12328         (insert_one_insn): Likewise.
12329         (restore_referenced_regs): New argument BLOCK.  All callers changed.
12330         (save_call_clobbered_regs): Don't keep track of basic block boundaries
12331         in this function, do it in insert_one_insn instead.
12332
12333         * reload1.c (reload): Break out some more pieces into separate
12334         functions.
12335         (dump_needs): New function, broken out of reload.
12336         (set_initial_elim_offsets): Likewise.
12337         (init_elim_table): Likewise.
12338         (update_eliminables): Likewise.
12339
12340         * global.c (global_alloc): Delete code to manage the scratch_list.
12341         * local-alloc.c (qty_scratch_rtx): Delete.
12342         (scratch_block): Delete.
12343         (scratch_list): Delete.
12344         (scratch_list_length): Delete.
12345         (scratch_index): Delete.
12346         (alloc_qty_for_scratch): Delete.
12347         (local-alloc): Update initialization of max_qty.
12348         Delete code to manage the scratch list.
12349         Delete code to allocate/initialize qty_scratch_rtx.
12350         (block_alloc): Don't allocate quantities for scratches.
12351         Delete code to manage the scratch list.
12352         * regs.h (scratch_list): Delete declaration.
12353         (scratch_block): Delete declaration.
12354         (scratch_list_length): Delete declaration.
12355         * reload1.c (reload): Delete code to manage the scratch list.
12356         (spill_hard_reg): Likewise.
12357         (mark_scratch_live): Delete.
12358
12359         * recog.c (alter_subreg): Delete declaration.
12360
12361 1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
12362
12363         * Makefile.in (cccp.o): Fix typo in last patch.
12364
12365 Fri Oct  2 16:13:12 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12366
12367         * t-sh (LIB1ASMFUNCS): Add _set_fpscr .
12368         * config/sh/lib1funcs.asm (___set_fpscr): Add.
12369
12370 Fri Oct  2 02:01:59 1998  Jeffrey A Law  (law@cygnus.com)
12371
12372         * regclass.c (reg_scan_mark_refs): Return immediately if passed a
12373         NULL_RTX as an argument.
12374
12375         * Makefile.in (unlibsubdir): Define.
12376         (DRIVER_DEFINES): Use unlibsubdir.
12377         (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly.
12378         (stmp-fixinc): Similarly.
12379
12380 Thu Oct  1 19:58:30 1998  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
12381
12382         * regmove.c (regmove_optimize): Add variable old_max_uid.
12383         At the end of the function, update basic_block_end.
12384
12385 Thu Oct  1 17:58:25 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12386
12387         * dwarf2out.c (expand_builtin_dwarf_reg_size): Use
12388         FIRST_PSEUDO_REGISTER as upper bound for last_end, not an
12389         arbitrary constant.
12390
12391 Thu Oct  1 17:57:14 1998  Nick Clifton  <nickc@cygnus.com>
12392
12393         * config/arm/arm.c: Improve interworking support.
12394
12395 Thu Oct  1 18:43:35 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12396
12397         * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was
12398         copied from reload_out[r] .
12399
12400 Thu Oct  1 19:20:09 1998  John Carr  <jfc@mit.edu>
12401
12402         * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work
12403         with more than three size ranges.
12404
12405         * flow.c (sbitmap_copy): Use bcopy to copy bitmap.
12406
12407         * rtl.c (mode_name): Add a null string at the end of the array.
12408         (mode_wider_mode): Change type to unsigned char.
12409         (mode_mask_array): New variable.
12410         (init_rtl): Update for mode_wider_mode type change.
12411
12412         * rtl.h (mode_wider_mode): Change type to unsigned char.
12413         (mode_mask_array): Declare.
12414         (GET_MODE_MASK): Use mode_mask_array.
12415
12416 Thu Oct  1 15:56:01 1998  Gavin Romig-Koch  <gavin@cygnus.com>
12417
12418         * calls.c (expand_call) : Encapsulate code into
12419         copy_blkmode_from_reg.
12420         * expr.c (copy_blkmode_from_reg): New function.
12421         * expr.h (copy_blkmode_from_reg): New function.
12422         * integrate.c (function_cannot_inline_p): We can inline
12423         these now.
12424         (expand_inline_function): Use copy_blkmode_from_reg
12425         if needed.  Avoid creating BLKmode REGs.
12426         (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode
12427         object.
12428
12429 Thu Oct  1 10:42:27 1998  Nick Clifton  <nickc@cygnus.com>
12430
12431         * config/v850/v850.c: Add function prototypes.
12432         Add support for v850 special data areas.
12433
12434         * config/v850/v850.h: Add support for v850 special data areas.
12435
12436         * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and
12437         HANDLE_PRAGMA_PACK_PUSH_POP.
12438         (push_alignment): New function: Cache an alignment requested
12439         by a #pragma pack(push,<n>).
12440         (pop_alignment): New function: Pop an alignment from the
12441         alignment stack.
12442         (insert_pack_attributes): New function: Generate __packed__
12443         and __aligned__ attributes for new decls whilst a #pragma pack
12444         is in effect.
12445         (add_weak): New function: Cache a #pragma weak directive.
12446         (handle_pragma_token): Document calling conventions.  Add
12447         support for #pragma pack(push,<n>) and #pragma pack (pop).
12448
12449         * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP
12450         are defined enable HANDLE_PRAGMA_PACK.
12451         Move 'struct weak_syms' here (from varasm.c).
12452         Add pragma states for push and pop pragmas.
12453
12454         * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES
12455         if it is defined.
12456
12457         * c-lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with
12458         HANDLE_GENERIC_PRAGMAS.
12459
12460         * varasm.c: Move definition of 'struct weak_syms' into
12461         c-pragma.h.
12462         (handle_pragma_weak): Deleted.
12463
12464         * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
12465
12466         * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
12467
12468         * c-decl.c (start_function): Add invocation of
12469         SET_DEFAULT_DECL_ATTRIBUTES, if defined.
12470
12471         * tm.texi: Remove description of non-existent macro
12472         SET_DEFAULT_SECTION_NAME.
12473
12474         (HANDLE_SYSV_PRAGMA): Document.
12475         (HANDLE_PRAGMA_PACK_PUSH_POP): Document.
12476
12477 Wed Sep 30 22:27:53 1998  Robert Lipe  <robertl@dgii.com>
12478
12479         * config.sub: Recognize i[34567]86-pc-udk as new target.
12480         * configure.in: Likewise.
12481         * config/i386/t-udk: New file.
12482         * config/i386/udk.h: New file.
12483
12484 Wed Sep 30 19:33:07 1998  Jeffrey A Law  (law@cygnus.com)
12485
12486         * reorg.c (check_annul_list_true_false): Remove unused variables.
12487         (steal_delay_list_from_target): Add missing "used_annul" variable.
12488         (try_merge_delay_insns): Close out half formed comment.
12489
12490 Wed Sep 30 19:13:20 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
12491
12492         * cpplib.c (macroexpand): If arg->raw_before or
12493         arg->raw_after, remove any no-reexpansion escape at the
12494         beginning of the pasted token.  Correct handling of whitespace
12495         markers and no-reexpand markers at the end if arg->raw_after.
12496
12497         * toplev.c (documented_lang_options): Recognize -include,
12498         -imacros, -iwithprefix, -iwithprefixbefore.
12499         * cpplib.c (cpp_start_read): Process -imacros and -include
12500         switches at the same time and in command-line order, after
12501         initializing the dependency-output code.  Emit properly nested
12502         #line directives for them.  Emit a #line for the main file
12503         before processing these switches, and don't do it again
12504         afterward.
12505
12506 Wed Sep 30 18:03:22 1998  Richard Henderson  <rth@cygnus.com>
12507
12508         * function.c (purge_addressof_1): Use bitfield manipulation
12509         routines to handle mem mode < reg mode.
12510
12511 Wed Sep 30 18:43:32 1998  Herman ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
12512
12513         * reorg.c (try_merge_delay_insns): Account for resources referenced
12514         in each instruction in INSN's delay list before trying to eliminate
12515         useless instructions.  Similarly when looking at a trial insn's delay
12516         slots.
12517
12518         * reorg.c (check_annul_list_true_false): New function.
12519         (steal_delay_list_from_{target,fallthrough}): Call it and also
12520         refine tests for when we may annul if already filled a slot.
12521         (fill_slots_from_thread): Likewise.
12522         (delete_from_delay_slot): Return newly-created thread.
12523         (try_merge_delay_isns): Use its new return value.
12524
12525 Wed Sep 30 18:29:26 1998  Jeffrey A Law  (law@cygnus.com)
12526
12527         * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is
12528         used to compute a giv or as some other non-counting use.
12529
12530 Wed Sep 30 18:19:27 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12531
12532         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
12533         * local-alloc.c (find_free_reg): Use it.
12534         * global.c (find_reg): Likewise.
12535         * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED.
12536
12537         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12538         * caller-save.c (init_caller_save): Use it.
12539         * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE.
12540
12541 Wed Sep 30 12:57:30 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
12542
12543         * configure.in: Add --enable-cpplib option which uses cpplib
12544         for cpp, but doesn't link cpplib into cc1.  Make help text
12545         capitalization consistent.
12546         * configure: Rebuilt.
12547
12548 Wed Sep 30 10:09:39 1998  Mark Mitchell  <mark@markmitchell.com>
12549
12550         * function.c (gen_mem_addressof): If the address REG is
12551         REG_USERVAR_P make the new REG be so also.
12552         * loop.c (scan_loop): Apply DeMorgan's laws and add documentation
12553         in an attempt to clarify slightly.
12554
12555 Wed Sep 30 09:57:40 1998  Jeffrey A Law  (law@cygnus.com)
12556
12557         * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF
12558         and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE.
12559
12560 Wed Sep 30 10:13:39 1998  Catherine Moore  <clm@cygnus.com>
12561
12562         * toplev.c: Fix last patch.
12563
12564 Tue Sep 29 20:03:18 1998  Jim Wilson  <wilson@cygnus.com>
12565
12566         * loop.c (get_condition): Fix typo in May 9 change.
12567
12568 Tue Sep 29 11:11:38 1998  Andrew MacLeod  <amacleod@cygnus.com>
12569
12570         * invoke.texi (-fexceptions): Merge 2 different descriptions.
12571
12572 Mon Sep 28 22:08:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12573
12574         * toplev.c (documented_lang_options): Spelling corrections.
12575
12576 Mon Sep 28 19:41:24 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
12577
12578         * configure.in: New flags --with-ld and --with-as, equivalent
12579         to setting LD and AS environment variables.  Test whether
12580         specified arguments are GNU commands, and report them with
12581         checking messages.  Use the specified AS for configure
12582         tests too.
12583         * configure: Likewise.
12584         * acconfig.h: Add DEFAULT_ASSEMBLER and DEFAULT_LINKER.
12585         * config.in: Likewise.
12586         * gcc.c (find_a_file): When looking for `as' and `ld', return
12587         the DEFAULT program if it exists.
12588         * collect2.c (main): Use DEFAULT_LINKER if it exists.
12589
12590         * gcc.c (find_a_file): The test for existence of a full
12591         pathname was reversed.
12592
12593 Mon Sep 28 17:34:35 1998  Michael Meissner  <meissner@cygnus.com>
12594
12595         * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems.
12596         * rs6000.c (output_mi_thunk): Always use a raw jump for now.
12597
12598 Mon Sep 28 14:24:03 1998  Mark Mitchell  <mark@markmitchell.com>
12599
12600         * tree.h (TYPE_BINFO): Document.
12601
12602 Mon Sep 28 12:55:49 1998  Stan Cox  <scox@cygnus.com>
12603
12604         * i386-coff.h (dbxcoff.h): Added.
12605
12606 Mon Sep 28 12:51:00 1998  Catherine Moore  <clm@cygnus.com>
12607
12608         * toplev.c: Fix bad patch around flag_data_sections.
12609
12610 Mon Sep 28 10:32:28 1998  Nick Clifton  <nickc@cygnus.com>
12611
12612         * reload1.c (reload): Use reload_address_index_reg_class and
12613         reload_address_base_reg_class when setting
12614         caller_save_spill_class.  (Patch generated by Jim Wilson:
12615         wilson@cygnus.com).
12616
12617 Mon Sep 28 07:43:34 1998  Mark Mitchell  <mark@markmitchell.com>
12618
12619         * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs
12620         and ARRAY_TYPEs.  Tidy up.  Improve support for type-punning.
12621         * expr.c (store_field): Add alias_set parameter.  Set the
12622         MEM_ALIAS_SET accordingly, if the target is a MEM.
12623         (expand_assignment): Use it.
12624         (store_constructor_field): Pass 0.
12625         (expand_expr): Likewise.
12626
12627 Mon Sep 28 07:54:03 1998  Catherine Moore  <clm@cygnus.com>
12628
12629         * flags.h: Add flag_data_sections.
12630         * toplev.c: Add option -fdata-sections.  Add flag_data_sections.
12631         (compile_file): Error if flag_data_sections not supported.
12632         * varasm.c (assemble_variable): Handle flag_data_sections.
12633         * config/svr4.h: Modify prefixes for UNIQUE_SECTION_NAME.
12634         * config/mips/elf.h: Likewise.
12635         * config/mips/elf64.h: Likewise.
12636         * invoke.texi: Describe -fdata-sections.
12637
12638 Mon Sep 28 04:15:44 1998  Craig Burley  <burley@melange.gnu.org>
12639
12640         * invoke.texi (-ffloat-store): Clarify that this option
12641         does not affect intermediate results -- only variables.
12642
12643 Mon Sep 28 04:11:35 1998  Jeffrey A Law  (law@cygnus.com)
12644
12645         * cpp.texi: Update for Fortran usage from Craig.
12646
12647 Fri Sep 25 22:09:47 1998  David Edelsohn  <edelsohn@gnu.org>
12648
12649         * rs6000.c (function_arg_boundary): Revert accidental change on
12650         September 18.
12651
12652 Fri Sep 25 20:30:00 1998  Michael Meissner  <meissner@cygnus.com>
12653
12654         * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk.
12655         (output_mi_thunk): Declare.
12656
12657         * rs6000.c (output_mi_thunk): Function to create thunks for MI.
12658         (output_function_profiler): Use r12 for temp, instead of r11 so
12659         that we preserve the static chain register.
12660
12661 Fri Sep 25 14:18:33 1998  Jim Wilson  <wilson@cygnus.com>
12662
12663         * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.
12664
12665 Fri Sep 25 19:30:19 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12666
12667         * sh.c (gen_shl_sext): Fix case 5.
12668
12669 Fri Sep 25 17:35:23 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12670
12671         * reload1.c (reload_combine): Re-add line that got accidentally lost.
12672
12673 Fri Sep 25 10:43:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12674
12675         * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid
12676         accessing variables until they are initialized via va_arg().
12677
12678 Thu Sep 24 22:12:16 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12679
12680         * reload1.c (reload_combine): Initialize set before using.
12681
12682 Thu Sep 24 18:53:20 1998  Jason Merrill  <jason@yorick.cygnus.com>
12683
12684         * sdbout.c (sdbout_field_types): Don't emit the types of fields we
12685         won't be emitting.
12686
12687 Thu Sep 24 17:05:30 1998  Nick Clifton  <nickc@cygnus.com>
12688
12689         * config/arm/arm.md (insv): Add comment.  In CONST_INT case, and
12690         operand3 with mask before using it.  Patch provided by Jim Wilson.
12691
12692 Thu Sep 24 15:08:08 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
12693
12694         * config/sparc/sparc.c (function_value): Perform the equivalent of
12695         PROMOTE_MODE for ARCH64.
12696         (eligible_for_epilogue_delay): Allow DImode operations in delay
12697         slot of a return for ARCH64.
12698
12699 Thu Sep 24 22:17:54 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12700
12701         * sh.md (sqrtsf2): Fix mode of sqrt.
12702
12703 Thu Sep 24 21:48:51 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12704
12705         * reload1.c (choose_reload_regs): Also try inheritance when
12706         reload_in is a stack slot of a pseudo, even if we already got a
12707         reload reg.
12708
12709 Thu Sep 24 21:22:39 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12710
12711         * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs.
12712         (reload_cse_regs): New function body: call reload_cse_regs_1,
12713         reload_combine, reload_cse_move2add.
12714         When doing expensive_optimizations, call reload_cse_regs_1 a
12715         second time after reload_cse_move2add.
12716         (reload_combine, reload_combine_note_store): New functions.
12717         (reload_combine_note_use): New function.
12718         (reload_cse_move2add, move2add_note_store): New functions.
12719
12720 Thu Sep 24 18:48:43 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12721
12722         * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR
12723         reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing.
12724
12725         Properly keep track of first RELOAD_FOR_X_ADDRESS also for
12726         more than 3 such reloads.
12727
12728         If there is not more than one RELOAD_FOR_X_ADDRESS, don't change
12729         RELOAD_FOR_X_ADDR_ADDR reload.
12730
12731 Thu Sep 24 17:45:55 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
12732
12733         * expr.c (store_constructor): When initializing a field that is smaller
12734         than a word, at the start of a word, try to widen it to a full word.
12735
12736         * cse.c (cse_insn): When we are about to change a register,
12737         remove any invalid references to it.
12738
12739         (remove_invalid_subreg_refs): New function.
12740         (mention_regs): Special treatment for SUBREGs.
12741         (insert_regs): Don't strip SUBREG for call to mention_regs.
12742         Check if reg_tick needs to be bumped up before that call.
12743         (lookup_as_function): Try to match known word_mode constants when
12744         looking for a norrower constant.
12745         (canon_hash): Special treatment for SUBREGs.
12746
12747 Thu Sep 24 01:35:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12748
12749         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define.
12750         * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is
12751         defined, emit libcall to __enable_execute_stack.  Also fix opcodes
12752         and offsets in actual stack trampoline code so they match the
12753         commentary and actually work.
12754
12755 Thu Sep 24 01:19:02 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
12756
12757         * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for
12758         tmake_file.
12759         (sparc64-*-linux): Use t-linux and sparc/t-linux64 for
12760         tmake_file.  Set extra_parts to needed crt objects.
12761         * configure: Rebuilt.
12762         * config/sparc/linux64.h (SPARC_BI_ARCH): Define.
12763         (TARGET_DEFAULT): Set if default is v9 or ultra.
12764         (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros.
12765         (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH.
12766         (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise.
12767         (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
12768         LINK_SPEC, LINK_ARCH_SPEC): Likewise.
12769         (TARGET_VERSION): Define.
12770         (MULTILIB_DEFAULT): Define.
12771         * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that
12772         mixed 32/64 bit compilers based upon SPARC_BI_ARCH work.
12773         (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define
12774         appropriately.
12775         (TARGET_SWITCHES): Allow ptr32/ptr64 options once more.
12776         * config/sparc/sparc.c (sparc_override_options): If arch and
12777         pointer size disagree, emit diagnostic and fix it up.  If
12778         SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32.  Turn off
12779         V8PLUS in 64-bit mode.
12780         * config/sparc/t-linux64: New file.
12781         * config/sparc/t-sol2-64: New file.
12782         * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS.
12783         * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define.
12784         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC,
12785         CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define.
12786         (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those.
12787         (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC):
12788         Define.
12789         (STARTFILE_SPEC): Set appropriately based upon those.
12790         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon
12791         disposition of DEFAULT_ARCH32_P.
12792         (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define.
12793         (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those.
12794         (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P.
12795         (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH.
12796         * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on
12797         arch64/v9.
12798         * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise.
12799
12800 Wed Sep 23 22:32:31 1998  Mark Mitchell  <mark@markmitchell.com>
12801
12802         * rtl.h (init_virtual_regs): New function.
12803         * emit-rtl.c (init_virtual_regs): Define.
12804         (insn_emit): Use it.
12805         * integrate.c (save_for_inline_copying): Likewise.
12806
12807 Wed Sep 23 16:22:01 1998  Nick Clifton  <nickc@cygnus.com>
12808
12809         * config/arm/thumb.h: The following patches were made by Jim Wilson:
12810         (enum reg_class): Add NONARG_LO_REGS support.
12811         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
12812         PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
12813         (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload
12814         completes.  Re-enable HImode REG+OFFSET addresses.
12815         (LEGITIMIZE_RELOAD_ADDRESS): Define.
12816
12817         * expmed.c (extract_bit_field): Add comment from Jim Wilson.
12818
12819 Wed Sep 23 13:26:02 1998  Richard Henderson  <rth@cygnus.com>
12820
12821         * alpha.c (get_aligned_mem): Revert Sep 20 change.
12822         (alpha_set_memflags, alpha_set_memflags_1): Likewise.
12823         (alpha_align_insns): Properly calculate initial offset wrt max_align.
12824
12825 Wed Sep 23 10:45:44 1998  Richard Earnshaw  (rearnsha@arm.com)
12826
12827         * arm.c (find_barrier): Revert change of Apr 23.  Handle table
12828         jumps as a single entity, taking into account the size of the
12829         table.
12830
12831 Tue Sep 22 15:13:34 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12832
12833         * tree.def (SWITCH_EXPR): New tree node definition.
12834
12835 Mon Sep 21 23:40:38 1998  Jeff Law  (law@cygnus.com)
12836
12837         * version.c: Bump for snapshot.
12838
12839 Mon Sep 21 22:31:14 1998  Jeff Law  (law@cygnus.com)
12840
12841         * version.c: Bump for snapshot.
12842
12843 Mon Sep 21 22:48:09 1998  Jeffrey A Law  (law@cygnus.com)
12844
12845         * configure.in: Recognize i[34567]86-*-openbsd* and handle it like
12846         NetBSD.
12847
12848 Mon Sep 21 22:05:28 1998  Jeffrey A Law  (law@cygnus.com)
12849
12850         * Revert this patch.
12851         * reload.c (find_reloads): Do not replace a pseudo with
12852         (MEM (reg_equiv_addr)) in the initializing insn for the
12853         pseudo.
12854
12855 Mon Sep 21 20:19:41 1998  John Carr  <jfc@mit.edu>
12856
12857         * final.c (final_scan_insn): Disable tracking CC across branches.
12858
12859 Mon Sep 21 17:15:26 1998  Andrew MacLeod  <amacleod@cygnus.com>
12860
12861         * expr.h (eh_rtime_match_libfunc): New extern declaration.
12862         * optabs.c (init_optabs): Set eh_rtime_match_libfunc.
12863         * except.c (start_catch_handler): Use eh_rtime_match_libfunc.
12864         * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
12865         NULL. Only include <stdio.h> if inhibit_libc is not defined.
12866
12867 Mon Sep 21 14:10:51 1998  Jason Merrill  <jason@yorick.cygnus.com>
12868
12869         * toplev.c (rest_of_compilation): Skip compiling anything with
12870         DECL_EXTERNAL set, not just if it has DECL_INLINE as well.
12871
12872 Mon Sep 21 13:51:05 1998  Jim Wilson  <wilson@cygnus.com>
12873
12874         * flow.c (find_basic_blocks): Delete check for in_libcall_block when
12875         prev_code is a CALL_INSN.  Change check for REG_RETVAL note to
12876         use in_libcall_block.
12877         (find_basic_blocks_1): Delete check for in_libcall_block when prev_code
12878         is a CALL_INSN.  If CALL_INSN and in_libcall_block, then change code
12879         to INSN.
12880
12881 Mon Sep 21 14:02:23 1998  Robert Lipe  <robertl@dgii.com>
12882
12883         * i386.h (TARGET_SWITCHES): Improve doc for align-double.  Fix
12884         typo in no-fancy-math-387 description.
12885
12886 Mon Sep 21 09:27:18 1998  Jeff Law  (law@cygnus.com)
12887
12888         * version.c: Bump for snapshot.
12889
12890 Mon Sep 21 09:24:49 1998  Stan Cox  <scox@cygnus.com>
12891
12892         * i386-coff.h (DBX_DEBUGGING_INFO): Added.
12893
12894 Mon Sep 21 09:14:49 1998  Robert Lipe  <robertl@dgii.com>
12895
12896         * i386.h (TARGET_SWITCHES): Add description fields for flags
12897         documented in install.texi.
12898         (TARGET_OPTIONS): Likewise.
12899
12900 Mon Sep 21 01:39:03 1998  Jeff Law  (law@cygnus.com)
12901
12902         * version.c: Bump for snapshot.
12903
12904 Mon Sep 21 01:53:05 1998  Felix Lee  <flee@cygnus.com>
12905
12906         * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
12907         * cccp.c (main): Likewise.
12908
12909         * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h:
12910         Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some
12911         macro-use bugs.
12912
12913 Mon Sep 21 00:52:12 1998  Per Bothner  <bothner@cygnus.com>
12914
12915         * Makefile.in (LIBS): Link in libiberty.a.
12916         * c-common.c, gcc.c, toplev.c: Replace (some) bcopy calls by memcpy.
12917
12918 Sun Sep 20 23:28:11 1998  Richard Henderson  <rth@cygnus.com>
12919
12920         * reload1.c (emit_reload_insns): Accept a new arg for the bb.  Use
12921         it to update bb boundaries.  Update caller.
12922         * function.c (reposition_prologue_and_epilogue_notes): Update
12923         bb boundaries wrt the moved note.
12924
12925 Sun Sep 20 20:57:02 1998  Robert Lipe  <robertl@dgii.com>
12926
12927         * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder
12928         problems.
12929         * configure: Regenerate.
12930
12931 Sun Sep 20 19:01:51 1998  Richard Henderson  <rth@cygnus.com>
12932
12933         * alpha.c (alpha_sr_alias_set): New variable.
12934         (override_options): Set it.
12935         (alpha_expand_prologue, alpha_expand_epilogue): Use it.
12936         (mode_mask_operand): Fix signed-unsigned comparison warning.
12937         (alpha_expand_block_move): Likewise.
12938         (print_operand): Likewise.
12939         (get_aligned_mem): Use change_address.
12940         (alpha_set_memflags, alpha_set_memflags_1): Set the alias set.
12941         (alphaev4_insn_pipe, alphaev4_next_group): New functions.
12942         (alphaev4_next_nop, alphaev5_next_nop): New functions.
12943         (alpha_align_insns): Remade from old alphaev5_align_insns
12944         to handle multiple processors.
12945         (alpha_reorg): Call alpha_align_insns for both ev4 and ev5.
12946         * output.h (label_to_alignment): Prototype.
12947
12948         * tree.c (new_alias_set): New function.
12949         * tree.h (new_alias_set): Declare it.
12950         * c-common.c (c_get_alias_set): Use it.
12951
12952 Sun Sep 20 12:35:55 1998  Richard Henderson  <rth@cygnus.com>
12953
12954         * fold-const.c (fold): Yet another COND_EXPR bug: when folding
12955         to an ABS expr, convert an unsigned input to signed.
12956
12957 Sun Sep 20 12:14:45 1998  Jeffrey A Law  (law@cygnus.com)
12958
12959         * fold-const.c (fold): Fix another type in COND_EXPR handling code.
12960
12961 1998-09-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12962
12963         * configure.in: Add support for c4x targets.
12964         * configure: Rebuilt.
12965
12966 Sun Sep 20 00:00:51 1998  Richard Henderson  <rth@cygnus.com>
12967
12968         * combine.c (distribute_notes): If an insn is a cc0 user, only
12969         delete it if we can also delete the cc0 setter.
12970
12971 Sun Sep 20 00:22:23 1998  Michael Tiemann  <michael@impact.tiemann.org>
12972
12973         * fold-const.c (fold): Fix typo in COND_EXPR handling code.
12974         (invert_truthvalue): Enable truthvalue inversion for
12975         floating-point operands if -ffast-math.
12976
12977 Sat Sep 19 23:58:07 1998  Melissa O'Neill  <oneill@cs.sfu.ca>
12978
12979         * configure.in: Disable collect2 for nextstep.  Instead use
12980         crtbegin/crtend.
12981         * configure: Rebuilt.
12982         * config/nextstep.h (STARTFILE_SPEC): Add crtbegin.
12983         (ENDFILE_SPEC): Define.
12984         (OBJECT_FORMAT_MACHO): Define.
12985         (EH_FRAME_SECTION_ASM_OP): Define.
12986         * crtstuff.c: Handle MACHO.
12987
12988 Sun Sep 20 00:24:24 1998  Robert Lipe  <robertl@dgii.com>
12989
12990         * config/i386/sco5.h (TARGET_MEM_FUNCTIONS): Define.
12991
12992 1998-09-19  Torbjorn Granlund  <tege@matematik.su.se>
12993
12994         * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0.
12995         (_fpadd_parts): Get sign right for 0.
12996
12997 1998-09-19  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12998
12999         * ginclude/varargs.h: Add support for C4x target.
13000         * ginclude/stdargs.h: Likewise.
13001
13002 Sat Sep 19 12:05:09 1998  Richard Henderson  <rth@cygnus.com>
13003
13004         * alpha.c (alpha_return_addr): SET should be VOIDmode.
13005         (alpha_emit_set_long_const): Rewrite to be callable from reload
13006         and 32-bit hosts.
13007         (alpha_expand_epilogue): Update for alpha_emit_set_long_const.
13008         * alpha.md (movdi): Likewise.
13009
13010 Sat Sep 19 07:33:36 1998  Richard Earnshaw  (rearnsha@arm.com)
13011
13012         * arm.c (add_constant): New parameter address_only, change caller.
13013         Set it non-zero if taking the address of an item in the pool.
13014         (arm_reorg): Handle cases where we need the address of an item in
13015         the pool.
13016
13017         * arm.c (bad_signed_byte_operand): Check both arms of a sum in
13018         a memory address.
13019         * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
13020         memory addresses that are not in standard canonical form.
13021
13022 Sat Sep 19 01:00:32 1998  Michael Hayes  (mph@elec.canterbury.ac.nz)
13023
13024         * README.C4X: New file with information about the c4x ports.
13025         * ginclude/va-c4x.h: New file for c4x varargs support.
13026         * config/c4x: New directory with c4x port files.
13027
13028 Fri Sep 18 22:52:05 1998  Jeffrey A Law  (law@cygnus.com)
13029
13030         * reload.c (find_reloads): Do not replace a pseudo with
13031         (MEM (reg_equiv_addr)) in the initializing insn for the
13032         pseudo.
13033
13034 Fri Sep 18 23:50:56 1998  David Edelsohn  <edelsohn@gnu.org>
13035
13036         * toplev.c (rest_of_compilation): Set bct_p on second call to
13037         loop_optimize.
13038         * loop.c (loop_optimize, scan_loop, strength_reduce): New argument
13039         bct_p.
13040         (strength_reduce): Only call analyze_loop_iterations and
13041         insert_bct if bct_p set.
13042         (check_dbra_loop): Fix typo.
13043         (insert_bct): Use word_mode instead of SImode.
13044         (instrument_loop_bct): Likewise.  Do not delete iteration count
13045         condition code generation insn.  Initialize iteration count before
13046         loop start.
13047         * rtl.h (loop_optimize): Update prototype.
13048
13049         * ginclude/va-ppc.h (va_arg): longlong types in overflow area are
13050         not doubleword aligned.
13051
13052         * rs6000.c (optimization_options): New function.
13053         (secondary_reload_class): Only call true_regnum for PSEUDO_REGs.
13054         * rs6000.h (OPTIMIZATION_OPTIONS): Define.
13055         (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters
13056         first; cr1 can be used for FP record condition insns.
13057
13058 Fri Sep 18 09:44:55 1998  Nick Clifton  <nickc@cygnus.com>
13059
13060         * config/m32r/m32r.h (m32r_block_immediate_operand): Add to
13061         PREDICATE_CODES.
13062
13063         * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal"
13064         patterns.
13065
13066         * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p'
13067         operators.
13068         (block_move_call): New function: Call a library routine to copy a
13069         block of memory.
13070         (m32r_expand_block_move): New function: Expand a "movstrsi"
13071         pattern into a sequence of insns.
13072         (m32r_output_block_move): New function: Expand a
13073         "movstrsi_internal" pattern into a sequence of assembler opcodes.
13074         (m32r_block_immediate_operand): New function: Return true if the
13075         RTL is an integer constant, less than or equal to MAX_MOVE_BYTES.
13076
13077 Thu Sep 17 16:42:16 1998  Andrew MacLeod  <amacleod@cygnus.com>
13078
13079         * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
13080         re-align some code.
13081         * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
13082
13083 Thu Sep 17 12:24:33 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
13084
13085         * regmove.c (copy_src_to_dest): Check that modes match.
13086
13087 Wed Sep 16 22:10:42 1998  Robert Lipe  <robertl@dgii.com>
13088
13089         * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF.
13090
13091 Wed Sep 16 15:24:54 1998  Richard Henderson  <rth@cygnus.com>
13092
13093         * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
13094         narrower than FLOAT_REGS.
13095
13096 Wed Sep 16 17:51:00 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
13097
13098         * cpplib.c: Removed OLD_GPLUSPLUS_INCLUDE_DIR.
13099         * cccp.c: Likewise.
13100         * Makefile.in (old_gxx_include_dir): Removed.
13101
13102 Wed Sep 16 12:29:22 1998  Nick Clifton  <nickc@cygnus.com>
13103
13104         * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match
13105         new specification.
13106
13107         * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma().
13108         (sh_handle_pragma): Change function arguments to match new
13109         specification for HANDLE_PRAGMA.
13110
13111 Wed Sep 16 12:43:19 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13112
13113         * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to
13114         `unsigned char'.
13115         (main): Mark parameter `argc' with ATTRIBUTE_UNUSED.
13116         When generating output, initialize missing struct member to zero.
13117
13118 Wed Sep 16 14:47:43 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
13119
13120         * regmove.c (copy_src_to_dest): Don't copy if that requires
13121         (a) new register(s).
13122
13123 Wed Sep 16 01:29:12 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
13124
13125         * global.c (reg_allocno): Now static.
13126         * reload1.c (reg_allocno): Delete declaration.
13127         (order_regs_for_reload): Take no arguments.  Don't treat regs
13128         allocated by global differently than those allocated by local-alloc.
13129
13130 Wed Sep 16 01:09:01 1998  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
13131
13132         * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q
13133         condition, fix format strings.
13134         (output_function_epilogue): Likewise.
13135
13136         * m68k/m68k.c: Don't include <stdlib.h> directly.
13137
13138 Wed Sep 16 00:30:56 1998  Geoff Keating  <geoffk@ozemail.com.au>
13139
13140         * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
13141         mem_first_set, mem_last_set; because 0 can be a CUID.
13142         (oprs_unchanged_p): Use new definition.
13143         (record_last_reg_set_info): Likewise.
13144         (record_last_mem_set_info): Likewise.
13145         (compute_hash_table): Likewise.
13146
13147 Tue Sep 15 22:59:52 1998  Jeffrey A Law  (law@cygnus.com)
13148
13149         * rs6000.c (output_epilogue): Handle Chill.
13150
13151         * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
13152         * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
13153
13154         * combine.c (make_extraction): If no mode is specified for
13155         an operand of insv, extv, or extzv, default it to word_mode.
13156         (simplify_comparison): Similarly.
13157         * expmed.c (store_bit_field): Similarly.
13158         (extract_bit_field): Similarly.
13159         * function.c (fixup_var_regs_1): Similarly.
13160         * recog.c (validate_replace_rtx_1): Similarly.
13161         * mips.md (extv, extzv, insv expanders): Default modes for most
13162         operands.  Handle TARGET_64BIT.
13163         (movdi_uld, movdi_usd): New patterns.
13164
13165         * pa.c (emit_move_sequence): Do not replace a pseudo with its
13166         equivalent memory location unless we have been provided a scratch
13167         register.  Similarly do not call find_replacement unless a
13168         scratch register has been provided.
13169
13170 Tue Sep 15 19:23:01 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
13171
13172         * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
13173         return FLOAT_REGS.
13174
13175 Tue Sep 15 19:09:06 1998  Richard Henderson  <rth@cygnus.com>
13176
13177         * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
13178         (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
13179         (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
13180         (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
13181         * c-decl.c (init_decl_processing): Update accordingly.
13182         * expr.c (expand_builtin): Likewise.
13183
13184         * rtl.h (global_rtl): Add cfa entry.
13185         (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
13186         (LAST_VIRTUAL_REGISTER): Update.
13187         * emit-rtl.c (global_rtl): Add cfa entry.
13188         (init_emit): Initialize it.
13189         * function.c (cfa_offset): New.
13190         (instantiate_virtual_regs): Initialize it.
13191         (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
13192         (expand_function_end): Call expand_eh_return.
13193         * tm.texi (ARG_POINTER_CFA_OFFSET): New.
13194
13195         * except.c (current_function_eh_stub_label): Kill.
13196         (current_function_eh_old_stub_label): Likwise; update all references.
13197         (expand_builtin_set_return_addr_reg): Kill.
13198         (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
13199         (expand_builtin_set_eh_regs): Kill.
13200         (eh_regs): Produce a third reg for the actual handler address.
13201         (eh_return_context, eh_return_stack_adjust): New.
13202         (eh_return_handler, eh_return_stub_label): New.
13203         (init_eh_for_function): Initialize them.
13204         (expand_builtin_eh_return, expand_eh_return): New.
13205         * except.h: Update prototypes.
13206         * flow.c (find_basic_blocks_1): Update references to the stub label.
13207         * function.h (struct function): Kill stub label elements.
13208
13209         * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
13210         register number is one that would be in the previous window.
13211         Provide a dummy definition for non-windowed targets.
13212         (get_reg_addr): New function.
13213         (get_reg, put_reg, copy_reg): Use it.
13214         (__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
13215         generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
13216
13217         * alpha.c (alpha_eh_epilogue_sp_ofs): New.
13218         (alpha_init_expanders): Initialize it.
13219         (alpha_expand_epilogue): Use it.
13220         * alpha.h: Declare it.
13221         * alpha.md (eh_epilogue): New.
13222
13223         * m68h.h (ARG_POINTER_CFA_OFFSET): New.
13224         * sparc.h (ARG_POINTER_CFA_OFFSET): New.
13225
13226 Tue Sep 15 19:31:58 1998  Michael Meissner  <meissner@cygnus.com>
13227
13228         * i960.h (CONST_COSTS): Fix thinko.  Test flag, not the constant
13229         flag bit mask.
13230
13231 Tue Sep 15 14:10:54 1998  Andrew MacLeod  <amacleod@cygnus.com>
13232
13233         * except.h (struct eh_entry): Add false_label field.
13234         (end_catch_handler): Add prototype.
13235         * except.c (push_eh_entry): Set false_label field to NULL_RTX.
13236         (start_catch_handler): When using old style exceptions, issue
13237         runtime typematch code before continuing with the handler.
13238         (end_catch_handler): New function, generates label after handler
13239         if needed by older style exceptions.
13240         (expand_start_all_catch): No need to check for new style exceptions.
13241         (output_exception_table_entry): Only output the first handler label
13242         for old style exceptions.
13243         * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching
13244         mechanism into one function, if a runtime matcher is provided.
13245
13246 Tue Sep 15 13:53:59 1998  Andrew MacLeod  <amacleod@cygnus.com>
13247
13248         * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
13249
13250 Tue Sep 15 09:59:01 1998  Mark Mitchell  <mark@markmitchell.com>
13251
13252         * integrate.c (copy_decl_list): Fix typo.
13253
13254 Tue Sep 15 04:18:52 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13255
13256         * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length
13257         attribute.
13258
13259 Mon Sep 14 14:02:53 1998  Jeff Law  (law@cygnus.com)
13260
13261         * version.c: Bump for snapshot.
13262
13263 Mon Sep 14 10:33:56 1998  Jeff Law  (law@cygnus.com)
13264
13265         * version.c: Bump for snapshot.
13266
13267 Mon Sep 14 09:51:05 1998  Jeff Law  (law@cygnus.com)
13268
13269         * version.c: Bump for snapshot.
13270
13271 Sun Sep 13 22:10:18 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13272
13273         * invoke.texi (C Dialect Options): Put back missing @end itemize.
13274
13275 Mon Sep 14 02:33:46 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
13276
13277         * configure.in: Remove usage of `!' to negate the result of a
13278         command; some common shells do not support it.
13279
13280 Sun Sep 13 19:17:35 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13281
13282         * configure.in: In sparc9-sol2 config, use 'if test' not
13283         brackets.
13284         * configure: Rebuilt.
13285
13286         * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to
13287         CM_MEDANY.
13288         (CPP_CPU_SPEC): Do not define _LP64, header files do this.
13289         (CPP_CPU_DEFAULT_SPEC): Likewise.
13290         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right
13291         for arch64 libfuncs.
13292
13293         * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode
13294         for operand zero.
13295
13296 Sun Sep 13 09:11:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13297
13298         * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub.
13299
13300         * collect2.c: Don't declare `sys_siglist' here.
13301         (my_strsignal): Prototype and define new function.  Use it in
13302         place of `sys_siglist' hacks.
13303
13304         * mips_tfile.c: Likewise.
13305
13306         * configure.in (AC_CHECK_FUNCS): Check for strsignal.
13307         (GCC_NEED_DECLARATIONS): Likewise.
13308
13309         * system.h (strsignal): Prototype it, if necessary.
13310         (sys_siglist): Declare it, if necessary.
13311
13312 Sun Sep 13 04:37:28 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13313
13314         * loop.c (move_movables): While removing insn sequences, preserve
13315         the next pointer of the most recently deleted insn when we skip
13316         over a NOTE.
13317
13318 Sun Sep 13 08:13:39 1998  Ben Elliston  <bje@cygnus.com>
13319
13320         * objc/config-lang.in: Do not output the name of the selected
13321         thread file when building the front-end.  The Makefile for the
13322         runtime library will do this.
13323
13324         * objc/Make-lang.in: Do not build the runtime library or install
13325         the Objective C header files.  The Makefile for the runtime
13326         library will do this.
13327
13328         * objc/Makefile.in (all.indirect): Only build the front-end.
13329         (compiler): Rename to `frontend'.
13330         (obj-runtime): Remove target.
13331         (copy-headers): Likewise.
13332         (clean): No need to remove `libobjc.a' any longer.
13333
13334 Sat Sep 12 11:37:19 1998  Michael Meissner  <meissner@cygnus.com>
13335
13336         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
13337         supported with -mcpu=xxx.
13338
13339 Fri Sep 11 23:55:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13340
13341         * flow.c (mark_set_1): Recognize multi-register structure return
13342         values in CALL insns.
13343         (mark_used_regs): Likewise.
13344         (count_reg_sets_1): Likewise.
13345         (count_reg_references): Likewise.
13346         * rtlanal.c (note_stores): Likewise.
13347         (reg_overlap_mentioned_p): Likewise.
13348         * haifa-sched.c (check_live_1): Likewise.
13349         (update_live_1): Likewise.
13350         (sched_analyze_1): Likewise.
13351         (sched_note_set): Likewise.
13352         (birthing_insn_p): Likewise.
13353         (attach_deaths): Likewise.
13354
13355         * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable.
13356
13357 Fri Sep 11 22:57:55 1998  Eric Dumazet  <dumazet@cosmosbay.com>
13358
13359         * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h.
13360
13361 Thu Sep 10 22:02:04 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13362
13363         * glimits.h (__LONG_MAX__): Recognize __sparcv9 too.
13364
13365 Thu Sep 10 21:19:10 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
13366
13367         * configure.in: Add check for GAS subsection -1 support.
13368         * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add.
13369         * configure config.in: Rebuilt.
13370         * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use
13371         SImode is subsection -1 works, else use DImode.
13372         (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if
13373         subsection -1 works.
13374         * config/sparc/sparc.c (sparc_output_addr_vec,
13375         sparc_output_addr_diff_vec): Use them if defined.
13376
13377 Thu Sep 10 10:46:01 1998  Mark Mitchell  <mark@markmitchell.com>
13378
13379         * tree.h (DECL_ORIGIN): New macro.
13380         * integrate.c (copy_and_set_decl_abstract_origin): New function.
13381         (copy_decl_list): Use it.
13382         (integrate_parm_decls): Likewise.
13383         (integrate_decl_tree): Likewise.
13384         * dwarf2out.c (decl_ultimate_origin): Simplify.
13385         * dwarfout.c (decl_ultimate_origin): Likewise.
13386         * c-decl.c (duplicate_decls): Use DECL_ORIGIN.
13387         (pushdecl): Likewise.
13388
13389 Thu Sep 10 08:01:31 1998  Anthony Green  <green@cygnus.com>
13390
13391         * config/rs6000/rs6000.c (output_epilog): Add Java support.
13392
13393 Thu Sep 10 14:48:59 1998  Martin von Löwis  <loewis@informatik.hu-berlin.de>
13394
13395         * invoke.texi (C++ Dialect Options): Document -fhonor-std.
13396
13397 Thu Sep 10 01:38:05 1998  Jeffrey A Law  (law@cygnus.com)
13398
13399         * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
13400         empty or has a single entry.
13401
13402         * toplev.c (rest_of_compilation): Open up the dump file for reg-stack
13403         before calling reg_to_stack.
13404
13405 Thu Sep 10 00:03:34 1998  Richard Henderson  <rth@cygnus.com>
13406
13407         * alpha.c (alphaev5_insn_pipe): Abort on default case.
13408         (alphaev5_next_group): Swallow CLOBBERs and USEs.
13409
13410         * c-tree.h (warn_long_long): Declare it.
13411
13412 Wed Sep  9 23:31:36 1998  (Stephen L Moshier)  <moshier@world.std.com>
13413
13414         * emit-rtl.c (gen_lowpart_common): Disable optimization of
13415         initialized float-int union if the value is a NaN.
13416
13417 Wed Sep  9 23:00:48 1998  Nathan Sidwell  <nathan@acm.org>
13418
13419         * c-lex.c (real_yylex): Don't warn about long long constants if
13420         we're allowing long long
13421
13422 Wed Sep  9 21:58:41 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
13423
13424         * except.h (current_function_eh_stub_label): Declare.
13425         (current_function_eh_old_stub_label): Declare.
13426         * function.h (struct function): New members eh_stub_label and
13427         eh_old_stub_label.
13428         * except.c (current_function_eh_stub_label): New variable.
13429         (current_function_eh_old_stub_label): New variable.
13430         (init_eh_for_function): Clear them.
13431         (save_eh_status): Save them.
13432         (restore_eh_status): Restore them.
13433         (expand_builtin_eh_stub): Set current_function_eh_stub_label.
13434         (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label.
13435         * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't
13436         make an edge from the block that contains it to the block starting
13437         with the label if this label is one of the eh stub labels.
13438         If eh stub labels exist, show they are reachable from the last block
13439         in the function.
13440
13441         * reload1.c (reload): Break out several subroutines and make some
13442         variables global.
13443         (calculate_needs_all_insns): New function, broken out of reload.
13444         (calculate_needs): Likewise.
13445         (find_reload_regs): Likewise.
13446         (find_group): Likewise.
13447         (find_tworeg_group): Likewise.
13448         (something_needs_reloads): New global variable, formerly in reload.
13449         (something_needs_elimination): Likewise.
13450         (caller_save_spill_class): Likewise.
13451         (caller_save_group_size): Likewise.
13452         (max_needs): Likewise.
13453         (group_size): Likewise.
13454         (max_groups): Likewise.
13455         (max_nongroups): Likewise.
13456         (group_mode): Likewise.
13457         (max_needs_insn): Likewise.
13458         (max_groups_insn): Likewise.
13459         (max_nongroups_insn): Likewise.
13460         (failure): Likewise.
13461
13462         * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET.
13463
13464 Wed Sep  9 13:14:41 1998  Richard Henderson  <rth@cygnus.com>
13465
13466         * loop.c (load_mems): Copy rtx for output mem.
13467
13468 Wed Sep  9 15:16:58 1998  Gavin Romig-Koch  <gavin@cygnus.com>
13469
13470         * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for
13471         mips1 or mips2 either.
13472
13473 Wed Sep  9 12:31:35 1998  Jeffrey A Law  (law@cygnus.com)
13474
13475         * pa.c (pa_reorg): New marking scheme for jumps inside switch
13476         tables.
13477         (pa_adjust_insn_length): Update to work with new marking scheme
13478         for jumps inside switch tables.
13479         * pa.md (switch_jump): Remove pattern.
13480         (jump): Handle jumps inside jump tables.
13481
13482         * Makefile.in (profile.o): Depend on insn-config.h
13483
13484 Wed Sep  9 09:36:51 1998  Jim Wilson  <wilson@cygnus.com>
13485
13486         * iris6.h (DWARF2_UNWIND_INFO): Undef.
13487
13488 Wed Sep  9 01:32:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13489
13490         Add preliminary native sparcv9 Solaris support.
13491         * configure.in: Recognize sparv9-*-solaris2*
13492         * configure: Rebuilt.
13493         * config.sub: Recognize sparcv9 just like sparc64.
13494         * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm
13495         config/sparc/sol2-cn.asm: Macroize so it can be shared between
13496         32-bit and 64-bit Solaris systems.
13497         * config/sparc/t-sol2: Assemble those with cpp.
13498         * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9.
13499         (*TF*_LIBCALL): If ARCH64 use V9 names.
13500         * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files.
13501
13502 Wed Sep  9 01:07:30 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
13503
13504         * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation.
13505         (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and
13506         not doing pic.
13507         (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not
13508         Pmode.
13509         * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0
13510         to Pmode if CASE_VECTOR_MODE is something else.
13511
13512 Wed Sep  9 00:10:31 1998  Jeffrey A Law  (law@cygnus.com)
13513
13514         * prefix.c (update_path): Correctly handle cases where PATH is
13515         a substring of the builtin prefix, but specifies a different
13516         directory location.
13517
13518 Tue Sep  8 23:46:04 1998  Hans-Peter Nilsson  <hp@axis.se>
13519
13520         * expr.c: Corrected comment about what MOVE_RATIO does.
13521         * config/alpha/alpha.h: Likewise.
13522         * config/1750a/1750a.h: Likewise.
13523         * config/clipper/clipper.h: Likewise.
13524         * config/i386/i386.h: Likewise.
13525
13526 Tue Sep  8 22:56:12 1998  Jeffrey A Law  (law@cygnus.com)
13527
13528         * configure.in (m68k-next-nextstep3*): Use collect2.
13529         Similarly for x86 NeXT configurations.
13530         * configure: Rebuilt.
13531
13532 Tue Sep  8 01:38:57 1998  Nathan Sidwell  <nathan@acm.org>
13533
13534         * configure.in: Don't assume srcdir is .../gcc.
13535         * configure: Rebuilt.
13536
13537 Sat Sep  5 16:34:34 1998  John Wehle  (john@feith.com)
13538
13539         * global.c: Update comments.
13540         (global_alloc): Assign allocation-numbers
13541         even for registers allocated by local_alloc in case
13542         they are later spilled and retry_global_alloc is called.
13543         (mark_reg_store, mark_reg_clobber,
13544         mark_reg_conflicts, mark_reg_death): Always record a
13545         conflict with a pseudo register even if it has been
13546         assigned to a hard register.
13547         (dump_conflicts): Don't list pseudo registers already assigned to
13548         a hard register as needing to be allocated, but do list their
13549         conflicts.
13550         * local-alloc.c: Update comment.
13551
13552 Mon Sep  7 23:38:01 1998  Jeffrey A Law  (law@cygnus.com)
13553
13554         * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH.
13555         * configure: Rebuilt.
13556
13557 Mon Sep  7 22:41:46 1998  Michael Meissner  <meissner@cygnus.com>
13558
13559         * rs6000.c (rs6000_override_options): Fix name for ec603e, to add
13560         missing 'c'.
13561         * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx
13562         for all targets that set -msoft-float.
13563
13564 Mon Sep  7 23:30:07 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13565
13566         * toplev.c (print_switch_values): Make static to match prototype.
13567
13568 Mon Sep  7 19:13:59 1998  Jeffrey A Law  (law@cygnus.com)
13569
13570         * configure.in: If we are unable to find the "gnatbind" program,
13571         then do not configure the ada subdir.
13572         * configure: Rebuilt.
13573
13574 Sun Sep  6 14:03:58 1998  Jeff Law  (law@cygnus.com)
13575
13576         * version.c: Bump for snapshot.
13577
13578 Sun Sep  6 13:28:07 1998  Jeff Law  (law@cygnus.com)
13579
13580         * version.c: Bump for snapshot.
13581
13582 Sun Sep  6 08:54:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13583
13584         * Makefile.in (toplev.o): Depend on $(EXPR_H).
13585         (insn-extract.o, insn-attrtab.o): Depend on toplev.h.
13586
13587         * gansidecl.h: Define ATTRIBUTE_NORETURN.
13588
13589         * genattrtab.c: Have insn-attrtab.c include toplev.h.
13590
13591         * genextract.c: Have insn-extract.c include toplev.h.
13592
13593         * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'.
13594
13595         * toplev.c: Include expr.h.
13596         (really_sorry, fancy_abort): Remove prototypes.
13597         (set_target_switch): Add argument in prototype.
13598         (vfatal): Mark prototype with ATTRIBUTE_NORETURN.
13599         (v_really_sorry): Likewise.
13600         (print_version, print_single_switch, print_switch_values): Make
13601         static and add prototype arguments.
13602         (decl_printable_name): Add prototype arguments.
13603         (lang_expand_expr_t): New typedef.
13604         (lang_expand_expr): Declare as a lang_expand_expr_t.
13605         (incomplete_decl_finalize_hook): Add prototype argument.
13606         (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED.
13607         (botch): Likewise for variable `s'.
13608         (rest_of_type_compilation): Mark variables `type' and `toplev'
13609         with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO,
13610         XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined.
13611         (display_help): Make variable `i' an `unsigned long'.
13612         (main): Remove unused parameter `envp'.
13613         Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'.
13614         Cast -1 when comparing it with a `size_t'.
13615
13616         * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark
13617         prototype with ATTRIBUTE_NORETURN.
13618         (fatal_insn_not_found, fatal_insn, really_sorry,
13619         push_float_handler, pop_float_handler): Add prototypes.
13620         (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN.
13621         (do_abort, botch): Add prototypes.
13622
13623 Sat Sep  6 12:05:18 1998  John Carr  <jfc@mit.edu>
13624
13625         * final.c (final): If a label is reached only from a single jump,
13626         call NOTICE_UPDATE_CC on the jump and its predecessor before
13627         emitting the insn after the label.
13628
13629         * i386.h: Add AMD K6 support.
13630         Change TARGET_* macros to use table lookup.
13631         (INITIALIZE_TRAMPOLINE): Improve trampoline code.
13632         (ADJUST_COST): Change definition to call function in i386.c.
13633         (ISSUE_RATE): Define as 2 for anything newer than an 80486.
13634         * i386.c: Add AMD K6 support.
13635         Add constants for feature tests used by TARGET_* macros.
13636         (split_di): If before reload, call gen_lowpart and gen_highpart.
13637         (x86_adjust_cost): New function.
13638         (put_jump_code): New function.
13639         (print_operand): New codes 'D' and 'd'.
13640         * i386.md: New insn types.  New insn attribute "memory".
13641         Redefine scheduling parameters to use new types and add AMD K6
13642         support.  Explicitly set type of most insns.
13643         (move insns): K6 prefers movl $0,reg to xorl reg,reg.  Pentium
13644         Pro and K6 prefer movl $1,reg to incl reg.
13645         (adddi3, subdi3): Set cc_status.
13646         (DImode shift patterns): Change label counters from HOST_WIDE_INT
13647         to int; x86 can't have more than 2^31 DImode shifts per file.
13648         (setcc): Combine all setcc patterns.  Allow writing memory.
13649         Combine all jump patterns using match_operator.
13650         (*bzero): Name pattern.  Emit multiple stos instructions when that
13651         is faster than rep stos.
13652         (xordi3, anddi3, iordi3): Simplify DImode logical patterns and
13653         add define_split.
13654
13655 Sun Sep  6 11:17:20 1998  Dave Love  <d.love@dl.ac.uk>
13656
13657         * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771
13658         linking.
13659
13660 Sat Sep  5 22:05:25 1998  Richard Henderson  <rth@cygnus.com>
13661
13662         * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
13663         not whatever we're generating now.
13664
13665         * alpha.c (set_frame_related_p, FRP): New.
13666         (alpha_expand_prologue): Mark frame related insns.
13667         (alpha_expand_epilogue): Likewise, but with a null FRP.
13668         * alpha.h (INCOMING_RETURN_ADDR_RTX): New.
13669         * alpha.md (exception_receiver): New.
13670         * alpha/crtbegin.asm (.eh_frame): New beginning.
13671         (__do_frame_setup, __do_frame_takedown): New.
13672         * alpha/crtend.asm (.eh_frame): New ending.
13673         * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define.
13674         (ASM_SPEC): Don't emit both dwarf2 and mdebug.
13675         (ASM_FILE_START): Don't emit .file for dwarf2.
13676
13677         * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
13678         * rtl.c (reg_note_name): Likewise.
13679         * rtl.texi (REG_NOTES): Likewise.
13680         * dwarf2out.c (dwarf2out_frame_debug): Use it.  Recognize a store
13681         without an offset.
13682
13683 Sat Sep  5 14:47:17 1998  Richard Henderson  <rth@cygnus.com>
13684
13685         * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS.
13686         * i386.md (movsf, movdf, movxf): Validate memory address returned
13687         from force_const_mem.  Kill useless REG_EQUAL setting code.
13688
13689 Sat Sep  5 14:23:31 1998  Torbjorn Granlund  <tege@matematik.su.se>
13690
13691         * m68k.md (zero_extendsidi2): Fix typo.
13692
13693 Sat Sep  5 13:40:24 1998  Krister Walfridsson  <cato@df.lth.se>
13694
13695         * configure.in: Removed references to the removed file.
13696         * config/xm-netbsd.h: Use ${cpu_type}/xm-netbsd.h for
13697         arm*-*-netbsd* and ns32k-*-netbsd*.
13698         * config/i386/xm-netbsd.h: Removed unnecessary file.
13699         * config/m68k/xm-netbsd.h: Likewise.
13700         * config/sparc/xm-netbsd.h: Likewise.
13701         * config/mips/xm-netbsd.h: Likewise.
13702
13703 Sat Aug 29 13:32:58 1998  Mumit Khan  <khan@xraylith.wisc.edu>
13704
13705         * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define.
13706         (PCC_BITFIELD_TYPE_MATTERS): Define to be 0.
13707
13708         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
13709         for exact section attributions.
13710
13711         * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
13712         runtime.
13713         * i386/crtdll.h (CPP_PREDEFINES): Define.
13714
13715 Sat Sep  5 03:23:05 1998  Jeffrey A Law  (law@cygnus.com)
13716
13717         * m68k.md (5200 movqi): Do not allow byte sized memory references
13718         using address regs.
13719         * m68k.c (output_move_qimode): Do not use byte sized operations on
13720         address registers.
13721
13722         * Makefile.in (pexecute.o): Use pexecute.c from libiberty.  Provide
13723         explicit rules for building.  Similarly for alloca, vfprintf,
13724         choose-temp and mkstemp, getopt, getopt1, and obstack.
13725         (INCLUDES): Add $(srcdir)/../include.
13726         * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete.
13727         * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise.
13728
13729 Fri Sep  4 11:57:50 1998  Tom Tromey  <tromey@cygnus.com>
13730
13731         * gcc.c (do_spec_1): [case 'o'] Account for
13732         lang_specific_extra_outfiles.
13733         (main): Correctly clear all slots in outfiles for
13734         lang_specific_extra_outfiles.  Set input_file_number before
13735         calling lang_specific_pre_link.
13736
13737 Fri Sep  4 10:37:07 1998  Jim Wilson  <wilson@cygnus.com>
13738
13739         * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
13740
13741 Fri Sep  4 02:01:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13742
13743         * config/sparc/sparc.c (output_double_int): In all V9 symbolic
13744         cases, use xword.
13745         (sparc_output_deferred_case_vectors): If no work to do, return.
13746         Fix thinko in Sept 1 change.
13747
13748 1998-09-03  SL Baur  <steve@altair.xemacs.org>
13749
13750         * Makefile.in: Add semicolon in BISON definition for portability.
13751
13752 Thu Sep  3 13:34:41 1998  Toon Moene  <toon@moene.indiv.nluug.nl>
13753
13754         * config/nextstep.c (handle_pragma): Correct name of third
13755         argument.
13756
13757 Tue Sep  1 11:30:33 1998  Nick Clifton  <nickc@cygnus.com>
13758
13759         * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17).
13760         * config/m32r/m32r.h: Make register 17 be fixed.
13761         * config/m32r/m32r.c: Use SImode for cc operations.
13762
13763 Thu Sep  3 18:17:34 1998  Benjamin Kosnik  <bkoz@cygnus.com>
13764
13765         * invoke.texi (Warning Options): Add -Wnon-template-friend
13766         documentation.
13767
13768 Thu Sep  3 18:16:16 1998  Michael Meissner  <meissner@cygnus.com>
13769
13770         * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}.
13771
13772 Thu Sep  3 18:05:16 1998  David Edelsohn  <edelsohn@gnu.org>
13773
13774         * rs6000.md (movsf): Disable explicit secondary-reload-like
13775         functionality if TARGET_POWERPC64.
13776         (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
13777         functionality.
13778
13779 Thu Sep  3 11:41:40 1998  Robert Lipe  <robertl@dgii.com>
13780
13781         * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
13782         and term.h from fixinc.wrap.
13783
13784 Thu Sep  3 09:47:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13785
13786         * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is
13787         safe to include both string.h and strings.h together.
13788         (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding
13789         which headers to search for function declarations.  Continue to
13790         prefer string.h over strings.h when both are not acceptable.
13791
13792         * acconfig.h (STRING_WITH_STRINGS): Add stub.
13793
13794         * configure.in: Call GCC_HEADER_STRING.
13795
13796         * system.h: Test STRING_WITH_STRINGS when deciding which headers
13797         to include.  Continue to prefer string.h over strings.h when both
13798         are not acceptable.
13799
13800 Wed Sep  2 23:56:29 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13801
13802         * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do
13803         not assume top 32-bits of symbolic addresses are zero if
13804         flag_pic.
13805
13806 Thu Sep  3 00:23:21 1998  Richard Henderson  <rth@cygnus.com>
13807
13808         * ginclude/va-alpha.h: Protect entire second portion of the
13809         file against double inclusion.
13810
13811 Thu Sep  3 00:37:55 1998  Ovidiu Predescu  <ovidiu@aracnet.com>
13812
13813         Added support for the Boehm's garbage collector.
13814         * configure.in: Handle --enable-objc-gc.
13815         * configure: Rebuilt.
13816         * Makefile.in (CHECK_TARGETS): Add check-objc.
13817         (check-objc): New rule.
13818         * objc/Make-lang.in: Build a different Objective-C library that
13819         runs with the Boehm's collector.
13820         * objc/encoding.c (objc_round_acc_size_for_types): New function.
13821         * objc/encoding.c: Correctly compute the size of compound types in
13822         the presence of bitfields. Skip the variable name of the type if
13823         any. Added support for long long.
13824         * objc/encoding.h (_C_GCINVISIBLE): New specifier.
13825         (_F_GCINVISIBLE): New mask.
13826         * objc/gc.c: New file. Compute the type memory mask associated with
13827         a class based on the runtime information.
13828         * objc/misc.c: Added the hooks that use the Boehm's collector
13829         allocation functions.
13830         * objc/objc-act.c (build_class_template): Generate a new class
13831         member (gc_object_type) to hold the class' type memory mask.
13832         (build_shared_structure_initializer): Initialize the new member to
13833         NULL.
13834         (encode_complete_bitfield): New function. Generate the new
13835         encoding.
13836         (encode_field_decl): Generate the new encoding only for the GNU
13837         runtime.
13838         * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the
13839         long long types.
13840         (class_get_gc_object_type): New function to mark a pointer instance
13841         variable as a weak pointer.
13842         * objc/objc-features.texi: New file.
13843         * objc/objc.h (gc_object_type): New class member.
13844         * objc/objects.c (class_create_instance): Create a typed memory
13845         object when compiled with Boehm's collector support.
13846         * objc/sendmsg.c (__objc_init_install_dtable): Call
13847         __objc_send_initialize instead of setting the initialize flag.
13848         (__objc_send_initialize): Call __objc_generate_gc_type_description
13849         to generate the class type memory mask. Rewrite the code that
13850         sends the +initialize so that it is called only once (bug report
13851         and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>).
13852         * testsuite/objc: New testsuite for Objective-C type encoding.
13853         * testsuite/lib/objc-torture.exp: New file.
13854         * testsuite/lib/objc.exp: New file.
13855
13856 Wed Sep  2 14:47:36 1998  Jim Wilson  <wilson@cygnus.com>
13857
13858         * jump.c (jump_optimize): In if/then/else transformations, add
13859         another call to modified_between_p for the jump insn.
13860
13861 Wed Sep  2 14:16:49 1998  Jeffrey A Law  (law@cygnus.com)
13862
13863         * fix-header.c (symlink): Treat like readlink.
13864
13865 Wed Sep  2 19:30:06 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
13866
13867         * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles
13868         as FT_float.
13869
13870 Wed Sep  2 10:06:07 1998  Nick Clifton  <nickc@cygnus.com>
13871
13872         * config/nextstep.h:    Update HANDLE_PRAGMA macro.
13873         * config/h8300/h8300.h: Update HANDLE_PRAGMA macro.
13874         * config/i960/i960.h:   Update HANDLE_PRAGMA macro.
13875
13876         * config/nextstep.c (handle_pragma): Take three arguments, as per
13877         the new HANDLE_PRAGMA macro specification.
13878         * config/h8300/h8300.c (handle_pragma): Take three arguments, as
13879         per the new HANDLE_PRAGMA macro specification.
13880         * config/i960/i960.c (process_pragma): Take three arguments, as
13881         per the new HANDLE_PRAGMA macro specification.
13882
13883 Wed Sep  2 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
13884
13885         * c-lex.c (check_newline): Call HANDLE_PRAGMA before
13886         HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
13887         if unknown pragmas are encountered.
13888         (handle_sysv_pragma): Interpret return code from
13889         handle_pragma_token ().  Return success/failure indication rather
13890         than next unprocessed character.
13891         (pragma_getc): New function: retrieves characters from the
13892         input stream.  Defined when HANDLE_PRAGMA is enabled.
13893         (pragma_ungetc): New function: replaces characters back into the
13894         input stream.  Defined when HANDLE_PRAGMA is enabled.
13895
13896         * c-pragma.c (handle_pragma_token): Return success/failure status
13897         of the parse.
13898
13899         * c-pragma.h: Change prototype of handle_pragma_token().
13900
13901         * varasm.c (handle_pragma_weak): Only create this function if
13902         HANDLE_PRAGMA_WEAK is defined.
13903
13904         * c-common,c (decl_attributes): If defined call the expression
13905         contained within the INSERT_ATTRIBUTES macro before adding
13906         attributes to a decl.
13907
13908         * tm.texi (HANDLE_PRAGMA): Document the new version of
13909         HANDLE_PRAGMA, which takes three arguments.
13910         (INSERT_ATTRIBUTES): Document this new macro.
13911
13912         * LANGUAGES: Document the new version of HANDLE_PRAGMA and the
13913         new INSERT_ATTRIBUTES macro.
13914
13915 Wed Sep  2 02:03:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13916
13917         * config/sparc/sparc.md (movdf): Only generate special RTL for
13918         LABEL_REFs when PIC.
13919         (move_label_di): Remove.
13920         (movdi_pic_label_ref, movdi_high_pic_label_ref,
13921         movdi_lo_sum_pic_label_ref): New patterns for 64-bit label
13922         references when PIC.
13923         * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT,
13924         ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW,
13925         output an .xword for all 64-bit cases.
13926
13927 Tue Sep  1 15:55:17 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13928
13929         * config/sparc/sparc.c (finalize_pic): Don't output arbitrary
13930         alignment, use FUNCTION_BOUNDARY instead.
13931         (sparc_output_deferred_case_vectors): Likewise.
13932
13933 Mon Aug 31 17:25:41 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13934
13935         * config/sparc/sparc.md (movsf_const_intreg): Kill warning.
13936         (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives.
13937
13938 Mon Aug 31 13:57:55 1998  Richard Henderson  <rth@cygnus.com>
13939
13940         * alpha/va_list.h: New file.
13941         * alpha/x-alpha (EXTRA_HEADERS): New.  Add va_list.h.
13942
13943 Mon Aug 31 14:55:02 1998  Jeffrey A Law  (law@cygnus.com)
13944
13945         * NEWS: Add SCO Openserver and Unixware 7 notes.
13946
13947         * NEWS: Fix typos.
13948
13949 Mon Aug 31 15:42:18 1998  Dave Brolley  <brolley@cygnus.com>
13950
13951         * varasm.c (compare_constant_1): Handle RANGE_EXPR.
13952         (record_constant_1): Handle RANGE_EXPR.
13953
13954 Mon Aug 31 10:54:03 1998  Richard Henderson  <rth@cygnus.com>
13955
13956         * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap.
13957         * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START
13958         and NOTE_INSN_RANGE_END specially.
13959         (reemit_notes): Likewise.
13960
13961 Mon Aug 31 10:18:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13962
13963         * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'.
13964         (ultrasparc_sched_init): Remove unneeded &.
13965
13966 Mon Aug 31 10:47:16 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
13967
13968         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040
13969         for m68020-60, to prevent the use of fintrz.
13970
13971 Sun Aug 30 22:17:20 1998  Mark Mitchell  <mark@markmitchell.com>
13972
13973         * configure.in: If the native compiler is GCC use $(WARN_CFLAGS)
13974         even in stage1.
13975         * Makefile.in: Likewise.
13976         * configure: Regenerated.
13977
13978 Sun Aug 30 22:15:41 1998  H.J. Lu  (hjl@gnu.org)
13979
13980         * configure.in (gxx_include_dir): Changed to
13981         '${prefix}/include/g++'-${libstdcxx_interface}.
13982         * configure: Rebuilt.
13983
13984 Sun Aug 30 20:19:43 1998  Hans-Peter Nilsson  <hp@axis.se>
13985
13986         * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use
13987         consistent.
13988         * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move
13989         *sequences* *below* which scalar moves will be used.
13990
13991 Sun Aug 30 17:18:43 1998  Jeffrey A Law  (law@cygnus.com)
13992
13993         * collect2.c (mktemp): Delete unused declaration.
13994
13995         * config/xm-netbsd.h: Remove unnecessary file.
13996         * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h
13997         file anymore, it is not needed.
13998
13999 Sun Aug 30 16:05:45 1998  Mark Mitchell  <mark@markmitchell.com>
14000
14001         * convert.c (convert_to_integer): Issue an error on conversions to
14002         incomplete types.
14003
14004 Sun Aug 30 16:47:20 1998  Martin von Lvwis  <loewis@informatik.hu-berlin.de>
14005
14006         * Makefile.in: Add lang_tree_files and gencheck.h.
14007         * configure.in: Generate them.
14008         * gencheck.c: Include gencheck.h.
14009
14010 Sat Aug 29 21:38:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14011
14012         * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to
14013         movdi_lo_sum_pic and movdi_high_pic and make visible.
14014         * config/sparc/sparc.c (legitimize_pic_address): For -fPIC,
14015         emit these when Pmode is not SImode.
14016         * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW.
14017
14018 Sat Aug 29 14:59:32 1998  Mumit Khan  <khan@xraylith.wisc.edu>
14019
14020         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
14021         .linkonce directive after the first time.
14022
14023 Sat Aug 29 12:39:56 1998  Jeffrey A Law  (law@cygnus.com)
14024
14025         * m68k.md (beq0_di): Generate correct (and more efficient) code when
14026         the clobbered operand overlaps with an input.
14027         (bne0_di): Similarly.
14028
14029         * Makefile.in (INSTALL): Remove "--no-header" argument.
14030
14031         * NEWS: Various updates.
14032
14033 Fri Aug 28 19:00:44 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14034
14035         * config/sparc/sparc.c (arith_operand, const64_operand,
14036         const64_high_operand, arith_double_4096_operand): Mark mode as
14037         unused.
14038         (create_simple_focus_bits): Remove unused arg highest_bit_set, all
14039         callers changed.
14040         (sparc_emit_set_const64): Remove unused variable i.
14041         (sparc_splitdi_legitimate): Likewise for addr_part.
14042         (ultra_code_from_mask): Likewise for mask.
14043         (ultra_cmove_results_ready_p): Fixup entry modulo calc. and
14044         reverse return values so it matches usage and comments.
14045         (ultra_flush_pipeline): Likewise.
14046         (ultra_fpmode_conflict_exists): Likewise, remove unused variable
14047         this_type, and allow loads and stores of differing FP modes as
14048         they do not create a conflict.
14049         (ultra_find_type): Initialize fpmode to SFmode, fix
14050         parenthesization thinkos in large conditional.
14051         (ultrasparc_sched_init): Mark dump and sched_verbose as unused.
14052         Init free_slot_mask after ultra_cur_hist is reset, not before.
14053         (ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
14054         (ultrasparc_sched_reorder): Don't bzero current pipeline state,
14055         use ultra_flush_pipeline instead, then re-init group pointer.
14056         Fix statement with no effect.  If no progress made in, and no
14057         instructions scheduled at all, advance to new pipeline cycle else
14058         we get into an endless loop.
14059         (ultrasparc_adjust_cost): Remove previous arg.
14060         * config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
14061
14062 Fri Aug 28 13:52:35 1998  Jim Wilson  <wilson@cygnus.com>
14063
14064         * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
14065         code.  Use reg_overlap_mentioned_p to detect when source and
14066         destination overlap.
14067         (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.
14068
14069 1998-08-28  Brendan Kehoe  <brendan@cygnus.com>
14070
14071         * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not
14072         COMPARISON_VAL, into invariant_p.
14073
14074 Fri Aug 28 15:13:25 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
14075
14076         * regmove.c (regclass_compatible_p): New function.
14077         (regmove_optimize): Use it.
14078
14079         Use NREGS parameter instead of calling max_reg_num.
14080
14081         (fixup_match_1): Don't use code = MINUS when later tieing with
14082         a hard register is likely.
14083
14084 Fri Aug 28 14:54:07 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
14085
14086         * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when
14087         COMPARISON_VAL was normalized.
14088
14089 Thu Aug 27 20:10:46 1998  Jeffrey A Law  (law@cygnus.com)
14090
14091         * loop.c (check_dbra_loop): The loop ending comparison value
14092         must be an invariant or we can not reverse the loop.
14093
14094         * loop.c (scan_loop): Count down from max_reg_num - 1 to
14095         FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
14096         of the loop.
14097         (load_mems_and_recount_loop_regs_set): Likewise.
14098
14099         * i386.c (print_operand): Remove obsolete 'c' docs.
14100
14101 Wed Aug 26 17:13:37 1998  Tom Tromey  <tromey@cygnus.com>
14102
14103         * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
14104         * frame.c (init_object_mutex): New function.
14105         (init_object_mutex_once): Likewise.
14106         (find_fde): Call it.
14107         (__register_frame_info): Likewise.
14108         (__register_frame_info_table): Likewise.
14109         (__deregister_frame_info): Likewise.
14110
14111 Thu Aug 27 15:14:18 1998  Jeffrey A Law  (law@cygnus.com)
14112
14113         * haifa-sched.c (sched_analyze_insn): Fix thinko in last change.
14114
14115 Thu Aug 27 16:34:51 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
14116
14117         * loop.c (check_dbra_loop): Enable code for reversal
14118         of some loops without a known constant loop end.
14119
14120 Wed Aug 26 18:38:15 1998  Richard Henderson  <rth@cygnus.com>
14121
14122         * haifa-sched.c (last_clock_var): New.
14123         (schedule_block): Initialize it.
14124         (schedule_insn): Use it to fill insn modes with issue information.
14125
14126         * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
14127         Tag trapb and next insn with TImode.
14128         (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
14129         (alpha_reorg): Add conditional for alpha_handle_trap_shadows.
14130         Invoke alphaev5_align_insns as appropriate.
14131         * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
14132         (MD_SCHED_VARIABLE_ISSUE): New.
14133         * alpha.md (attr type): Add multi.
14134         (define_asm_attributes): New.
14135         (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
14136         (arg_home): Likewise.
14137         (fnop, unop, realign): New.
14138
14139 Wed Aug 26 15:55:41 1998  Jim Wilson  <wilson@cygnus.com>
14140
14141         * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef.
14142         * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
14143
14144         * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
14145         (rs6000-ibm-aix4.[12]*): Likewise.
14146         * configure: Regenerate.
14147
14148 Wed Aug 26 09:30:59 1998  Nick Clifton  <nickc@cygnus.com>
14149
14150         * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
14151         already contains the return address.
14152
14153 Wed Aug 26 12:57:09 1998  Jeffrey A Law  (law@cygnus.com)
14154
14155         * calls.c (expand_call): Use bitfield instructions to extract/deposit
14156         word sized hunks when loading unaligned args into registers.
14157
14158         * haifa-sched.c (sched_analyze_insn): Only create scheduling
14159         barriers for LOOP, EH and SETJMP notes on the loop_notes list.
14160
14161         * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.
14162
14163 Wed Aug 26 16:35:37 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
14164
14165         * loop.c (check_dbra_loop): Add some code that would allow reversal
14166         of some loops without a known constant loop end if it were enabled.
14167
14168 Wed Aug 26 11:08:44 1998  Gavin Romig-Koch  <gavin@cygnus.com>
14169
14170         * mips.md (lshrsi3_internal2+2): Fix type-o.
14171
14172 Wed Aug 26 10:53:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14173
14174         * system.h: Include stdarg.h/varargs.h, make sure they are ordered
14175         correctly with regards to stdio.h.
14176
14177         * calls.c: Remove stdarg.h/varargs.h.
14178         * cccp.c: Likewise.
14179         * cexp.y: Likewise.
14180         * combine.c: Likewise.
14181         * cpperror.c: Likewise.
14182         * cpplib.c: Likewise.
14183         * cpplib.h: Likewise.
14184         * doprint.c: Likewise.
14185         * emit-rtl.c: Likewise.
14186         * final.c: Likewise.
14187         * fix-header.c: Likewise.
14188         * gcc.c: Likewise.
14189         * genattr.c: Likewise.
14190         * genattrtab.c: Likewise.
14191         * gencodes.c: Likewise.
14192         * genconfig.c: Likewise.
14193         * genemit.c: Likewise.
14194         * genextract.c: Likewise.
14195         * genflags.c: Likewise.
14196         * genopinit.c: Likewise.
14197         * genoutput.c: Likewise.
14198         * genpeep.c: Likewise.
14199         * genrecog.c: Likewise.
14200         * mips-tfile.c: Likewise.
14201         * prefix.c: Likewise.
14202         * protoize.c: Likewise.
14203         * regmove.c: Likewise.
14204         * toplev.c: Likewise.
14205         * tree.c: Likewise.
14206
14207 Wed Aug 26 05:09:27 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
14208
14209         * config/sparc/sparc.c (sparc_override_options): If not
14210         TARGET_FPU, turn off TARGET_VIS.
14211         * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
14212         (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
14213         * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
14214         (movdi_insn_sp64): Add VIS fzero alternative.
14215         (clear_sf, clear_df): New VIS patterns.
14216         (movsf, movdf expanders): Allow fp_zero_operand flat out when
14217         TARGET_VIS.
14218         (one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
14219
14220 Tue Aug 25 10:57:41 1998  Mark Mitchell  <mark@markmitchell.com>
14221
14222         * loop.c (n_times_set, n_times_used, may_not_optimize,
14223         reg_single_usage): Convert to varrays.  All uses changed.
14224         (insert_loop_mem): Return a value.
14225         (scan_loop): Tweak AVOID_CC_MODE_COPIES code.
14226         (load_mems_and_recount_loop_regs_set): Likewise.  Grow the arrays, if
14227         necessary.
14228
14229 Tue Aug 25 23:57:12 1998  Jeffrey A Law  (law@cygnus.com)
14230
14231         * From Alexandre:
14232         * configure.in: Do not set thread_file to "irix" since no such
14233         support exists yet.
14234
14235         * sparc.md (float abs/neg splits): Check reload_completed before
14236         calling alter_subreg.
14237
14238 Tue Aug 25 19:17:59 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14239
14240         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
14241         function.
14242         * config/sparc/sparc.h: Declare it.
14243         * config/sparc/sparc.md (float abs/neg splits): Use it.
14244         (all other splits): Handle SUBREGs properly where necessary.
14245         (unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
14246
14247 Tue Aug 25 19:48:46 1998  Jeffrey A Law  (law@cygnus.com)
14248
14249         * reorg.c (fill_simple_delay_slots): Do not abort if we encounter
14250         an insn on the unfilled_slots_list that has no delay slots.
14251         (fill_eager_delay_slots): Similarly.
14252
14253 Tue Aug 25 13:35:20 1998  Nick Clifton  <nickc@cygnus.com>
14254
14255         * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
14256         as an ordinary operand.
14257
14258 Tue Aug 25 12:54:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
14259
14260         * tree.c (valid_machine_attribute): Don't apply attributes to both
14261         decl and type.
14262
14263 Tue Aug 25 12:23:20 1998  Richard Henderson  <rth@cygnus.com>
14264
14265         * reload.c (operands_match_p): Handle rtvecs.
14266
14267         * i386.c (legitimate_pic_address_disp_p): New.
14268         (legitimate_address_p): Use it.
14269         (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
14270         Handle constant pool symbols just like statics.
14271         (emit_pic_move): Use Pmode not SImode for clarity.
14272         (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
14273         [UNSPEC]: New, handling what we killed above.
14274         [PLUS]: Detect and abort on invalid symbol arithmetic.
14275         * i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
14276
14277 Tue Aug 25 12:02:23 1998  Mark Mitchell  <mark@markmitchell.com>
14278
14279         * alias.c: Include output.h.
14280         (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
14281         different if we're in a varargs function.
14282         * Makefile.in (alias.o): Depend on output.h
14283
14284 Tue Aug 25 19:20:12 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
14285
14286         * sh.h (GIV_SORT_CRITERION): Delete.
14287
14288 Tue Aug 25 13:19:46 1998  Dave Brolley  <brolley@cygnus.com>
14289
14290         * regclass.c (regclass): Use xmalloc/free instead of alloca.
14291         * stupid.c (stupid_life_analysis): Likewise.
14292         * reload1.c (reload): Likewise.
14293
14294 Tue Aug 25 05:48:18 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
14295
14296         * config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
14297         arith_double_4096_operand, arith_double_add_operand): New
14298         predicates.
14299         * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
14300         * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
14301         them to transform add/sub 4096 into add/sub -4096.
14302
14303 Mon Aug 24 23:31:03 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14304
14305         * loop.c (scan_loop): Allocate some slop to handle pseudos
14306         generated by move_movables.
14307         (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
14308         here too.
14309
14310 Mon Aug 24 19:45:40 1998  Jim Wilson  <wilson@cygnus.com>
14311
14312         * tree.def (DECL_RESULT): Correct documentation.
14313
14314 Tue Aug 25 01:15:27 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
14315
14316         * reload1.c (reload_reg_free_before_p): New argument EQUIV;  Changed
14317         all callers.  Abort for RELOAD_FOR_INSN.  RELOAD_FOR_OUTADDR_ADDR:
14318         conflicts will all RELOAD_FOR_OUTPUT reloads.
14319
14320         * reload1.c (reload_cse_regs_1): When deleting a no-op move that
14321         loads the function result, substitute with a USE.
14322
14323 Mon Aug 24 15:20:19 1998  David Edelsohn  <edelsohn@gnu.org>
14324
14325         * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
14326         when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
14327         (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
14328         * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
14329         (print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
14330         * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
14331         operand.
14332         (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
14333         'o' to 'm' for GPR variant constraints.
14334
14335 Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)
14336
14337         * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
14338
14339         * h8300.h (STRIP_NAME_ENCODING): Fix typo.
14340
14341         * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
14342         when the source and destination overlap.
14343
14344         * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
14345         clash with global type.
14346
14347 Mon Aug 24 00:53:53 1998  Jason Merrill  <jason@yorick.cygnus.com>
14348
14349         * fixinc.irix: Add curses.h handling from fixinc.wrap.
14350
14351         * c-common.c (combine_strings): Also set TREE_READONLY.
14352         Change warn_write_strings to flag_const_strings.
14353         * c-decl.c, c-tree.h: Likewise.
14354
14355 Sun Aug 23 18:39:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14356
14357         * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
14358         CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
14359         sequence, use SET/IOR instead so CSE can see it.
14360         * config/sparc/sparc.md (movhi_const64_special,
14361         movsi_const64_special): New patterns necessitated by that change.
14362         (movhi_high): Remove.
14363         (movhi_lo_sum): Change to match an IOR.
14364         (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
14365         (movdf_insn_v9only): New pattern for when V9 but not ARCH64.
14366         (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
14367         (movdf splits): Allow when not V9 or when not ARCH64 and integer
14368         registers are involved.
14369         (snesi_zero_extend split): Remove reload_completed test.
14370         (unnamed plus and minus zero_extend sidi splits): Add it.
14371
14372 Sun Aug 23 11:56:08 1998  Mark Mitchell  <mark@markmitchell.com>
14373
14374         * extend.texi: Remove description of extension to explicit
14375         instantiation that is now endorsed by standard C++.
14376
14377 Sun Aug 23 09:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14378
14379         * config/arc/arc.c (arc_initialize_pic): Remove.
14380         * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
14381         nothing on any platform and is invoked by no-one, it does not even
14382         appear in the documentation.
14383         * config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
14384         * config/sparc/sparc.c (initialize_pic): Likewise.
14385         (find_addr_reg): Remove this as well, no longer referenced after
14386         my rewrite.
14387
14388 Sun Aug 23 00:17:14 1998  Jeffrey A Law  (law@cygnus.com)
14389
14390         * recog.c (validate_replace_rtx_group): New function.
14391         * recog.h (validate_replace_rtx_group): Declare it.
14392         * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
14393         the entire group of substitutions.
14394
14395 Sat Aug 22 23:31:00 1998  Klaus-Georg Adams  (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)
14396
14397         * loop.c (load_mems): Fix initializers.
14398
14399 Fri Aug 21 23:07:46 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14400
14401         * config/sparc/sparc.md (TFmode splits): Handle destination
14402         registers being referenced in the address correctly.
14403
14404         * expmed.c (make_tree) [CONST_INT]: Sign extend even if
14405         TREE_UNSIGNED, when bitsize of type's mode is larger than
14406         HOST_BITS_PER_WIDE_INT.
14407
14408 Fri Aug 21 19:31:31 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14409
14410         * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
14411         * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
14412         EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
14413         macros.
14414         * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
14415         EXIT_BLOCK_EXPR.
14416
14417 Thu Aug 20 19:43:44 1998  Jeffrey A Law  (law@cygnus.com)
14418
14419         * h8300.c (h8300_encode_label): Use '&' for tiny data items.
14420         * h8300.h (TINY_DATA_NAME_P): Likewise.
14421         (STRIP_NAME_ENCODING): Handle '&'.
14422
14423         * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
14424         register (it could be accessed via an outer SUBREG).
14425         (REG_OK_FOR_BASE_P): Likewise.
14426         (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
14427
14428         * remove.c (optimize_reg_copy_3): Abort instead of silently generating
14429         bogus rtl.
14430
14431         * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.
14432
14433 Thu Aug 20 17:35:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14434
14435         * config/sparc/sparc.md (movtf_insn_sp32): All memory operands
14436         must be offsettable so the splits can be made.
14437
14438 Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>
14439
14440         * config/i386/winnt.c: Include system.h, not stdio.h to get
14441         sys/param.h pulled in before rtl.h in case the system defines MIN
14442         and MAX.
14443
14444 Thu Aug 20 13:44:20 1998  David Edelsohn  <edelsohn@gnu.org>
14445
14446         * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
14447
14448 Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>
14449
14450         * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
14451         arrays of bits.
14452         * cpplib.c (cpp_define): Handle macros with parameters.
14453
14454 Wed Aug 19 21:33:19 1998  David Edelsohn  <edelsohn@gnu.org>
14455
14456         * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
14457         (output_toc): Use single TOC slot or llong minimal-toc for DFmode
14458         and DImode 64-bit.  Use llong for minimal-toc SFmode and
14459         SYMBOL_REF / LABEL_REF 64-bit.
14460         (output_function_profiler): Use llong for profiler label and ld to
14461         load 64-bit label address.
14462
14463 Wed Aug 19 17:52:27 1998  Nick Clifton  (nickc@cygnus.com)
14464
14465         * config/arm/thumb.md (extendqisi2_insn): Cope with REG +
14466         OFFSET addressing.
14467
14468 Wed Aug 19 14:13:31 1998  Jeff Law  (law@cygnus.com)
14469
14470         * version.c: Bump for snapshot.
14471
14472 Wed Aug 19 13:10:30 1998  Jeff Law  (law@cygnus.com)
14473
14474         * version.c: Bump for snapshot.
14475
14476 Wed Aug 19 13:06:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
14477
14478         * collect2.c (extract_init_priority): Use atoi instead of strtoul.
14479
14480 Wed Aug 19 13:51:35 1998  Hans-Peter Nilsson  <hp@axis.se>
14481
14482         * tm.texi (Misc): Fix typo "teh".
14483
14484         * tm.texi (PIC): Fix typo "PPIC".
14485
14486         * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
14487         effect when -O2 and higher.
14488         * invoke.texi (Optimize Options): Likewise for -fcaller-saves.
14489
14490 1998-08-19  Michael Hayes  <michaelh@ongaonga.chch.cri.nz>
14491
14492         * regclass.c: Changed register set documentation to be consistent
14493         with GCC behavior.
14494
14495         * final.c (final_start_function): Removed redundant test for
14496         call_fixed_regs.
14497
14498 Wed Aug 19 13:28:41 1998  Mark Mitchell  <mark@markmitchell.com>
14499
14500         * rtl.h (rtx_function): New type.
14501         (for_each_rtx): New function.
14502         * rtlanal.c (for_each_rtx): Define it.
14503
14504         * recog.c (change_t): New type.
14505         (change_objects, change_old_codes, change_locs, change_olds):
14506         Replace with ...
14507         (changes): New variable.
14508         (validate_change): Dynamically allocate room for more changes, if
14509         necessary.  Uses changes array instead of change_objects, etc.
14510         (apply_change_group): Use changes array instead of
14511         change_objects, etc.
14512
14513         * loop.c (loop_mem_info): New type.
14514         (loop_mems): New variable.
14515         (loop_mems_idx): Likewise.
14516         (looop_mems_allocated): Likewise.
14517         (scan_loop): Remove nregs parameter.
14518         (next_insn_in_loop): New function.
14519         (load_mems_and_recount_loop_regs_set): Likewise.
14520         (load_mems): Likewise.
14521         (insert_loop_mem): Likewise.
14522         (replace_loop_mem): Likewise.
14523         (replace_label): Likewise.
14524         (INSN_IN_RANGE_P): New macro.
14525         (loop_optimize): Don't pass max_reg_num() to scan_loop.
14526         (scan_loop): Remove nregs parameter, compute it after any new
14527         registers are created by load_mems.  Use INSN_IN_RANGE_P and
14528         next_insn_in_loop rather than expanding them inline.  Call
14529         load_mems to load memory into pseudos, if appropriate.
14530         (prescan_loop): Figure out whether or not there are jumps from the
14531         loop to targets other than the label immediately following the
14532         loop.  Call insert_loop_mem to notice all the MEMs used in the
14533         loop, if it could be safe to pull MEMs into REGs for the duration
14534         of the loop.
14535         (strength_reduce): Use next_insn_in_loop.  Tweak comments.
14536
14537 Wed Aug 19 08:29:44 1998  Richard Earnshaw  (rearnsha@arm.com)
14538
14539         * arm.c (arm_override_options): Remove lie about ignoring PIC flag.
14540
14541 Wed Aug 19 07:08:15 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14542
14543         * config/sparc/sparc.c (finalize_pic): Check for the correct
14544         nonlocal_goto_receiver UNSPEC number.
14545         * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
14546         making note of this dependency existing in sparc.c.
14547         (negtf2_notv9 split): Give NEG SFmode.
14548         (negsf2): Fix insn output string.
14549
14550 Tue Aug 18 12:40:27 1998  Richard Henderson  <rth@cygnus.com>
14551
14552         * c-common.c (decl_attributes): Issue an error if the argument
14553         to alias is not a string.
14554
14555 Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)
14556
14557         * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
14558         pending memory flush list.
14559
14560         * combine.c (can_combine_p): Allow combining insns with REG_RETVAL
14561         notes.
14562         (try_combine): Allow combining insns with REG_LIBCALL notes.
14563
14564         * expr.c (emit_block_move): Do not call memcpy as a libcall
14565         instead build up a CALL_EXPR and call it like any other
14566         function.
14567         (clear_storage): Similarly for memset.
14568
14569         * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
14570         on notes.
14571
14572         * Makefile.in (cplus-dem.o): Provide explicit rules for building
14573         cplus-dem.o.
14574
14575         * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
14576         and REG_LIVE_LENGTH as successful substitutions are made.
14577
14578 Tue Aug 18 07:15:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14579
14580         * config/sparc/sparc.c (ultra_find_type): Add empty semicolon
14581         statement after end of loop label.
14582
14583 Tue Aug 18 07:13:27 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14584
14585         * config/sparc/sparc.c (ultra_types_avail): New variable.
14586         (ultra_build_types_avail): New function to record mask of insn
14587         types in ready list at this cycle.
14588         (ultrasparc_sched_reorder): Call it.
14589         (ultra_find_type): Use it to quicken the search.  Also simplif
14590         dependency check, don't use rtx_equal_p because we know exactly
14591         what we are looking for.
14592
14593 Tue Aug 18 03:20:53 1998  Richard Earnshaw  (rearnsha@arm.com)
14594
14595         * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
14596         for architecture v4.
14597
14598 Mon Aug 17 21:26:38 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14599
14600         * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
14601         gen_compare_reg.
14602         (movsf_const_intreg, movsf_const_high, movsf_const_lo,
14603         movdf_const_intreg and helper splits): New patterns to move float
14604         constants into integer registers.
14605         (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
14606         splits.
14607
14608 Mon Aug 17 11:46:19 1998  Jeffrey A Law  (law@cygnus.com)
14609
14610         * From Graham
14611         * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
14612         to itype.
14613         * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
14614
14615         * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
14616         a BASE_REGS register is needed as an intermediate when copying
14617         a symbolic value into any register class other than BASE_REGS.
14618
14619         * expr.c (move_by_pieces): No longer static.  Remove prototype.
14620         * rtl.h (move_by_pieces): Add extern prototype.
14621         * mips.c (expand_block_move): Handle aligned straight line copy by
14622         calling move_by_pieces.
14623
14624         * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
14625         and VAR_DECLs.
14626
14627 Mon Aug 17 10:28:52 1998  Mark Mitchell  <mark@markmitchell.com>
14628
14629         * stmt.c (expand_end_loop): Tidy.  Allow unconditional
14630         jumps out of the loop to be treated as part of the exit test.
14631
14632 Mon Aug 17 10:06:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14633                           Jeff Law  <law@cygnus.com>
14634
14635         * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
14636         * cplus-dem.c: Delete.
14637
14638         * Makefile.in (fold-const.o): Depend on $(RTL_H).
14639
14640         * fold-const.c: Include rtl.h to get the prototype for
14641         `set_identifier_local_value'.
14642
14643         * loop.c (express_from_1): Remove unused variable `tmp'.
14644         (combine_givs): Cast the first argument of bzero to char *.
14645
14646         * toplev.c (display_help): Remove unused variable `looking_for_start'.
14647
14648         * c-decl.c (init_decl_processing): Remove unneeded &.
14649
14650         * alpha.h (alpha_initialize_trampoline): Provide prototype.
14651
14652         * except.c (set_exception_lang_code, set_exception_version_code):
14653         Change parameter from `short' to `int' to avoid using a gcc
14654         extension.
14655
14656         * except.h (set_exception_lang_code, set_exception_version_code):
14657         Likewise for prototypes.
14658
14659         * flow.c (count_reg_references): Remove unused variables `regno'
14660         and `i'.
14661
14662         * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
14663
14664         * prefix.c (translate_name): Cast the result of `alloca'.
14665
14666         * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
14667
14668 Mon Aug 17 09:23:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
14669
14670         * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
14671         Include "toplev.h".
14672         (valid_dbcc_comparison_p): Mark mode argument as unused.
14673         (symbolic_operand): Likewise.
14674         (legitimize_pic_address): Likewise.
14675         (const_uint32_operand): Likewise.
14676         (const_sint32_operand): Likewise.
14677         * sched.c [!INSN_SCHEDULING]: Define only dummy function
14678         schedule_insns and comment out rest of file.
14679
14680         * m68k.c (output_move_simode_const): Use subl to move a zero into an
14681         address register.
14682         (output_move_[hq]imode): Likewise.
14683
14684 Mon Aug 17 09:15:47 1998  Jeffrey A Law  (law@cygnus.com)
14685
14686         * toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
14687         * invoke.texi: Corresponding changes.
14688
14689 Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>
14690
14691         * regclass.c (allocate_reg_info): Respect MIN when clearing data.
14692
14693 Sun Aug 16 17:37:06 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14694
14695         * config/sparc/sparc.c (ultra_code_from_mask,
14696         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
14697         ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
14698         ultrasparc_sched_init, ultrasparc_variable_issue,
14699         ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
14700         functions to describe UltraSPARC pipeline exactly to Haifa.
14701         (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
14702         as there is nothing the scheduler can do about it.  Indicate that
14703         REG_DEP_OUTPUT's collide.  Fixup formatting.
14704         * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
14705         divide costs on Ultra for DImode.
14706         (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
14707         Define.
14708         * config/sparc/sparc.md (ieu_unnamed function unit): Rename to
14709         ieuN and add call_no_delay_slot to type list.
14710         (cti function unit): New unit for branches on UltraSPARC.
14711         (subx/addx insns): Set type to misc.
14712         (sidi zero/sign extension insns on arch64): Set type to shift.
14713         (sign_extendhidi2_insn): Set type to sload.
14714
14715 Sun Aug 16 13:52:00 1998  David Edelsohn  <edelsohn@gnu.org>
14716
14717         * rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
14718         (output_epilog): Use if != 0 for offset.
14719         (rs6000_fatal_bad_address): Prepare for Intl.
14720         * rs6000.h (rs6000_fatal_bad_address): Declare.
14721         * rs6000.md (movsfcc, movdfcc): Use else if.
14722         (elf_high): Use {liu|lis}.
14723         (elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
14724         (movsi): Use rs6000_fatal_bad_address.
14725
14726 Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>
14727
14728         * reload.c (find_equiv_reg): Reject equivalences separated
14729         by a volatile instruction.
14730
14731 Sun Aug 16 00:21:44 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14732
14733         * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
14734
14735 Sat Aug 15 20:51:35 1998  Richard Henderson  <rth@cygnus.com>
14736
14737         * alpha.md (movsicc): Fix mode mismatch.
14738
14739 Sat Aug 15 20:22:33 1998  H.J. Lu  (hjl@gnu.org)
14740
14741         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
14742         return type.
14743         * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
14744
14745 Sat Aug 15 08:39:49 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14746
14747         * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
14748         write-only modifier from operand 1 constraint.
14749
14750 Sat Aug 15 06:28:19 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14751
14752         * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
14753         emitting a XOR of -1 at the end, emit a NOT instead for combine's
14754         sake.
14755         (sparc_emit_set_const64): Likewise, also when computing trailing
14756         bits do not negate low_bits and make fast_int an int.
14757
14758 Fri Aug 14 21:07:03 1998  Jeffrey A Law  (law@cygnus.com)
14759
14760         * loop.c (add_label_notes): Do not ignore references to labels
14761         before dispatch tables.  Mirrors Apr 8 change to mark_jump_label.
14762         * gcse.c (add_label_notes): Similarly.
14763
14764         * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
14765
14766         * m68k.md (adddi_dilshr32): One of the operands must be a register.
14767         (adddi_dishl32): Similarly.
14768
14769 Fri Aug 14 14:12:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
14770
14771         * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
14772         * alias.c (memrefs_conflict_p): Add braces to shut up warnings.
14773         * cse.c (cse_basic_block): Add parens to shut up warnings.
14774
14775 Fri Aug 14 12:58:21 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14776
14777         * config/sparc/sparc.c (sparc_emit_set_const64_quick2,
14778         sparc_emit_set_const64_longway, const64_is_2insns,
14779         create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
14780         in 64-bit constant formation.
14781         * config/sparc/sparc.md (snesi_zero_extend split): Generate
14782         rtl for addx not subx.
14783         (define_insn movdi_const64_special): Make available even when
14784         HOST_BITS_PER_WIDE_INT is not 64.
14785         (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
14786         (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
14787         (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
14788         instances of operand 1 inside a QI subreg.
14789         (xordi3_sp64_dbl): Remove '%' constraint for op1.
14790         (one_cmpldi2_sp64): Fix output string.
14791         (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
14792         alternative case.
14793         (unnamed arch64 ashift DI): Truncate shift count if greater than
14794         63, not 31.
14795
14796 Fri Aug 14 21:52:53 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
14797
14798         * expr.c (store_expr): Don't optimize away load-store pair
14799         when either source or destination have a side effect.
14800
14801 Fri Aug 14 16:50:10 1998  John Carr  <jfc@mit.edu>
14802
14803         * genrecog.c (add_to_sequence): Fatal error if the modes of the
14804         operands of SET are incompatible.
14805
14806         * alpha.md: Fix max and min patterns so modes of SET operands match.
14807
14808 Fri Aug 14 12:22:55 1998  Ian Lance Taylor  <ian@cygnus.com>
14809
14810         * configure.in: Avoid [[ by using test and changequote.
14811         * configure: Rebuild.
14812
14813 Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14814
14815         * rtl.def (CONSTANT_P_RTX): Fix typo in string name.
14816
14817         * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
14818         seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
14819         split, snedi_zero_trunc and split, seqsi_zero_extend and split,
14820         seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
14821         movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
14822         split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
14823         Fix mismatching modes in SET operands.
14824         (conditional move patterns): Fix formatting.
14825         (unnamed subx arch64 pattern): Remove duplicate insn.
14826
14827 Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14828
14829         * config/sparc/sparc.c (const64_operand, const64_high_operand):
14830         Get it right when HOST_BITS_PER_WIDE_INT is not 64.
14831         (input_operand): Fixup test for what we accept for constant
14832         integers.
14833         (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
14834         set VOIDmode.
14835         (safe_constDI): Remove.
14836         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
14837         gen_safe_XOR64): New functions.
14838         (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
14839         sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
14840         them.
14841         * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
14842         available when HOST_BITS_PER_WIDE_INT is not 64.
14843         (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
14844         move before movdi_insn_sp64 pattern.
14845         (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
14846         (define_insn sethi_di_medlow, seth44, setm44, sethh): Use
14847         symbolic_operand as predicate for second operand.
14848         (DImode minus split on arch32, negsi2 expander, one_cmplsi2
14849         expander): Give set VOIDmode.
14850
14851 Fri Aug 14 01:45:06 1998  Mumit Khan  <khan@xraylith.wisc.edu>
14852
14853         * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
14854
14855 Fri Aug 14 01:40:21 1998  Geoffrey Keating  <geoffk@ozemail.com.au>
14856
14857         * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
14858
14859 Fri Aug 14 01:23:23 1998  Richard Earnshaw  (rearnsha@arm.com)
14860
14861         * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating
14862         point.
14863         (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
14864
14865 Fri Aug 14 01:19:08 1998  Robert Lipe  <robertl@dgii.com>
14866
14867         * install.texi: Various SCO OpenServer tweaks.
14868
14869 Thu Aug 13 20:14:40 1998  Jim Wilson  <wilson@cygnus.com>
14870
14871         * reload1.c (eliminate_regs_in_insn): Handle another case when
14872         eliminating the frame pointer to the hard frame pointer.  Add
14873         missing ep->to_rtx check to one existing case.
14874
14875         * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.
14876
14877 Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
14878
14879         * tree.h: De-conditionalize init_priority code.
14880
14881         * mips.h (NM_FLAGS): Change from -Bp to -Bn.
14882         * collect2.c (NM_FLAGS): Change from -p to -n.
14883
14884         * configure.in: Turn on collect2 for mipstx39-elf.
14885         Handle use_collect2=no properly.
14886
14887         * c-common.c: De-conditionalize init_priority code.
14888         * collect2.c (extract_init_priority, sort_ids): New fns.
14889         (main): Call sort_ids.
14890         Move sequence_number to file scope.
14891
14892         * configure.in: Handle --enable-init-priority.
14893         * c-common.c (attrs): Add A_INIT_PRIORITY.
14894         (init_attributes, decl_attributes): Likewise.
14895         * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
14896         * tree.c (get_file_function_name_long): Split out...
14897         (get_file_function_name): ...from here.
14898
14899 Thu Aug 13 16:09:53 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
14900
14901         * expr.c (safe_from_p): Change code to ERROR_MARK only when not
14902         accessing nodes.
14903
14904 Thu Aug 13 15:24:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
14905
14906         * toplev.c (display_help): Add braces to shut up warnings.
14907         * tree.c (simple_cst_equal): Likewise.
14908
14909         * fold-const.c (non_lvalue): Don't deal with null pointer
14910         constants here.
14911         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
14912
14913         * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
14914         of any size to a pointer.
14915
14916 Thu Aug 13 12:53:13 1998  Jim Wilson  <wilson@cygnus.com>
14917
14918         * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
14919
14920 Wed Aug 12 17:25:18 1998  Jeffrey A Law  (law@cygnus.com)
14921
14922         * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
14923         which will be saved.
14924         * mn10300.md (prologue insn): Only save registers which need saving.
14925         (epilogue insn): Similarly.
14926
14927         * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
14928         optimizations.
14929
14930 Wed Aug 12 12:39:16 1998  Gavin Romig-Koch  <gavin@cygnus.com>
14931
14932         * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
14933         VAR_DECL's in gp addressable sections.
14934
14935 Tue Aug 11 23:02:31 1998  John Carr  <jfc@mit.edu>
14936
14937         * sparc.c: Change return <exp> to <exp>; return; in functions
14938         returning void.
14939         * sparc.md: Add empty semicolon statement after final label in
14940         move expanders.
14941
14942 Tue Aug 11 22:42:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14943
14944         * config/sparc/sparc.md (define_insn addx_extend): Rename to
14945         addx_extend_sp64, only allow when TARGET_ARCH64.
14946         (define_insn addx_extend_sp32 and split): Version that works when
14947         not TARGET_ARCH64.
14948         (define_insn subx_extend): Likewise.
14949         (define_split adddi3 and subdi3 with zero extension): Fixup and
14950         correct bugs when not TARGET_ARCH64.
14951
14952 Tue Aug 11 16:04:34 1998  John Carr  <jfc@mit.edu>
14953
14954         * except.c (set_exception_lang_code, set_exception_version_code):
14955         Use prototype-style definition if __STDC__, to match declaration
14956         in except.h.
14957
14958         * genemit.c: Change FAIL and DONE macros not to use loops.
14959
14960 Tue Aug 11 12:27:03 1998  Jim Wilson  <wilson@cygnus.com>
14961
14962         * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
14963         ASM_OUTPUT_DWARF2_ADDR_CONST if defined.
14964
14965         * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.
14966
14967 Tue Aug 11 18:12:53 1998  Dave Love  <d.love@dl.ac.uk>
14968
14969         * README.g77: Update from Craig.
14970
14971 Tue Aug 11 04:46:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14972
14973         * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
14974         type HOST_WIDE_INT.
14975         (safe_constDI sparc_emit_set_const64_quick1,
14976         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
14977         analyze_64bit_constant, const64_is_2insns,
14978         create_simple_focus_bits): Fix some bugs when compiled on real
14979         64-bit hosts.
14980         (function_arg_record_value_3, function_arg_record_value_2,
14981         function_arg_record_value): Add fully prototyped forward decls.
14982         * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
14983         to cmpsi_insn and use on both 64 and 32 bit targets.
14984         (define_insn cmpsi_insn_sp64): Remove.
14985         (define_expand zero_extendsidi2): Allow for 32-bit target too.
14986         (define_insn zero_extendsidi2_insn): Rename to
14987         zero_extendsidi2_insn_sp64.
14988         (define_insn zero_extendsidi2_insn_sp32): New pattern and
14989         associated forced split for it.
14990
14991         * config/sparc/sparc.c (const64_operand, const64_high_operand):
14992         New predicates.
14993         * config/sparc/sparc.h: Declare them.
14994         (PREDICATE_CODES): Add them.
14995         * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
14996         movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.
14997
14998 Mon Aug 10 22:57:24 1998  John Carr  <jfc@mit.edu>
14999
15000         * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
15001         in v9 case as the latter makes the Solaris assembler crash.
15002
15003 Mon Aug 10 22:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
15004
15005         * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
15006         for TFmode when !v9.  We require offsettable memory addresses.
15007         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
15008         DFmode register number conversions.
15009         * config/sparc/sparc.md (define_split DFmode moves): If register
15010         is a SUBREG do alter_subreg on it before using.
15011         (define_expand movtf): Fixup comment about alignment on v9.
15012         (define_split TFmode moves): Don't use gen_{high,low}part, create
15013         explicit SUBREGs instead.
15014
15015 Mon Aug 10 19:02:55 1998  John Carr  <jfc@mit.edu>
15016
15017         * Makefile.in (mbchar.o): Depend on mbchar.c.
15018
15019 Mon Aug 10 04:28:13 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
15020                           Richard Henderson  <rth@cygnus.com>
15021
15022         Rewrite Sparc backend for better code generation and
15023         improved sparc64 support.
15024         * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
15025         zero.
15026         * config/sparc/sysv4.h: Likewise.
15027         * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
15028         move_operand, v8plus_regcmp_op, emit_move_sequence,
15029         singlemove_string, doublemove_string, mem_aligned_8,
15030         output_move_double, output_move_quad, output_fp_move_double,
15031         move_quad_direction, output_fp_move_quad, output_scc_insn):
15032         Remove.
15033         (small_int_or_double): New predicate.
15034         (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
15035         (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
15036         old pic_{sethi,lo_sum}_si patterns.
15037         (mem_min_alignment): New generic function to replace
15038         mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
15039         available and can test for arbitrary alignments.  All callers
15040         changed.
15041         (save_regs, restore_regs, build_big_number,
15042         output_function_prologue, output_cbranch, output_return,
15043         sparc_flat_save_restore, sparc_flat_output_function_prologue,
15044         sparc_flat_output_function_epilogue): Prettify
15045         insn output.
15046         (output_function_epilogue): Likewise and add code to output
15047         deferred case vectors.
15048         (output_v9branch): Likewise, add new arg INSN and use it to tack
15049         on branch prediction settings.  All callers changed.
15050         (print_operand): Likewise and output %l44 for LO_SUMs when
15051         TARGET_CM_MEDMID.
15052         (sparc_splitdi_legitimate): New function to make sure DImode
15053         splits can be run properly when !arch64.
15054         (sparc_initialize_trampoline, sparc64_initialize_trampoline):
15055         Reformat example code in comments.
15056         (set_extends): Remove UNSPEC/v8plus_clear_high case.
15057         (sparc_addr_diff_list, sparc_addr_list): New statics to keep track
15058         of deferred case vectors we need to output.
15059         (sparc_defer_case_vector): Record a case vector.
15060         (sparc_output_addr_vec, sparc_output_addr_diff_vec,
15061         sparc_output_deferred_case_vectors): New functions to output them.
15062         (sparc_emit_set_const32): New function to form 32-bit constants in
15063         registers when that requires more than one instruction.
15064         (safe_constDI, sparc_emit_set_const64_quick1,
15065         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
15066         analyze_64bit_constant, const64_is_2insns,
15067         create_simple_focus_bits, sparc_emit_set_const64): New functions
15068         which do the same for 64-bit constants when arch64.
15069         (sparc_emit_set_symbolic_const64): New function to emit address
15070         loading for all code models on v9.
15071         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
15072         %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
15073         (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
15074         (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
15075         inaccuracies in comments, add symbolic and text_segment operands
15076         when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively.  Use
15077         GENERAL_REGS in these cases as a temp REG is needed to load these
15078         addresses into a register properly.
15079         (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
15080         is no longer used.
15081         (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
15082         quads are guaranteed to have 16-byte alignment.
15083         (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
15084         copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
15085         (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
15086         deferred case vector implementation.
15087         (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
15088         (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
15089         Generate "internal label - label" instead of "label - 1b".
15090         (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
15091         (PREDICATE_CODES): Remove sparc_operand, move_operand,
15092         v8plus_regcmp_op.  Add small_int_or_double, input_operand, and
15093         zero_operand.
15094         (doublemove_string, output_block_move, output_fp_move_double,
15095         output_fp_move_quad, output_move_double, output_move_quad,
15096         output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
15097         sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
15098         (sparc_emit_set_const32, sparc_emit_set_const64,
15099         sparc_emit_set_symbolic_const64, input_operand, zero_operand,
15100         mem_min_alignment, small_int_or_double): Add externs.
15101         * config/sparc/sparc.md: Document the many uses of UNSPEC and
15102         UNSPEC_VOLATILE in this backend.
15103         (define_function_unit ieu): Rename to ieu_unnamed.  Add move and
15104         unary to types which execute in it.
15105         (define_function_unit ieu_shift): Rename to ieu0.
15106         (define_function_unit ieu1): New, executes compare, call, and
15107         uncond_branch type insns.
15108         (define_function_units for type fdivs, fdivd, fsqrt): These
15109         execute in the fpu multiply unit not the adder on UltraSparc.
15110         (define_expand cmpdi): Disallow TARGET_V8PLUS.
15111         (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
15112         (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
15113         allows the arith_double_operand predicate and rHI constraint when
15114         TARGET_ARCH64.
15115         (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
15116         cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
15117         neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
15118         sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
15119         sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
15120         movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
15121         movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
15122         movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
15123         movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
15124         cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
15125         sign_extendqihi2_insn, sign_extendqisi2_insn,
15126         sign_extendqidi2_insn, sign_extendhidi2_insn,
15127         extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
15128         trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
15129         floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
15130         fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
15131         adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
15132         subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
15133         muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
15134         const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
15135         smulsi3_highpart_v8plus, unnamed subreg mult,
15136         const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
15137         const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
15138         const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
15139         const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
15140         const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
15141         udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
15142         andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
15143         or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
15144         xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
15145         cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
15146         cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
15147         cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
15148         cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
15149         cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
15150         cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
15151         addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
15152         muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
15153         negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
15154         ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
15155         cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
15156         ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
15157         lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
15158         call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
15159         call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
15160         call_address_untyped_struct_value_sp32,
15161         call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
15162         call_value_symbolic_sp32, call_value_address_sp64,
15163         call_value_symbolic_sp64, branch_sp32, branch_sp64,
15164         flush_register_windows, goto_handler_and_restore,
15165         goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
15166         flush, all ldd/std peepholes, return_qi, return_hi, return_si,
15167         return_addsi, return_di, return_adddi, return_sf, all call+jump
15168         peepholes, trap, unnamed trap insns): Prettify output strings.
15169         (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
15170         or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
15171         Likewise and force + implement splits for integer cases.
15172         (define_insn return_sf_no_fpu): Likewise and allow to match when
15173         no-fpu because of our subreg SFmode splits.
15174         (define_insn zero_extendqihi2, zero_extendqisi2_insn,
15175         zero_extendqidi2_insn, zero_extendhidi2_insn,
15176         zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
15177         input_operand for second operand.
15178         (cmp_minus_cc, cmp_minus_cc_set): Likewise and use
15179         reg_or_0_operand for operand 2 so new splits can use it.
15180         (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
15181         cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
15182         too.
15183         (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
15184         CONST_DOUBLEs for operand 2.
15185         (define_insn move_label_di): Likewise and label distance
15186         optimization because it no longer works with new deferred case
15187         vector scheme.  To be revisited.
15188         (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
15189         and allow reg_or_0_operand and J constraint for second operand.
15190         (define_insn jump): Set branch predict taken on V9.
15191         (define_insn tablejump): Emit LABEL_REF + PLUS memory address for
15192         new deferred case vector scheme.
15193         (define_insn pic_tablejump_32, pic_tablejump_64): Remove.
15194         (define_insn negdi2_sp32): Force + implement splits.
15195         (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
15196         one_cmplsi2_not_liveg0 respectively, and create expander of original
15197         names which emit special rtl for TARGET_LIVE_G0.
15198         (define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
15199         (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
15200         gen_compare_reg, FAIL instead.
15201         (define_insn sgtu, sleu): Likewise and check gen_s*() return
15202         values when trying to reverse condition codes, if they FAIL then
15203         do likewise.
15204         (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
15205         snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
15206         neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
15207         seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
15208         x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
15209         set output string to # to indicate they are mandatory splits.
15210         (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
15211         pic_sethi_di, move_pic_label_si): Remove.
15212         (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
15213         movsi_high_pic, movsi_pic_label_reg): New patterns to take their
15214         place.
15215         (define_expand movsi_pic_label_ref, define_insn
15216         movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
15217         expander and insns to handle PIC label references and deferred
15218         case vectors.
15219         (define_insn get_pc_via_rdpc): Comment out as it is no longer
15220         used.
15221         (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
15222         Rewrite to not use emit_move_sequence, make use of new constant
15223         formation code, and new splits for all multi-insn cases.
15224         (define_insn movqi_insn): Remove sethi case, it can never happen.
15225         Use reg_or_zero_operand instead of const0_rtx explicit test,
15226         use input_operand instead of move_operand for source, and use
15227         general_operand now for dest.
15228         (define_insn movhi_insn): Similar but leave sethi case.
15229         (define_insn lo_sum_qi, store_qi, store_hi): Remove.
15230         (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
15231         movhi_lo_sum respectively, prettify output string.
15232         (define_insn movsi_zero_liveg0): New pattern to put zero into a
15233         register when needed on TARGET_LIVE_G0.
15234         (define_insn movsi_insn): Use general_operand and input_operand
15235         for dest and src respectively.  Simplify applicability test.
15236         Prettify output strings, and add clr alternative for J
15237         constraint.
15238         (define_insn movdi_sp32_v9, movdi_sp32, define_splits for
15239         deprecated std and reg-reg DI moves): Remove and...
15240         (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
15241         implementation which uses forced splits for all non-single insn
15242         cases.
15243         (define_split DI move cases on !arch64): New splits to handle all
15244         situations of 64-bit double register DImode on 32bit, and
15245         unaligned registers and memory addresses for all subtargets.
15246         (define_insn movsf_const_insn, movdf_const_insn, store_sf):
15247         Remove.
15248         (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
15249         input_operand for dest and src respectively, prettify output
15250         strings.
15251         (define_insn movdf_insn, movdf_no_e_insn, store_df,
15252         movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
15253         and...
15254         (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
15255         movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
15256         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
15257         movtf_no_e_insn_sp64): Replace with new
15258         implementation which uses forced splits for all non-single insn
15259         cases.
15260         (define_split DF move cases): New splits in similar vein to DI
15261         move counterparts.
15262         (define_insn sethi_di_medlow, sethi_di_medium_pic,
15263         sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
15264         movdi_sp64_insn): Remove old v9 code model and constant loading
15265         support insns and..
15266         (define_insn pic_lo_sum_di, pic_sethi_di,
15267         sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
15268         seth44, setm44, setl44, sethh, setlm, sethm, setlo,
15269         embmedany_sethi, embmedany_losum, embmedany_brsum,
15270         embmedany_textuhi, embmedany_texthi, embmedany_textulo,
15271         embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
15272         movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
15273         scheme, using unspecs, secondary reloads, and one to one sparc
15274         insn to rtl insn mapping for better scheduling and code gen.
15275         (define_expand reload_indi, reload_outdi): Reload helpers for
15276         MEDANY and EMBMEDANY symbol address loading cases which require a
15277         temporary register.
15278         (define_expand movsicc): Remove v8plus_regcmp cases.
15279         (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
15280         cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
15281         cmp_diqi_trunc_set): New patterns used by some of the new scc
15282         splits on arch64.
15283         (define_insn xordi3_sp64_dbl): New pattern used for constant
15284         formation when crossing from 32-bit targets.
15285         (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
15286         split): Remove.
15287         (define_insn addx, subx): Make visible and prettify.
15288         (define_insn adddi3_insn_sp32): Likewise and force split.
15289         (define_insn addx_extend, subx_extend, unnamed): New patterns for
15290         64bit scc split usage.
15291         (define_insn unnamed plusDI zero_extend, unnamed minusDI
15292         zero_extend, subdi3): Force and implement splits.
15293
15294         * final.c (final_scan_insn): Don't output labels if target
15295         specifies ASM_OUTPUT_ADDR_{DIFF}_VEC.  Do these macro operations
15296         instead.
15297
15298         * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
15299         don't forget to walk inside SEQUENCESs too as these are what the
15300         delay slot scheduler will create.
15301
15302 Mon Aug 10 01:21:01 1998  Richard Henderson  <rth@cygnus.com>
15303
15304         * alpha.md (extxl+1,+2): New patterns to work around
15305         combine lossage.
15306
15307 Sat Aug  8 19:20:22 1998  Gary Thomas  (gdt@linuxppc.org)
15308
15309         * rs6000.c (rs6000_allocate_stack_space): Fix typo which
15310         caused bad assembly code to be generated.
15311
15312 Sat Aug  8 18:53:28 1998  Jeffrey A Law  (law@cygnus.com)
15313
15314         * netbsd.h: Fix typo.
15315
15316 Mon Aug  3 00:06:42 1998  Robert Lipe  <robertl@dgii.com>
15317
15318         * config.sub: Fix typo.
15319
15320 Sun Aug  2 22:39:08 1998  Hans-Peter Nilsson  <hp@axis.se>
15321
15322         * invoke.texi (Environment Variables): Typo: Change "ascpects"
15323         into "aspects".
15324         (Running Protoize): Typo: Change "ther" into "other".
15325
15326 Sun Aug  2 00:42:50 1998  Jeffrey A Law  (law@cygnus.com)
15327
15328         * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
15329         * m68k/netbsd.h: Likewise.
15330         * ns32k/netbsd.h: Likewise.
15331         * sparc/netbsd.h: Likewise.
15332
15333 Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>
15334
15335         * ginclude/va-alpha.h (va_list): Use a typedef, not a define.
15336         * ginclude/va-clipper.h (va_list): Likewise.
15337
15338 Fri Jul 31 20:22:02 1998  Michael Meissner  <meissner@cygnus.com>
15339
15340         * rs6000.c (rs6000_override_options): If big endian and -Os, use
15341         load/store multiple instructions unless user overrides.
15342
15343 Fri Jul 31 17:08:59 1998  Jeffrey A Law  (law@cygnus.com)
15344
15345         * ns32k/netbsd.h: Fix typo.
15346
15347 Fri Jul 31 10:23:55 1998  Doug Evans  <devans@canuck.cygnus.com>
15348
15349         * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
15350         labels with .debugsym if no parallel insns.
15351
15352 Thu Jul 30 19:15:53 1998  Richard Henderson  <rth@cygnus.com>
15353
15354         * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
15355         (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
15356
15357 Thu Jul 30 19:50:15 1998  David Edelsohn  <edelsohn@gnu.org>
15358
15359         * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
15360         (AR_FOR_TARGET): Define.
15361
15362 Thu Jul 30 12:29:12 1998  Mark Mitchell  <mark@markmitchell.com>
15363
15364         * dyn-string.h: New file.
15365         * dyn-string.c: Likewise.
15366         * Makefile.in (OBJS): Add dyn-string.o.
15367         (dwarf2out.o): Add dyn-string.h dependency.
15368         (dyn-string.o): List dependencies.
15369         * dwarf2out.c: Include dyn-string.h.
15370         (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
15371         (addr_const_to_string): Take a dyn_string_t, not a char* as a
15372         prototype.  Use dyn_string_append rather than strcat, throughout.
15373         (addr_to_string): Use dyn_string_t.
15374
15375 Thu Jul 30 13:08:07 1998  Ken Raeburn  <raeburn@cygnus.com>
15376
15377         Function entry/exit profiling instrumentation:
15378         * expr.h (profile_function_entry_libfunc,
15379         profile_function_exit_libfunc): Declare new variables.
15380         * optabs.c: Define them here.
15381         (init_optabs): Initialize them.
15382         * tree.h (struct tree_decl): New flag
15383         no_instrument_function_entry_exit.
15384         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
15385         * c-decl.c (duplicate_decls): Merge it.
15386         * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
15387         (init_attributes): Use it for "no_instrument_function".
15388         (decl_attributes): Handle it, for functions that have not yet been
15389         compiled.  Set decl flag.
15390         * flags.h (flag_instrument_function_entry_exit): Declare new
15391         variable.
15392         * toplev.c (flag_instrument_function_entry_exit): Define it here.
15393         (f_options): New option "instrument-functions".
15394         * function.h (struct function): New field instrument_entry_exit.
15395         * function.c (current_function_instrument_entry_exit): New
15396         variable.
15397         (push_function_context_to, pop_function_context_from): Save and
15398         restore.
15399         (expand_function_start): Set current_ variable, maybe emit return
15400         label and entry profile call.
15401         (expand_function_end): Maybe emit exit profile call.
15402
15403 Thu Jul 30 00:58:34 1998  Jeffrey A Law  (law@cygnus.com)
15404
15405         * i386.md (movqi): When optimizing a load of (const_int 1) into a
15406         NON_QI_REG_P, pretend the register is SImode.
15407
15408 Wed Jul 29 23:49:23 1998  Todd Vierling  <tv@netbsd.org>
15409
15410         * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
15411         Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
15412         manufacturer id for ns32k.
15413         * configure: Regenerated.
15414         * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
15415         * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
15416         * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
15417         * config/m68k/netbsd.h: Same.
15418         * config/ns32k/netbsd.h: Same.
15419         * config/sparc/netbsd.h: Same.
15420
15421 Wed Jul 29 22:39:21 1998  Jeffrey A Law  (law@cygnus.com)
15422
15423         * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
15424         or UNROLL_COMPLETELY loop that starts with a jump to its
15425         exit code.
15426
15427 Wed Jul 29 22:18:14 1998  David Edelsohn  <edelsohn@gnu.org>
15428
15429         * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
15430         * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
15431         (print_operand, case 'B'): Don't fall through.
15432         (print_operand, case 'S'): Correct mask begin/end computation.
15433         Use HOST_BITS_PER_WIDE_INT.
15434         * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
15435         (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
15436         * rs6000/aix41.h (CPP_PREDEFINES): Same.
15437         * rs6000/aix43.h (CPP_PREDEFINES): Same.
15438
15439 Wed Jul 29 11:47:10 1998  Nick Clifton  <nickc@cygnus.com>
15440
15441         * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
15442         constraint from second alternative.
15443
15444 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
15445
15446         * configure.in: Fix --without/--disable cases for local-prefix,
15447         gxx-include-dir and checking.
15448
15449 Tue Jul 28 22:01:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
15450
15451         * configure.in (enable_haifa): Set by default for sparc64 too.
15452         configure: Rebuilt.
15453
15454 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
15455
15456         * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
15457         * i386/winnt.c (associated_type): New fn.
15458         (i386_pe_valid_type_attribute_p): New fn.
15459         (i386_pe_check_vtable_importexport): Remove.
15460         (i386_pe_dllexport_p): Use associated_type.
15461         (i386_pe_dllimport_p): Likewise.
15462
15463         From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
15464         * i386.c (i386_valid_type_attribute_p): Also accept
15465         attributes for METHOD_TYPEs.
15466
15467 Tue Jul 28 23:17:39 1998  Peter Gerwinski  <peter@gerwinski.de>
15468
15469         * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
15470
15471 Tue Jul 28 22:31:12 1998  Craig Burley  <burley@gnu.org>
15472
15473         * gcc.c: Fix commentary describing %g, %u, %U, and %O.
15474
15475         * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
15476         them from generating a new base name for each occurrence of
15477         a specific suffix.
15478
15479 1998-07-28  Vladimir N. Makarov  <vmakarov@cygnus.com>
15480
15481         * cse.c (cse_insn): Enable substitution inside libcall only for REG,
15482         SUBREG, MEM.
15483         * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE.
15484
15485         * cplus-dem.c (type_kind_t): New type.
15486         (demangle_template_value_parm): Add type_kind_t parameter.  Rely
15487         on this parameter, rather than demangling the type again.
15488         (demangle_integral_value): Pass tk_integral.
15489         (demangle_template_: Pass the value returned from do_type.
15490         (do_type): Return a type_kind_t.  Pass tk_integral to
15491         demangle_template_value_parm for array bounds.
15492         (demangle_fund_type): Likewise.
15493
15494 Mon Jul 27 00:54:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
15495
15496         * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
15497         identical.
15498
15499 Mon Jul 27 22:18:36 1998  Jeffrey A Law  (law@cygnus.com)
15500
15501         * pa.c (move_operand): Accept CONSTANT_P_RTX.
15502
15503 Mon Jul 27 17:18:52 1998  Dave Brolley  <brolley@cygnus.com>
15504
15505         * stor-layout.c (layout_type): Handle arrays of bits, for Chill.
15506
15507         * expr.c (get_inner_reference): Handle zero-based, unsigned, array
15508         index conversion.
15509
15510 Mon Jul 27 14:51:33 1998  Jeffrey A Law  (law@cygnus.com)
15511
15512         * mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
15513         (DEBUGGER_ARG_OFFSET): Likewise.
15514
15515         * mn10300.md (movsf): Remove last change.  Not needed.
15516
15517 Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
15518
15519         * c-lex.c (yylex): Fix boundary conditions in character literal and
15520         string literal loops.
15521
15522 Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>
15523
15524         * longlong.h (count_leading_zeros): Sparclite scan instruction was
15525         being invoked incorrectly.
15526
15527         * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
15528         * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE):
15529         Add -pg support.
15530         * i386/win32.h: New file.  Hybrid mingw32.h/cygwin32.h configuration.
15531         * configure.in: Added i[34567]86-*-win32.
15532         * config.sub: Likewise.
15533         * configure: Rebuilt.
15534
15535 Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)
15536
15537         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
15538         the frame pointer and compiling PIC code and reload has not completed.
15539
15540         * i386.c (output_to_reg): Add code to emulate non-popping DImode
15541         case.
15542
15543 Sun Jul 26 01:01:32 1998  Jeffrey A Law  (law@cygnus.com)
15544
15545         * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
15546
15547 Sat Jul 25 23:29:23 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15548
15549         * Makefile.in (install-info): Only try to update the info
15550         directory file if it exists in the first place.
15551
15552 Fri Jul 24 18:58:37 1998  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
15553
15554         * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
15555
15556 Fri Jul 24 14:20:26 1998  Jeffrey A Law  (law@cygnus.com)
15557
15558         * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
15559         CONST_DOUBLE source.
15560
15561 Fri Jul 24 11:17:04 1998  Nick Clifton  <nickc@cygnus.com>
15562
15563         * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
15564         strings as the insertion of USER_LABEL_PREFIX.
15565         * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
15566         valid code.
15567         * config/arm/thumb.md: Use %_ as a prefix to gcc library function
15568         calls.
15569
15570 Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>
15571
15572         * dbxout.c (dbxout_range_type): Only call dbxout_type_index for
15573         already defined type.
15574
15575 Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)
15576
15577         * expr.c (check_max_integer_computation_mode): Allow conversions
15578         of constant integers to MAX_INTEGER_COMPUTATION_MODE.
15579         (expand_expr): Likewise.
15580
15581 Thu Jul 23 11:12:06 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15582
15583         * expr.c (expand_expr): Expand RETURN_EXPR.
15584
15585 Thu Jul 23 11:00:29 1998  Jim Wilson  <wilson@cygnus.com>
15586
15587         * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.
15588
15589 Wed Jul 22 19:10:00 1998  Catherine Moore  <clm@cygnus.com>
15590
15591         * dwarf2out.c (output_aranges): Call stripattributes
15592         for TEXT_SECTION references.
15593         (output_line_info): Likewise.
15594
15595 Wed Jul 22 14:08:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
15596
15597         * profile.c (branch_prob): Call allocate_reg_info after outputting
15598         profile rtl in instrument_arcs.
15599
15600 Wed Jul 22 12:47:49 1998  Jim Wilson  <wilson@cygnus.com>
15601
15602         * fixinc.irix (math.h): Install wrapper instead of copying.
15603
15604 Wed Jul 22 12:37:14 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15605
15606         * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
15607         so WFL are expanded correctly when contained in a COMPOUND_EXPR.
15608         * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
15609         lang_flag_0. Added documentation in the flag table.
15610
15611 Tue Jul 21 23:28:35 1998  Klaus Kaempf  <kkaempf@rmi.de>
15612
15613         * cccp.c (do_include): Fix vax c style include handling.
15614
15615 Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
15616
15617         * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
15618
15619 Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
15620
15621         * fold-const.c (non_lvalue): Don't deal with null pointer
15622         constants here.
15623         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
15624
15625 Tue Jul 21 15:49:31 1998  David Edelsohn  <edelsohn@gnu.org>
15626
15627         * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
15628         * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
15629         * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
15630         (u_short_cint_operand): Same.
15631         (reg_or_cint_operand): Same.
15632         (logical_operand): Same.
15633         (input_operand): Same.
15634         (reg_or_short_operand): Use u_short_cint_operand.
15635
15636 Tue Jul 21 08:56:42 1998  Richard Henderson  <rth@cygnus.com>
15637
15638         * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
15639         but keep the insns and splits.  Adjust so when the ultimate destination
15640         is memory, use cvtql.
15641
15642 Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>
15643
15644         * flow.c (regno_uninitialized): Fixed regs are never uninitialized.
15645
15646 Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)
15647
15648         * gcc.c (do_spec): Call "error" not "warning".
15649
15650         * configure.in: Fix minor problems with gas feature detection code.
15651         * configure: Rebuilt.
15652
15653         * gcc.c (do_spec): Issue a warning for '%[]' usage.
15654
15655         * Undo this change.
15656         * gcc.c: Delete %[spec] support.
15657         (do_spec_1, case '('): Likewise.
15658         (do_spec_1, case '['): Call error.
15659
15660 Mon Jul 20 22:34:17 1998  Richard Henderson  <rth@cygnus.com>
15661
15662         * alpha.h (CPP_SPEC): Tidy.  Hook to cpp_cpu and cpp_subtarget.
15663         (CPP_SUBTARGET_SPEC): Default to empty string.
15664         (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
15665         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
15666         * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
15667         * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
15668         (LIB_SPEC): Tidy.
15669         * alpha/linux.h (CPP_PREDEFINES): Tidy.
15670         * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
15671         * alpha/netbsd.h (CPP_PREDEFINES): Tidy.
15672         * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
15673         * alpha/win-nt.h (CPP_PREDEFINES): Likewise.
15674         * alpha/vsf.h (CPP_PREDEFINES): Likewise.
15675         (CPP_SUBTARGET_SPEC): New.  Do this instead of overriding CPP_SPEC.
15676         * alpha/vxworks.h: Likewise.
15677
15678 Mon Jul 20 22:51:57 1998  Ken Raeburn  <raeburn@cygnus.com>
15679
15680         * mips.md (reload_outsi): Added missing REGNO call.
15681         (smulsi3_highpart, umulsi3_highpart): Provide prototype for
15682         function pointer.
15683         (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
15684         another match_operator and compare the codes.
15685
15686         * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
15687
15688         * MIPS multiply pattern fixes:
15689         * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
15690         Add union classes for HI, LO, or HILO plus general registers.
15691         (GENERATE_MADD): Deleted.
15692         * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
15693         Add TARGET_MAD to condition.
15694         (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
15695         (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
15696         "*d" for accumulator, to give preference to LO initially but not
15697         during reload.
15698
15699 Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>
15700
15701         * configure.in (enable_c_mbchar): New configure option.
15702         (extra_cpp_objs): Always available now.
15703
15704         * cexp.y (mbchar.h): #include it.
15705         (yylex): Handle Multibyte characters in character literals.
15706
15707         * cccp.c (mbchar.h): #include it.
15708         (main): Set character set based on LANG environment variable.
15709         (rescan): Handle multibyte characters in comments.
15710         (skip_if_group): See above.
15711         (validate_else): See above.
15712         (skip_to_end_of_comment): See above.
15713         (macarg1): See above.
15714         (discard_comments): See above.
15715         (rescan): Handle multibyte characters in string and character literals.
15716         (collect_expansion): See above.
15717         (skip_quoted_string): See above.
15718         (macroexpand): See above.
15719         (macarg1): See above.
15720         (discard_comments): See above.
15721         (change_newlines): See above.
15722
15723         * c-lex.c (mbchar.h): #include it.
15724         (GET_ENVIRONMENT): New macro.
15725         (init_lex): Set character set based on LANG environment variable.
15726         (yylex): Handle multibyte characters in character literals.
15727         (yylex): Handle multibyte characters in string literals.
15728
15729         * Makefile.in (mbchar.o): New target.
15730         (cccp$(exeext)): @extra_cpp_objs@ is always available.
15731         (cppmain$(exeext)): @extra_cpp_objs@ is always available.
15732
15733         * mbchar.[ch]: New files for multibyte character handling.
15734
15735 Mon Jul 20 01:11:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
15736
15737         * jump.c (jump_optimize): When simplifying noop moves and
15738         PUSH_ROUNDING, fix thinko so we use same criterion for identifying
15739         the PUSHes to rewrite in second loop as we did in the first.
15740
15741 Sun Jul 19 08:23:53 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15742
15743         * cplus-dem.c (demangle_nested_args): Make function definition
15744         static to match the prototype.
15745
15746 Fri Jul 17 14:58:44 1998  Richard Henderson  <rth@cygnus.com>
15747
15748         * alloca.c: Respect USE_C_ALLOCA.
15749         * gencheck.c (xmalloc): Ignore __GNUC__ for definition.
15750         * gengenrtl.c (xmalloc): Likewise.
15751
15752 Fri Jul 17 14:18:14 1998  Richard Henderson  <rth@cygnus.com>
15753
15754         * loop.h (struct induction): Add no_const_addval.
15755         * loop.c (the_movables, reg_address_cost): New variables.
15756         (init_loop): Init reg_address_cost.
15757         (loop_optimize): Call end_alias_analysis.
15758         (scan_loop): Init the_movables.
15759         (record_giv): Init induction->no_const_addval.
15760         (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
15761         [REG]: Rearrange loop search test to catch more cases.
15762         (general_induction_var): Return success not benefit; take an extra
15763         argument for that.  Change all callers.
15764         (simplify_giv_expr) [PLUS]: Always combine invariants.  Use sge_plus.
15765         [MULT]: Use rtx_equal_p instead of ==.  Combine simple invariants.
15766         [default]: Search the_movables for additional combinations.
15767         (sge_plus_constant, sge_plus): New functions.
15768         (express_from_1): New function.
15769         (express_from): Always define.  Rewrite using express_from_1.
15770         (combine_givs_p): Handle more cases.  Ignore address cost.
15771         (cmp_combine_givs_stats): New function.
15772         (combine_givs_used_once, combine_givs_benefit_from): New functions.
15773         (combine_givs): Rewrite to do best-fit combination.
15774
15775         * fold-const.c (operand_equal_p): Handle RTL_EXPR.
15776         (fold): Do a complete (A*C)+(B*C) association check.
15777
15778 Fri Jul 17 11:21:55 1998  Jim Wilson  <wilson@cygnus.com>
15779
15780         * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
15781
15782 Fri Jul 17 11:48:55 1998  Jeffrey A Law  (law@cygnus.com)
15783
15784         * mn10300.c (MODES_TIEABLE_P): Fix typo.
15785
15786 Fri Jul 17 03:26:12 1998  Rihcard Earnshaw  (rearnsha@arm.com)
15787
15788         * tree.c (valid_machine_attribute): Only create a new type variant if
15789         there is a decl to use it.
15790
15791 Thu Jul 16 14:48:04 1998  Nick Clifton  <nickc@cygnus.com>
15792
15793         * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
15794         a suffix.
15795
15796 Fri Jul 17 03:24:40 1998  Hans-Peter Nilsson  <hp@axis.se>
15797
15798         * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
15799         be deleted"
15800
15801 Thu Jul 16 14:48:47 1998  Jeffrey A Law  (law@cygnus.com)
15802
15803         * mn10300.c (count_tst_insns): New arg oreg_countp.  Callers changed.
15804         Simplify tests for clearing an address register.
15805         (expand_prologue): Corresponding changes.
15806
15807         * mn10300.md (movXX patterns): Make sure the destination is an
15808         ADDRESS_REG when substituting "zero_areg" for (const_int 0).
15809         (logical patterns): Split into expanders + patterns.
15810         (zero and sign extension patterns): Similarly.
15811         (shift patterns): Similarly.
15812
15813 Thu Jul 16 01:17:44 1998  Richard Henderson  <rth@cygnus.com>
15814
15815         * loop.c (emit_iv_add_mult): Scan the entire insn list generated
15816         for the sequence, recording base values.
15817
15818 Wed Jul 15 10:49:55 1998  Richard Henderson  <rth@cygnus.com>
15819
15820         * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).
15821
15822 Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>
15823
15824         * gcc.c: Remove ANSI-C ism from --help code.
15825
15826         * toplev.c: Support --help with USE_CPPLIB.
15827
15828 Tue Jul 14 14:46:08 1998  Jeffrey A Law  (law@cygnus.com)
15829
15830         * configure.in: Rework gas feature code to work with symlink based
15831         source trees.
15832
15833         * extend.texi: Clarify some issues related to local variables
15834         assigned to explicit registers.
15835
15836         * mn10300.md (mulsi): Turn into expander + pattern.
15837
15838         * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
15839         alternative.
15840
15841 Tue Jul 14 07:41:59 1998  Richard Earnshaw  (rearnsha@arm.com)
15842
15843         * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.
15844
15845 Tue Jul 14 03:02:44 1998  Jeffrey A Law  (law@cygnus.com)
15846
15847         * version.c: Bump again to distinguish mainline tree from the
15848         egcs-1.1 branch.
15849
15850 See ChangeLog.0 for earlier changes.
15851
15852 Local Variables:
15853 add-log-time-format: current-time-string
15854 End: