OSDN Git Service

[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Tue Feb 16 21:02:07 1999  Anton Hartl <toni@devsoft.com>
2
3         * rs6000.md (call_value): Fix typo.
4
5 Wed Feb 17 01:29:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6
7         * loop.c (strength_reduce): Calculate maybe_dead before
8         calling recombine_givs.
9
10 Wed Feb 17 00:43:12 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11
12         * loop.c (strength_reduce): Dump biv increment -> giv conversions.
13
14 Tue Feb 16 15:31:39 1999  Ovidiu Predescu  <ovidiu@cup.hp.com>
15
16         * objc/objc-act.c (encode_type): Encode the type instead of
17         encoding the mode of the type (patch from Richard Frith-Macdonald
18         <richard@brainstorm.co.uk>).
19
20 Tue Feb 16 10:53:51 1999  Richard Earnshaw (rearnsha@arm.com)
21
22         * config/arm/arm.md (*zeroextractqi_compare0_scratch): Re-add load
23         instruction killed in previous change.  Simplify mask generation.
24         (*zeroextractsi_compare0_scratch): Simpify mask generation.
25
26 Tue Feb 16 09:52:26 1999  Nick Clifton  <nickc@cygnus.com>
27
28         * config/arm/arm.md (zeroextractqi_compare0_scratch): Ensure that
29         bitfield doe snot overflow a byte boundary.
30
31 Tue Feb 16 01:37:33 1999  Charles G Waldman  <cgw@alum.mit.edu>
32
33         * c-common.c (shorten_compare): Get the min/max value from the
34         underlying type of an enumeration, not the enumerated type itself.
35
36 Mon Feb 15 23:04:48 1999  Jeffrey A Law  (law@cygnus.com)
37
38         * jump.c: Include insn-attr.h.
39         (delete_computation): If reload has completed and insn scheduling
40         after reload is enabled, then do not depend on REG_DEAD notes.
41         * Makefile.in (jump.o): Depend on insn-attr.h.
42
43 Mon Feb 15 16:57:38 1999  Richard Henderson  <rth@cygnus.com>
44
45         * i386.md (addsi3): Allow lea for any constant_p.
46
47 1999-02-15 17:11 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
48
49         * toplev.c (documented_lang_options): Remove -fident and
50           -fnoident, which are now handled by the language independent
51           option parser.
52
53 1999-02-15 16:59 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
54
55         * c-common.c (UNGETC [USE_CPPLIB=1]): Do nothing if c is EOF.
56         * c-lex.c: Likewise.
57         * cpplib.c (cpp_push_buffer, cpp_pop_buffer): Use a linked
58         list in malloced memory for the buffer stack.
59         (cpp_get_token): Don't pop the last buffer off the stack.
60         Calls after CPP_EOF has been returned produce CPP_EOF with no
61         state change.
62         (cpp_finish): Pop last buffer here.
63         (do_line): Don't free ip->last_nominal_fname if it is equal to
64         ip->fname.
65         (special_symbol): If a T_CONST is the empty string, push a
66         single `@ ' escape instead.
67         (macroexpand): Special symbol buffers have escapes too.
68         * cpplib.h (struct cpp_buffer): Remove unused fields, add prev
69         buffer pointer.
70         (struct cpp_reader): Remove buffer_stack.  Add
71         buffer_stack_depth.
72         (CPP_PREV_BUFFER, CPP_NULL_BUFFER): Buffer stack is now a
73         linked list.
74
75 Mon Feb 15 14:44:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
76
77         * cccp.c: Don't define HOST_WIDE_INT.  Replace all occurrences of
78         WIDE_INT with WIDEST_INT.
79
80         * cexp.y: Likewise.
81         Don't define unsigned_HOST_WIDE_INT, CHAR_BIT or
82         HOST_BITS_PER_WIDE_INT.  Replace occurrences of PRINTF_PROTO_1()
83         style with PVPROTO() ATTRIBUTE_PRINTF_1 style macros.  Replace
84         occurrences of "unsigned_HOST" with "unsigned HOST".  Provide a
85         definition of variable `c89' when compiling a test binary and set it.
86
87         * system.h: Don't define the PRINTF_PROTO_* macros.
88
89 Mon Feb 15 11:33:51 1999  Jeffrey A Law  (law@cygnus.com)
90
91         * loop.c (mark_loop_jump): Handle LO_SUM.  If we encounter something
92         we do not understand, mark the loop and containing loops as invalid.
93
94 Mon Feb 15 00:40:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
95
96         * alias.c (init_alias_analysis): Avoid self-referential value
97         when setting reg_known_value from REG_EQUAL notes.
98
99 Sun Feb 14 23:12:10 1999  Richard Henderson  <rth@cygnus.com>
100
101         * i386.c (legitimate_address_p): Verify modes of base and index.
102
103 Sun Feb 14 23:01:28 1999  Richard Henderson  <rth@cygnus.com>
104
105         * i386.c (legitimate_pic_address_disp_p): Remove static.
106         * i386.h (LEGITIMATE_PIC_OPERAND_P): Use it instead of
107         open-coding cases.
108
109 Sun Feb 14 21:03:28 1999  Jeffrey A Law  (law@cygnus.com)
110
111         * except.c (start_catch_handler): Use emit_cmp_and_jump_insns.
112         * explow.c (probe_stack_range): Likewise.
113         * expmed.c (do_cmp_and_jump): Likewise.
114         * expr.c (store_expr, expand_expr, expand_builtin): Likewise.
115         (do_tablejump): Likewise.
116         * stmt.c (expand_expr_stmt, expand_end_case): Likewise.
117         (do_jump_if_equal, emit_case_nodes): Likewise.
118         * optabs.c (emit_cmp_and_jump_insns): Clarify comments.  If UNSIGNEDP,
119         then convert comparison to an unsigned code before emitting the jump.
120         (expand_float, expand_fix): Use emit_cmp_and_jump_insns.
121
122 Sun Feb 14 02:24:15 PST 1999 Jeff Law  (law@cygnus.com)
123
124         * version.c: Bump for snapshot.
125
126 Sun Feb 14 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
127
128         * version.c: Bump for snapshot.
129
130 Sun Feb 14 00:45:50 1999  Jeffrey A Law  (law@cygnus.com)
131
132         * loop.c: Disable recent loop changes.  Temporary as Joern
133         continues to fix problems.
134
135 Sat Feb 13 23:29:42 1999  Richard Henderson  <rth@cygnus.com>
136
137         * loop.c (combine_givs_used_by_other): Delete.
138         (combine_givs_benefit_from): Delete.
139         (combine_givs): Deny combination of givs only used once.  Simplify
140         code with the death of combine_givs_benefit_from.
141
142 Sun Feb 14 11:24:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
143
144         * loop.c (scan_loop): Call reg_in_basic_block_p before
145         loop_reg_used_before_p.
146
147 Sat Feb 13 05:32:00 1999  Richard Earnshaw (rearnsha@arm.com)
148
149         * arm.md: Use gen_rtx_FOO instead of gen_rtx (FOO, ...).
150         * arm.h: Likewise.
151         * arm.c: Likewise.
152
153         * arm.h (TARGET_OPTIONS): Reformat for clarity.
154         (GO_IF_LEGITIMATE_ADDRESS): When generating PIC, references to symbols
155         in the constant pool aren't valid.
156         (LEGITIMATE_PIC_OPERAND_P): Likewise.
157
158         * arm.c: Include "system.h", not stdio.h and string.h.
159
160 Fri Feb 12 13:06:28 1999  Jim Wilson  <wilson@cygnus.com>
161
162         * stmt.c (expand_return): Return if optimize_tail_recursion succeeded.
163         (optimize_tail_recursion): Change return type from void to int.
164         Add return statements.
165         * tree.h (optimize_tail_recursion): Change prototype to match.
166
167 Fri Feb 12 21:09:51 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
168
169         * reload.c (find_reloads_subreg_address): New function, broken out of
170         find_reloads_toplev.
171         (find_reloads_toplev, find_reloads_address_1): Use it.
172
173 Fri Feb 12 13:20:52 1999  Jeffrey A Law  (law@cygnus.com)
174
175         * h8300.md (zero_extendhisi2 H8/300 variant): Correctly handle
176         extending a CONST_INT.
177
178         * h8300.md (peephole for combining memrefs): Delete incorrect peephole.
179
180 Fri Feb 12 18:29:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
181
182         * loop.c (loop_insn_first_p, biv_elimination_giv_has_0_offset):
183         New functions.
184         (maybe_eliminate_biv_1): Use biv_elimination_giv_has_0_offset.
185
186 Fri Feb 12 16:56:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
187
188         * loop.c (load_mems): Don't guess how to do a load / store, use
189         emit_move_insn.
190
191 Fri Feb 12 09:24:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
192
193         * system.h: Provide a definition for HOST_WIDEST_INT, etc.
194
195 Fri Feb 12 23:37:26 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
196
197         * config/c4x/c4x.c (c4x_address_cost): Revert 9 Feb change. 
198
199 Fri Feb 12 00:51:26 1999  Jeffrey A Law  (law@cygnus.com)
200
201         * reload.c (find_reloads_address_1): Fix handling of an autoincremented
202         pseudo which is homed in the stack.
203
204         * mips.c (save_restore_insns): Fix loop to save/restore FP registers.
205         (compute_frame_size): Change loop over FP regs to be consistent
206         with the loop in save_restore_insns.
207
208 Thu Feb 11 17:38:40 1999  Jim Wilson  <wilson@cygnus.com>
209
210         * i960/i960.h (OVERRIDE_OPTIONS): Warn if -mlong-double-64 is used.
211         (LONG_DOUBLE_TYPE_SIZE): Undef then unconditionally define to 96.
212
213 Thu Feb 11 15:11:35 1999  Jeffrey A Law  (law@cygnus.com)
214
215         * mn10200.md (bset); Re-enable.
216
217 Thu Feb 11 15:20:49 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
218
219         * sh.md (is_sfunc): New attribute.
220         * sh.h (INSN_SETS_ARE_DELAYED, INSN_REFERENCES_ARE_DELAYED): Use it.
221
222 Thu Feb 11 01:06:49 1999  Nathan Sidwell  <nathan@acm.org>
223
224         * fold-const.c (range_binop): Take account of the bounded nature
225         of fixed length arithmetic when comparing unbounded ranges.
226
227 Thu Feb 11 00:08:17 1999  John Wehle  (john@feith.com)
228
229         * function.c (assign_stack_temp_for_type): Clear best_p
230         when an exact match is found.
231
232         * i386.h (LOCAL_ALIGNMENT): Define.
233         * function.c (assign_stack_local, assign_outer_stack_local): Use it.
234         (assign_stack_temp_for_type): New function based on assign_stack_temp.
235         (assign_stack_temp): Call it.
236         (assign_temp): Use assign_stack_temp_for_type, not assign_stack_temp.
237         * stmt.c: Use assign_temp, not assign_stack_temp.
238         * tm.texi: Document LOCAL_ALIGNMENT.
239
240 Wed Feb 10 23:28:28 1999  Jeffrey A Law  (law@cygnus.com)
241
242         * reorg.c: Finish deleting half-deleted comment.
243
244 Wed Feb 10 17:12:21 1999  Jim Wilson  <wilson@cygnus.com>
245
246         * emit-rtl.c (operand_subword): Sign extend REAL_VALUE_TO_TARGET_SINGLE
247         result.
248         * final.c (split_double): Sign extend REAL_VALUE_TO_TARGET_DOUBLE
249         result.
250         * real.c (endian): Delete sign extension code.
251         * config/m32r/m32r.md (movsf_insn+1): REAL_VALUE_TO_TARGET_SINGLE call
252         replaced with operand_subword call.
253
254 Wed Feb 10 15:16:39 1999  Richard Henderson  <rth@cygnus.com>
255
256         * alpha.md (cmov compound patterns): Delete.  Jump can now
257         create the correct constructs in the first place.
258
259 Wed Feb 10 11:03:22 1999  Richard Henderson  <rth@cygnus.com>
260
261         * configure.in (alphaev6*): Fix typo in target_cpu_default2.
262
263 Wed Feb 10 13:59:18 1999  Dave Brolley  <brolley@cygnus.com>
264
265         * mbchar.c (local_mb_cur_max): Handle the case where MB_CUR_MAX is 0.
266
267 Wed Feb 10 10:35:05 1999  Jim Wilson  <wilson@cygnus.com>
268
269         * tmp-emsgids.c: Delete.
270
271 Wed Feb 10 09:57:08 1999  Mark Mitchell  <mark@markmitchell.com>
272
273         * rtlanal.c (for_each_rtx): Fix declaration to conform to GNU
274         coding standards.
275
276 Wed Feb 10 10:09:41 1999  Jeffrey A Law  (law@cygnus.com)
277
278         * mn10200.md (bset, bclr): Operand 0 is a read/write operand.
279
280         * reload1.c (reload_combine_note_store): Second argument is no
281         longer unused/ignored.  Handle multi-register hard regs.
282         (move2add_note_store): Simplify.
283
284 Wed Feb 10 10:05:23 1999  Mumit Khan  <khan@xraylith.wisc.edu>
285
286         * collect2.c (collect_execute): Remove cygwin-specific code.
287
288 Tue Feb  9 17:27:29 GMT 1999  Nathan Sidwell  <nathan@acm.org>
289
290         * system.h (_, N_): Remove dummy i18n macros.
291         * protoize.c: Move inclusion of intl.h to after system.h.
292         * cexp.y: Include intl.h.
293         * cexp.c: Rebuilt.
294
295 Tue Feb  9 16:52:22 1999  Mumit Khan  <khan@xraylith.wisc.edu>
296
297         * i386/cygwin.h (SUBTARGET_OVERRIDE_OPTIONS): New macro to ignore 
298         fpic/fPIC for windows32 targets.
299         * i386/xm-cygwin.h (GET_ENV_PATH_LIST): Replace '\\' in windows32
300         paths with '/'.
301         * i386/mingw32.h (CPP_SPEC): Define.
302         (CPP_PREDEFINES): Add MINGW32 version id.
303         * i386/crtdll.h (CPP_PREDEFINES): Likewise.
304
305         * Makefile.in (collect2$(exeext)): Delete redundant dependency and
306         add missing exeext to target.
307
308         * gcc.c (convert_filename): Handle null filename argument.
309
310 Wed Feb 10 15:46:10 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
311
312         * config/c4x/c4x.md (*movhf_noclobber, *movhi_noclobber): Use
313         m constraint instead of QT.
314
315 1999-02-09  Brendan Kehoe  <brendan@cygnus.com>
316
317         * cpplib.c (special_symbol): Move IP to be declared in function
318         scope, rather than individual case statements.
319
320 1999-02-09 16:42 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
321
322         * cppfiles.c (finclude):  Handle pipes properly under old BSD
323           derivatives.
324
325 1999-02-09 16:42 -0500  Melissa O'Neill <oneill@cs.sfu.ca>
326
327         * system.h: Provide fallback definitions for S_ISCHR,
328           S_ISSOCK, S_ISFIFO, O_NONBLOCK, and O_NOCTTY.
329
330 1999-02-09 10:30 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
331
332         * cpplib.c (do_define): Allow redefining __STDC__ with -D.
333
334 1999-02-09  Jim Blandy  <jimb@zwingli.cygnus.com>
335
336         * configure.in: For PowerPC configurations, accept "401", "ec603e",
337         "740", and "750" as valid arguments to --with-cpu.
338         * configure: Rebuilt.
339
340 Tue Feb  9 00:00:14 1999  Mark Kettenis  <kettenis@gnu.org>
341
342         * configure.in (i[34567]86-*gnu*): Set float_format to i386.
343         * configure: Rebuilt.
344
345 Mon Feb  8 22:38:24 1999  Jeffrey A Law  (law@cygnus.com)
346
347         * rs6000.md: Revert "alternate use of crs if cr0 not available"
348         patches from 01-22-1999, 01-24-1999, 01-26-1999, and 02-08-1999.
349
350 Mon Feb  8 21:36:44 1999  Richard Henderson  <rth@cygnus.com>
351
352         * output.h (current_function_has_computed_jump): Rename from
353         current_function_addresses_labels.
354         * function.h (struct function): Likewise for addresses_labels member.
355         * rtl.h (FUNCTION_FLAGS_HAS_COMPUTED_JUMP): Likewise.
356         * function.c (current_function_has_computed_jump): Likewise.
357         Update all references.
358         * integrate.c (function_cannot_inline_p):
359         Test current_function_has_computed_jump instead of addresses_labels.
360         (initialize_for_inline): Likewise save.
361         (output_inline_function): Likewise restore.
362
363         * expr.c (expand_expr): Don't reference addresses_labels variables.
364         * stmt.c (expand_computed_goto): Set has_computed_jump.
365
366 1999-02-08  Michael Meissner  <meissner@cygnus.com>
367
368         This is being installed only to get it into the repository to help
369         with the revert, resubmit & review process for the massive rs6000.md
370         changes.
371         * rs6000.md (andsi3_internal1 splitter): Don't split if using the
372         rlwinm instruction.
373         (anddi3_internal1): Ditto.
374         (andsi3_internal{2,3}): Correct some insn lengths.
375         (anddi3*): Restore missing TARGET_POWERPC64, and don't emit old
376         mnemonics.
377
378 Mon Feb  8 21:31:06 1999  Richard Henderson  <rth@cygnus.com>
379
380         * loop.c (reg_single_usage): New file-scope variable ...
381         (scan_loop): ... moved out of here.  Always initialize.
382         Test loop_has_call instead of reg_single_usage not zero.
383         Free reg_single_usage after strength reduction.
384         (count_loop_regs_set): Assume single_usage non-zero.
385         (combine_givs_used_by_other): Test reg_single_usage.
386         (load_mems_and_recount_loop_regs_set): Remove reg_single_usage
387         as a parameter.  Assume non-zero.
388         
389 1999-02-08 23:25 -0500  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
390
391         * cpplib.c (special_symbol): Rewrite.  Don't copy things
392           multiple times.  Handle __STDC__ specially.  T_CONST
393           indicates a constant /string/.  Don't handle T_*_TYPE and
394           T_SPEC_DEFINED.  Use cpp_buf_line_and_col instead of
395           adjust_position.  Determine the file buffer only if needed.
396           (initialize_builtins): Handle __SIZE_TYPE__,
397           __PTRDIFF_TYPE__, __WCHAR_TYPE__, __USER_LABEL_PREFIX__, and
398           __REGISTER_PREFIX__ with T_CONST special hashtab entries.
399           Don't provide __OBJC__; the driver does that.  Provide
400           __STDC_VERSION__, using T_CONST.  Use T_STDC for
401           __STDC__.  Give install the length of all symbols defined.
402           (eval_if_expression): Drop code to insert and remove the
403           "defined" special symbol.
404
405         * cpplib.h: Remove SELF_DIR_DUMMY (no longer used).  Remove
406           T_*_TYPE and T_SPEC_DEFINED from enum node_type; add T_STDC.
407
408         * cpphash.c (install): Drop the `ivalue' parameter.  Constify
409           the `value' parameter.  All callers changed.
410         * cpphash.h (install): Change prototype to match.
411           (union hashval): Remove `ival' member.
412         * cppexp.c (cpp_lex): Handle `defined' here.
413
414 Mon Feb  8 17:29:42 1999  Jeffrey A Law  (law@cygnus.com)
415
416         * pa.h (EXTRA_CONSTRAINT): Fix comment.
417
418 Mon Feb  8 18:57:45 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
419
420         * c-typeck.c (check_init_type_bitfields): Use nonincremental
421         initialization of unions whose first member is a bitfield.
422         Remove unnecessary code for checking the declaration mode
423         after DECL_C_BIT_FIELD.
424
425         * varasm.c (output_constructor): Additional comment about the
426         constructor of bitfield union initialization.
427
428 Tue Feb  9 11:55:04 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
429
430         * config/c4x/c4x.md (*movhi_stik): New pattern.
431         (movhi): Allow some immediate constants to be directly
432         stored in memory.
433
434 Tue Feb  9 11:34:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
435
436         * config/c4x/c4x.md (all call patterns): Add constraints "Ur".
437         (call, call_value): Force address into a register if not valid
438         for a call instruction.
439         (load_immed_address): Emit a USE of the SYMBOL_REF that is
440         forced into memory.
441         * config/c4x/c4x.c (c4x_print_operand): Fix 'C' and 'U' modifiers.
442
443 Tue Feb  9 11:08:41 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
444
445         * config/c4x/c4x.c (call_address_operand, symbolic_address_operand):
446         Rename from call_operand and symbolic_operand respectively.  All
447         callers changed.
448         * config/c4x/c4x.md (call_address_operand, symbolic_address_operand): 
449         Likewise.
450         * config/c4x/c4x.h (call_address_operand, symbolic_address_operand): 
451         Likewise.
452         (PREDICATE_CODES): Allow CONST, LABEL_REF for call_address_operand.
453
454 Tue Feb  9 10:52:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
455
456         * config/c4x/c4x.c (c4x_legitimize_address): Don't generate a
457         LO_SUM address for HImode or HFmode but instead force address into
458         a register so that it is offsettable.
459         (c4x_emit_move_sequence): Handle LO_SUM immediate address.
460
461 Tue Feb  9 10:46:42 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
462
463         * config/c4x/c4x.c (c4x_address_cost): Return cost of 1 for
464         REG+REG addressing if strength reduction enabled.
465
466 Tue Feb  9 10:10:31 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
467
468         * config/c4x/t-c4x  (LIBGCC2_CFLAGS): Delete.
469         (TARGET_LIBGCC2_CFLAGS): Define.
470         
471 1999-02-08  Nick Clifton  <nickc@cygnus.com>
472
473         * config/v850/v850.md: Replace \\n\\t with \\;
474         
475         * config/v850/v850.md: Enforce TARGET_LONG_CALLS option.
476         * config/v850/v850.c (construct_restore_jr, construct_save_jarl):
477         Enforce TARGET_LONG_CALLS option. 
478
479 Mon Feb  8 11:43:07 1999  Donn Terry <donn@interix.com>
480
481         * real.c (PUT_REAL) [XFmode]: Zero the balance of the structure.
482
483 Mon Feb  8 11:37:24 1999  Marc Espie (espie@cvs.openbsd.org)
484
485         * m88k/t-luna-gas: Remove bash dependency.
486
487 Mon Feb  8 11:34:44 1999  Graham <grahams@rcp.co.uk>
488
489         * collect2.c (xrealloc): Fix typo in last change.
490
491 Mon Feb 8 09:13:38 PST 1999 Jeff Law  (law@cygnus.com)
492
493         * version.c: Bump for snapshot.
494
495 Sun Feb  7 22:18:42 1999  Robert Lipe  <robertlipe@usa.net>
496
497         * tree.h (TYPE_CHECK): Make it clear to the preprocessor
498         that we do not want macro replacement within a character constant.
499         (TYPE_CHECK1): Likewise.
500
501 Sun Feb  7 15:37:10 1999  Jason Merrill  <jason@yorick.cygnus.com>
502
503         * tree.h (DECL_P): New macro.
504
505 Sun Feb 7 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
506
507         * version.c: Bump for snapshot.
508
509 Sat Feb  6 18:14:46 1999  Jeffrey A Law  (law@cygnus.com)
510
511         * mn10300.md (reload_insi): Do not earlyclobber the output operand.
512
513         * README.g77, gcc.c, gcc.texi: Update email addresses.
514         * invoke.texi system.h: Likewise.
515
516 Sat Feb  6 11:04:08 1999  Jim Wilson  <wilson@cygnus.com>
517
518         * unroll.c (find_splittable_givs): After express_from, call replace_rtx
519         to convert dest_reg to new_reg.
520
521 Sat Feb  6 10:31:35 1999  Jeffrey A Law  (law@cygnus.com)
522
523         * reload1.c (reload_combine_note_store): Be more careful with
524         STRICT_LOW_PART, ZERO_EXTRACT and SIGN_EXTRACT.
525         (move2add_note_store): Likewise.
526
527 Sat Feb  6 10:18:01 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
528
529         * cppfiles.c (read_and_prescan): Cast the result of `xrealloc' to
530         U_CHAR* when assigning to one.  Ensure the values of a ?: operator
531         have the same type.
532
533         * cppinit.c (initialize_char_syntax): Use K&R function definition.
534
535 Sat Feb  6 11:17:03 1999  Richard Earnshaw <rearnsha@arm.com>
536
537         Support for ARM9
538         * config/arm/arm.c (all_procs): Add arm9 and arm9tdmi.
539         * config/arm/arm.h ((TARGET_CPU_arm9, TARGET_CPUD_arm9tdmi): Define.
540         (TARGET_CPU_DEFAULT): Rework to support ARM9.
541         (CPP_CPU_ARCH_SPEC): Likewise.
542         (enum processor_type): Likewise.
543         * config/arm/arm.md (attr cpu): Add arm9.
544
545         General scheduling changes 
546         * config/arm/arm.c (MAX_INSNS_SKIPPED): Delete.
547         (max_insns_skipped): New variable.
548         (arm_override_options): If generating hard floating point code for
549         the FPA, emit code for version 3.
550         When optimizing for space, don't synthesize constants.
551         Reword several flags based on the requested processor and optimization
552         level.
553         (use_return_insn): New argument iscond, all callers changed.  Don't
554         use a return insn if it will be conditional and that would be 
555         expensive; eg on StrongARM.
556         (arm_adjust_cost): Anti- and output- dependencies normally have no
557         cost.
558         (load_multiple_sequence): Newer ARMs don't benefit from ldm if
559         the sequence is short.
560         (final_prescan_insn): Use max_insns_skipped instead of 
561         MAX_INSNS_SKIPPED.  Note whether we will make a return instruction
562         conditional, and aviod this if it would be expensive.
563         * config/arm/arm.md (scheduling attributes and function units):
564         Rewrite to better describe ARM8, 9 and StrongARM.
565
566         * config/arm/arm.md (*movhi_insn_littleend): Make op0 predicate 
567         s_register_operand.
568         (*ifcompare_plus_move): Use arm_rhs_operand in place of 
569         arm_rhsm_operand.  Rework constraints.
570         (*if_plus_move): Likewise.
571         (*ifcompare_move_plus): Likewise.
572         (*if_move_plus): Likewise.
573         (*ifcompre_arith_move): Likewise.
574         (*if_arith_move): Likewise.
575         (*ifcompare_move_arith): Likewise.
576         (*if_move_arith): Likewise.
577
578         * config/arm/xm-netbsd.h: Don't include arm/xm-arm.h.
579         
580 1999-02-05  Michael Meissner  <meissner@cygnus.com>
581
582         * loop.c (check_dbra_loop): A store using an address giv for which
583         we have no life information is not reversible.
584
585 Fri Feb  5 17:08:01 1999  Dave Brolley  <brolley@cygnus.com>
586
587         * function.c (fixup_var_refs): Scan catch_clauses too.
588
589 Fri Feb  5 11:49:49 1999  Benjamin Kosnik  <bkoz@loony.cygnus.com>
590
591         * c-common.c (decl_attributes): Fix reserved space for init_priority.
592         * tree.h (MAX_RESERVED_INIT_PRIORITY): New macro.
593
594 Fri Feb  5 12:37:05 1999  Jeffrey A Law  (law@cygnus.com)
595
596         * loop.c (strength_reduce): Clear not_every_iteration when 
597         passing the NOTE_INSN_LOOP_CONT note.
598
599         * haifa-sched.c (add_dependence): Do not add a dependency on a
600         note.
601
602 Fri Feb  5 10:55:43 1999  Nick Clifton  <nickc@cygnus.com>
603
604         * recog.c (split_block_insns): Only call update_flow_info if
605         instruction scheduling is enabled.
606
607 1999-02-05 11:22 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
608
609         * Makefile.in (gen-protos): Use libcpp.a like everyone else.
610
611 Fri Feb  5 07:09:29 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
612
613         * loop.c (first_loop_store_insn): New file-scope variable.
614         (prescan_loop): Set it.
615         (check_dbra_loop): Check if a store depends on a register
616         that is set after the store.
617
618 Fri Feb  5 06:55:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
619
620         * unroll.c (entire file): Remove tabs / spaces at end of lines.
621         Replace spaces with tabs where appropriate.
622
623 Thu Feb  4 15:12:41 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
624
625         * loop.c (scan_loop): New argument loop_cont.  Changed caller.
626         (strength_reduce): New argument loop_cont. Changed caller.
627         Before clearing not_every_iteration after a label, check if
628         we are not already past LOOP_CONT.
629
630 1999-02-04 16:04 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
631
632         * cpperror.c (cpp_print_containing_files): Fix formatting 
633         bug induced by merge.
634
635 1999-02-04 14:33 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
636
637         * cpplib.c (initialize_char_syntax): Move to cppinit.c.
638         (cpp_define): Remove redundant syntax checks.
639         (make_assertion): Rename cpp_assert, remove redundant syntax
640         checks, export.
641         (cpp_options_init): Don't init things to zero twice.
642         (cpp_expand_to_buffer): Use memcpy, not a char-by-char loop.
643         (do_include): Kill excessively verbose #import warning that
644         snuck back in in the gcc2 merge.
645         (convert_string): Removed.
646         (do_line): Rewrite with simple last-name-used cache instead of
647         private hashtable.
648         (cpp_start_read): Call initialize_char_syntax here, not...
649         (cpp_reader_init): ...here.
650         (cpp_handle_options): Support the -std switch.
651         * cpplib.h (cpp_buffer): Add last_nominal_fname member.
652         (cpp_options): Add c9x flag.
653         Declare all the is_* tables and trigraph table here, as const.
654         Prototype cpp_assert and initialize_char_syntax.
655         * cppinit.c: New file.
656         * cppfiles.c (read_and_prescan): Optimize.
657         * Makefile.in (LIBCPP_OBJS): Add cppinit.o.
658
659 Thu Feb  4 10:46:30 1999  Gavin Romig-Koch  <gavin@cygnus.com>
660
661        * config/mips/mips.md ([u]divmodsi4,[u]divmoddi4,[u]divsi3,[u]divdi3,
662         [u]modsi3,[u]moddi3) : Don't copy the "zero" argument to a register
663         before calling gen_div_trap.
664
665 Wed Feb  3 21:56:27 1999  Jeffrey A Law  (law@cygnus.com)
666
667         * configure.in (hppa1.1-*-*, hppa2*-*): Use symbolic value rather
668         than numeric value for target_cpu_default..
669         * configure: Rebuilt.
670
671 Wed Feb  3 21:55:56 1999  Marc Espie <Marc.Espie@liafa.jussieu.fr>
672
673         * Makefile.in (xgcc$(exeext)): Remove choose-temp, pexecute and
674         mkstemp.  Get them from libiberty.
675         (COLLECT2_OBJS): Similarly for choose-temp, cplus-dem and mkstemp.
676         (PROTO_OBJS): Similarly for choose-temp, getopt, getopt1 and pexecute.
677         (cplus-dem.o, pexecute.o, choose-temp.o): Remove build rules.
678         (mkstemp.o, getopt1.o, getopt.o): Likewise.
679
680         * pa-gas.h (TARGET_DEFAULT): Use symbolic values rather than numeric
681         values.
682         * pa-hpux.h (LINK_SPEC): Likewise.
683         * pa-hpux10.h (LINK_SPEC): Likewise.
684         * pa-hpux9.h (LINK_SPEC): Likewise.
685         * pa-osf.h: (LINK_SPEC): Likewise.
686         * pa-pro.h (TARGET_DEFAULT): Likewise.
687         * pa1.h (TARGET_DEFAULT): Likewise.
688         * pa.h (MASK_*): New defines.
689         (TARGET_*): Use symbolic values rather than numeric values.
690         (TARGET_SWITCHES): Likewise.
691         (TARGET_DEFAULT): likewise.
692         (CPP_SPEC): likewise.
693
694 Wed Feb  3 21:07:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
695
696         * reload1.c (reload_cse_regs_1): Undo Jan 16 patch.
697         * reload.c (find_reusable_reload): New function, broken out of
698         push_reload.  Add code to verify that none of the involved
699         outputs are subject to earlyclobbers.
700         (push_reload): Break out new function find_reusable_reload.
701         Delete "register" keyword for IN, OUT args.
702
703 Wed Feb  3 15:51:04 1999  Gavin Romig-Koch  <gavin@cygnus.com>
704
705         * config/mips/mips.c (true_reg_or_0_operand) : New function.
706         * config/mips/mips.h (PREDICATE_CODES): Add true_reg_or_0_operand.
707         * config/mips/mips.md (div_trap,div_trap_normal,div_trap_mips16): 
708         Use true_reg_or_0_operand for div_trap.
709
710 Wed Feb  3 20:44:59 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
711
712         * loop.h (express_from): Declare.
713         (struct induction): Replace derived flag with derived_from pointer.
714         * loop.c (strength_reduce, record_giv, recombine_givs): Likewise.
715         (express_from): No longer static.
716         * unroll.c (find_splittable_givs): Replace derived with derived_from.
717         When processing an address giv with which another giv has been
718         combined that has also been derived from a third giv, handle like
719         having combined with the third giv.
720         Set splittable_regs_updates appropriately for derived givs.
721
722 Wed Feb  3 15:26:58 1999  Gavin Romig-Koch  <gavin@cygnus.com>
723
724         * config/mips/mips.md (div_trap_mips16): Remove nop's after branches.
725
726 Wed Feb  3 11:56:23 1999  Jeffrey A Law  (law@cygnus.com)
727
728         * pa.c (insn_sets_and_refs_are_delayed): New function.
729         * pa.h (INSN_SETS_ARE_DELAYED): Use it.
730         (INSN_REFERENCES_ARE_DELAYED): Likewise.
731  
732 Wed Feb  3 06:24:49 1999  Richard Earnshaw (rearnsha@arm.com)
733
734         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Delete.
735         * config/arm/t-linux (LIBGCC2_CFLAGS): Delete.
736         (TARGET_LIBGCC2_CFLAGS): Define.
737         (LIBGCC2_DEBUG_CFLAGS): Define.
738         * config/arm/t-netbsd: Likewise.
739         * config/arm/t-semi: Likewise.
740         * config/arm/t-semiaof: Likewise.
741         * config/arm/t-riscix: Likewise.
742
743 Wed Feb  3 10:59:07 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
744
745         * config/m68k/m68k.c (print_operand_address): When printing a
746         SYMBOL_REF that ends in `.<letter>' put parentheses around it.
747
748 Tue Feb  2 23:38:35 1999  David O'Brien <obrien@FreeBSD.org>
749
750         * i386/freebsd*.h now allows '$' in label names and does not use the
751         PCC struct return method.
752
753 Tue Feb  2 22:38:23 1999  Jim Wilson  <wilson@cygnus.com>
754
755         * Makefile.in: Change all uses of AR to AR_FOR_TARGET.  Change all uses
756         of HOST_AR to AR.  Likewise for AR_FLAGS, RANLIB, and RANLIB_TEST.
757         (RANLIB_TEST): Test to see if ranlib exists.  Only test absolute file
758         names if host == target.
759         (HOST_AR, HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Delete.
760         (AR_FLAGS_FOR_TARGET): Renamed from AR_FOR_TARGET_FLAGS.
761         (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Delete rules
762         setting them to *_FOR_TARGET.
763         * cross-make (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST):
764         Delete.
765
766 Tue Feb  2 22:38:19 1999  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
767
768         * toplev.h (read_integral_parameter): Declare.
769         * toplev.c (read_integral_parameter): New function.
770
771 Fri Jan 29 21:00:56 1999  Bob Manson  <manson@charmed.cygnus.com>
772
773         * resource.c, resource.h: New files.
774         * Makefile.in (OBJS): Add it.
775
776         * haifa-sched.c (regno_use_in): Moved to rtlanal.c.
777         (split_block_insns): Moved to recog.c.
778         (update_flow_info): Make public.
779         * rtl.h: Declare them.
780
781         * reorg.c: Moved the functions dealing with computing resource
782         usage to resource.c.
783
784         * sched.c (regno_use_in): Moved to rtlanal.c.
785         (update_flow_info): Make public.
786         (schedule_insns): Use split_block_insns.
787
788         * recog.c (split_block_insns): New function.
789
790 Tue Feb  2 22:03:26 1999  David Edelsohn  <edelsohn@mhpcc.edu>
791
792         * rs6000/linux.h (LINK_START_DEFAULT_SPEC): Delete, unused.
793         (LINK_OS_DEFAULT_SPEC): Delete, unused.
794
795 Tue Feb  2 20:29:34 1999  Catherine Moore  <clm@cygnus.com>
796  
797         * configure.in (arm-*-oabi):  Support.
798         * configure:  Regenerate.
799         * config/arm/unknown-elf-oabi.h:  New file.
800  
801 Tue Feb  2 19:43:59 1999  Jeffrey A Law  (law@cygnus.com)
802
803         * i386.md (ashlsi3): Turn into a define_expand an anonymous pattern.
804         Make the anonymous pattern match when ! optimize_size.
805         (ashlsi3 size optimizer): New pattern.
806
807         * intl/Makefile.in (uninstall): Add missing "; \".
808
809 Tue Feb  2 18:21:23 1999  Stan Cox  <scox@cygnus.com>
810
811         * sparc.h (TARGET_CPU_sparc86x): Added. TARGET_CPU_sparclite86x
812         synonym.
813
814 Tue Feb  2 20:24:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
815
816         * loop.c (loop_optimize): Fix value max_uid_for_loop is reset
817         to after find_and_verify_loops call.
818
819 Tue Feb  2 19:48:29 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
820
821         * (recombine_givs): Don't use a giv that's likely to be dead to
822         derive others.
823
824         * loop.c (recombine_givs): Fix test for lifetime overlaps / loop
825         wrap around when deriving givs.
826
827 Mon Feb  1 20:00:40 1999  Richard Henderson  <rth@cygnus.com>
828
829         * recog.c (check_asm_operands): Treat indeterminate operand ok
830         results as success.  Try harder to resolve a matching constraint.
831         * stmt.c (expand_asm_operands): Recognize when an output operand's
832         constraint does not allow memory.  Treat indeterminate operand ok
833         results as failure.  Try harder to resolve a matching constraint.
834         
835 Mon Feb  1 15:00:02 1999  Ken Raeburn  <raeburn@cygnus.com>
836
837         Use varrays for constant-equivalence data:
838
839         * varray.h (struct const_equiv_data): New type.
840         (union varray_data_tag): New element const_equiv.
841         (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV): New macros.
842         (VARRAY_SIZE): New macro, returns number of elements.
843         * integrate.h: Include varray.h.
844         (struct inline_remap): Replace const_equiv_map, const_age_map and
845         const_equiv_map_size with a const_equiv_varray element.
846         (MAYBE_EXTEND_CONST_EQUIV_VARRAY): New macro; grows varray if
847         needed.
848         (SET_CONST_EQUIV_DATA): New macro; sets rtx and age fields
849         simultaneously, growing the varray if needed.
850
851         * integrate.c (global_const_equiv_map,
852         global_const_equiv_map_size): Deleted, replaced by....
853         (global_const_equiv_varray): New variable.
854         (expand_inline_function): References changed.
855         * integrate.h: Update declarations.
856
857         * integrate.c (process_reg_parm, expand_inline_function,
858         copy_rtx_and_substitute, try_constants, subst_constants,
859         mark_stores): Use varray allocation and accessor macros, new
860         integrate.h macros, and global_const_equiv_varray.  Don't
861         conditionalize non-NULL stores on array size; instead, expand the
862         array as needed.
863         * unroll.c (unroll_loop): Likewise.
864
865         * unroll.c (unroll_loop): Initialize const_equiv_varray element to
866         zero.  After allocating varray, always exit through bottom of
867         function, where it can be deallocated if needed.  Don't explicitly
868         reallocate const_equiv_map storage; instead, just ensure the
869         varray has been initialized, and update the global reference.
870
871 Mon Feb  1 09:40:25 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
872
873         * system.h (inline, const): Handle these for stage2 (and later) gcc.
874
875         * dwarf2out.c (inline): Don't define.
876
877         * dwarfout.c (inline): Likewise.
878
879 Sun Jan 31 22:04:37 1999  Richard Henderson  <rth@cygnus.com>
880
881         * loop.c (recombine_givs): Dump recombination and derivation data.
882
883 Sun Jan 31 20:34:29 1999  Zack Weinberg  <zack@rabi.columbia.edu>
884
885         * flags.h: Declare flag_no_ident.
886         * toplev.c: Define flag_no_ident.  Process -f(no-)ident here.
887         * c-tree.h: Don't declare flag_no_ident.
888         * c-decl.c: Don't define flag_no_ident.  Don't process
889           -f(no-)ident switches here.
890
891         * config/elfos.h (ASM_FILE_END): Output final .ident directive
892           only if !flag_no_ident.
893         * config/ptx4.h: Likewise.
894         * config/svr4.h: Likewise.
895         * config/alpha/elf.h: Likewise.
896         * config/arm/linux-elf.h: Likewise.
897         * config/i386/sco5.h: Likewise.
898         * config/i860/fx2800.h: Likewise.
899         * config/mips/gnu.h: Likewise.
900         * config/i386/osfrose.h: Likewise.
901
902         * gcc.c (C specs): Map -Qn to -fno-ident.
903         * objc/lang-specs.h: Likewise.
904
905 Mon Feb  1 10:52:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
906
907         * configure.in: Don't remove loop.o and unroll.o when
908         enable-haifa is selected.
909         * configure: Rebuilt.
910
911 Sun Jan 31 13:22:02 1999  John Wehle  (john@feith.com)
912
913         * i386.md (movsicc, movhicc, movsfcc, movdfcc,
914         movxfcc, movdicc): Delete unconstrained alternatives.
915         * i386.c (output_fp_conditional_move,
916         output_int_conditional_move): Delete unused case.
917
918 Sun Jan 31 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
919
920         * version.c: Bump for snapshot.
921
922 Sun Jan 31 00:52:37 1999  Richard Henderson  <rth@cygnus.com>
923
924         * alpha.md (mov patterns): Emit the assembler aliases mov and fmov
925         instead of bis and cpys.  Combine alternatives where possible.
926
927 Sat Jan 30 23:14:13 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
928
929         * gcov.c (fnotice): Add missing FILE* parameter.
930         (function_summary): Fix format specifiers in calls to `fnotice'.
931         (output_data): Likewise.
932
933         * toplev.c (fnotice): Constify char* parameter.
934
935         * toplev.h (fnotice): Add prototype.
936         Wrap prototype with BUFSIZ to protect FILE* usage.
937         
938 Sun Jan 31 15:33:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
939
940         * config/c4x/c4x.h (RTX_COSTS): Explicitly define c4x costs.
941         
942 Sat Jan 30 08:27:23 1999  Jeffrey A Law  (law@cygnus.com)
943
944         * combine.c (distribute_notes): Handle REG_EH_REGION notes.
945
946         * alias.c (fixed_scalar_and_varying_struct_p): Add "static" to
947         function definition.
948         (aliases_everything_p, write_dependence_p):Likewise.
949
950         * install.texi: Fix merge lossages.
951
952         * cccp.c (main): Only call setlocale (LC_MESSAGES, ...) if LC_MESSAGES
953         is defined.
954         * collect2.c (main): Likewise.
955         * cppmain.c (main): Likewise.
956         * gcc.c (main): Likewise.
957         * gcov.c (main): Likewise.
958         * protoize.c (main): Likewise.
959         * toplev.c (main): Likewise.
960
961         * pa.md (parallel shift and shiftadd): Mark output of shift as an
962         earlyclobber.
963
964         * loop.c: Disable recent loop changes.  Temporary as Joern
965         continues to fix problems.
966
967 Sat Jan 30 03:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
968
969         * loop.c (strength_reduce): Size reg_map according to reg_iv_type.
970
971 Fri Jan 29 18:26:07 1999  Dave Brolley  <brolley@cygnus.com>
972
973         * emit-rtl.c (remove_insn): New function.
974         * rtl.h (remove_insn): Add prototype.
975         * function.c (reposition_prologue_and_epilogue_notes): Call remove_insn.
976
977 Fri Jan 29 22:34:41 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
978
979         * loop.c (recombine_givs): Don't try to derive givs that have combined.
980
981 Fri Jan 29 15:00:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
982
983         * toplev.c (notice, fnotice): Check ANSI_PROTOTYPES, not __STDC__,
984         when declaring arguments and calling va_arg() to initialize them.
985
986         * collect2.c (notice): Likewise.
987
988         * loop.c (find_life_end): Use PROTO() macro in the prototype.
989
990 Fri Jan 29 14:36:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
991
992         * collect2.c (error): Fix typo in declaration.
993
994         * cpperror.c (cpp_message): Likewise.
995
996         * cpplib.c (cpp_warning): Likewise.
997
998         * cpplib.h (cpp_notice): Use PVPROTO not VPROTO, also add
999         ATTRIBUTE_PRINTF_1.
1000
1001         * toplev.c (error): Fix typo in declaration.
1002
1003 Fri Jan 29 15:44:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1004
1005         * loop.c (strength_reduce): Fix HAVE_cc0 handling when scanning
1006         forward from cont dominator.
1007
1008 Fri Jan 29 07:10:27 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1009
1010         * cccp.c (eprint_string): Constify a char*.
1011         (notice): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
1012         (vnotice): Constify a char*.
1013         (error): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
1014         (verror): Constify a char*.
1015         (warning): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
1016         (vwarning): Constify a char*.
1017         (error_with_line): Likewise.  Use PVPROTO not VPROTO, add
1018         ATTRIBUTE_PRINTF_2.
1019         (verror_with_line): Constify a char*.
1020         (vwarning_with_line): Likewise.
1021         (warning_with_line): Likewise.  Use PVPROTO not VPROTO, add
1022         ATTRIBUTE_PRINTF_2.
1023         (pedwarn): Constify a char*.  Use PVPROTO not VPROTO, add
1024         ATTRIBUTE_PRINTF_1.
1025         (pedwarn_with_line): Likewise with ATTRIBUTE_PRINTF_2.
1026         (pedwarn_with_file_and_line): Likewise with ATTRIBUTE_PRINTF_4.
1027         Also correct typo in parameter name declaration.
1028         (make_assertion): Constify a char*.
1029         (quote_string_for_make): Likewise.
1030         (deps_output): Likewise.
1031         (fatal): Likewise.  Use PVPROTO not VPROTO, add
1032         ATTRIBUTE_PRINTF_1.  Use ATTRIBUTE_NORETURN not an explicit
1033         "__attribute__ ((noreturn))".
1034         (fancy_abort): Likewise for ATTRIBUTE_NORETURN.
1035         (pfatal_with_name): Likewise.
1036         (pipe_closed): Likewise.
1037         (memory_full): Likewise.
1038
1039 Fri Jan 29 00:14:55 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1040
1041         * loop.c (strength_reduce): Grow set_in_loop / n_times_set /
1042         may_not_optimize to proper size when converting biv increments
1043         into givs.
1044         If necessary, reallocate reg_iv_type / reg_iv_info before calling
1045         recombine_givs.
1046
1047 Thu Jan 28 23:24:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1048
1049         * loop.c (recombine_givs): New parameter unroll_p.  If set, don't
1050         generate complex adds.  Changed caller.
1051         Don't generate adds that cost more than the original one.
1052         (strength_reduce): Warning fixes.
1053
1054 Thu Jan 28 09:41:11 1999  Jeffrey A Law  (law@cygnus.com)
1055
1056         * configure.in (hppa1.0-hp-hpux10*): Use t-pa.
1057         * configure: Rebuilt.
1058
1059 Wed Jan 27 23:39:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1060
1061         * rtl.h (insn_first_p): Declare.
1062         * rtlanal.c (insn_first_p): New function.
1063         * loop.h (varray.h): Include.
1064         (struct induction): Change combined_with to unsigned.
1065         New members derived, ix and last_use.
1066         (reg_iv_type, reg_iv_info): Now varray_type.  All references changed.
1067         (REG_IV_TYPE, REG_IV_INFO): Define.
1068         (first_increment_giv, last_increment_giv): Declare.
1069         * loop.c (loop_number_loop_cont): New static variable.
1070         (loop_number_cont_dominator): Likewise.
1071         (reg_iv_type, reg_iv_info): Now varray_type.
1072         (first_increment_giv, last_increment_giv): New variables.
1073         (compute_luids, verify_dominator, find_life_end): New functions.
1074         (cmp_recombine_givs_stats, recombine_givs): Likewise.
1075         (loop_optimize): Allocate loop_number_loop_cont and
1076         loop_number_cont_dominator.  Use compute_luids.
1077         (find_and_verify_loops): Initialize loop_number_loop_cont and
1078         loop_number_cont_dominator.
1079         (strength_reduce): Try to find bivs that can be expressed as givs
1080         of another biv, and to convert biv increments into givs.
1081         Call recombine_givs.  Handle derived givs.
1082         (record_biv): New argument location.  All callers changed.
1083         (record_giv): Initialize derived and last_use fields.
1084         (basic_induction_var): New argument location.  All callers changed.
1085         (combine_givs): Don't combine a DEST_REG giv with a DEST_ADDR giv.
1086         Increment combined_with instead of setting to 1.
1087         * unroll.c (derived_regs): New static variable.
1088         (unroll_loop): Initialize it.
1089         Allocate local_regno according to max_reg_num.
1090         (copy_loop_body): Cope with derived givs.
1091         (find_splittable_givs): Check for Givs made from biv increments.
1092         Set derived_regs for givs.
1093         * Makefile.in (stmt.o, loop.o, unroll.o): Depend on loop.h .
1094
1095 Wed Jan 27 19:31:36 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1096
1097         * function.c (purge_addressof_1): Handle case when a register
1098         has been used in a wider mode.
1099
1100 Wed Jan 27 11:58:18 1999  Dave Brolley  <brolley@cygnus.com>
1101
1102         * cpplib.h (cpp_notice): Add prototype.
1103
1104 Wed Jan 27 02:20:48 1999  Jeffrey A Law  (law@cygnus.com)
1105
1106         * Merge gcc2 snapshot 19980929.
1107
1108         * cccp.c (PRINTF_PROTO): Remove.
1109         (PRINTF_PROTO_{1,2,3,4}: Likewise.
1110         * cexp.y: Likewise.
1111         * system.h: Add PRINTF_PROTO and PRINTF_PROTO_{1,2,3,4}.
1112
1113         * fix-header.c (cpp_file_lin_for_message): Delete.  In libcpp.
1114         (cpp_print_containing_files, v_cpp_message, cpp_message): Likewise.
1115         (cpp_fatal, cpp-Pfatal_with_name): Likewise.
1116
1117         * gen-protos.c (hashf): Delete in cpphash.o
1118         * gen-protos.c (hashf): Delete in cpphash.o
1119
1120         * expr.c: Do not merge SAVE_STACKAREA_MODE changes.
1121         * expmed.c: Likewise.
1122         * rs6000.md: Likewise.
1123
1124         * rs6000.c, rs6000.md: Do not merge formatting changes yet.
1125
1126 Wed Jan 27 01:13:42 1999  Richard Henderson  <rth@cygnus.com>
1127
1128         * rs6000.c (input_operand): Don't expect CONST around CONSTANT_P_RTX.
1129         * rs6000.md (movsi, movdi): Likewise.
1130
1131 Tue Jan 26 13:31:38 1999  Jim Wilson  <wilson@cygnus.com>
1132
1133         * function.c (expand_function_end): Pass arg_pointer_save_area to
1134         validize_mem before using it.  Emit code into a sequence.
1135
1136 Tue Jan 26 13:41:38 1999  David Edelsohn  <edelsohn@mhpcc.edu>
1137
1138         * rs6000.md (doz + set cr and or + set cr patterns): Add missing
1139         '#' to split patterns.  Correct indentation of some new patterns.
1140
1141 1999-01-26 12:11 -0500  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
1142
1143         * cppfiles.c (safe_read): Deleted.  
1144         (read_and_prescan): New function, replaces safe_read, converts
1145         and/or warns about trigraphs, silently converts odd line
1146         terminators (\r, \n\r, \r\n).  Warns about no newline at EOF.
1147         (finclude): Use read_and_prescan; turn off nonblocking mode on
1148         the input descriptor; remove file-size-examination and
1149         no-newline-at-EOF gunk which is longer necessary; be more
1150         careful about checking that we've been handed a legitimate
1151         file to read (only real files, pipes, and ttys are acceptable).
1152         * cpplib.h (cpp_options): Rename no_trigraphs flag to 
1153         `trigraphs' and invert its sense.
1154         (trigraph_table): Declare.
1155         (cpp_warning_with_line): Prototype.
1156         * cpplib.c: Remove all references to trigraph_pcp. Define
1157         trigraph_table; initialize it in initialize_char_syntax.  Open
1158         files in nonblocking mode.  s/no_trigraphs/trigraphs/
1159         throughout, and invert sense.  Put cpp_warning_with_line back
1160         in and export it.
1161
1162 Tue Jan 26 23:21:49 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1163
1164         * config/c4x/c4x.h (COUNTER_REGS): New register class.
1165         * config/c4x/c4x.md (*rptb_init): Change constraints.
1166         (rptb_end): Emit alternate looping instructions if 
1167         RC register not allocated for loop counter.
1168         (decrement_and_branch_on_count): Allow other registers
1169         for loop counter.
1170
1171 1999-01-25 14:26 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
1172
1173         * cppexp.c (struct arglist): Removed.
1174         (parse_number): Use HOST_WIDE_INT for the accumulator.
1175         Allow two `l' suffixes unless C89.  Clean up.  Make static.
1176         (parse_charconst): New function broken out of cpp_lex.
1177         Code cleaned up drastically.  Don't use a token_buffer.
1178         (token_buffer): Removed.
1179         (cpp_lex): Don't call parse_number on a constant string.
1180         Use parse_charconst.
1181         (cpp_parse_expr): Properly handle an ERROR op returned by
1182         cpp_lex. 
1183
1184 1999-01-25 14:10 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
1185
1186         * cpplib.c: Don't include signal.h, sys/times.h, or
1187         sys/resource.h. Don't declare localtime.
1188         (macroexpand): Handle special symbols here.
1189         (push_macro_expansion): Chop off the trailing '@ ' if possible
1190         here.
1191         (cpp_get_token): Don't do either of the above two things here.
1192         Move `string' label just after case '"' so that wide strings
1193         don't crash the preprocessor.
1194
1195 Sun Jan 24 20:13:45 1999  David Edelsohn  <edelsohn@mhpcc.edu>
1196
1197         * rs6000.md (left shift + set cr patterns): Add missing '#' to
1198         split patterns.
1199         (move register + set cr pattern): Ditto.
1200         (movdi, !TARGET_POWERPC64 splitters): Add back in Jan. 15th patch,
1201         inadvertently deleted.
1202
1203 Sun Jan 24 08:07:59 1999  Jeffrey A Law  (law@cygnus.com)
1204
1205         * stmt.c (stmt_loop_nest_empty): New function.
1206         * tree.h (stmt_loop_nest_empty): Declare it.
1207         * rtl.def (CALL_PLACEHOLDER): New rtx code.
1208
1209 Sun Jan 24 21:24:43 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1210
1211         * config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info):
1212         New functions.
1213         (c4x_check_legit_addr): Remove USE and PLUS, allow
1214         LO_SUM, and disable SYMBOL_REF, LABEL_REF, and CONST cases.
1215         (c4x_legitimize_address): Penalise SYMBOL_REF, LABEL_REF, and 
1216         CONST cases.  Add LO_SUM.
1217         (c4x_print_operand): Modified 'C' and 'R' cases for calls.
1218         Added 'U' case.  Remove dependence on SYMBOL_REF_FLAG.
1219         (c4x_print_operand_address): Handle LO_SUM.
1220         (c4x_scan_for_ldp): Delete.  Hooray!
1221         (c4x_process_after_reload): Remove call to c4x_scan_for_ldp.
1222         Split all insns.
1223         (c4x_immed_int_constant): Renamed from c4x_int_constant.  All callers
1224         changed.
1225         (c4x_immed_float_constant): Renamed from c4x_float_constant.  All
1226         callers changed.
1227         (c4x_T_constraint): Allow LO_SUM, disable SYMBOL_REF, LABEL_REF, 
1228         and CONST.
1229         (c4x_U_constraint, symbolic_operand): New functions.
1230         (src_operand): Allow 'I' constants in HImode.  Allow LO_SUM,
1231         disable SYMBOL_REF, LABEL_REF, and CONST.
1232         (lsrc_operand, tsrc_operand): Call src_operand instead of
1233         general_operand.
1234         (c4x_operand_subword): Update comments.
1235
1236         * config/c4x/c4x.c (TARGET_LOAD_ADDRESS): New macro.
1237         (LEGITIMATE_CONSTANT_P): Allow SYMBOL_REF, LABEL_REF, CONST,
1238         plus HIGH and LO_SUM for the C40.
1239         (ENCODE_SECTION_INFO): Define macro.
1240         (symbolic_operand, c4x_U_constraint, c4x_emit_move_sequence): New
1241         prototypes.
1242         (PREDICATE_CODES): Add symbolic_operand.
1243
1244         * config/c4x/c4x.md (movqi, movgqf, movhi, movhi): Call
1245         c4x_emit_move_sequence.
1246         (floatunsqiqf2, fixuns_truncqfqi2): Rework emitted RTL
1247         to avoid symbol references.
1248         (all patterns with g constraint): Replace 'g' constraint with 'rIm'.
1249         (set_high): Renamed from set_high_use.
1250         (set_lo_sum): Renamed from set_ior_lo_use.
1251         (all call patterns): Make MEM explicit in call address operands.
1252         Modified output templates to use 'U' modifier.
1253         
1254 Sun Jan 24 01:15:05 PST 1999 Jeff Law  (law@cygnus.com)
1255
1256         * version.c: Bump for snapshot.
1257
1258 Sat Jan 23 22:34:57 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1259
1260         * final.c (bb_str): Qualify a char* with the keyword `const'.
1261         (add_bb_string, final_scan_insn, output_asm_insn): Likewise.
1262
1263         * fix-header.c (read_scan_file): Likewise.
1264
1265         * genoutput.c (output_epilogue, process_template): Likewise.
1266         
1267         * local-alloc.c (requires_inout, block_alloc): Likewise.
1268
1269         * output.h (output_asm_insn, assemble_string): Likewise.
1270
1271         * recog.c (recog_constraints, check_asm_operands,
1272         decode_asm_operands, extract_insn, preprocess_constraints,
1273         constrain_operands): Likewise.
1274
1275         * recog.h (operand_alternative, recog_constraints, insn_template,
1276         insn_outfun, insn_operand_constraint, insn_name): Likewise.
1277
1278         * regclass.c (record_reg_classes, scan_one_insn): Likewise.
1279
1280         * regmove.c (find_matches): Likewise.
1281
1282         * reload.c (alternative_allows_memconst): Likewise.
1283
1284         * reload1.c (constraint_accepts_reg_p,
1285         reload_cse_simplify_operands): Likewise.
1286
1287         * rtl.h (decode_asm_operands): Likewise.
1288
1289         * scan.h (fn_decl): Likewise.
1290
1291         * varasm.c (assemble_string): Likewise.
1292
1293 Sat Jan 23 01:37:36 1999  Jeffrey A Law  (law@cygnus.com)
1294
1295         * configure.in (gcc_tooldir): Handle case where exec_prefix has
1296         not been explicitly set.
1297         * configure: Rebuilt.
1298
1299         * fold-const.c (lshift_double): Mark 'prec' arguments as possibly
1300         unused.
1301
1302         * bitmap.h (bitmap_head_def): Make indx field unsigned.
1303
1304         * configure.in (gcc_tooldir): When not making a relative gcc_tooldir,
1305         use $exec_prefix/$target_alias for gcc_tooldir.
1306         * configure: Rebuilt.
1307
1308 Fri Jan 22 11:48:56 1999  Richard Henderson  <rth@cygnus.com>
1309
1310         * cppp.c (xrealloc): Fix typo last change.
1311         * cppalloc.c, gcc.c, genattr.c, genattrtab.c, gencodes.c: Likewise.
1312         * genconfig.c, genemit.c, genextract.c, genflags.c: Likewise.
1313         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
1314
1315 1999-01-22  Michael Meissner  <meissner@cygnus.com>
1316
1317         * rs6000.h (CR0_REGNO_P): New macro to test if cr0.
1318         (CR_REGNO_NOT_CR0_P): New macro to test if cr, but not cr0.
1319         (PREDICATE_CODES): Add cc_reg_not_cr0_operand.
1320         (cc_reg_not_cr0_operand): Add declaration.
1321
1322         * rs6000.c (cc_reg_not_cr0_operand): Return true if register is a
1323         pseudo register, or a control register that is not CR0.
1324
1325         * rs6000.md (all combiner patterns building . instructions): For
1326         all `.' instructions that do something and set cr0, add an
1327         alternative that does the operation, and then sets a different
1328         flag, in order to avoid using the costly mcrf instruction and also
1329         allow cr0 to be clobbered in asm statements.  Also fix a few
1330         patterns that used the wrong register.
1331
1332         * rs6000.h (rs6000_cpu_select): Make string, names be const char *.
1333         (rs6000_debug_name): Make const char *, not char *.
1334
1335         * sysv4.h (rs6000_{abi,sdata}_name): Make const char *.
1336         
1337         * rs6000.c (rs6000_{debug,abi,sdata}_name): Make const char *.
1338         (rs6000_select): Use const char * in casts.
1339
1340 Fri Jan 22 07:43:01 1999  Jeffrey A Law  (law@cygnus.com)
1341         
1342         * Makefile.in (gcc_tooldir): Move before first reference.
1343         Let autoconf substitute in a value.
1344         * configure.in (gcc_tooldir): Only use a relative path to the
1345         tool directory if $exec_prefix == $prefix.
1346         * configure: Rebuilt.
1347
1348         * Makefile.in (tooldir): Replace with gcc_tooldir.
1349
1350 Thu Jan 21 23:21:57 1999  Jeffrey A Law  (law@cygnus.com)
1351
1352         * m68k.md (ashldi_const): Disable for !TARGET_5200.  Fix indention.
1353         (ashldi3 expander): Similarly.  Update comments.
1354         (ashrdi_const, lshrdi_const): Fix indention.
1355         (ashrdi3, lshrdi3): FIx indention.  Update comments.
1356
1357 Thu Jan 21 21:53:36 1999  Richard Henderson  <rth@cygnus.com>
1358
1359         * emit-rtl.c (try_split): Don't try to split non-instructions.
1360
1361 Thu Jan 21 23:47:30 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
1362
1363         * expr.c (emit_push_insn): Fix dumb typo.
1364
1365 Thu Jan 21 20:24:02 1999  Richard Henderson  <rth@cygnus.com>
1366
1367         * rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept
1368         transformations that we have performed earlier.
1369         * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
1370
1371         * alpha.md (prologue_stack_probe_loop): Don't do our own label
1372         handling, call gen_label_rtx instead.
1373
1374 Thu Jan 21 17:45:18 1999  Richard Henderson  <rth@cygnus.com>
1375
1376         * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): Add missing `then'.
1377
1378         * cccp.c (xrealloc): Call malloc given a NULL old pointer.
1379         * collect2.c, cppalloc.c, gcc.c, genattr.c, genattrtab.c: Likewise.
1380         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
1381         * genflags.c, genopinit.c, genoutput.c, genpeep.c: Likewise.
1382         * genrecog.c, mips-tfile.c, protoize.c: Likewise.
1383
1384 Thu Jan 21 19:44:55 1999  Michael Meissner  <meissner@cygnus.com>
1385
1386         * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): If
1387         --with-gnu-ld, use x-aix41-gld instead of x-aix41 to suppress
1388         adding -Wl,-bbigtoc to BOOT_LDFLAGS.
1389         * configure: Regenerate.
1390
1391         * config/rs6000/x-aix41-gld: New file, don't set BOOT_LDFLAGS.
1392
1393 Thu Jan 21 15:48:03 1999  Dave Brolley  <brolley@cygnus.com>
1394
1395         * cppexp.c (cpp_lex): Allocate token_buffer dynamically.
1396
1397 Thu Jan 21 14:18:04 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
1398
1399         * expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use
1400         move_by_pieces.
1401         (MOVE_MAX_PIECES): Define maximum number of bytes to move at once.
1402         (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults.
1403         (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults.
1404         (move_by_pieces): Use new macros.
1405         (emit_block_move): Use new macros.
1406         (clear_by_pieces): Use new macros.
1407         (clear_storage): Use new macros.
1408         (emit_push_insn): Use new macros.
1409         (expand_expr): Use new macros.
1410         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): 
1411         Define.
1412         (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define.
1413         (MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE.
1414         (MOVE_MAX_PIECES): move 8 bytes on SH4.
1415         * tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT,
1416         USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT, 
1417         USE_STORE_PRE_DECREMENT): Describe new macros.
1418
1419 Thu Jan 21 14:13:31 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
1420
1421         * varasm.c (output_constant_pool): Use floor_log2 instead of
1422         exact_log2 for ASM_OUTPUT_ALIGN.
1423
1424         * stor-layout.c (layout_type): Do machine-dependent extra alignment.
1425
1426         * emit-rtl.c (operand_subword): Handle case when a subword outside
1427         the operand.
1428
1429         * tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of
1430         the macros.
1431
1432 Thu Jan 21 01:59:30 1999  Richard Henderson  <rth@cygnus.com>
1433
1434         * cse.c (fold_rtx): Revert 29 Dec change.
1435         (cse_insn): Revert 12 Jan change.
1436         * expr.c (expand_builtin): Don't emit CONST around CONSTANT_P_RTX.
1437         * regclass.c (reg_scan_mark_refs): Revert 29 Dec change.
1438         * rtl.def: Likewise.
1439         * rtl.h (CONSTANT_P): Likewise.
1440
1441         * expr.c (emit_move_insn): Never try to flush CONSTANT_P_RTX
1442         to memory.
1443         * recog.c (immediate_operand): Accept CONSTANT_P_RTX.
1444         * alpha.c (input_operand): Likewise.
1445         * c4x.c (const_operand): Likewise.
1446
1447         * explow.c (allocate_dynamic_stack_space): Use register_operand
1448         instead of arith_operand, which does not exist.
1449
1450         * 1750a.h: Fix comment closure.
1451         * a29k.c (a29k_set_memflags): Fix typo in 19 Jan change.
1452         * arc.md (one_cmplsi2_set_cc_insn): Fix set mode mismatch.
1453         * arm.h (TARGET_SWITCHES): Fix typo.
1454         * i370.md (anon mult and div patterns): Fix set mode mismatch.
1455         * i860.c (output_delayed_branch): Fix operands to constrain_operands.
1456         (output_delay_insn): Likewise.
1457         * m88k.md (anon rotate insns): Fix set mode mismatch.
1458         (anon BLKmode moves): Commonize and fix set mode mismatches.
1459         * ns32k.md (udivmoddi[shq]i4_internal): Fix mode mismatch.
1460         * romp.md (movdf): Fix typo.
1461
1462 Thu Jan 21 00:29:35 1999  Nathan Sidwell  <nathan@acm.org>
1463
1464         * Makefile.in (install-common): Remove extraneous chmod for gcov
1465         install.
1466
1467 Wed Jan 20 18:15:08 1999  Dave Brolley  <brolley@cygnus.com>
1468
1469         * function.c (assign_parms): Save and restore setting of
1470         TREE_USED (parm).
1471
1472 Wed Jan 20 12:51:42 1999  Mark Mitchell  <mark@markmitchell.com>
1473
1474         * arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout.
1475         Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate.
1476
1477 Tue Jan 19 21:20:52 1999  Richard Henderson  <rth@cygnus.com>
1478
1479         * recog.c (pop_operand): New function.
1480         * recog.h (pop_operand): Declare it.
1481         * genrecog.c (preds): Define it.
1482
1483         * expr.c (do_jump_for_compare): Handle conditional branch expanders
1484         emitting multiple jump instructions.
1485         * jump.c (condjump_label): New function.
1486         * rtl.h (condjump_label): Declare it.
1487
1488 Tue Jan 19 21:08:20 1999  Richard Henderson  <rth@cygnus.com>
1489
1490         * expr.c (emit_move_insn_1): Revert 17 Dec change.  Don't emit
1491         clobber during or after reload.
1492
1493 Tue Jan 19 16:56:03 1999  Richard Henderson  <rth@cygnus.com>
1494
1495         * genoutput.c (name_for_index): New function.
1496         (scan_operands, validate_insn_alternatives): Use it.
1497         * genrecog.c (insn_name_ptr_size): New variable.
1498         (make_insn_sequence): Fill in insn_name_ptr.
1499         (merge_trees): Use it.
1500
1501 Tue Jan 19 16:37:36 1999  Richard Henderson  <rth@cygnus.com>
1502
1503         * i386/isc.h (TARGET_DEFAULT): Define symbolicly.
1504         * i386/isccoff.h, i386/next.h, i386/sco.h, i386/sco5.h: Likewise.
1505         * i386/scodbx.h, i386/sequent.h, i386.unix.h: Likewise.
1506
1507 Tue Jan 19 15:00:10 1999  Jeffrey A Law  (law@cygnus.com)
1508
1509         * loop.c (NUM_STORES): Delete.
1510         (loop_store_mems): Turn into an EXPR_LIST of MEMs.
1511         (prescan_loop): Properly initialize loop_mems_idx.
1512         (note_addr_stored): Simplify using list structure instead of
1513         fixed sized array.
1514         (invariant_p, check_dbra_loop, load_mems): Similarly.
1515
1516         * flow.c (invalidate_from_autoinc): New function.
1517         (mark_set_1, mark_used_regs): Use it.
1518
1519         * Makefile.in (protoize.o, unprotoize.o): Depend on Makefile.
1520
1521 1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
1522
1523         * invoke.texi (-mlong-double-64): New option description.
1524
1525 1999-01-19  Jim Wilson  <wilson@cygnus.com>
1526
1527         * libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to
1528         LIBGCC2_LONG_DOUBLE_TYPE_SIZE.
1529         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.  Set to LONG_DOUBLE_TYPE_SIZE
1530         if not defined.
1531         * i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics.
1532         (CPP_SPECS): Add -mlong-double-64 support.
1533         (TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New.
1534         (TARGET_SWITCHES): Add -mlong-double-64 support.
1535         (LONG_DOUBLE_TYPE_SIZE): Likewise.
1536         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
1537         * i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float.
1538         (CPP_SPECS): Add -mlong-double-64 support.
1539         * i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64.
1540         (MULTILIB_DIRNAMES): Add ld64.
1541         * i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise.
1542
1543 Tue Jan 19 11:54:04 1999  Jason Merrill  <jason@yorick.cygnus.com>
1544
1545         * calls.c (expand_call): Strip a TARGET_EXPR if we're passing by
1546         invisible reference.
1547
1548 Tue Jan 19 14:51:36 1999  David Edelsohn  <edelsohn@mhpcc.edu>
1549
1550         * rs6000.c (offsettable_addr_operand): Delete.
1551         (offsettable_mem_operand): New function.
1552         * rs6000.h (PREDICATE_CODES): Reflect function change.
1553         (RS6000_SAVE_TOC): Represent address as MEM.
1554         * win-nt.h (RS6000_SAVE_TOC): Same.
1555         * rs6000.md (indirect calls): Change offsettable address parameter
1556         to offsettable memory parameter.
1557
1558 Tue Jan 19 10:24:53 1999  Mark Mitchell  <mark@markmitchell.com>
1559
1560         * rtl.h (rtx_def): Update documentation.
1561         (MEM_IN_STRUCT_P): Likewise.
1562         (MEM_SCALAR_P): New macro.
1563         (MEM_COPY_ATTRIBUTES): Likewise.
1564         (MEM_SET_IN_STRUCT_P): Likewise.
1565         * rtl.texi (MEM_SCALAR_P): Document.
1566         * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES.
1567         (fixed_scalar_and_varying_struct_p): New function.  Use
1568         MEM_SCALAR_P rather than !MEM_IN_STRUCT_P.
1569         (aliases_everything_p): Likewise.
1570         (true_dependence): Use them.
1571         (write_dependence_p): New function, containing code common to
1572         anti_dependence and output_dependence.
1573         (anti_dependence): Use it.
1574         (output_dependence): Likewise.
1575         * calls.c (save_fixed_argument_area): Don't clear
1576         MEM_IN_STRUCT_P. 
1577         (expand_call): Use MEM_SET_IN_STRUCT_P.
1578         (emit_library_call): Don't clear MEM_IN_STRUCT_P.
1579         (emit_library_call_value): Likewise.
1580         (store_one_arg): Use MEM_SET_IN_STRUCT_P.
1581         * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES.
1582         (make_extraction): Likewise.
1583         (simplify_shift_const): Likewise.
1584         (gen_lowpart_for_combine): Likewise.
1585         * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES.
1586         * emit-rtl.c (operand_subword): Likewise.
1587         (change_address): Likewise.
1588         * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES.
1589         * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES.
1590         (emit_group_store): Use MEM_SET_IN_STRUCT_P.
1591         (copy_blkmode_from_reg): Likewise.
1592         (store_field): Likewise.
1593         (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P
1594         heuristically.  Use MEM_SET_IN_STRUCT_P.
1595         (get_memory_rtx): Likewise.
1596         * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES.
1597         * function.c (assign_stack_temp): Clear MEM_SCALAR_P and
1598         MEM_ALIAS_SET on newly returned MEMs.
1599         (assign_temp): Use MEM_SET_IN_STRUCT_P.
1600         (put_reg_into_stack): Likewise.
1601         (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES.
1602         (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P.
1603         (assign_parms): Likewise.
1604         (expand_function): Likewise.
1605         * integrate.c (expand_inline_function): Likewise.
1606         (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES.
1607         * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P.
1608         * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES.
1609         * print-rtl.c (print_rtx): Print /f for frame_related.
1610         * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES.
1611         * reload1.c (reload): Copy MEM_SCALAR_P as well.
1612         * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P.
1613         (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES.
1614         * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P.
1615         (output_constant_def): Likewise.
1616         * a29k.c (a29k_set_memflags_1): Take scalar_p.
1617         Set MEM_SCALAR_P.
1618         (a29k_set_memflags): Use it.
1619         * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES.
1620         * c4x.c (c4x_scan_for_ld): Likewise.
1621         * h8300.c (fix_bit_operand): Likewise.
1622         * m88k.c (legitimize_address): Likewise.
1623         (block_move_loop): Likewise.
1624         (block_move_no_loop): Likewise.
1625         (block_move_sequence): Likewise.
1626         (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
1627         * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise.
1628         * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES.
1629         * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
1630         * arm.h (arm_gen_load_multiple): Take scalar_p.
1631         (arm_store_load_multiple): Likewise.
1632         * arm.c (arm_gen_load_multiple): Likewise.
1633         (arm_gen_store_multiple): Likewise.
1634         (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P.
1635         
1636 Tue Jan 19 12:30:37 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
1637
1638         * optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all
1639         calls within a libcall block to indicate no throws are possible.
1640         * flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for 
1641         libcall blocks. Don't add edges to exception handlers if we see 
1642         a REG_EH_REGION note with a value of 0.
1643         (make_edges): Override active_eh_region vector if the call has a note
1644         indicating the call does not throw.
1645
1646 1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
1647
1648         * config/rs6000/sysv4.h (CC1_SPEC): Fix correct numbers of {}.
1649
1650 Tue Jan 19 06:26:30 1999  Jeffrey A Law  (law@cygnus.com)
1651
1652         * Makefile.in (cccp.o, cpplib.o): Depend on Makefile.
1653
1654 Mon Jan 18 09:56:41 1999  Jason Merrill  <jason@yorick.cygnus.com>
1655
1656         * invoke.texi (C++ Dialect Options): Document -fno-rtti.
1657
1658 1999-01-18  Vladimir N. Makarov  <vmakarov@cygnus.com>
1659
1660         *  invoke.texi (-mcpu=740, -mcpu=750): New options.
1661         (-m(no-)multiple, -m(no-)string): Describe cases for PPC740 &
1662         PPC750.
1663
1664 1999-01-18  Michael Meissner  <meissner@cygnus.com>
1665
1666         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
1667         supported with -mcpu=xxx.
1668         (processor_type): Add PROCESSOR_PPC750.
1669         (ADJUST_PRIORITY): Call rs6000_adjust_priority.
1670         (RTX_COSTS): Supply costs for 750 multiply/divide operations.
1671         (rs6000_adjust_priority): Add declaration.
1672         
1673         * rs6000.c (rs6000_override_options): -mcpu={750,740} now sets the
1674         processor type as 750, not 603.  Allow -mmultiple and -mstring on
1675         little endian 750 systems.
1676         (rs6000_adjust_priority): Stub for now.
1677         (get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle.
1678
1679         * rs6000.md (function/cpu attributes): Add initial ppc750 support.
1680
1681         * sysv4.h (STRICT_ALIGNMENT): Don't force strict alignment if
1682         little endian.
1683         (CC1_SPEC): Pass -mstrict-align if little endian, and not
1684         overridden.
1685         (CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs.
1686         (SUBTARGET_EXTRA_SPECS): Add cc1 endian specs.
1687
1688         * {sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC): Override, default is
1689         little endian.
1690
1691         * t-ppcgas (MULTILIB_*): Delete obsolete Solaris multilibs.
1692
1693 Mon Jan 18 12:03:08 1999  Gavin Romig-Koch  <gavin@cygnus.com>
1694
1695         * config/mips/mips.md (div_trap): Split div_trap_mips16
1696         from div_trap.  
1697         (div_trap_normal,div_trap_mips16): Correct the length attributes.
1698
1699 Mon Jan 18 11:48:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1700
1701         * cpplib.c (special_symbol): Qualify a char* with the `const' keyword.
1702         Instead of writing to const char *buf directly, use a non-const
1703         variable `wbuf' to allocate and write a string, then set buf = wbuf.
1704
1705         * cppulp.c (user_label_prefix): Qualify a char* with the `const'
1706         keyword.
1707
1708         * dyn-string.c (dyn_string_append): Likewise.
1709
1710         * dyn-string.h (dyn_string_append): Likewise.
1711
1712         * final.c (end_final, output_operand_lossage, asm_fprintf): Likewise.
1713
1714         * output.h (end_final, output_operand_lossage, asm_fprintf,
1715         named_section, decode_reg_name, make_decl_rtl, user_label_prefix):
1716         Likewise.
1717
1718         * profile.c (init_branch_prob): Likewise.
1719
1720         * toplev.c (set_target_switch, vmessage,
1721         v_message_with_file_and_line, v_message_with_decl,
1722         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
1723         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
1724         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
1725         v_pedwarn_with_file_and_line, vsorry, v_really_sorry,
1726         open_dump_file, dump_rtl, clean_dump_file, 
1727         print_version, print_single_switch, print_switch_values,
1728         dump_base_name, debug_args, lang_independent_options,
1729         user_label_prefix, documented_lang_options, target_switches,
1730         target_options, print_time, pfatal_with_name, fatal_io_error,
1731         fatal_insn, default_print_error_function, print_error_function,
1732         report_error_function, error_with_file_and_line, error_with_decl,
1733         error_for_asm, error, fatal, warning_with_file_and_line,
1734         warning_with_decl, warning_for_asm, warning, pedwarn,
1735         pedwarn_with_decl, pedwarn_with_file_and_line, sorry,
1736         really_sorry, botch, output_quoted_string, output_file_directive,
1737         open_dump_file, rest_of_decl_compilation, display_help, main):
1738         Likewise.
1739
1740         * toplev.h (print_time, fatal, fatal_io_error, pfatal_with_name,
1741         fatal_insn, warning, error, pedwarn, pedwarn_with_file_and_line,
1742         warning_with_file_and_line, error_with_file_and_line, sorry,
1743         really_sorry, default_print_error_function, report_error_function,
1744         rest_of_decl_compilation, pedwarn_with_decl, warning_with_decl,
1745         error_with_decl, error_for_asm, warning_for_asm, output_quoted_string,
1746         output_file_directive, botch): Likewise.
1747
1748         * tree.h (make_decl_rtl): Likewise.
1749
1750         * varasm.c (strip_reg_name, named_section, decode_reg_name,
1751         make_decl_rtl): Likewise.
1752         
1753 Mon Jan 18 11:35:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
1754
1755         * Makefile.in (TCL_LIBRARY): Use 'cd' to find the library
1756         directory logically rather than physically. 
1757
1758 Mon Jan 18 09:05:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1759
1760         * loop.c (insert_bct): Hide the definition of variables
1761         `increment_direction', `compare_direction', `add_iteration' and
1762         `loop_var_mode'.
1763
1764         * recog.c (mode_dependent_address_p): Mark parameter `addr' with
1765         ATTRIBUTE_UNUSED.  Mark label `win' with ATTRIBUTE_UNUSED_LABEL.
1766         (mode_independent_operand): Mark label `lose' with
1767         ATTRIBUTE_UNUSED_LABEL.
1768
1769         * regclass.c (n_occurrences): Remove prototype and definition.
1770
1771         * reload.c (find_reloads_address_1): Mark variable `tem' with
1772         ATTRIBUTE_UNUSED.
1773
1774         * reload1.c (reload): Cast the first two arguments of `bcopy' to PTR.
1775
1776         * sbitmap.c (sbitmap_copy): Likewise.
1777
1778         * scan-decls.c (scan_decls): Hide label `handle_comma'.
1779
1780         * toplev.c (output_lang_identify): Mark prototype with
1781         ATTRIBUTE_UNUSED.
1782
1783         * tree.c (make_node): Cast the first argument of `bzero' to PTR.
1784         (make_tree_vec): Likewise.
1785         (build1): Likewise.
1786
1787         * varasm.c (assemble_static_space): Mark variable `tem' with
1788         ATTRIBUTE_UNUSED.
1789
1790 Mon Jan 18 04:28:36 1999  Nathan Sidwell  <nathan@acm.org>
1791
1792         * Makefile.in (GCOV_INSTALL_NAME): New macro.
1793         (install-common): Use it.
1794         (uninstall): Use it.
1795         (uninstall): Use correct names for protoize and unprotoize.
1796
1797 Mon Jan 18 03:52:56 1999  Christian Bruel <Christian.Bruel@st.com>
1798                           Jeffrey A Law  (law@cygnus.com)
1799
1800         * flow.c (last_mem_set): Delete variable.  References removed.
1801         (mem_set_list): New variable.
1802         (life_analysis): Initialize and finalize alias analysis.
1803         (propagate_block); Initialize mem_set_list.  Clear for CALL_INSNs.
1804         (insn_dead_p): For a store to memory, search the entire mem_set_list
1805         for a match.
1806         (mark_set_1): Kill entries on the mem_set_list for aliased writes or
1807         changes to their addresses.  Add new entries to the mem_set_list for
1808         memory writes writes.
1809         (mark_used_regs): Kill entries on the mem_set_list which may be
1810         referenced by a load operation.
1811
1812 Mon Jan 18 01:01:02 1999  Jeffrey A Law  (law@cygnus.com)
1813
1814         * alias.c (base_alias_check): Add missing return for differing
1815         symbols case.
1816
1817 Mon Jan 18 00:36:13 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1818
1819         * mips-tdump.c (print_file_desc): Handle unknown filenames and
1820         missing local symbols.
1821
1822 Sun Jan 17 21:04:31 1999  Richard Henderson  <rth@cygnus.com>
1823
1824         * jump.c (rtx_renumbered_equal_p): Special case CODE_LABEL.
1825
1826         * system.h (bcopy): Implement with memmove not memcpy.
1827
1828 Sun Jan 17 19:23:20 1999  Jeffrey A Law  (law@cygnus.com)
1829
1830         * Makefile.in (cppulp.o): Add dependencies.
1831
1832         * i386.md (integer conditional moves): Add missing earlyclobbers.
1833
1834         * regmove.c (optimize_reg_copy_1): Undo Aug 18 change.  Update
1835         REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change
1836         where a register is live.
1837
1838 Sun Jan 17 03:20:47 1999  H.J. Lu  (hjl@gnu.org)
1839
1840         * reg-stack.c (subst_stack_regs_pat): Abort if the destination
1841         of a FP conditional move is not on the FP register stack.
1842
1843 Sun Jan 17 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
1844
1845         * version.c: Bump for snapshot.
1846
1847 Sat Jan 16 23:40:33 1999  Jeffrey A Law  (law@cygnus.com)
1848
1849         * reload1.c (reload_cse_regs_1): Do not call
1850         reload_cse_simplify_operands for an insn with asm operands.
1851
1852         * cccp.c (print_help): Fix typos.
1853         * cpplib.c (print_help): Fix typos.
1854         * toplev.c (f_optiosn): Fix typos.
1855         (documented_lang_options): Fix typos.
1856
1857 Sat Jan 16 21:48:17 1999  Marc Espie (Marc.Espie@openbsd.org)
1858
1859         * gcc.c: (do_spec_1): Fix obvious typo.
1860
1861 Sat Jan 16 19:31:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1862
1863         * c-decl.c (duplicate_decls): If `warn_traditional', warn when
1864         a non-static function declaration follows a static one.
1865
1866         * invoke.texi (-Wtraditional): Document the extra check now done
1867         by this flag.
1868
1869 Sat Jan 16 15:13:46 1999  Jeffrey A Law  (law@cygnus.com)
1870
1871         * pa.md (shadd): Create shadd insns, even if the result of the shift is
1872         needed without the addition.
1873
1874 Sat Jan 16 10:48:16 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1875
1876         * sh.md (movdf, movsf): Temporary workaround for no_new_pseudos lossage.
1877
1878 Fri Jan 15 23:44:37 1999  Richard Henderson  <rth@cygnus.com>
1879
1880         * sparc.c (sparc_issue): Add hypersparc/sparclite86x entries.
1881
1882 Fri Jan 15 22:30:04 1999  David Edelsohn  <edelsohn@mhpcc.edu>
1883
1884         * rs6000.h (CONST_OK_FOR_LETTER_P): Do not assume 32-bit CONST_INT.
1885         * rs6000.c (u_short_cint_operand, add_operand, logical_operand,
1886         non_add_cint_operand, non_logical_cint_operand): Likewise.
1887         (get_issue_rate): Add CPU_PPC604E case.
1888         * rs6000.md (movdi, !TARGET_POWERPC64 splitters): Handle 64-bit hosts.
1889         
1890 Fri Jan 15 18:42:12 1999  Richard Henderson  <rth@cygnus.com>
1891
1892         * expr.c (queued_subexp_p): Make public.
1893         * expr.h (queued_subexp_p): Declare it.
1894         * recog.c (asm_operand_ok): New function.
1895         (check_asm_operands): Use it.  After reload, use constrain_operands 
1896         instead.
1897         * recog.h (asm_operand_ok): Declare it.
1898         * stmt.c (expand_asm_operands): Use it to try harder to make
1899         asms initially satisfy their constraints.
1900
1901 Fri Jan 15 17:43:59 1999  Jeffrey A. Law  <law@rtl.cygnus.com>
1902
1903         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do not create
1904         (mem (lo_sum (...)) for TFmode unless TARGET_V9.
1905
1906 Sat Jan 16 12:47:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1907
1908         * config/c4x/c4x.md (not_repeat_reg): Allow ldp instruction
1909         in delay slot of RPTBD.
1910
1911 Sat Jan 16 12:26:40 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1912
1913         * config/c4x/libgcc.S (___divhi3, ___modhi3): Fix long long
1914         divide and modulo sign problem.
1915
1916 Fri Jan 15 11:02:31 1999   Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1917
1918         * unroll.c (loop_iterations): Return 0 if the last loop insn
1919         is not a jump insn or if the loop has multiple back edges.
1920
1921 Thu Jan 14 22:38:41 1999  Jeffrey A Law  (law@cygnus.com)
1922
1923         * unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share
1924         a register with another DEST_ADDR giv if the address is not valid.
1925
1926         * pa.c (hppa_expand_epilogue): Save and restore the static chain
1927         around the call to mcount.
1928
1929         * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf.
1930
1931         * stmt.c (expand_end_case): Use emit_cmp_and_jump_insns to avoid
1932         generating non-canonical rtl.
1933
1934 1999-01-14  Vladimir N. Makarov  <vmakarov@cygnus.com>
1935
1936         * config/i960/i960.c (i960_output_move_double_zero,
1937         i960_output_move_quad_zero): New functions for moving zeros.
1938         (i960_output_move_double, i960_output_move_quad): Additional code
1939         for situation when moving unaligned register group.
1940         
1941         * config/i960/i960.h (i960_output_move_double_zero,
1942         i960_output_move_quad_zero): The function definitions.
1943
1944         * config/i960/i960.md (movdi+1, movti+1): Usage of the functions.
1945
1946 1999-01-13  Vladimir N. Makarov  <vmakarov@cygnus.com>
1947
1948         * config/i960/i960.c (i960_function_prologue): New code (optimal
1949         solution) for saving global registers in local registers.
1950         (form_reg_groups, reg_group_compare, split_reg_group): New
1951         functions used by the code.
1952         (reg_group): New structure definition for the new code.
1953         
1954 Wed Jan 13 20:12:37 1999  Richard Henderson  <rth@cygnus.com>
1955
1956         * integrate.c (expand_inline_function): Recognize (mem (addressof))
1957         and substitute.  Copy the return value from there into a new pseudo.
1958
1959 Wed Jan 13 16:47:00 1999  Catherine Moore  <clm@cygnus.com>
1960
1961         * config/arm.c (output_func_epilogue):  Check TARGET_ABORT_NORETURN
1962         before generating a call to abort for volatile functions.
1963         * config/arm.h (ARM_FLAG_ABORT_NORETURN):  Define.
1964         (TARGET_ABORT_NORETURN):  Define.
1965         (abort-on-noreturn):  New option.
1966
1967 Thu Jan 14 13:52:42 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1968
1969         * config/c4x/c4x.md (in_annul_slot_3): Correctly allow unarycc 
1970         and binarycc operations in 3rd annulled delay slot!
1971
1972 Wed Jan 13 16:16:44 1999  Catherine Moore  <clm@cygnus.com>
1973
1974         * config/arm.c (output_func_epilogue):  Check TARGET_ABORT_NORETURN
1975         before generating a call to abort for volatile functions.
1976         * config/arm.h (ARM_FLAG_ABORT_NORETURN):  Define.
1977         (TARGET_ABORT_NORETURN):  Define.
1978         (abort-on-noreturn):  New option.
1979
1980 Wed Jan 13 13:30:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1981
1982         * cccp.c (xstrdup): Renamed from `savestring'.  All callers changed.
1983         Remove prototype which we get from libiberty.h.
1984
1985         * collect2.c (xstrdup): Likewise.
1986
1987         * genextract.c (xstrdup): Likewise for `copystr'.
1988         (mybzero): Remove it and use `memset' instead.
1989
1990         * genoutput.c (mybcopy, mybzero): Remove these.  All callers changed
1991         to use `memcpy' and `memset' instead.
1992
1993         * genrecog.c (xstrdup): Renamed from `copystr'.  All callers
1994         changed.  Remove prototype.
1995         (mybcopy, mybzero): Remove these and use memcpy/memset.
1996
1997 Wed Jan 13 00:59:04 1999  Jeffrey A Law  (law@cygnus.com)
1998
1999         * mips.h (LOAD_EXTEND_OP): Correct for SImode and CCmode moves when
2000         generating code for TARGET_64BIT.
2001
2002 Tue Jan 12 14:05:37 1999   David Edelsohn  <edelsohn@mhpcc.edu>
2003
2004         * rs6000.c (print_operand, cases 'm' and 'M'): Do not depend on
2005         HOST_WIDE_INT word-size.
2006         (rs6000_stack_info): Remove redundant alignment of fpmem.
2007
2008 Tue Jan 12 14:05:37 1999   Richard Henderson  <rth@cygnus.com>
2009
2010         * rs6000.c (short_cint_operand): Remove CONSTANT_P_RTX handling.
2011         (u_short_cint_operand, reg_or_cint_operand, logical_operand): Likewise.
2012         (input_operand): Adjust CONSTANT_P_RTX handling.
2013         * rs6000.h (PREDICATE_CODES): Remove CONSTANT_P_RTX references.
2014         * rs6000.md (movsi): Adjust CONSTANT_P_RTX handling.
2015         (movhi, movqi): Remove CONSANT_P_RTX handling.
2016         (movdi): Adjust CONSTANT_P_RTX handling.
2017
2018 Tue Jan 12 10:23:24 1999  Stan Cox  <scox@cygnus.com>
2019
2020         * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls.
2021
2022 1999-01-12  Manfred Hollstein  <manfred@s-direktnet.de>
2023
2024         * m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to
2025         ensure all prototypes necessary for building libio will be available.
2026         * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Remove
2027         definitions here as they are not host specific.
2028         * m88k/sysv3.h, m88k/xm-sysv3.h: Likewise.
2029
2030 Tue Jan 12 02:53:46 1999  Richard Henderson  <rth@cygnus.com>
2031
2032         * cse.c (cse_insn): Never prefer (const (constant_p_rtx)).
2033
2034 Tue Jan 12 02:36:10 PST 1999 Jeff Law  (law@cygnus.com)
2035
2036         * version.c: Bump for snapshot.
2037
2038 Tue Jan 12 01:30:19 1999  Richard Henderson  <rth@cygnus.com>
2039
2040         * rtl.c (rtx_alloc): Use memset instead of inline loop.
2041
2042         * recog.h (recog_op_alt): Declare extern.
2043
2044 Tue Jan 12 00:23:31 1999  Richard Henderson  <rth@cygnus.com>
2045
2046         * function.c (purge_addressof_1): If the note accesses a mem+addressof
2047         in a wider mode than any replacement, adjust the cached replacement.
2048         Cache trivial substitutions as well.
2049
2050 Tue Jan 12 00:06:00 1999  Richard Henderson  <rth@cygnus.com>
2051
2052         * Makefile.in (OBJECTS): Add sbitmap.o.
2053         (BASIC_BLOCK_H): Add sbitmap.h.
2054         * basic-block.h: Move simple bitmap code to sbitmap.h.
2055         * flow.c: Move simple bitmap code to sbitmap.c
2056         * sbitmap.h, sbitmap.c: New files.
2057
2058 Mon Jan 11 23:51:50 1999  Richard Henderson  <rth@cygnus.com>
2059
2060         * alpha.h (TARGET_SWITCHES): Document switches.
2061         (TARGET_OPTIONS): Likewise.
2062
2063         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Use HOST_WIDE_INT_PRINT_DEC.
2064
2065 Mon Jan 11 22:54:14 1999  Richard Henderson  <rth@cygnus.com>
2066
2067         * tree.c (new_alias_set): Return zero if !flag_strict_aliasing.
2068
2069 Mon Jan 11 22:36:01 1999  Richard Henderson  <rth@cygnus.com>
2070
2071         * basic-block.h (basic_block_head): Rename to x_basic_block_head.
2072         (basic_block_end): Rename to x_basic_block_end.
2073         (BLOCK_HEAD, BLOCK_END): Update.
2074
2075         * caller-save.c: Change basic_block_head/end references to 
2076         BLOCK_HEAD/END.
2077         * combine.c, flow.c, function.c, gcse.c, global.c: Likewise.
2078         * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise.
2079         * regmove.c, reload1.c, reorg.c, sched.c: Likewise.
2080
2081 Sat Jan  9 23:54:09 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2082
2083         * gcc.c (xstrerror): Renamed from my_strerror.  All callers
2084         changed.  Remove prototype since we get that from libiberty.h.
2085
2086         * protoize.c (xstrerror): Likewise.
2087
2088 Sat Jan  9 23:22:04 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2089
2090         * gcc.c (read_specs): Ensure format specifiers match their arguments.
2091
2092 Sat Jan  9 20:04:24 1999  Richard Henderson  <rth@cygnus.com>
2093
2094         * tree.c (copy_node): Oops.  That would be copy not zero
2095         in that last change.
2096
2097 Sun Jan 10 15:35:41 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2098
2099         * config/c4x/c4x.c: Include system.h.
2100         (c4x_caller_save_map): Disable caller save for RC.
2101         (c4x_optimization_options): Disable scheduling before reload.
2102         (valid_parallel_load_store) : Define return type as int.  
2103         Remove unused variable regs.
2104         * config/c4x/c4x.h (REGISTER_MOVE_COST): Make independent of register
2105         class.
2106         * config/c4x/c4x.md (rotlqi3, rotrqi3): Fix up emitted RTL to
2107         handle rotations.
2108         (*db, decrement_and_branch_until_zero): Fix up constraints
2109         to keep reload happy.
2110
2111 Sat Jan  9 18:35:29 1999  Richard Henderson  <rth@cygnus.com>
2112
2113         * tree.c (make_node): Call bzero instead of inline clear.
2114         (copy_node, make_tree_vec, build1): Likewise.
2115         (get_identifier): Call strlen instead of inline count.
2116         (maybe_get_identifier): Likewise.
2117
2118 Sun Jan 10 14:04:51 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2119
2120         * config/c4x/c4x.md: (in_annul_slot_3): Allow unarycc and binarycc
2121         operations in 3rd annulled delay slot.
2122         (*lshrqi3_const_set): Disallow c constraint for operand0.
2123         (modhi3+1, modhi3+2): Set attribute type to multi.
2124         * config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of 
2125         != operator.
2126
2127 Sat Jan  9 11:44:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2128
2129         * gansidecl.h: Allow attribute unused on labels only when we are
2130         version 2.93 or higher.  Not all versions of 2.92 have this feature.
2131
2132         * version.c: Bump minor number to 93.
2133
2134 Fri Jan  8 10:51:13 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2135
2136         * config/m68k/m68k.h: Declare output_function_epilogue.
2137         * recog.h: Declare next_insn_tests_no_inequality.
2138
2139 Fri Jan  8 01:43:53 1999  Jeffrey A Law  (law@cygnus.com)
2140
2141         * stmt.c (optimize_tail_recursion): New function, extracted from ...
2142         (expand_return): Use optimize_tail_recursion.
2143         * tree.h (optimize_tail_recursion): Declare.
2144
2145         * toplev.c (compile_file): Move call to output_func_start_profiler
2146         to after the loop to emit deferred functions.
2147
2148 Thu Jan  7 19:52:53 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2149
2150         * system.h (abort): Supply more detailed information on how to
2151         report an Internal Compiler Error.
2152
2153 Thu Jan  7 11:26:17 1999  Mark Mitchell  <mark@markmitchell.com>
2154
2155         * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to
2156         allocate memory that will live beyond this function.
2157         (expand_call): Free it here.
2158
2159 Thu Jan  7 03:08:17 1999  Richard Henderson  <rth@cygnus.com>
2160
2161         * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for 
2162         integer data not destined for fp regs.
2163         (LEGITIMIZE_RELOAD_ADDRESS): New.
2164
2165 Thu Jan  7 03:03:42 1999  Stan Cox  <scox@cygnus.com>
2166                           Richard Henderson  <rth@cygnus.com>
2167
2168         Support for Hypersparc and Sparclite86x:
2169         * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New.
2170         (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets.
2171         (ASM_CPU32_DEFAULT_SPEC): Likewise.
2172         (TARGET_CPU_DEFAULT): Likewise.
2173         (enum processor_type): Likewise.
2174         (CPP_ENDIAN_SPEC): Handle little endian data.
2175         (LIBGCC2_WORDS_BIG_ENDIAN): Likewise.
2176         (ADJUST_COST): Call sparc_adjust_cost.
2177         * sparc.c (sparc_override_options): Fix up for the new targets.
2178         (supersparc_adjust_cost): Make static.
2179         (hypersparc_adjust_cost): New.
2180         (ultrasparc_adjust_cost): Make static.
2181         (sparc_adjust_cost): New.
2182         * sparc.md (attr cpu): Add hypersparc and sparclite86x.
2183         (function_unit): Add hypersparc scheduling rules.
2184
2185         * configure.in (with_cpu handler): Recognize hypersparc.
2186
2187 Thu Jan  7 23:54:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2188
2189         * config/c4x/c4x.c: Added space after negation operator.
2190         * config/c4x/c4x.h: Likewise.
2191         * config/c4x/c4x.md: Likewise.
2192
2193 Thu Jan  7 23:39:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2194
2195         * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class.
2196
2197 Thu Jan  7 00:29:25 199  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2198
2199         * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases,
2200         when a test can't be performed due to limited width of
2201         HOST_BITS_PER_WIDE_INT, use the more conservative approximation.
2202         Fix UDIV case for cases where the first operand has the highest bit
2203         set.
2204
2205 Thu Jan  7 00:01:38 1999  Lutz Vieweg <lkv@mania.robin.de>
2206
2207         * pa.h (reg_class): Add FPUPPER_REGS.
2208         (REG_CLASS_NAMES): Similarly.
2209         (REG_CLASS_CONTENTS): Similarly
2210         (REGNO_REG_CLASS): Handle FPUPPER_REGS.
2211         (FP_REG_CLASS_P): Likewise.
2212         (REG_CLASS_FROM_LETTER): Similarly.
2213         (CLASS_MAX_NREGS): Similarly.
2214
2215 1999-01-06  Brendan Kehoe  <brendan@cygnus.com>
2216
2217         * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h
2218         for a typedef of bool.  Make sure to have a copy of the file is
2219         in place before we look to fix it.  Fix typo in variable name to
2220         FILE.
2221
2222 Wed Jan  6 07:51:05 1999  Richard Henderson  <rth@cygnus.com>
2223
2224         * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use
2225         value_mode for the return mode.
2226
2227 Wed Jan  6 17:55:19 1999  Robert Lipe  <robertlipe@usa.net>
2228
2229         * configure.in: New flag --with-dwarf2.   If set, enables DWARF-2
2230         debugging as default.
2231
2232         * config/tm-dwarf2.h: New file.
2233
2234 Wed Jan  6 16:08:54 1999  Jeffrey A Law  (law@cygnus.com)
2235
2236         * h8300.h (ASM_OUTPUT_LABELREF): Define.
2237
2238         * pa.h (DONT_RECORD_EQUIVALENCE): Kill.
2239         * local-alloc.c (update_equiv_regs): Corresponding changes.
2240         * tm.texi (DONT_RECORD_EQUIVALENCE): Kill.
2241
2242         * calls.c (special_function_p): Push alloca test inside the large
2243         conditional which excludes functions not at file scope or not
2244         extern.  
2245
2246         * calls.c (special_function_p): New function broken out of
2247         expand_call.
2248         (precompute_register_parameters): Likewise.
2249         (store_one_arg): Likewise.
2250         (store_unaligned_argumetns_into_pseudos): Likewise.
2251         (save_fixed_argument_area): Likewise.
2252         (restore_fixed_argument_area): Likewise.
2253         (expand_call): Corresponding changes.
2254         
2255 Wed Jan  6 10:43:29 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2256
2257         * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX
2258         handling.
2259         (const_sint32_operand): Likewise.
2260
2261 Wed Jan  6 09:44:51 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2262
2263         * toplev.h: In addition to checking _JBLEN, also check if `setjmp'
2264         is a macro when deciding if we can use `jmp_buf' in prototypes.
2265
2266 Thu Jan  7 00:12:24 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2267
2268         * config/c4x/c4x.md (addqi3): If the destination operand is
2269         a hard register other than an extended precision register,
2270         emit addqi3_noclobber.
2271         (*addqi3_noclobber_reload): New pattern added so that reload
2272         will recognise a store of a pseudo, equivalent to the sum
2273         of the frame pointer and a constant, as an add insn.
2274
2275 Wed Jan  6 03:18:53 1999  Mark Elbrecht  <snowball3@usa.net.
2276
2277         * configure.in (pc-msdosdjgpp): Set x_make to x-go32.
2278         * configure: Rebuilt.
2279         * i386/xm-go32.h: Define LIBSTDCXX.
2280         * i386/x-go32: New.
2281         * i386/go32.h (MD_EXEC_PREFIX): Define.
2282         (FILE_NAME_ABSOLUTE_P): Define.
2283         (LINK_COMMAND_SPEC): Define.
2284
2285 Wed Jan  6 02:23:36 1999  "Charles M. Hannum" <root@ihack.net>
2286
2287         * expr.c (store_expr): If the lhs is a memory location pointed
2288         to be a postincremented (or postdecremented) pointer, always
2289         force the rhs to be evaluated into a pseudo.
2290
2291 Wed Jan  6 00:54:21 1999  Geoff Keating  <geoffk@ozemail.com.au>
2292
2293         * real.c (mtherr): Print more reasonable warning messages.
2294
2295 Tue Jan  5 21:57:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2296
2297         * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h.
2298
2299         * cccp.c: Include prefix.h, don't prototype prefix.c functions.
2300         (new_include_prefix): Constify char* parameters.
2301
2302         * cppfiles.c (read_name_map): Likewise.
2303         (append_include_chain): Likewise.  Also, use a writable char* copy
2304         of parameter `dir' which we then modify, rather than using the
2305         parameter itself to store the new writable string.
2306         (remap_filename): Constify some variables.  Also, use a writable
2307         char* to store an allocated string which we will be modifying.
2308
2309         * cpplib.c: Include prefix.h, don't prototype prefix.c functions.
2310         (cpp_start_read): Constify variable `str'.
2311
2312         * cpplib.h (append_include_chain): Constify a char* parameter.
2313
2314         * gcc.c Include prefix.h, don't prototype prefix.c functions.
2315         (add_prefix, save_string): Constify char* parameters.
2316         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
2317
2318         * prefix.c: Include prefix.h.
2319         (get_key_value, translate_name, save_string, update_path,
2320         set_std_prefix): Constify various char* parameters and variables.
2321         (save_string): Use xmalloc, not malloc.
2322         (translate_name): Use a writable temporary variable to create and
2323         modify a string before setting it to a const char*.
2324         
2325         * prefix.h: New file to prototype functions exported from prefix.c.
2326
2327 Mon Jan  4 15:37:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
2328
2329         * cpplib.c (skip_if_group): Split out the logic that handles
2330         directive recognition to its own function.  Don't use
2331         parse markers; use a bare pointer into the buffer.  Use
2332         copy/skip_rest_of_line instead of doing it by hand.  Remove
2333         `return on any directive' mode which was never used, and take
2334         only one argument.
2335         (consider_directive_while_skipping): New function, subroutine
2336         of skip_if_group.  Logic streamlined a bit.
2337         (conditional_skip, do_elif, do_else): Call skip_if_group with
2338         only one argument.
2339
2340 Mon Jan  4 15:27:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
2341
2342         * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an
2343         error.
2344
2345 Mon Jan  4 11:55:51 1999  Jason Merrill  <jason@yorick.cygnus.com>
2346
2347         * extend.texi (Bound member functions): Document.
2348
2349 Mon Jan  4 11:01:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2350
2351         * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string,
2352         lang_to_string, type_to_string): Make return type const char*.
2353         (print_symbol): Apply `const' keyword to a char*.
2354         (print_file_desc): Cast structure member `crfd' to ulong when
2355         comparing against one.
2356
2357         * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*.
2358         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
2359         (progname, input_name): Apply `const' keyword to a char*.
2360         Don't redundantly include sys/stat.h.
2361         (alloc_info): Apply `const' keyword to a char*.
2362         (st_to_string, sc_to_string): Likewise.
2363         (hash_string): Cast variable `hash_string' to a symint_t when
2364         comparing against one.
2365         (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one.
2366         Likewise cast it to long when comparing against one.
2367         (add_local_symbol): Apply `const' keyword to a char*.
2368         (add_ext_symbol): Likewise.
2369         (add_unknown_tag): Likewise.
2370         (add_procedure): Cast a printf-style field width to an int.
2371         (add_file): Cast PAGE_USIZE to long when comparing against one
2372         (parse_begin): Cast a printf-style field width to an int.
2373         (parse_bend): Likewise.
2374         (parse_def): Likewise.
2375         (parse_end): Likewise.
2376         (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED.
2377         (parse_stabs_common): Fix format specifier.
2378         (parse_input): Change type of variable `i' to Size_t.
2379         (write_object): Fix arguments to match format specifiers.
2380         Cast variable `num_write' to long when comparing against one.
2381         (read_seek): Cast variable `sys_read' to symint_t when comparing
2382         against one.  Fix arguments to match format specifiers.  Cast
2383         variable `size' to long when comparing against one.
2384         (copy_object): Cast result of `sizeof' to int when comparing
2385         against one.  Fix arguments to match format specifiers.  Cast
2386         variable `ifd' to long when comparing against a signed value.
2387         Likewise, likewise.
2388         
2389 Mon Jan  4 10:30:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2390
2391         * c-common.c (decl_attributes): Allow applying attribute `unused'
2392         on a LABEL_DECL.
2393
2394         * c-parse.in (label): Parse attributes after a label, and call
2395         `decl_attributes' to handle them.
2396
2397         * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
2398
2399         * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
2400         generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
2401
2402         * invoke.texi: Note that labels can be marked `unused'.
2403
2404 Sun Jan 3 23:32:18 PST 1999 Jeff Law  (law@cygnus.com)
2405
2406         * version.c: Bump for snapshot.
2407
2408 Sun Jan  3 23:00:42 1999  Jeffrey A Law  (law@cygnus.com)
2409
2410         * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing
2411         RTL for a compare/jump sequence.
2412         
2413 Sun Jan  3 22:58:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2414
2415         * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL
2416         for a target with HAVE_cc0 defined.
2417         (emit_cmp_and_jump_insns): New function.
2418         * expr.h (emit_cmp_and_jump_insns): Prototype it.
2419         * loop.c (check_dbra_loop): Use it to replace calls
2420         to emit_cmp_insn and emit_jump_insn and to canonicalise
2421         the comparison if necessary.
2422         * unroll.c (unroll_loop): Likewise.
2423
2424 Sun Jan  3 21:01:04 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2425
2426         * fixincludes (sys/utsname.h): Provide forward declaration of
2427         struct utsname on Ultrix V4.[35].
2428
2429         * mips.md (div_trap): Use local labels instead of dot-relative
2430         branches.
2431
2432 Sun Jan  3 20:40:34 1999  Jeffrey A Law  (law@cygnus.com)
2433
2434         * pa.md (branch, negated branch): Handle (const_int 0) as first
2435         source operand.
2436         * pa.c (output_cbranch): Likewise.
2437
2438 Sun Jan  3 03:20:38 1999  David Edelsohn  <edelsohn@mhpcc.edu>
2439
2440         * rs6000.c (rs6000_stack_info): Undo spurious part of last
2441         change.
2442
2443 1999-01-01  Manfred Hollstein  <manfred@s-direktnet.de>
2444
2445         * extend.texi (__builtin_constant_p): Add missing @smallexample.
2446
2447 Fri Jan  1 11:48:20 1999  Jeffrey A Law  (law@cygnus.com)
2448
2449         * i386.md (doubleword shifts): Fix dumb mistakes in previous change.
2450
2451 Wed Dec 30 23:38:55 1998  Jeffrey A Law  (law@cygnus.com)
2452
2453         * m68k.md (adddi_dilshr32): Allow all operands to be registers too.
2454         (adddi_dishl32): Similarly.
2455
2456         * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
2457         for each insn in the skipped block.
2458
2459         * reload1.c (reload_as_needed): Verify that the insn satisfies its
2460         constraints after replacing a register address with an autoincrement
2461         address for reload inheritance purposes.
2462
2463         * i386.md (doubleword shifts): Avoid namespace pollution.
2464
2465 Wed Dec 30 23:00:28 1998  David O'Brien <obrien@NUXI.com>
2466
2467         * configure.in (FreeBSD ELF): Needs special crt files.
2468
2469 Wed Dec 30 22:50:13 1998  Geoffrey Noer  <noer@cygnus.com>
2470
2471         * i386/xm-cygwin.h: change DIR_SEPARATOR to forward slash.
2472
2473 1998-12-30  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2474
2475         * loop.c (check_dbra_loop): While reversing the loop, if the
2476         comparison value has a VOID mode use the mode of the other operand
2477         to compute the mask.
2478
2479 Wed Dec 30 22:24:00 1998  Michael Meissner  <meissner@cygnus.com>
2480
2481         * rs6000.md ({save,restore}_stack_function): Take 2 operands to
2482         avoid warnings in compiling explow.c.
2483
2484         (patch from Ken Raeburn, raeburn@cygnus.com)
2485         * rs6000.c (rs6000_stack_info): Force 8-byte alignment of
2486         fpmem_offset.  Compute total size after that, and then
2487         rs6000_fpmem_offset using both values.
2488
2489 Mon Dec 28 19:26:32 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2490
2491         * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in
2492         the future; indeed that already happens in some cases.
2493
2494 Tue Dec 29 11:58:53 1998  Richard Henderson  <rth@cygnus.com>
2495
2496         * sparc.c (input_operand): Recognize (const (constant_p_rtx)).
2497         (arith_operand): Remove constant_p_rtx handling.
2498         (const64_operand, const64_high_operand): Likewise.
2499         (arith11_operand, arith10_operand, arith_double_operand): Likewise.
2500         (arith11_double_operand, arith10_double_operand, small_int): Likewise.
2501         (small_int_or_double, uns_small_int, zero_operand): Likewise.
2502         * sparc.h (PREDICATE_CODES): Likewise.
2503
2504         * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX.
2505
2506 Tue Dec 29 11:32:54 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>:
2507
2508         * rtl.def (CONSTANT_P_RTX): Clarify commentary.
2509         * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to
2510         consider constant CONSTRUCTOR constant and to defer some cases
2511         to cse.
2512         * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX.
2513         * regclass.c (reg_scan_mark_refs, case CONST): Likewise.
2514
2515 Tue Dec 29 11:30:10 1998  Richard Henderson  <rth@cygnus.com>
2516
2517         * expr.c (init_expr_once): Kill can_handle_constant_p recognition.
2518         * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code.
2519
2520         * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling.
2521         (reg_or_8bit_operand, cint8_operand, add_operand): Likewise.
2522         (sext_add_operand, and_operand, or_operand): Likewise.
2523         (reg_or_cint_operand, some_operand, input_operand): Likewise.
2524         * alpha.h (PREDICATE_CODES): Likewise.
2525
2526 Sat Dec 26 23:26:26 PST 1998 Jeff Law  (law@cygnus.com)
2527
2528         * version.c: Bump for snapshot.
2529
2530 Sat Dec 26 09:17:04 1998  Jeffrey A Law  (law@cygnus.com)
2531
2532         * gengenrtl.c (gencode): Always use bzero to clear memory instead
2533         of dangerous casts and stores.
2534
2535         * Makefile.in (compare, gnucompare): Add missing else true clauses.
2536
2537 Fri Dec 25 23:00:56 1998  Jeffrey A Law  (law@cygnus.com)
2538
2539         * alpha.md (builtin_longjmp): Add missing "DONE".
2540
2541 Thu Dec 24 10:39:57 1998  Stan Cox  <scox@cygnus.com>
2542
2543         * gcc.c (execute): Enable -pipe with win32.
2544
2545 Wed Dec 23 10:27:44 1998  Nick Clifton  <nickc@cygnus.com>
2546
2547         * config/arm/t-arm-elf: Add multiplib option for leading
2548         underscores.
2549
2550         * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable
2551         'user_label_prefix' rather than macro USER_LABEL_PREFIX.
2552
2553         (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather
2554         than variable 'reload_address_base_reg_class'.  [Note this
2555         change is unrelated to the others in this patch].
2556
2557         * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no
2558         leading underscore.
2559
2560 Wed Dec 23 09:51:32 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2561
2562         * alias.c (record_alias_subset): Remove ignored `&'.
2563         (init_alias_once): Likewise.
2564
2565         * c-lex.c (UNGETC): Cast first argument of comma expression to void.
2566
2567         * config/mips/mips.c (mips_asm_file_end): Cast the result of
2568         fwrite to `int' when comparing against one.
2569
2570         * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
2571         (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
2572
2573         * cse.c (rehash_using_reg): Change type of variable `i' to
2574         unsigned int.
2575
2576         * dwarf2out.c (initial_return_save): Cast -1 to unsigned before
2577         assigning it to one.
2578
2579         * except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
2580
2581         * final.c (final_scan_insn): Likewise for variable `i'.
2582         (output_asm_insn): Cast a char to unsigned char when used as an
2583         array index.
2584
2585         * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
2586         assigning it to one.
2587
2588         * loop.c (strength_reduce): Remove unused variables `count' and `temp'.
2589
2590         * recog.c (preprocess_constraints): Cast a char to unsigned char
2591         when used as an array index.
2592
2593         * regmove.c (find_matches): Likewise.
2594
2595         * reload1.c (calculate_needs): Add default case in switch.
2596         (eliminate_regs_in_insn): Initialize variable `offset'.
2597         (set_offsets_for_label): Change type of variable `i' to unsigned.
2598         (reload_as_needed): Wrap variable `i' in macro check on
2599         AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
2600
2601         * scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
2602         with ATTRIBUTE_UNUSED.  Cast variable `start_written' to size_t
2603         when comparing against one.
2604
2605         * stor-layout.c (layout_decl): Cast maximum_field_alignment to
2606         unsigned when comparing against one.  Likewise for
2607         GET_MODE_ALIGNMENT().
2608         (layout_record): Cast record_align to int when comparing against a
2609         signed value. 
2610         (layout_type): Cast TYPE_ALIGN() to int when comparing against a
2611         signed value.
2612
2613         * tree.c (get_identifier): Cast variable `len' to unsigned when
2614         comparing against one.
2615         (maybe_get_identifier): Likewise
2616
2617 Wed Dec 23 00:10:01 1998  Jeffrey A Law  (law@cygnus.com)
2618
2619         * toplev.c (rest_of_compilation): Do not set reload_completed.
2620         * reload1.c (reload): Set reload_completed before calling
2621         cleanup_subreg_operands.
2622
2623 Tue Dec 22 23:58:31 1998  Richard Henderson  <rth@cygnus.com>
2624
2625         * reload1.c (emit_reload_insns): Check `set' not null before use.
2626
2627 Tue Dec 22 15:15:45 1998  Nick Clifton  <nickc@cygnus.com>
2628
2629         * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to
2630         'int'. 
2631
2632 Tue Dec 22 13:55:44 1998  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
2633
2634         * halfpic.c (half_pic_encode): Delete redundant code.
2635
2636 Tue Dec 22 13:02:22 1998  Michael Meissner  <meissner@cygnus.com>
2637
2638         * toplev.c (main): Delete handling of -dM as a preprocessor
2639         option.
2640
2641 Mon Dec 21 17:39:38 1998  Michael Meissner  <meissner@cygnus.com>
2642
2643         * toplev.c (main): Don't emit any warnings when using -dD, -dM, or
2644         -dI, which are handled by the preprocessor.
2645
2646 Sun Dec 20 16:13:44 1998  John F. Carr  <jfc@mit.edu>
2647
2648         * configure.in: Handle Digital UNIX 5.x the same as 4.x.
2649         * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".".
2650
2651 Sun Dec 20 07:39:52 PST 1998 Jeff Law  (law@cygnus.com)
2652
2653         * version.c: Bump for snapshot.
2654
2655 Sat Dec 19 22:24:22 PST 1998 Jeff Law  (law@cygnus.com)
2656
2657         * version.c: Bump for snapshot.
2658
2659 Sat Dec 19 21:41:32 PST 1998 Jeff Law  (law@cygnus.com)
2660
2661         * version.c: Bump for snapshot.
2662
2663 Sat Dec 19 09:52:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2664
2665         * genattr.c (fatal): Qualify a char* with the `const' keyword.
2666         
2667         * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set,
2668         write_unit_name, write_eligible_delay, expand_units,
2669         make_length_attrs, write_attr_case, find_attr,
2670         make_internal_attr): Likewise.
2671         * gencheck.c (tree_codes): Likewise.
2672         * gencodes.c (fatal): Likewise.
2673         * genconfig.c (fatal): Likewise.
2674         * genemit.c (fatal): Likewise.
2675         * genextract.c (fatal, walk_rtx, copystr): Likewise.
2676         * genflags.c (fatal): Likewise.
2677         * genopinit.c (fatal, optabs, gen_insn): Likewise.
2678         * genoutput.c (fatal, error, predicates): Likewise.
2679         * genpeep.c (fatal): Likewise.
2680         * genrecog.c (fatal, decision, pred_table, add_to_sequence,
2681         write_tree_1, write_tree, change_state, copystr, indents): Likewise.
2682
2683 Thu Dec 17 18:21:49 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2684
2685         * configure.in (with-fast-fixincludes): Fix whitespace.
2686         * configure: Rebuilt.
2687
2688         * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific
2689         asm() etc. function declarations in __DECC.
2690
2691 Thu Dec 17 13:57:23 1998  Nick Clifton  <nickc@cygnus.com>
2692
2693         * expr.c (emit_move_insn_1): Only emit a clobber if the target
2694         is a pseudo register.
2695
2696 Thu Dec 17 13:50:29 1998  Nick Clifton  <nickc@cygnus.com>
2697
2698         * gcse.c: Include expr.h in order to get the prototype for
2699         get_condition() which is used in delete_null_pointer_checks(). 
2700
2701 Thu Dec 17 15:58:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2702
2703         * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros.
2704
2705 Thu Dec 17 12:31:12 1998  Jim Wilson  <wilson@cygnus.com>
2706
2707         * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS.
2708         (ALL_CFLAGS): Delete SCHED_CFLAGS.
2709
2710 1998-12-17  Vladimir N. Makarov  <vmakarov@cygnus.com>
2711
2712         * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of
2713         ';').
2714
2715 1998-12-17  Michael Tiemann  <tiemann@axon.cygnus.com>
2716
2717         * i960.md (extend*, zero_extend*): Don't generate rtl that looks
2718         like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides
2719         optimizations from the combiner.
2720
2721 Thu Dec 17 08:27:03 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2722
2723         * loop.c (combine_givs_used_by_other): Don't depend on n_times_set.
2724
2725 Wed Dec 16 17:30:35 1998  Nick Clifton  <nickc@cygnus.com>
2726
2727         * toplev.c (main): Disable optimize_size if a specific
2728         optimization level is requested.  Always set optimization
2729         level to 2 if -Os is specified.
2730
2731 Wed Dec 16 16:33:04 1998  Dave Brolley  <brolley@cygnus.com>
2732
2733         * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
2734         cpplib.
2735         * cpplib.c (cpp_start_read): If in_fname is not initialized, try to
2736         initialize it using fname.
2737
2738 1998-12-16  Zack Weinberg  <zack@rabi.phys.columbia.edu>
2739
2740         * cpplib.c (do_include): Treat #include_next in the
2741         primary source file as #include plus warning.  Treat
2742         #include_next in a file included by absolute path as an
2743         error.  fp == CPP_NULL_BUFFER is a fatal inconsistency.
2744
2745 Wed Dec 16 12:28:54 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2746
2747         * cccp.c: Don't define MIN/MAX anymore.
2748         * cpplib.c: Likewise.
2749         * machmode.h: Likewise.
2750         * system.h: Provide definitions for MIN/MAX.
2751
2752 Tue Dec 15 23:47:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
2753
2754         * fix-header.c: Don't define xstrdup here.
2755
2756 Wed Dec 16 05:11:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2757
2758         * loop.c (consec_sets_giv): New argument last_consec_insn.
2759         (strength_reduce): Provide / use it.
2760
2761 Wed Dec 16 17:24:07 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2762
2763         * loop.h (loop_info): New field 'vtop'.
2764         * loop.c (check_dbra_loop):  Use loop_info->vtop rather than
2765         scanning loop for vtop.
2766         * unroll.c (subtract_reg_term, find_common_reg_term): New functions.
2767         (loop_iterations): Use them to determine if loop has a constant
2768         number of iterations.  Set loop_info->vtop.  Don't subtract
2769         common reg term from initial_value and final_value if have a
2770         do-while loop.
2771
2772 Tue Dec 15 13:49:55 1998  Jeffrey A Law  (law@cygnus.com)
2773
2774         * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2.
2775
2776         * mn10300.md (bset, bclr): Operand 0 is a read/write operand.
2777
2778         * mn10200.md (abssf2, negsf2): New expanders.
2779
2780         * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders.
2781
2782 Tue Dec 15 11:55:30 1998  Nick Clifton  <nickc@cygnus.com>
2783
2784         * integrate.c (copy_rtx_and_substitute): If a SUBREG is
2785         replaced by a CONCAT whoes components do not have the same
2786         mode as the original SUBREG, use a new SUBREG to restore the
2787         mode. 
2788
2789         * emit-rtl.c (subreg_realpart_p): Cope with subregs containing
2790         multiword complex values.
2791
2792 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
2793
2794         * cppalloc.c: Add xstrdup here.
2795         * cpplib.h: Remove savestring prototype.
2796         * cpplib.c: Remove savestring function. s/savestring/xstrdup/
2797           throughout. 
2798         * cppfiles.c: s/savestring/xstrdup/ throughout.
2799
2800 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
2801
2802         * cpplib.c: Make all directive handlers read their own
2803           arguments.
2804           (struct directive): Remove last two arguments from FUNC
2805           member prototype. Remove `command_reads_line' member
2806           entirely.
2807           (directive_table): Remove initializations of
2808           command_reads_line flag.  Pretty-print.
2809           (eval_if_expression, do_define, do_line, do_include,
2810           do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef,
2811           do_else, do_elif, do_sccs, do_assert, do_unassert,
2812           do_warning): Take only two args.
2813
2814           (cpp_define): Call do_define with two args and the text to
2815           define stuffed into a buffer.
2816           (make_assertion): Call do_assert with two args.
2817           (handle_directive): Call do_line with two args. Call
2818           kt->func with two args.  Remove command_reads_line
2819           processing.
2820           (do_define, do_undef, do_error, do_warning, do_pragma,
2821           do_sccs): Read the rest of the line here.
2822           (do_ident): Gobble rest of line, as cccp does.
2823           (cpp_undef): New function.
2824           (cpp_start_read): Call cpp_undef instead of do_undef.
2825
2826 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
2827
2828         * cpphash.h (union hash_value): Remove `keydef' member, add a
2829           `struct hashnode *aschain' member for #assert.  
2830
2831           * cpplib.c (struct tokenlist_list, struct
2832           assertion_hashnode): Delete structure definitions.
2833           (assertion_install, assertion_lookup, delete_assertion,
2834           check_assertion, compare_token_lists, reverse_token_list,
2835           read_token_list, free_token_list): Delete functions.
2836           (parse_assertion): New function.  
2837           (cpp_cleanup): Don't destroy the assertion_hashtable.
2838
2839           (do_assert): Gut and rewrite.  #assert foo (bar) places
2840           entries for `#foo' and `#foo(bar)' in the macro hash table,
2841           type T_ASSERT.  The value union's `aschain' member is used
2842           to chain all answers for a given predicate together.
2843           (do_unassert): Also rewritten.  Take an un-asserted
2844           answer off the chain from its predicate and call
2845           delete_macro on the hashnode, or walk a predicate chain
2846           calling delete_macro on all the entries.
2847           (cpp_read_check_assertion): Simply call parse_assertion to
2848           get the canonical assertion name, and look that up in the
2849           hash table.
2850
2851         * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab):
2852         Removed.
2853
2854         * cpphash.c (install): Use bcopy instead of an explicit loop
2855           to copy the macro name.
2856
2857         * cppexp.c (cpp_lex): Convert the result of
2858           cpp_read_check_assertion to a `struct operation' directly;
2859           don't go through parse_number.
2860
2861 Tue Dec 15 18:27:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2862
2863         * loop.h (struct induction): Delete times_used member.
2864         * loop.c (n_times_set): Rename to set_in_loop.  Changed all users.
2865         (n_times_used): Rename to n_times_set.  Changed all users.
2866         (scan_loop): Free reg_single_usage before strength reduction.
2867         (record_giv, combine_givs): Remove handling of times_used member.
2868         (combine_givs_used_once): Rename to:
2869         (combine_givs_used_by_other) .  Changed all callers.
2870
2871 Tue Dec 15 01:45:26 1998  Jason Merrill  <jason@yorick.cygnus.com>
2872
2873         * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P
2874         instead of TREE_CODE_CLASS == 't'.
2875         (gen_type_die): Likewise.
2876         (scope_die_for): Ignore FUNCTION_TYPE "scopes".
2877
2878 Mon Dec 14 16:23:27 1998  Jim Wilson  <wilson@cygnus.com>
2879
2880         * real.c (endian): Disable last change unless
2881         HOST_BITS_PER_WIDE_INT is greater than 32.
2882
2883 Mon Dec 14 17:13:36 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
2884
2885         * output.h (force_data_section): New prototype.
2886         * varasm.c (force_data_section): New function to force the
2887         data section, regardless of what in_section thinks.
2888         * dwarf2out.c (output_call_frame_info): Call force_data_section
2889         since varasm may not realize we've changes sections.
2890
2891 Mon Dec 14 14:09:34 1998  Nick Clifton  <nickc@cygnus.com>
2892
2893         * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes
2894           after completeing reload.
2895
2896         * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are
2897           deleted after reload.
2898
2899 Mon Dec 14 01:39:28 1998  Jeffrey A Law  (law@cygnus.com)
2900
2901         * rtl.h (multiple_sets): Fix prototype.
2902         * rtlanal.c (multiple_sets): Fix return type.
2903
2904 Sun Dec 13 12:43:58 PST 1998 Jeff Law  (law@cygnus.com)
2905
2906         * version.c: Bump for snapshot.
2907
2908 Sun Dec 13 01:05:22 PST 1998 Jeff Law  (law@cygnus.com)
2909
2910         * version.c: Bump for snapshot.
2911
2912 1998-12-13  Manfred Hollstein  <manfred@s-direktnet.de>
2913
2914         * protoize.c (fputs): Wrap extern declaration in #ifndef fputs.
2915
2916 Sun Dec 13 00:24:14 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2917
2918         * rtl.h (recompute_reg_usage): Add second argument.
2919         * flow.c (recompute_reg_usage): Likewise.
2920         * toplev.c (rest_of_compilation): Supply second argument to
2921         recompute_reg_usage.
2922
2923         * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0
2924         after reload.
2925
2926 Sat Dec 12 23:39:10 1998  Jeffrey A Law  (law@cygnus.com)
2927
2928         * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32.
2929         (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000.
2930         (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000,
2931         mcpu32 or m5200.
2932
2933         * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character.
2934
2935         * rtlanal.c (multiple_sets): New function.
2936         * rtl.h (multiple_sets): Declare it.
2937         * local-alloc.c (wipe_dead_reg): Use it.
2938         * global.c (global_conflicts): Likewise.
2939
2940 Sat Dec 12 22:13:02 1998  Mark Mitchell  <mark@markmitchell.com>
2941
2942         * global.c (record_conflicts): Don't use an array of shorts to
2943         store an array of ints.
2944         (global_conflicts): Likewise.
2945
2946 Sat Dec 12 16:49:24 1998  Richard Henderson  <rth@cygnus.com>
2947
2948         * alpha.c (alpha_expand_block_move): mode_for_size expects
2949         bits, not bytes.  Infer extra alignment from addressof.
2950
2951 1998-12-11  Michael Meissner  <meissner@cygnus.com>
2952
2953         * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the
2954         .sbss section, not .sdata.
2955
2956 1998-12-11  Manfred Hollstein  <manfred@s-direktnet.de>
2957
2958         * cccp.c: Do not #include <sys/stat.h> here; this is already done
2959         by "system.h".
2960         * collect2.c: Likewise.
2961         * cpplib.h: Likewise.
2962         * gcc.c: Likewise.
2963         * gcov.c: Likewise.
2964         * getpwd.c: Likewise.
2965         * protoize.c: Likewise.
2966         * toplev.c: Likewise.
2967
2968         * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h"
2969         and don't try to define it here.
2970         * Makefile.in (cppmain.o): Depend on machmode.h.
2971         (cpplib.o): Likewise.
2972         (cpperror.o): Likewise.
2973         (cppexp.o): Likewise.
2974         (cppfiles.o): Likewise.
2975         (cpphash.o): Likewise.
2976         (cppalloc.o): Likewise.
2977         (fix-header.o): Likewise.
2978         (scan-decls.o): Likewise.
2979
2980 Fri Dec 11 11:02:49 1998  Stan Cox  <scox@cygnus.com>
2981
2982         * sh.c (print_operand): lookup interrupt_handler attribute instead
2983         of relying on static variable. 
2984         * (calc_live_regs): Likewise.
2985         * (sh_pragma_insert_attributes): Create interrupt_handler
2986         attribute if a pragma was specified
2987         * (sh_valid_machine_decl_attribute): Don't set static flag.
2988         * sh.h (PRAGMA_INSERT_ATTRIBUTES): New.
2989
2990 Fri Dec 11 12:56:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2991
2992         * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START
2993         to determine if a register is live at a jump destination.
2994         Everything is dead at a BARRIER.
2995
2996 Thu Dec 10 16:02:06 1998  Jim Wilson  <wilson@cygnus.com>
2997
2998         * cse.c (simplify_unary_operation): Sign-extend constants when
2999         they have the most significant bit set for the target.
3000         * real.c (endian): Sign-extend 32 bit output values on a 64 bit
3001         host.
3002         * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in
3003         HOST_WIDE_INT temporary before negating it.
3004         * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000.
3005
3006 Thu Dec 10 15:05:59 1998  Dave Brolley  <brolley@cygnus.com>
3007
3008         * objc/objc-act.c (lang_init_options): Enclose cpplib related code in
3009         #if USE_CPPLIB.
3010
3011 Thu Dec 10 13:39:46 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3012
3013         * collect2.h: New header file for prototypes.
3014
3015         * Makefile.in (collect2.o, tlink.o): Depend on collect2.h.
3016
3017         * collect2.c: Include collect2.h.
3018         * tlink.c: Likewise.
3019
3020 Wed Dec  9 23:55:11 1998  Jeffrey A Law  (law@cygnus.com)
3021
3022         * flow.c: Update some comments.
3023
3024 Wed Dec  9 15:29:26 1998  Dave Brolley  <brolley@cygnus.com>
3025
3026         * objc/objc-act.c (cpp_initialized): Removed.
3027         (lang_init_options): Initialize cpplib.
3028         (lang_decode_option): Move initialization of cpplib to
3029         lang_init_options.
3030         * c-lang.c: (parse_options,parse_in): Added.
3031         (lang_init_options): Initialized cpplib here.
3032         * c-decl.c (parse_options,cpp_initialized): Removed.
3033         (c_decode_option): Move initialization of cpplib to
3034         lang_init_options.
3035
3036 Wed Dec  9 19:36:57 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3037
3038         * reload1.c (reload_combine, reload_combine_note_store):
3039         Make STORE_RUID always valid.
3040         (reload_combine): Check if BASE is clobbered too early.
3041
3042 Wed Dec  9 09:53:58 1998  Nick Clifton  <nickc@cygnus.com>
3043
3044         * reload.c (find_reloads): Display the insn that cannot be
3045         reloaded. 
3046
3047 Wed Dec  9 12:15:26 1998  Dave Brolley  <brolley@cygnus.com>
3048
3049         * cccp.c (create_definition): Fix end of bufer logic.
3050
3051 Wed Dec  9 10:15:45 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3052
3053         * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function
3054         pointer parameters changed to use the PARAMS() macro.
3055
3056 Wed Dec  9 09:12:40 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
3057
3058         * except.h (struct handler_info): Add handler_number field.
3059         * except.c (gen_exception_label): EH labels no longer need to be
3060         on the permanent obstack.
3061         (get_new_handler): Set the label number field.
3062         (output_exception_table_entry): Regenerate handler label reference 
3063         from the label number field.
3064         (init_eh): Remove a blank line.
3065         * integrate.c (get_label_from_map): Labels no longer need to be
3066         on the permanent obstack.
3067
3068 Tue Dec  8 22:04:33 1998  Jim Wilson  <wilson@cygnus.com>
3069
3070         * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand
3071         only when OUTER_CODE is SET.
3072
3073 Tue Dec  8 22:47:15 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3074
3075         * loop.c (strength_reduce): If scan_start points to the loop exit
3076         test, be wary of subversive use of gotos inside expression statements.
3077         Don't set maybe_multiple for a backward jump that does not
3078         include the label under consideration into its range.
3079         * unroll.c (biv_total_increment): Make use of maybe_multiple field.
3080
3081 Tue Dec  8 22:33:18 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3082
3083         * explow.c (plus_constant_wide): Don't immediately return with
3084         result of recursive call.
3085
3086 Tue Dec  8 15:32:56 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
3087
3088         * eh-common.h (struct eh_context): Add table_index for rethrows.
3089
3090         * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes.
3091         (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be
3092         processed when inlined or unrolled (ie duplicated in some way).
3093
3094         * rtl.c (reg_note_name): Add strings for new reg_note enums.
3095
3096         * expr.h (rethrow_libfunc): New library decl.
3097
3098         * optabs.c (rethrow_libfunc): Initialize.
3099
3100         * except.h (struct eh_entry): Add new field 'rethrow_label'.
3101         (new_eh_region_entry): No longer exported from except.c.
3102         (duplicate_handlers): Renamed to duplicate_eh_handlers and 
3103         different prototype.
3104         (rethrow_symbol_map, rethrow_used): New exported functions.
3105         (eh_region_from_symbol): New exported function.
3106
3107         * except.c (create_rethrow_ref): New function to create a single
3108         SYMBOL_REF for a rethrow region.  
3109         (push_eh_entry): Initialize a rethrow ref.
3110         (func_eh_entry): Add a rethrow_label field.
3111         (new_eh_region_entry): Make static, and initialize the rethrow entry.
3112         (duplicate_eh_handlers): Create a new region, and remap labels/symbols.
3113         (eh_region_from_symbol): Find an EH region based on its rethrow symbol.
3114         (rethrow_symbol_map): Given a label map, maps a rethrow symbol for 
3115         a region into an appropriate new symbol.
3116         (rethrow_used): Indicate whether a rethrow symbol has been referenced.
3117         (expand_eh_region_end): Don't issue jump around code for new-exceptions.
3118         (end_catch_handler): Emit a barrier for new-exceptions since 
3119         control can never drop through the end of a catch block.
3120         (expand_end_all_catch): new-exceptions never fall through a catch 
3121         block.
3122         (expand_rethrow): use __rethrow routine for new exceptions.
3123         (output_exception_table_entry): Generate rethrow labels, if needed.
3124         (output_exception_table): Generate start and end rethrow labels.
3125         (init_eh): Create rethrow symbols for beginning and end of table.
3126         (scan_region): Don't eliminate EH regions which are the targets of
3127         rethrows.
3128
3129         * flow.c (make_edges): Add different edges for rethrow calls, 
3130         identified by having the REG_EH_RETHROW reg label.
3131         (delete_unreachable_blocks): Don't delete regions markers which are 
3132         the target of a rethrow.
3133
3134         * integrate.c (save_for_inline_eh_labelmap): New callback routine to 
3135         allow save_for_inline_copying to call duplicate_eh_handlers.
3136         (save_for_inline_copying): Call duplicate_eh_handlers instead of
3137         exposing internal details of exception regions.
3138         (copy_for_inline): Check if SYMBOL_REFs need adjustment.
3139         (expand_inline_function_eh_labelmap):  New callback routine to 
3140         allow expand_inline_function to call duplicate_eh_handlers.
3141         (expand_inline_function): Call duplicate_eh_handlers instead of
3142         exposing internal details of exception regions.
3143         (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST
3144         flag is set.
3145
3146         * libgcc2.c (find_exception_handler): Generalize to enable it to
3147         pick up processing where it left off last time for a rethrow.
3148         (__unwinding_cleanup): New function. debug hook which is called before
3149         unwinding when __throw finds there is nothing but cleanups left.
3150         (throw_helper): Common parts of __throw extracted out for reuse.
3151         (__throw): Common parts moved to throw_helper.
3152         (__rethrow): New function for performing rethrows.
3153
3154 Tue Dec  8 13:11:04 1998  Jeffrey A Law  (law@cygnus.com)
3155
3156         * reload1.c (current_function_decl): Tweak declaration.
3157
3158 Tue Dec  8 10:23:52 1998  Richard Henderson  <rth@cygnus.com>
3159
3160         * c-decl.c (flag_isoc9x): Default off.
3161         (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x.
3162         * cccp.c (print_help, main): Likewise.
3163         * gcc.c (default_compilers): Update for -std=gnu*.
3164
3165 Tue Dec  8 01:14:46 1998  Jeffrey A Law  (law@cygnus.com)
3166
3167         * Makefile.in (DEMANGLE_H): Change location to shared demangle.h.
3168         * demangle.h: Deleted.
3169
3170         * reload1.c (current_function_decl): Declare.
3171
3172 Tue Dec  8 11:58:51 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3173
3174         * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'.
3175
3176 Tue Dec  8 09:28:36 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3177
3178         * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set.
3179
3180 1998-12-08  Ulrich Drepper  <drepper@cygnus.com>
3181
3182         * configure.in: Test for availability of putc_unlocked, fputc_unlocked,
3183         and fputs_unlocked.
3184         * configure: Rebuilt.
3185         * system.h: If the *_unlocked functions are available use them
3186         instead of the locked counterparts by defining macros.
3187         * config.in: Regenerated.
3188
3189 Tue Dec  8 00:34:05 1998  Mike Stump  <mrs@wrs.com>
3190
3191         * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is
3192         wrong and should only be used for dump related things, not
3193         debugging information, instead main_input_filename should be used.
3194         Also, reuse output_file_directive if possible.
3195         * i386/aix386ng.h (ASM_FILE_START): Likewise.
3196         * i386/isc.h (ASM_FILE_START): Likewise.
3197         * i386/win-nt.h (ASM_FILE_START): Likewise.
3198         * i386/sun386.h (ASM_FILE_START): Likewise.
3199
3200 Mon Dec  7 23:56:28 1998   Robert Lipe  <robertl@dgii.com>
3201
3202         * configure.in (mips*-*-linux*): Handle big and little endian
3203         systems.
3204         * configure: Rebuilt.
3205
3206 Mon Dec  7 23:14:51 1998  Mike Stump <mrs@wrs.com>
3207
3208         * emit-rtl.c: Fix typo.
3209
3210 Mon Dec  7 23:07:38 1998  Nathan Sidwell  <nathan@acm.org>
3211
3212         * reload1.c (eliminate_regs): Don't do anything, if we're not
3213         generating code.
3214
3215 Mon Dec  7 15:27:09 1998  DJ Delorie  <dj@cygnus.com>
3216
3217         * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA.
3218         Add comment.
3219         * mips/mips.c (mips_select_section): Add comment.
3220
3221 Mon Dec  7 17:55:06 1998  Mike Stump  <mrs@wrs.com>
3222
3223         * cccp.c (ignore_escape_flag): Add support for \ as `natural'
3224         characters in file names in #line to be consistent with #include
3225         handling.  We support escape prcessing in the # 1 "..." version of
3226         the command.  See also support in cp/lex.c.
3227         (handle_directive): Likewise.
3228         (do_line): Likewise.
3229         
3230 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3231
3232         * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM
3233           so it'll work on non-ASCII platforms.  Always consider $ an
3234           identifier character.  Take no arguments.
3235           (cpp_reader_init): Call initialize_char_syntax with no
3236           arguments.
3237           (cpp_start_read): Don't call initialize_char_syntax again.
3238           Clear is_idchar['$'] and is_idstart['$'] if not
3239           opts->dollars_in_ident.
3240
3241         * cpplib.h (struct cpp_reader): Replace void *data element by
3242           cpp_options *opts.  Rearrange elements to make gdb printout
3243           less annoying (put buffer stack at end).
3244           (CPP_OPTIONS): Get rid of now-unnecessary cast.
3245
3246         * cppmain.c: s/data/opts/ when initializing cpp_reader
3247           structure.
3248         * c-decl.c: Likewise.
3249         * objc/objc-act.c: Likewise.
3250         * fix-header.c: Likewise.
3251
3252 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3253
3254         * cpplib.h (struct cpp_buffer): Replace dir and dlen members
3255         with a struct file_name_list pointer.
3256         (struct cpp_reader): Add pointer to chain of `actual
3257         directory' include searchpath entries.
3258         (struct file_name_list): Add *alloc pointer for the sake of
3259         the actual-directory chain.
3260
3261         Move definition of HOST_WIDE_INT here.
3262         (cpp_parse_escape): Change prototype to match changes in
3263         cppexp.c.
3264
3265         * cppfiles.c (actual_directory): New function.
3266         (finclude): Use it to initialize the buffer's actual_dir
3267         entry.
3268         (find_include_file): We don't need to fix up max_include_len
3269         here.
3270
3271         * cpplib.c (do_include): Don't allocate a file_name_list on
3272         the fly for current directory "" includes, use the one that's
3273         been preallocated in pfile->buffer->actual_dir.  Hoist out
3274         duplicate code from the search_start selection logic.
3275         (cpp_reader_init): Initialize pfile->actual_dirs.
3276
3277         Remove definition of HOST_WIDE_INT.  Change calls
3278         to cpp_parse_escape to match changes in cppexp.c (note
3279         hardcoded MASK, which is safe since this is the source
3280         character set).
3281
3282         * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c
3283         to handle wide character constants in #if directives.  The
3284         function now returns a HOST_WIDE_INT, and takes a third
3285         argument which is a binary mask for all legal values (0x00ff
3286         for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.)  Define
3287         MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK.  Change callers of
3288         cpp_parse_escape to match.  [Fixes c-torture/execute/widechar-1.c]
3289
3290 Mon Dec  7 15:38:25 1998  Dave Brolley  <brolley@cygnus.com>
3291
3292         * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1.
3293
3294 Mon Dec  7 15:38:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3295
3296         * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB.
3297         * cppalloc.c: Move function `xcalloc' from cpplib.c to here.
3298         * cpplib.c: Move function `xcalloc' from here to cppalloc.c.
3299
3300 Mon Dec  7 11:30:49 1998  Nick Clifton  <nickc@cygnus.com>
3301
3302         * final.c (output_asm_name): Use tabs to seperate comments from
3303         assembly text.
3304         
3305         Include instruction lengths (if defined) in output.
3306
3307 Mon Dec  7 10:53:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3308
3309         * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value
3310         in the loop_info structure.
3311         
3312 Mon Dec  7 11:04:40 1998  Catherine Moore  <clm@cygnus.com>
3313  
3314         * configure.in:  (arm*-*-ecos-elf):  New target.
3315         * configure:  Regenerated.
3316         * config/arm/elf.h (ASM_WEAKEN_LABEL):  Define.
3317         * config/arm/ecos-elf.h:  New file.
3318         * config/arm/unknown-elf.h (TARGET_VERSION):  Check
3319         for redefinition.
3320  
3321 Mon Dec  7 16:15:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3322
3323         * sh.c (output_far_jump): Emit braf only for TARGET_SH2.
3324
3325 Sun Dec 6 04:19:45 PST 1998 Jeff Law  (law@cygnus.com)
3326
3327         * version.c: Bump for snapshot.
3328
3329 Sun Dec  6 05:16:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3330
3331         * loop.c (check_dbra_loop): New argument loop_info.  Update fields
3332         as needed.
3333
3334 Sun Dec 6 03:40:13 PST 1998 Jeff Law  (law@cygnus.com)
3335
3336         * version.c: Bump for snapshot.
3337
3338 Sun Dec  6 07:49:29 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
3339
3340         * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger
3341         compressed reports are ok and preferred over URLs
3342
3343 Sun Dec  6 07:45:33 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
3344
3345         * invoke.texi (Warning Options): Soften the tone of -pedantic
3346
3347 Sun Dec  6 00:20:44 1998  H.J. Lu  (hjl@gnu.org)
3348
3349         * print-rtl.c (print_rtx): Add prototype.
3350
3351         * unroll.c (iteration_info): Make it static.
3352
3353 Sun Dec  6 01:19:46 1998  Richard Henderson  <rth@cygnus.com>
3354
3355         * alias.c (memrefs_conflict_p): A second ANDed address
3356         disables the aligned address optimization.
3357
3358 Sat Dec  5 18:48:25 1998  Richard Henderson  <rth@cygnus.com>
3359
3360         * alpha.c (alpha_emit_set_const_1): Fix parenthesis error
3361         in -c << n case.
3362
3363 Sat Dec  5 15:14:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
3364
3365         * i960.h (BOOL_TYPE_SIZE): Define.
3366
3367 Sun Dec  6 00:28:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3368
3369         * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality
3370         from old valid_parallel_operands_4.
3371         (valid_parallel_operands_4): Check that operands for 4 operand
3372         parallel insns are valid, excluding load/store insns.
3373         * config/c4x/c4x.h (valid_parallel_load_store): Add prototype.
3374         * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use
3375         valid_parallel_load_store instead of valid_parallel_operands_4.
3376         (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber, 
3377         *negqf2_movqf_clobber, *absqi2_movqi_clobber,
3378         *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber,
3379         *notqi_movqi_clobber): Use valid_parallel_operands_4.
3380         (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber,
3381         *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber,
3382         *subqi3_movqi_clobber): Use valid_parallel_operands_5.
3383
3384 Sat Dec  5 23:52:01 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3385
3386         * config/c4x/c4x.c (iteration_info): Delete extern.
3387
3388 Fri Dec  4 20:15:57 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
3389
3390         * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality.
3391
3392         * final.c (cleanup_subreg_operands): Delete some unused code.
3393
3394         * recog.h (MAX_RECOG_ALTERNATIVES): New macro.
3395         (struct insn_alternative): New structure definition.
3396         (recog_op_alt): Declare variable.
3397         (preprocess_constraints): Declare function.
3398         * recog.c (recog_op_alt): New variable.
3399         (extract_insn): Verify number of alternatives is in range.
3400         (preprocess_constraints): New function.
3401         * reg-stack.c: Include recog.h.
3402         (constrain_asm_operands): Delete.
3403         (get_asm_operand_lengths): Delete.
3404         (get_asm_operand_n_inputs): New function.
3405         (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and
3406         N_OUTPUTS args.  All callers changed.
3407         Compute number of inputs and outputs here by calling
3408         get_asm_operand_n_inputs.
3409         Instead of constrain_asm_operands, call extract_insn,
3410         constrain_operands and preprocess_constaints.  Use information
3411         computed by these functions throughout.
3412         (record_reg_life): Delete code that is unused due to changes in
3413         record_asm_reg_life.
3414         (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS,
3415         N_INPUTS and N_OUTPUTS args.  All callers changed.
3416         Similar changes as in record_asm_reg_life.
3417         (subst_stack_regs): Move n_operands declaration into the if statement
3418         where it's used.
3419         Delete code that is unused due to changes in subst_asm_stack_regs.
3420         * stmt.c (expand_asm_operands): Verify number of alternatives is in
3421         range.
3422         * Makefile.in (reg-stack.o): Depend on recog.h.
3423
3424 Fri Dec  4 02:23:24 1998  Jeffrey A Law  (law@cygnus.com)
3425
3426         * except.c (set_exception_version_code): Argument is an "int".
3427
3428 Fri Dec  4 01:29:28 1998  Jeffrey A Law  (law@cygnus.com)
3429
3430         * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now.
3431         * configure: Rebuilt.
3432
3433 Fri Dec  4 01:29:28 1998  Robert Lipe  <robertl@dgii.com>
3434
3435         * configure.in (mipsel-*-linux*): New target.
3436         * mips/linux.h: New file, based on other Linux targets.
3437
3438 Thu Dec  3 11:19:50 1998  Mike Stump  <mrs@wrs.com>
3439
3440         * gthr-vxworks.h (__ehdtor): Fix memory leak.  The delete hook
3441         runs in the context of the deleter, not the deletee, so we must
3442         use taskVarGet to find the correct memory to free.
3443         (__gthread_key_create): Initialize the task
3444         variable subsystem so that the task variable is still active when
3445         the delete hook is run.
3446
3447 1998-12-03  Joseph S. Myers  <jsm28@cam.ac.uk>
3448
3449         * pdp11.h: Use optimize_size for space optimizations.
3450         * pdp11.c: Likewise.
3451         * pdp11.md: Likewise.
3452
3453         * pdp11.h (TARGET_40_PLUS): Fix typo.
3454
3455 Thu Dec  3 11:48:32 1998  Jeffrey A Law  (law@cygnus.com)
3456
3457         * local-alloc.c (block_alloc): Slightly retune heuristic to widen 
3458         qty lifetimes.
3459
3460 Thu Dec  3 22:30:18 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3461
3462         * alias.c (addr_side_effect_eval): New function.
3463         (memrefs_conflict_p): Use it.
3464         * rtl.h (addr_side_effect_eval): Prototype it.
3465
3466 1998-12-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3467
3468         * pdp11.md (extendsfdf2): Fix mode mismatch in SET.
3469
3470 Wed Dec  2 11:23:07 1998  Jim Wilson  <wilson@cygnus.com>
3471
3472         * reload.c (find_reloads): When force const to memory, put result
3473         in substed_operand not *recog_operand_loc.
3474
3475 1998-12-02  Ulrich Drepper  <drepper@cygnus.com>
3476
3477         * c-lex.c: Fix indentation from last patch.
3478         Remove trailing whitespace.
3479         * real.c: Likewise.
3480
3481 Wed Dec  2 10:11:12 1998  Jeffrey A Law  (law@cygnus.com)
3482
3483         * flow.c (delete_block): Call set_last_insn after we have reset
3484         NEXT_INSN (kept_tail).
3485
3486 Wed Dec  2 00:47:31 1998  Jeffrey A Law  (law@cygnus.com)
3487
3488         * mips.md (trap_if): Use "$0" for the value zero.
3489
3490 Tue Dec  1 20:49:49 1998  Ulrich Drepper  <drepper@cygnus.com>
3491                           Stephen L Moshier  <moshier@world.std.com>
3492                           Richard Henderson  <rth@cygnus.com>
3493
3494         * c-common.c (declare_function_name): Declare predefinied variable
3495         `__func__'.
3496
3497         * c-decl.c (flag_isoc9x): Set to 1 by default.
3498         (c_decode_option): Handle -std= option.  Remove -flang-isoc9x.
3499         (grokdeclarator): Always emit warning about implicit int for ISO C 9x.
3500
3501         * c-parse.in: Allow constructors in ISO C 9x.
3502         Rewrite designator list handling.
3503         Allow [*] parameters.
3504         Don't warn about comma at end of enum definition for ISO C 9x.
3505
3506         * cccp.c (c9x): New variable.
3507         (rest_extension): New variable.
3508         (print_help): Document new -std= option.
3509         (main): Recognize -std= option.  Set c9x appropriately.
3510         (create_definition): Recognize ISO C 9x vararg macros.
3511
3512         * gcc.c (default_compilers): Adjust specs for -std options.
3513         (option_map): Add --std.
3514         (display_help): Document -std.
3515
3516         * toplev.c (documented_lang_options): Add -std and remove
3517         -flang-isoc9x.
3518         
3519         * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
3520         or REAL_VALUE_HTOF based on base of the constants.
3521         * fold-const.c (real_hex_to_f): New function.  Replacement function
3522         for hex FP conversion if REAL_ARITHMETIC is not defined.
3523         * real.c (asctoeg): Add handling of hex FP constants.
3524         * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
3525         real_hex_to_f.
3526
3527 Tue Dec  1 16:45:49 1998  Stan Cox  <scox@cygnus.com>
3528
3529         * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add
3530         -mcheck-range-division/-mcheck-zero-division checking.  Avoid as macro
3531         expansion.  Use hi/lo as destination register.
3532         (div_trap): New.
3533         (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*,
3534         umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking.
3535         Avoid as macro expansion.  Use hi/lo as destination register. 
3536
3537         * mips.h (MASK_CHECK_RANGE_DIV): New.
3538         (MASK_NO_CHECK_ZERO_DIV): New.
3539         (ELIMINABLE_REGS): Added GP_REG_FIRST + 31.
3540         (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting
3541         return address for leaf functions out of r31 to support
3542         builtin_return_address. 
3543         
3544 Tue Dec  1 15:03:30 1998  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3545
3546         * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x),
3547         NEXT_INSN(x) to check insn x.
3548         
3549 Tue Dec  1 15:20:44 1998  Jeffrey A Law  (law@cygnus.com)
3550
3551         * flow.c (delete_block): Call set_last_insn if we end up deleting the
3552         last insn in the rtl chain.
3553
3554         * reload1.c (reload): Do not set reload_completed or split insns
3555         here.  Instead...
3556         * toplev.c (rest_of_compilation): Set reload_completed after
3557         reload returns.  Split insns after reload_cse has run.
3558
3559 Tue Dec  1 11:55:04 1998  Richard Henderson  <rth@cygnus.com>
3560
3561         * final.c (final_scan_insn): Abort if block_depth falls below 0.
3562
3563 Tue Dec  1 10:23:16 1998  Nick Clifton  <nickc@cygnus.com>
3564
3565         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc.
3566
3567 Tue Dec  1 10:22:18 1998  Nick Clifton  <nickc@cygnus.com>
3568
3569         * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove
3570         use of user-label_prefix.
3571
3572 Tue Dec  1 17:58:26 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3573
3574         * reload1.c (emit_reload_insns): Clear spill_reg_store
3575         when doing a new non-inherited reload from the same pseudo.
3576
3577         * local-alloc.c (function_invariant_p): New function.
3578         (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P
3579         to decide if an equivalence should be recorded.
3580         * reload1.c (num_eliminable_invariants): New static variable.
3581         (reload): Set it.  Use function_invariant_p instead of CONSTANT_P
3582         to decide if an equivalence should be recorded.
3583         Unshare PLUS.
3584         (calculate_needs_all_insns): Skip insns that only set an equivalence.
3585         Take num_eliminable_invariants into account when deciding
3586         if register elimination should be done.
3587         (reload_as_needed): Take num_eliminable_invariants into account
3588         when deciding if register elimination should be done.
3589         (eliminate_regs): Handle non-constant reg_equiv_constant.
3590         * rtl.h (function_invariant_p): Declare.
3591
3592 Mon Nov 30 02:00:08 PST 1998 Jeff Law  (law@cygnus.com)
3593
3594         * version.c: Bump for snapshot.
3595
3596 Mon Nov 30 00:42:59 PST 1998 Jeff Law  (law@cygnus.com)
3597
3598         * version.c: Bump for snapshot.
3599
3600 Sun Nov 29 22:59:40 1998  Jason Merrill  <jason@yorick.cygnus.com>
3601
3602         * except.c (add_new_handler): Complain about additional handlers
3603         after one that catches everything.
3604
3605 Sat Nov 28 10:56:32 1998  Jeffrey A Law  (law@cygnus.com)
3606
3607         * configure.in (alpha*-*-netbsd): Fix typo.
3608         * configure: Rebuilt.
3609
3610 Fri Nov 27 12:28:56 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3611
3612         * system.h: Include libiberty.h.
3613
3614         * c-aux-info.c: Remove prototypes for concat/concat3.  Change
3615         function `concat' from fixed parameters to variable parameters,
3616         as is done in libiberty.  All callers of concat/concat3
3617         changed to use the new `concat' with variable args.
3618
3619         * cccp.c: Remove things made redundant by libiberty.h and/or
3620         conform to libiberty standards.
3621         * cexp.y: Likewise.
3622         * collect2.c: Likewise.
3623         * config/1750a/1750a.h: Likewise.
3624         * cppalloc.c: Likewise.
3625         * cppexp.c: Likewise.
3626         * cppfiles.c: Likewise.
3627         * cpphash.c: Likewise.
3628         * cpplib.c: Likewise.
3629         * dyn-string.c: Likewise.
3630         * fix-header.c: Likewise.
3631         * gcc.c: Likewise.
3632         * gcov.c: Likewise.
3633         * genattr.c: Likewise.
3634         * genattrtab.c: Likewise.
3635         * gencheck.c: Likewise.
3636         * gencodes.c: Likewise.
3637         * genconfig.c: Likewise.
3638         * genemit.c: Likewise.
3639         * genextract.c: Likewise.
3640         * genflags.c: Likewise.
3641         * gengenrtl.c: Likewise.
3642         * genopinit.c: Likewise.
3643         * genoutput.c: Likewise.
3644         * genpeep.c: Likewise.
3645         * genrecog.c: Likewise.
3646         * getpwd.c: Likewise.
3647         * halfpic.c: Likewise.
3648         * hash.c: Likewise.
3649         * mips-tdump.c: Likewise.  Wrap malloc/realloc/calloc prototypes
3650         in NEED_DECLARATION_* macros.
3651
3652         * mips-tfile.c: Remove things made redundant by libiberty.h and/or
3653         conform to libiberty standards.
3654         (fatal): Fix const-ification of variable `format' in
3655         !ANSI_PROTOTYPES case.
3656
3657         * prefix.c: Remove things made redundant by libiberty.h and/or
3658         conform to libiberty standards.
3659
3660         * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid
3661         conflicting with function `spaces' from libiberty.
3662
3663         * profile.c: Remove things made redundant by libiberty.h and/or
3664         conform to libiberty standards.
3665         * protoize.c: Likewise.
3666         * rtl.h: Likewise.
3667         * scan.h: Likewise.
3668         * tlink.c: Likewise.
3669         * toplev.c: Likewise.
3670         * toplev.h: Likewise.
3671         * tree.h: Likewise.
3672
3673 Thu Nov 26 08:38:06 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3674
3675         * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition.
3676
3677 Thu Nov 26 23:45:37 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3678
3679         * README.C4X: Updated URLs.
3680         * config/c4x/c4x.c (c4x_address_conflict): Fix typo.
3681         (valid_parallel_operands_5): Remove unused variable.
3682
3683 Thu Nov 26 23:40:03 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3684
3685         * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo.
3686
3687 1998-11-26  Manfred Hollstein  <manfred@s-direktnet.de>
3688
3689         * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages
3690         which can be configured.
3691         (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@
3692         (Makefile): Pass actual LANGUAGES through the environment when
3693         re-configuring.
3694         (cstamp-h): Likewise.
3695         (config.status): Likewise.
3696
3697         * configure.in (enable_languages): Add new configuration parameter
3698         "--enable-languages=lang1,lang2,...".
3699         (${srcdir}/*/config-lang.in): Change handling to configure only
3700         those directories, that the user might have enabled; default to
3701         "all" existing languages.
3702         * configure: Regenerate.
3703
3704 Thu Nov 26 00:19:19 1998  Richard Henderson  <rth@cygnus.com>
3705
3706         * rtlanal.c (regs_set_between_p): New function.
3707         * rtl.h (regs_set_between_p): Prototype it.
3708         * jump.c (jump_optimize): Use it instead of modified_between_p
3709         in the Sep 2 change.
3710
3711 Wed Nov 25 23:32:02 1998  Ian Dall  <Ian.Dall@dsto.defence.gov.au>
3712                           Matthias Pfaller  <leo@dachau.marco.de>
3713
3714         * invoke.texi (Option Summary, NS32K Options): add description
3715         of NS32K specific options.
3716
3717         * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2,
3718         fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2,
3719         fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3,
3720         negdf2, absdf2): Use l instead of f since the double class and
3721         float class are no longer the same.
3722         (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3,
3723         divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2,
3724         ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...):
3725         use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been
3726         fixed.
3727         (cmpsi, cmphi, cmpqi): use general_operand instead of
3728         non_immediate_operand. Removes erroneous assumption that can't
3729         compare constants.
3730         (movsf, movsi, movhi, movqi,...): New register numbering scheme.
3731         (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded
3732         constants.
3733         (movstrsi, movstrsi1, movstrsi2): completely new block move
3734         scheme.
3735         (...): Patterns to exploit multiply-add instructions.
3736         (udivmodsi4, udivmodsi_internal4, udivmodhi4,
3737         udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): new
3738         patterns to exploit extended divide insns.
3739         (udivsi3, udivhi3, udivqi3): remove since superceded by udivmodsi
3740         etc patterns.
3741
3742         * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex
3743         float return values as well as simple scalar floats.
3744         (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES):
3745         support new flag to denote 32381 fpu.
3746         (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081.
3747         (CONDITIONAL_REGISTER_USAGE): disable extra 32381 registers if not
3748         compling for 32381.
3749         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
3750         REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES,
3751         REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM,
3752         L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
3753         LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES,
3754         REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS,
3755         REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE,
3756         REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P,
3757         REG_OK_FOR_BASE_P, MEM_REG): new register scheme to include 32381
3758         fpu registers and special register classes for new 32381
3759         instructions dotf and polyf.
3760         (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to
3761         be tieable.
3762         (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX,
3763         INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is
3764         required.
3765         (SMALL_REGISTER_CLASSES): Make dependant on -mmult-add option.
3766         (MOVE_RATIO): Set to zero because of smart movstrsi implimentation.
3767         (REGISTER_MOVE_COST): move code to register_move_cost function for
3768         ease of coding and debugging.
3769         (CLASS_LIKELY_SPILLED_P): Under new register scheme class
3770         LONG_FLOAT_REGO is likely spilled but not caught by default
3771         definition.
3772         (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): use macro
3773         instead of hard coded numbers in range check.
3774         (ASM_OUTPUT_LABELREF_AS_INT): delete since unused.
3775         (...): Add prototypes for functions in ns32k.c but disable because
3776         of problems when ns32k.h is included in machine independant files.
3777         
3778         * ns32k.c: include "system.h", "tree.h", "expr.h", "flags.h".
3779         (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names,
3780         hard_regno_mode_ok, secondary_reload_class,
3781         print_operand, print_operand_address): new register scheme to
3782         include 32381 fpu registers and special register classes for new
3783         32381 instructions dotf and polyf.
3784         (gen_indexed_expr): Make static to keep namespace clean.
3785         (check_reg): remove since never called.
3786         (move_tail, expand_block_move): helper functions for "movstrsi"
3787         block move insn.
3788         (register_move_cost): Helper function for REGISTER_MOVE_COST macro.
3789         Increase cost of moves which go via memory.
3790         * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag.
3791         (CPP_PREDEFINES): nolonger predefine "unix".
3792
3793         * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...):
3794         Remove erroneous %$. print_operand() can work out from the rtx is
3795         an immediate prefix is required.
3796
3797         * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE,
3798         VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES,
3799         SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling
3800         convention.
3801         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of
3802         pic operands.
3803
3804         * ns32k.c (symbolic_reference_mentioned_p, print_operand):
3805         Correct handling of pic operands.
3806         (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p,
3807         ns32k_comp_type_attributes, ns32k_return_pops_args): Support for
3808         -mrtd calling convention.
3809
3810 Wed Nov 25 23:42:20 1998  Tom Tromey  <tromey@cygnus.com>
3811
3812         * gcc.c (option_map): Recognize --output-class-directory.
3813
3814 Thu Nov 26 18:26:21 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3815
3816         * loop.h (precondition_loop_p): Added new mode argument.
3817         * unroll.c (precondition_loop_p): Likewise.
3818         (approx_final_value): Function deleted and subsumed
3819         into loop_iterations.
3820         (loop_find_equiv_value): New function.
3821         (loop_iterations): Use loop_find_equiv_value to find increments
3822         too large to be immediate constants.  Also use it to find terms
3823         common to initial and final iteration values that can be removed.
3824
3825 Thu Nov 26 18:05:04 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3826
3827         * loop.h (struct loop_info): Define new structure.
3828         (precondition_loop_p): Added prototype.
3829         (unroll_loop): Added new argument loop_info to prototype.
3830         (final_biv_value, final_giv_value): Added new argument n_iterations
3831         to prototype.
3832         * loop.c (strength_reduce): Declare new structure loop_iteration_info
3833         and new pointer loop_info.
3834         (loop_n_iterations): Replace global variable by element in 
3835         loop_info structure.
3836         (check_final_value): New argument n_iterations.
3837         (insert_bct): New argument loop_info.
3838         (loop_unroll_factor): Replace global array by element in 
3839         loop_info structure.
3840         (loop_optimize): Remove code to allocate and initialise 
3841         loop_unroll_factor_array.
3842         * unroll.c (precondition_loop_p):  No longer static since
3843         used by branch on count optimization.
3844         (precondition_loop_p, unroll_loop): New argument loop_info.
3845         (final_biv_value, final_giv_value, find_splittable_regs): New
3846         argument n_iterations.
3847         (loop_iteration_var, loop_initial_value, loop_increment, 
3848         loop_final_value, loop_comparison_code, loop_unroll_factor): 
3849         Replaced global variables by loop_info structure.
3850         (loop_unroll_factor): Replace global array by element in
3851         loop_info structure.
3852
3853 Thu Nov 26 17:49:29 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3854
3855         * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn
3856         when loop reversed.
3857
3858         * unroll.c (precondition_loop_p): Return loop_initial_value
3859         for initial_value instead of loop_iteration_var.
3860
3861 Thu Nov 26 17:15:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3862
3863         * config/c4x/c4x.md: Fix minor formatting problems.  Update docs.
3864         (*b, *b_rev, *b_noov, *b_noov_rev, *db, 
3865         decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch
3866         to output the instruction sequences.
3867         (rpts): Delete.
3868         (rptb_top): Provide alternatives to use any register or memory
3869         for loop counter.
3870         (rptb_end):  Emit use of operands rather than assigning them
3871         explicitly to the RS and RE registers.
3872
3873 Thu Nov 26 16:37:59 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3874
3875         * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p,
3876         c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p,
3877         c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg,
3878         c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after, 
3879         c4x_merge_notes, c4x_parallel_process, 
3880         c4x_combine_parallel_independent, c4x_combine_parallel_dependent,
3881         c4x_combine_parallel): Delete.
3882
3883 Thu Nov 26 15:16:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3884
3885         * config/c4x/c4x.c: (c4x_override_options): For compatibility
3886         with old target options clear flag_branch_on_count_reg if
3887         -mno-rptb specified and set flag_argument_alias is -mno-aliases
3888         specified.
3889         (c4x_output_cbranch): Handle a sequence of insns rather than a
3890         single insn.
3891         (c4x_rptb_insert): Do not emit a RPTB insn if the RC register
3892         has not been allocated as the loop counter.
3893         (c4x_address_conflict): Do not allow two volatile memory references.
3894         (valid_parallel_operands_4, valid_parallel_operands_5,
3895         valid_parallel_operands_6): Reject pattern if the register destination
3896         of the first set is used as part of an address in the second set.
3897
3898 Thu Nov 26 14:56:32 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3899
3900         * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG.
3901         (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES
3902         is no longer enabled if PARALLEL_MPY_FLAG set.
3903         (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity.
3904         (REG_CLASS_CONTENTS): Add braces around initializers.
3905         (HAVE_MULTIPLE_PACK): Define.
3906         (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with 
3907         REAL_VALUE_TO_DECIMAL.
3908         (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with 
3909         REAL_VALUE_TO_DECIMAL.
3910         (ar0_reg_operand): Add prototype.
3911         (ar0_mem_operand): Likewise.
3912         (ar1_reg_operand): Likewise.
3913         (ar1_mem_operand): Likewise.
3914         (ar2_reg_operand): Likewise.
3915         (ar2_mem_operand): Likewise.
3916         (ar3_reg_operand): Likewise.
3917         (ar3_mem_operand): Likewise.
3918         (ar4_reg_operand): Likewise.
3919         (ar4_mem_operand): Likewise.
3920         (ar5_reg_operand): Likewise.
3921         (ar5_mem_operand): Likewise.
3922         (ar6_reg_operand): Likewise.
3923         (ar6_mem_operand): Likewise.
3924         (ar7_reg_operand): Likewise.
3925         (ar7_mem_operand): Likewise.
3926         (ir0_reg_operand): Likewise.
3927         (ir0_mem_operand): Likewise.
3928         (ir1_reg_operand): Likewise.
3929         (ir1_mem_operand): Likewise.
3930         (group1_reg_operand): Likewise.
3931         (group1_mem_operand): Likewise.
3932         (ir1_reg_operand): Likewise.
3933         (arx_reg_operand): Likewise.
3934         (not_rc_reg): Likewise.
3935         (not_modify_reg): Likewise.
3936         (c4x_group1_reg_operand): Remove prototype.
3937         (c4x_group1_mem_operand): Likewise.
3938         (c4x_arx_reg_operand): Likewise.
3939
3940 Wed Nov 25 19:02:55 1998  (Stephen L Moshier) <moshier@world.std.com>
3941
3942         * emit-rtl.c (gen_lowpart_common): Remove earlier change.
3943         * real.c (make_nan): Make SIGN arg actually specify the sign bit.
3944
3945 Thu Nov 26 14:12:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3946
3947         * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern
3948         during reload.
3949
3950 Wed Nov 25 22:05:28 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3951
3952         * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1
3953         unless FMOVD_WORKS is defined.
3954
3955 Wed Nov 25 20:11:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3956
3957         * regclass.c (init_reg_sets): Move code that calculates tables
3958         dependent on reg_class_contents from here...
3959         (init_reg_sets_1): To here.
3960
3961 Wed Nov 25 14:54:46 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3962
3963         * cpplib.h: Delete struct import_file.  Add ihash element to
3964         struct cpp_buffer.  Delete dont_repeat_files and
3965         import_hash_table elements from cpp_reader; change
3966         all_include_files to a hash table.  Delete all foobar_include
3967         / last_foobar_include elements from struct cpp_options; put
3968         back four such: quote_include, bracket_include,
3969         system_include, after_include.  Redo struct file_name_list
3970         completely.  Add new structure type include_hash.  Add
3971         prototypes for merge_include_chains and include_hash.  Change
3972         prototypes for finclude, find_include_file, and
3973         append_include_chain to match changes below.
3974
3975         * cppfiles.c (simplify_pathname, include_hash,
3976         remap_filename, merge_include_chains): New functions.
3977         (add_import, lookup_import, open_include_file): Removed.
3978         (INO_T_EQ): Define this (copied from cccp.c).
3979         (hack_vms_include_specification): Remove all calls and #if 0
3980         out the definition.  It was being called incorrectly and at
3981         the wrong times.  Until a VMSie can look at this, it's better
3982         to not pretend to support it.
3983         (append_include_chain): Change calling convention; now takes
3984         only one directory at a time, and sets up the data structure
3985         itself.
3986         (redundant_include_p): Rewritten - this is now used for all
3987         include redundancy, whether by #ifndef, #import, or #pragma
3988         once.  Looks up things in the include hash table.
3989         (file_cleanup): Decrement pfile->system_include_depth here if
3990         it's >0.
3991         (find_include_file): Calling convention changed; now passes
3992         around a struct include_hash instead of 3 separate parameters.
3993         Guts ripped out and replaced with new include_hash mechanism.
3994         (finclude): Calling convention changed as for
3995         find_include_file.  Error exits pulled out-of-line.  Reformat.
3996         (safe_read): Return a long, not an int.
3997         (deps_output): Don't recurse.
3998
3999         * cpplib.c (is_system_include): Deleted.
4000         (path_include): Fix up call to append_include_chain.
4001         (do_include): Fix up calls to find_include_file and finclude.
4002         Clean up dependency output a bit.  Shorten obnoxiously lengthy
4003         #import warning message.  Don't decrement
4004         pfile->system_include_depth here.
4005         (do_pragma): Understand the include_hash structure.  Reformat.
4006         (do_endif): Correct handling of control macros.  Understand
4007         the include_hash.
4008         (cpp_start_read): Fix up calls to finclude.  Call
4009         merge_include_chains.
4010         (cpp_handle_option): Fix up calls to append_include_chain.
4011         Understand the four partial include chains.
4012         (cpp_finish): Add debugging code (#if 0-ed out) for the
4013         include_hash.
4014         (cpp_cleanup): Free the include_hash, not the import hash and
4015         the all_include and dont_repeat lists which no longer exist.
4016
4017 Wed Nov 25 11:26:19 1998  Jeffrey A Law  (law@cygnus.com)
4018
4019         * toplev.c (no_new_pseudos): Define.
4020         (rest_of_compilation):  Set no_new_pseudos as needed.
4021         * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
4022         if no_new_pseudos is set.
4023         * rtl.h (no_new_pseudos): Declare it.
4024         * reload1.c (reload): Update comments.
4025         * md.texi: Corresponding changes.
4026
4027 Wed Nov 25 11:26:17 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
4028
4029         * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
4030         (choose_reload_regs): Rename it here as well.  When computing it,
4031         also merge in used hardregs.
4032
4033 1998-11-25 07:51 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4034
4035         * gcc.c: Split out Objective-C specs to...
4036         * objc/lang-specs.h: here. (New file.) Make the specs cpplib
4037         aware.
4038
4039         * c-lex.c (init_parse): Always initialize the filename global.
4040         * objc/objc-act.c (lang_init): Always call check_newline at
4041         beginning of file.
4042
4043 Wed Nov 25 00:48:29 1998  Graham  <grahams@rcp.co.uk>
4044
4045         * reload1.c (reload): Remove unused variable.
4046         (reload_reg_free_for_value_p): Add missing parameter definition.
4047
4048         * jump.c (jump_optimize): Remove unused variable.
4049
4050 Wed Nov 25 00:07:11 1998  Jeffrey A Law  (law@cygnus.com)
4051
4052         * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h.
4053
4054         * cse.c (fold_rtx): Make autoincrement addressing mode tests be
4055         runtime selectable.
4056         * expr.c (move_by_pieces): Similarly.
4057         (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly.
4058         * flow.c (find_auto_inc): Similarly.
4059         (try_pre_increment): Similarly.
4060         * loop.c (strength_reduce): Similarly.
4061         * regclass.c (auto_inc_dec_reg_p): Similarly.
4062         * regmove.c (try_auto_increment): Similarly.
4063         (fixup_match_1): Similarly.
4064         * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined.
4065         (HAVE_PRE_DECREMENT): Similarly.
4066         (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly.
4067         * Corresponding changes to all target header files.
4068         * tm.texi: Update docs for autoinc addressing modes.
4069
4070 Tue Nov 24 20:24:59 1998  Jim Wilson  <wilson@cygnus.com>
4071
4072         * configure.in (m68020-*-elf*, m68k-*-elf*): New targets.
4073         * configure: Rebuild.
4074         * config/elfos.h: New file.
4075         * config/m68k/m68020-elf.h, config/m68k/m68kelf.h,
4076         config/m68k/t-m68kelf: New file.
4077         
4078 Tue Nov 24 13:40:06 1998  Jeffrey A Law  (law@cygnus.com)
4079
4080         * Makefile.in (HOST_AR): Define.
4081         (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly.
4082         (libcpp.a): Use the host tools explicitly.
4083         (STAGESTUFF): Add libcpp.a.
4084
4085 Tue Nov 24 09:33:49 1998  Nick Clifton  <nickc@cygnus.com>
4086
4087         * config/m32r/m32r.md (movstrsi_internal): Describe changes made
4088         to source and destination registers.
4089
4090 Mon Nov 23 20:28:02 1998  Mike Stump  <mrs@wrs.com>
4091
4092         * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
4093         The strategy we now use is to pre allocate the top_elt along
4094         with the EH context so that each thread has its own top_elt.
4095         This is necessary as the dynmanic cleanup chain is used on the
4096         top element of the stack and each thread MUST have its own.
4097         (eh_context_static): Likewise.
4098         (new_eh_context): Likewise.
4099         (__sjthrow): Likewise.
4100
4101 Mon Nov 23 20:25:03 1998  Jason Merrill  <jason@yorick.cygnus.com>
4102
4103         * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while.
4104         * i386.md (prologue_get_pc): Remove unused variable.
4105
4106 Mon Nov 23 17:05:40 1998  Geoffrey Noer  <noer@cygnus.com>
4107
4108         * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_.
4109
4110 Mon Nov 23 16:40:00 1998  Ulrich Drepper  <drepper@cygnus.com>
4111
4112         * Makefile.in (OBJS): Add graph.o
4113         (graph.o): New dependency list.
4114         * flags.h: Declare dump_for_graph and define graph_dump_types type.
4115         * print-rtl.c (dump_for_graph): Define new variable.
4116         (print_rtx): Rewrite to allow use in graph dumping functions.
4117         * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file,
4118         finish_graph_dump_file.
4119         Define graph_dump_format.
4120         (compile_file): If graph dumping is enabled also clear these files.
4121         Finish graph dump files.
4122         (rest_of_compilation): Also dump graph information if enabled.
4123         (main): Recognize -dv to enabled VCG based graph dumping.
4124         * graph.c: New file.  Graph dumping functions.
4125
4126 Mon Nov 23 16:39:04 1998  Richard Henderson  <rth@cygnus.com>
4127
4128         * configure.in: Look for <sys/stat.h>.
4129         * system.h: Include it before substitute S_ISREG definitions.
4130
4131 Mon Nov 23 17:40:37 1998  Gavin Romig-Koch  <gavin@cygnus.com>
4132
4133         * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage.
4134         * config/mips/iris6.h: Same.
4135         * config/mips/mips.md: Same.
4136         * config/mips/mips.c: Same; also add "-mabi=o64" option.
4137         * config/mips/mips.h: Same; also define ABI_O64.
4138
4139 Mon Nov 23 17:02:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4140
4141         *  configure.in: Use AC_PREREQ(2.12.1).
4142
4143 Mon Nov 23 10:16:38 1998  "Melissa O'Neill" <oneill@cs.sfu.ca>
4144
4145         * cccp.c (S_ISREG, S_ISDIR): Delete defines.
4146         * cpplib.c, gcc.c: Likewise.
4147         * system.h (S_ISREG, S_ISDIR): Define if not already defined.
4148
4149 Mon Nov 23 09:53:44 1998  Richard Henderson  <rth@cygnus.com>
4150
4151         * local-alloc.c (local_alloc): Use malloc not alloca for
4152         reg_qty, reg_offset, ref_next_in_qty.
4153
4154 Mon Nov 23 16:46:46 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4155
4156         * caller-save.c (insert_one_insn): Initialize the live_before and
4157         live_after register sets.
4158
4159         Add SH4 support:
4160
4161         * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define.
4162         (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define.
4163         * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS.
4164         (fp_reg_names, assembler_dialect): New variables.
4165         (print_operand_address): Handle SUBREGs.
4166         (print_operand): Added 'o' case.
4167         Don't use adj_offsettable_operand on PRE_DEC / POST_INC.
4168         Name of FP registers depends on mode.
4169         (expand_block_move): Emit different code for SH4 hardware.
4170         (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate.
4171         (from_compare): Likewise.
4172         (add_constant): New argument last_value.  Changed all callers.
4173         (find_barrier): Don't try HImode load for FPUL_REG.
4174         (machine_dependent_reorg): Likewise.
4175         (sfunc_uses_reg): A CLOBBER cannot be the address register use.
4176         (gen_far_branch): Emit a barrier after the new jump.
4177         (barrier_align): Don't trust instruction lengths before
4178         fixing up pcloads.
4179         (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG.
4180         Use auto-inc addressing for fp registers if doubles need to
4181         be loaded in two steps.
4182         Set sh_flag_remove_dead_before_cse.
4183         (push): Support for TARGET_FMOVD.  Use gen_push_fpul for fpul.
4184         (pop): Support for TARGET_FMOVD.  Use gen_pop_fpul for fpul.
4185         (calc_live_regs): Support for TARGET_FMOVD.  Don't save FPSCR.
4186         Support for FIRST_XD_REG .. LAST_XD_REG.
4187         (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG.
4188         (sh_expand_epilogue): Likewise.
4189         (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4.
4190         (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account.
4191         (arith_reg_operand): FPUL_REG is OK for SH4.
4192         (fp_arith_reg_operand, fp_extended_operand) New functions.
4193         (tertiary_reload_operand, fpscr_operand): Likewise.
4194         (commutative_float_operator, noncommutative_float_operator): Likewise.
4195         (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise.
4196         (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise.
4197         (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise.
4198         (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise.
4199         * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only.
4200         (CONDITIONAL_REGISTER_USAGE): Likewise.
4201         (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define.
4202         (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define.
4203         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define.
4204         (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd.
4205         (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer
4206         to -1 and sh_flag_remove_dead_before_cse to 1.
4207         (ASSEMBLER_DIALECT): Define to assembler_dialect.
4208         (assembler_dialect, fp_reg_names): Declare.
4209         (OVERRIDE_OPTIONS): Add code for TARGET_SH4.
4210         Hide names of registers that are not accessible.
4211         (CACHE_LOG): Take TARGET_CACHE32 into account.
4212         (LOOP_ALIGN): Take TARGET_HARWARD into account.
4213         (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define.
4214         (FIRST_PSEUDO_REGISTER: Now 49.
4215         (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers.
4216         (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG.
4217         (HARD_REGNO_MODE_OK): Update.
4218         (enum reg_class): Add DF_REGS and FPSCR_REGS.
4219         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise.
4220         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update.
4221         (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define.
4222         (NPARM_REGS): Eight floating point parameter registers on SH4.
4223         (BASE_RETURN_VALUE_REG): SH4 also passes double values
4224         in floating point registers.
4225         (GET_SH_ARG_CLASS) Likewise.
4226         Complex float types are also returned in float registers.
4227         (BASE_ARG_REG): Complex float types are also passes in float registers.
4228         (FUNCTION_VALUE): Change mode like PROMOTE_MODE does.
4229         (LIBCALL_VALUE): Remove trailing semicolon.
4230         (ROUND_REG): Round when double precision value is passed in floating
4231         point register(s).
4232         (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are
4233         passed on the stack.
4234         (FUNCTION_ARG): Little endian adjustment for SH4 SFmode.
4235         (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4.
4236         (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account.
4237         (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD.
4238         (MODE_DISP_OK_8): Not for SH4 DFmode.
4239         (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode.
4240         Allow indexed addressing for PSImode after reload.
4241         (LEGITIMIZE_ADDRESS): Not for SH4 DFmode.
4242         (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode.
4243         Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS.
4244         (DOUBLE_TYPE_SIZE): 64 for SH4.
4245         (RTX_COSTS): Add PLUS case.
4246         Increae cost of ASHIFT, ASHIFTRT, LSHIFTRT case.
4247         (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS,
4248         MAC_REGS, PR_REGS, DF_REGS.
4249         (REGISTER_NAMES): Use fp_reg_names.
4250         (enum processor_type): Add PROCESSOR_SH4.
4251         (sh_flag_remove_dead_before_cse): Declare.
4252         (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare.
4253         (PREDICATE_CODES): Add binary_float_operator,
4254         commutative_float_operator, fp_arith_reg_operand, fp_extended_operand,
4255         fpscr_operand, noncommutative_float_operator.
4256         (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR.
4257         (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4.
4258         * sh.md (attribute cpu): Add value sh4.
4259         (attrbutes fmovd, issues): Define.
4260         (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv.
4261         (function units memory, int, mpy, fp): Make dependent on issue rate.
4262         (function units issue, single_issue, load_si, load): Define.
4263         (function units load_store, fdiv, gp_fpul): Define.
4264         (attribute hit_stack): Provide proper default.
4265         (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4.
4266         (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns.
4267         (udivsi3, divsi3): Emit special patterns for SH4 hardware,
4268         (mulsi3_call): Now uses match_operand for function address.
4269         (mulsi3): Also emit code for SH1 case.  Wrap result in REG_LIBCALL /
4270         REG_RETVAL notes.
4271         (push, pop, push_e, pop_e): Now define_expands.
4272         (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders.
4273         (movsi_ie): Added y/i alternative.
4274         (ic_invalidate_line_i, movdf_i4): New insns.
4275         (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters.
4276         (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders.
4277         (movdf): Add special code for SH4.
4278         (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible.
4279         (call_valuei, calli, call_value): Likewise.
4280         (movsf): Emit no-op move.
4281         (mov_nop, movsi_y): New insns.
4282         (blt, sge): generalize to handle DFmode.
4283         (return predicate): Call emit_fpscr_use and remove_dead_before_cse.
4284         (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4.
4285         (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns.
4286         (fpu_switch0, fpu_switch1, movpsi): New expanders.
4287         (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters.
4288         (toggle_sz): New insn.
4289         (addsf3, subsf3, mulsf3, divsf3): Now define_expands.
4290         (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns.
4291         (macsf3): Make use of fpscr visible.  Disable for SH4.
4292         (floatsisf2): Make use of fpscr visible.
4293         (floatsisf2_i4): New insn.
4294         (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4.
4295         (ieee_ccmpeqsf_t): Likewise.
4296         (fix_truncsfsi2): Emit different code for SH4.
4297         (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns.
4298         (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns.
4299         (negsf2, sqrtsf2, abssf2): Now expanders.
4300         (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders.
4301         (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns.
4302         (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns.
4303         (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders.
4304         (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns.
4305         (fix_truncdfsi2_i4_2+1): New splitters.
4306         (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns.
4307         (extendsfdf2, truncdfsf2): New expanders.
4308         (truncdfsf2_i4): New insn.
4309         * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4.
4310         (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4.
4311         * float-sh.h: When testing for __SH3E__, also test for
4312         __SH4_SINGLE_ONLY__ .
4313         * va-sh.h (__va_freg): Define to float.
4314         (__va_greg, __fa_freg, __gnuc_va_list, va_start):
4315         Define for __SH4_SINGLE_ONLY__ like for __SH3E__ .
4316         (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise.
4317         (__PASS_AS_FLOAT): Use different definition for __SH4__ and
4318          __SH4_SINGLE__.
4319         (TARGET_SH4_P): Define.
4320         (va_arg): Use it.
4321
4322         * sh.md (movdf_k, movsf_i): Tweak the condition so that
4323         init_expr_once is satisfied about the existence of load / store insns.
4324
4325         * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie):
4326         change m constraint in source operand to mr / mf .
4327
4328         * va-sh.h (__va_arg_sh1): Use __asm instead of asm.
4329
4330         * (__VA_REEF): Define.
4331         (__va_arg_sh1): Use it.
4332
4333         * va-sh.h (va_start, va_arg, va_copy): Add parenteses.
4334
4335 Sun Nov 22 21:34:02 1998  Jeffrey A Law  (law@cygnus.com)
4336
4337         * i386/dgux.c (struct option): Add new "description field".
4338         * m88k/m88k.c (struct option): Likewise.
4339
4340 Sun Nov 22 16:07:57 PST 1998 Jeff Law  (law@cygnus.com)
4341
4342         * version.c: Bump for snapshot.
4343
4344 Sun Nov 22 13:40:02 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
4345
4346         * regmove.c (regmove_profitable_p): Use return value of find_matches
4347         properly.
4348
4349 Sun Nov 22 02:47:37 PST 1998 Jeff Law  (law@cygnus.com)
4350
4351         * version.c: Bump for snapshot.
4352
4353 Sat Nov 21 22:12:09 1998  Jeffrey A Law  (law@cygnus.com)
4354
4355         * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called
4356         without reload having been called earlier.
4357
4358         * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP
4359         addressing modes.
4360         (v850_reorg): Similarly.
4361
4362         * loop.c (check_dbra_loop): Avoid using gen_add2_insn.
4363
4364 Sat Nov 21 02:18:38 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4365
4366         * loop.c (move_movables): Start of libcall might be new loop start.
4367
4368 Fri Nov 20 12:14:16 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4369
4370         * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS().
4371
4372 Fri Nov 20 08:34:00 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4373
4374         * function.c (nonlocal_goto_handler_slots): Renamed from
4375         nonlocal_goto_handler_slot; now an EXPR_LIST chain.
4376         (push_function_context_to): Adjust for this change.
4377         (pop_function_context_from): Likewise.
4378         (init_function_start): Likewise.
4379         (expand_function_end): Likewise.
4380         * function.h (struct function): Likewise.
4381         * calls.c (expand_call): Likewise.
4382         * explow.c (allocate_dynamic_stack_space): Likewise.
4383         * expr.h (nonlocal_goto_handler_slots): Rename its declaration.
4384         * stmt.c (declare_nonlocal_label): Make a new handler slot for each
4385         label.
4386         (expand_goto): When doing a nonlocal goto, find corresponding handler
4387         slot for it.  Don't put the label address in the static chain register.
4388         (expand_end_bindings): Break out nonlocal goto handling code into
4389         three new functions.
4390         (expand_nl_handler_label, expand_nl_goto_receiver,
4391         expand_nl_goto_receivers): New static functions, broken out of
4392         expand_end_bindings and adapted to create one handler per nonlocal
4393         label.
4394         * function.c (delete_handlers): Delete insn if it references any of
4395         the nonlocal goto handler slots.
4396         * i960.md (nonlocal_goto): Comment out code that modifies
4397         static_chain_rtx.
4398         * sparc.md (nonlocal_goto): Likewise.
4399         (goto_handler_and_restore_v9): Comment out.
4400         (goto_handler_and_restore_v9_sp64): Comment out.
4401
4402 Thu Nov 19 23:44:38 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4403
4404         * expr.c (STACK_BYTES): Delete unused macro.
4405         * calls.c: Provide default for PREFERRED_STACK_BOUNDARY.
4406         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
4407         (expand_call): Likewise.
4408         (emit_library_call): Likewise.
4409         (emit_library_call_value): Likewise.
4410         * function.c: Provide default for PREFERRED_STACK_BOUNDARY.
4411         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
4412         * explow.c: Provide default for PREFERRED_STACK_BOUNDARY.
4413         (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
4414         (allocate_dynamic_stack_space): Likewise.
4415         * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro.
4416         (STACK_BOUNDARY): Update description to reflect the new situation.
4417
4418 Thu Nov 19 22:20:51 1998  Jeffrey A Law  (law@cygnus.com)
4419
4420         * reorg.c (relax_delay_slots): When optimizing for code size, if a
4421         return with a filled delay slot is followed by a return with an
4422         unfilled delay slot, delete the first return and reemit the insn
4423         that was previously in its delay slot.
4424
4425         * i860.c (single_insn_src_p): Add missing parens.
4426         * ginclude/math-3300.h: Likewise.
4427
4428 Thu Nov 19 20:55:59 1998  H.J. Lu  (hjl@gnu.org)
4429
4430         * regclass.c (init_reg_sets_1): Add prototype.
4431         (init_reg_modes): Likewise.
4432
4433 1998-11-19 Zack Weinberg  <zack@rabi.phys.columbia.edu>
4434
4435         * c-common.c: Change warning messages to say `comparison is
4436         always true' or `comparison is always false' instead of the
4437         confusing `is always 0', `is always 1'.
4438
4439 Thu Nov 19 19:05:49 1998  Per Bothner  <bothner@cygnus.com>
4440
4441         * print-tree.c (print_node):  After printing BLOCK or BIND_EXPR,
4442         break instead of return (which loses closing '>').
4443
4444 Thu Nov 19 19:34:13 1998  Jeffrey A Law  (law@cygnus.com)
4445
4446         * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not
4447         standard 387 constants.
4448
4449         * i386.md (jump): Explicitly set "memory" attribute.
4450         (indirect_jump, prologue_set_stack_ptr): Likewise.
4451         (prologue_get_pc_and_set_got, pop): Likewise.
4452         (allocate_stack_worder, blockage, return_internal): Likewise.
4453         (return_pop_internal, nop): Likewise.
4454         (epilogue_set_stack_ptr, leave): Likewise.
4455
4456 Thu Nov 19 15:42:54 1998  Nick Clifton  <nickc@cygnus.com>
4457
4458         * config/arm/coff.h: Set USER_LABEL_PREFIX to "_".
4459
4460 Thu Nov 19 23:20:59 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4461
4462         * reload1.c (reload_reg_free_for_value_p):
4463         Early auto_inc reloads don't conflict with outputs.
4464
4465 Thu Nov 19 12:58:55 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4466
4467         * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h).
4468         Instead call AC_HEADER_SYS_WAIT.
4469
4470         * collect2.c: Don't provide defaults for sys/wait.h macros.
4471         * gcc.c: Likewise.
4472         * protoize.c: Likewise.  Also, don't include sys/wait.h.
4473
4474         * system.h: Include sys/wait.h and provide macro defaults.
4475
4476 1998-11-19  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
4477
4478         * Makefile.in (mandir): Set to @mandir@.
4479         (man1dir): New variable to hold the former value of $(mandir).
4480         Replace all uses of $(mandir) by $(man1dir).
4481
4482 Wed Nov 18 16:31:28 1998  Jim Wilson  <wilson@cygnus.com>
4483
4484         * reload.c (find_reloads_address_part): If have a CONST_INT, create
4485         a new one before passing it to force_const_mem.
4486
4487         * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in
4488         find_reloads_address call.
4489
4490 Wed Nov 18 22:13:00 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4491
4492         * expr.c (store_expr): Don't generate load-store pair
4493         if TEMP is identical (according to ==) with TARGET.
4494
4495 Tue Nov 17 22:25:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4496
4497         * reload1.c (reload_reg_free_for_value_p): When considered reload
4498         has an output, matching inputs are not sufficient to avoid conflict.
4499
4500 Tue Nov 17 11:51:16 1998  Mark Mitchell  <mark@markmitchell.com>
4501
4502         * hash.h (hash_table_key): New type.
4503         (hash_entry): Change `string' field to generic `key'.
4504         (hash_table): Add `comp' and `hash' functions.
4505         (hash_table_init): Take them as input.
4506         (hash_table_init_n): Likewise.
4507         (hash_lookup): Modify for generic keys.
4508         (hash_newfunc): Likewise.
4509         (hash_traverse): Likewise.
4510         (string_hash): New function.
4511         (string_compare): Likewise.
4512         (string_copy): Likewise.
4513         * hash.c (hash_table_init_n): Modify for generic keys.
4514         (hash_table_init): Likewise.
4515         (hash_lookup): Likewise.
4516         (hash_newfunc): Likewise.
4517         (hash_traverse): Likewise.
4518         (string_hash): Split out from hash_lookup.
4519         (string_compare): New function.
4520         (string_copy): Split out from hash_lookup.
4521         * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash
4522         tables.
4523         (symbol_hash_lookup): Likewise.
4524         (file_hash_newfunc): Likewise.
4525         (file_hash_lookup): Likewise.
4526         (demangled_hash_newfunc): Likewise.
4527         (demangled_hash_lookup): Likewise.
4528         (tlink_int): Likewise.
4529         (read_repo_file): Likewise.
4530         (recompile_files): Likewise.
4531         (demangle_new_symbols): Likewise.
4532         (scan_linker_output): Likewise.
4533         
4534 Tue Nov 17 17:13:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4535
4536         * flow.c (insn_dead_p): New argument NOTES.  Changed all callers.
4537
4538 Mon Nov 16 17:56:07 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4539
4540         * rs6000.c (output_mi_thunk): Improve test for local branch.
4541
4542 Mon Nov 16 17:56:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4543
4544         * rs6000.c (output_mi_thunk): Correct test for aggregate values.
4545
4546 Mon Nov 16 21:02:52 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4547
4548         * reload1.c (reload_reg_free_before_p): Delete.
4549         Changed all callers to use reload_reg_free_for_value_p instead.
4550         (reload_reg_free_for_value_p): Handle more reload types.
4551         A RELOAD_FOR_INPUT doesn't conflict with its
4552         RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS.
4553         Add special case for OUT == const0_rtx.
4554         Added ignore_address_reloads argument.  Changed all callers.
4555
4556 Mon Nov 16 02:22:29 1998  Jason Merrill  <jason@yorick.cygnus.com>
4557
4558         * toplev.c (compile_file): Don't pedwarn about undefined static
4559         functions just because we passed -Wunused.
4560
4561 Mon Nov 16 04:41:41 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4562
4563         * function.c (purge_addressof_1): Unshare rtl created by
4564         store_bit_field.
4565
4566 Mon Nov 16 04:23:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4567
4568         * regmove.c (regmove_optimize): Don't do anything but
4569         optimize_reg_copy[123] when flag_regmove is not set.
4570
4571 Sat Nov 14 15:05:07 1998  Richard Henderson  <rth@cygnus.com>
4572
4573         * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode
4574         value in paradoxical SImode result, rather than truncating midpoint.
4575
4576 Fri Nov 13 22:19:23 1998  Richard Henderson  <rth@cygnus.com>
4577
4578         * alpha.c (reg_not_elim_operand): New.
4579         * alpha.h (PREDICATE_CODES): Add it.
4580         * alpha.md (s48addq, s48subq patterns): Use it as the predicate
4581         for the multiplicand.
4582
4583 Fri Nov 13 22:50:37 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4584
4585         * rs6000.md (movsf): Remove explicit secondary-reload-like
4586         functionality.  Only truncate SFmode store if in FPR.
4587         (movsf splitters): Combine const_double splitters.
4588         (movsf_hardfloat): Add GPR support.
4589
4590 Fri Nov 13 11:02:11 1998  Stan Cox  <scox@cygnus.com>
4591
4592         * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to
4593         deprecate -mlive-g0 and -mbroken-saverestore.
4594         * t-splet (MULTILIB_OPTIONS): Likewise.
4595         
4596         * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size
4597         in a leaf function.  Clarify total_size/extra_size relationship.
4598
4599 Thu Nov 12 19:20:57 1998  Geoffrey Noer  <noer@cygnus.com>
4600
4601         * i386/cygwin32.asm: Delete.
4602         * i386/cygwin.asm: New file, renamed from cygwin32.asm.
4603         * i386/cygwin32.h: Delete.
4604         * i386/cygwin.h: New file, renamed from cygwin32.h.
4605         * i386/t-cygwin32: Delete.
4606         * i386/t-cygwin: New file, renamed from t-cygwin32.  Include
4607         cygwin.asm instead of cygwin32.asm.  Remove "32" from comment.
4608         * i386/x-cygwin32: Delete.
4609         * i386/x-cygwin: New file, renamed from x-cygwin32.
4610         * i386/xm-cygwin32: Delete.
4611         * i386/xm-cygwin: New file, renamed from xm-cygwin32.  Use newly
4612         renamed cygwin_ funcs for path translations.
4613         * i386/win32.h: Define __CYGWIN__ when -mcygwin given.
4614         * i386/winnt.c: Remove "32" from comment about cygwin.
4615         * i386/mingw32.h: Fix references to cygwin32.h in light of above.
4616         * rs6000/cygwin32.h: Delete.
4617         * rs6000/cygwin.h: New file, renamed from cygwin32.h.  Add
4618         -D__CYGWIN__ to CPP_PREDEFINES.
4619         * rs6000/x-cygwin32: Delete.
4620         * rs6000/x-cygwin: New file, renamed from x-cygwin32.
4621         * rs6000/xm-cygwin32: Delete.
4622         * rs6000/xm-cygwin: New file, renamed from xm-cygwin32.
4623
4624         * configure.in: Check for cygwin* instead of cygwin32.  Account
4625         for the rename of cygwin-related config files to lose the "32"s.
4626         * configure: Regenerate.
4627
4628         * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c,
4629         toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__.
4630
4631 Wed Nov 11 12:25:19 1998  Tom Tromey  <tromey@cygnus.com>
4632
4633         * Makefile.in (JAVAGC): New macro.
4634         * configure: Rebuilt.
4635         * configure.in: Recognize --enable-java-gc argument.  Subst
4636         `JAVAGC' variable.
4637
4638 Thu Nov 12 03:32:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4639
4640         Handle equivalences that have been obscured by gcse:
4641
4642         * reload1.c (reload): Handle equivalences set up in multiple places.
4643         * local-alloc.c (reg_equiv_init_insns): New variable.
4644         (no_equiv): New function.
4645         (update_equiv_regs): Handle equivalences set up in multiple places.
4646         Don't ignore an insn just because its destination is likely to be
4647         spilled.
4648
4649 Wed Nov 11 13:46:13 1998  Jim Wilson  <wilson@cygnus.com>
4650
4651         * except.c (expand_eh_return): Readd force_operand call lost in
4652         Sept 15 change.
4653
4654 Tue Nov 10 17:04:11 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4655
4656         * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case.
4657
4658 1998-11-09  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
4659
4660         * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H.
4661
4662 Mon Nov  9 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4663
4664         * regmove.c (regmove_optimize): Fix error in last change.
4665
4666 Mon Nov  9 16:37:52 1998  Andrew Cagney  <cagney@b1.cygnus.com>
4667
4668         * mips.c (function_prologue): When TARGET_MIPS16, adjust the register
4669         offset in the .mask pseudo to compensate for frame pointer adjustments.
4670         (mips16_fp_args, build_mips16_call_stub): For little endian, do not
4671         word swap arguments moved to/from FP registers.
4672         * mips16.S (DFREVCMP): Reverse arguments to OPCODE.
4673         
4674 Mon Nov 9 09:47:06 PST 1998 Jeff Law  (law@cygnus.com)
4675
4676         * version.c: Bump for snapshot.
4677
4678 Mon Nov 9 02:14:14 PST 1998 Jeff Law  (law@cygnus.com)
4679
4680         * version.c: Bump for snapshot.
4681
4682 Mon Nov  9 03:06:24 1998  Jeffrey A Law  (law@cygnus.com)
4683
4684         * reload1.c (delete_output_reload_insn): If a pseudo is set multiple
4685         times, then it can not be completely replaced.
4686
4687 Mon Nov  9 00:39:02 1998  Richard Henderson  <rth@cygnus.com>
4688
4689         * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length.
4690
4691 Sun Nov  8 17:50:30 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4692
4693         * gansidecl.h: Prepend a "G" to the macro wrapping this file
4694         (to distinguish it from the macro wrapping ansidecl.h.)
4695         Include libiberty's ansidecl.h.  Remove all redundant definitions.
4696         Define the PROTO() style macros in terms of the PARAMS() ones.
4697
4698         
4699         * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not
4700         __STDC__, when deciding whether to use ANSI variable args.
4701         (emit_library_call_value): Likewise.
4702
4703         * cccp.c (error): Likewise.
4704         (warning): Likewise.
4705         (error_with_line): Likewise.
4706         (warning_with_line): Likewise.
4707         (pedwarn): Likewise.
4708         (pedwarn_with_line): Likewise.
4709         (pedwarn_with_file_and_line): Likewise.
4710         (fatal): Likewise.
4711
4712         * cexp.y (error): Likewise.
4713         (pedwarn): Likewise.
4714         (warning): Likewise.
4715
4716         * collect2.c (fatal_perror): Likewise.
4717         (fatal): Likewise.
4718         (error): Likewise.
4719
4720         * combine.c (gen_rtx_combine): Likewise.
4721
4722         * cpperror.c (cpp_message): Likewise.
4723         (cpp_fatal): Likewise.
4724
4725         * cpplib.c (cpp_error): Likewise.
4726         (cpp_warning): Likewise.
4727         (cpp_pedwarn): Likewise.
4728         (cpp_error_with_line): Likewise.
4729         (cpp_warning_with_line): Likewise.
4730         (cpp_pedwarn_with_line): Likewise.
4731         (cpp_pedwarn_with_file_and_line): Likewise.
4732
4733         * cpplib.h: Don't define PARAMS() macro.
4734
4735         * demangle.h: Likewise.
4736
4737         * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__,
4738         when deciding whether to use ANSI variable args.
4739
4740         * emit-rtl.c (gen_rtx): Likewise.
4741         (gen_rtvec): Likewise.
4742
4743         * final.c (asm_fprintf): Likewise.
4744
4745         * fix-header.c (cpp_message): Likewise.
4746         (fatal): Likewise.
4747         (cpp_fatal): Likewise.
4748
4749         * gcc.c (concat): Likewise.
4750         (fatal): Likewise.
4751         (error): Likewise.
4752
4753         * genattr.c (fatal): Likewise.
4754
4755         * genattrtab.c (attr_rtx): Likewise.
4756         (attr_printf): Likewise.
4757         (fatal): Likewise.
4758
4759         * gencodes.c (fatal): Likewise.
4760
4761         * genconfig.c (fatal): Likewise.
4762
4763         * genemit.c (fatal): Likewise.
4764
4765         * genextract.c (fatal): Likewise.
4766
4767         * genflags.c (fatal): Likewise.
4768
4769         * genopinit.c (fatal): Likewise.
4770
4771         * genoutput.c (fatal): Likewise.
4772         (error): Likewise.
4773
4774         * genpeep.c (fatal): Likewise.
4775
4776         * genrecog.c (fatal): Likewise.
4777
4778         * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when
4779         deciding whether to declare `tree_node' and `rtx_def'.
4780
4781         * hash.h: Don't define stuff we get from gansidecl.h.
4782
4783         * mips-tfile.c: Likewise.  Define __proto() in terms of PARAMS().
4784         (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
4785         whether to use ANSI variable args.
4786         (error): Likewise.
4787
4788         * prefix.c (concat): Likewise.
4789
4790         * scan.h: Likewise.
4791
4792         * system.h: Likewise.
4793
4794         * toplev.c (error_with_file_and_line): Likewise.
4795         (error_with_decl): Likewise.
4796         (error_for_asm): Likewise.
4797         (error): Likewise.
4798         (fatal): Likewise.
4799         (warning_with_file_and_line): Likewise.
4800         (warning_with_decl): Likewise.
4801         (warning_for_asm): Likewise.
4802         (warning): Likewise.
4803         (pedwarn): Likewise.
4804         (pedwarn_with_decl): Likewise.
4805         (pedwarn_with_file_and_line): Likewise.
4806         (sorry): Likewise.
4807         (really_sorry): Likewise.
4808
4809         * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
4810         whether to declare `tree_node' and `rtx_def'.
4811
4812         * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when
4813         deciding whether to use ANSI variable args.
4814         (build_nt): Likewise.
4815         (build_parse_node): Likewise.
4816
4817 Sun Nov 8 13:10:55 PST 1998 Jeff Law  (law@cygnus.com)
4818
4819         * version.c: Bump for snapshot.
4820
4821 Sat Nov  7 23:34:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4822
4823         * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB.
4824
4825 Sat Nov  7 22:26:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4826
4827         * collect2.c (main, case 'b'): Use else if.
4828
4829 Sat Nov  7 15:35:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4830
4831         * configure.in (host_xm_file, build_xm_file, xm_file, tm_file):
4832         Arrange to include gansidecl.h in {ht}config.h & tm.h just
4833         before the config/ directory headers.
4834         (tm_file_list, host_xm_file_list, build_xm_file_list): Handle
4835         gansidecl.h in the list of dependencies.
4836
4837         * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h.
4838         (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib,
4839         mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o,
4840         gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o,
4841         dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o,
4842         cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o):
4843         Likewise.
4844
4845         * cccp.c: Don't include gansidecl.h.
4846         * cexp.y: Likewise.
4847         * collect2.c: Likewise.
4848         * config/c4x/c4x.c: Likewise.
4849         * config/v850/v850.h: Likewise.
4850         * cppalloc.c: Likewise.
4851         * cpperror.c: Likewise.
4852         * cppexp.c: Likewise.
4853         * cppfiles.c: Likewise.
4854         * cpphash.c: Likewise.
4855         * cpplib.c: Likewise.
4856         * cppmain.c: Likewise.
4857         * cppulp.c: Likewise.
4858         * demangle.h: Likewise.
4859         * doprint.c: Likewise.
4860         * dyn-string.c: Likewise.
4861         * eh-common.h: Likewise.
4862         * fix-header.c: Likewise.
4863         * frame.c: Likewise.
4864         * gcc.c: Likewise.
4865         * gcov.c: Likewise.
4866         * gen-protos.c: Likewise.
4867         * gencheck.c: Likewise.
4868         * halfpic.h: Likewise.
4869         * hash.c: Likewise.
4870         * machmode.h: Likewise.
4871         * mbchar.c: Likewise.
4872         * prefix.c: Likewise.
4873         * protoize.c: Likewise.
4874         * recog.h: Likewise.
4875         * rtl.h: Likewise.
4876         * scan-decls.c: Likewise.
4877         * tree.h: Likewise.
4878         * varray.h: Likewise.
4879         
4880 Sat Nov  7 11:37:53 1998  Richard Henderson  <rth@cygnus.com>
4881
4882         * i386.md (call_value_pop): If we're not popping anything,
4883         defer to call_value.
4884         (call_pop): Likewise defer to call.
4885
4886 Sat Nov  7 02:49:56 1998  Richard Henderson  <rth@cygnus.com>
4887
4888         * function.c (purge_addressof): Clear purge_addressof_replacements
4889         only after processing the whole function.
4890
4891 Sat Nov  7 00:54:55 1998  Jeffrey A Law  (law@cygnus.com)
4892
4893         * reload1.c (reload): If we can not perform a particular elimination
4894         when we thought we could earlier, then we must always iterate through
4895         the loop at least one more time.
4896
4897 Fri Nov  6 19:37:33 1998  Richard Henderson  <rth@cygnus.com>
4898
4899         * alpha.c (add_operand): Simplify the CONST_INT match.
4900         (sext_add_operand): Correct typo in comparison by using
4901         CONST_OK_FOR_LETTER_P.
4902         * alpha.md (s?addq): Use sext_add_operand to allow the negative
4903         constant alternatives to be generated.
4904         (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow
4905         small constants, since the hw instructions do.
4906
4907 Fri Nov  6 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4908
4909         * reload1.c (emit_reload_insns):  When rewriting the SET_DEST of a
4910         previous insn to store directly into our reload register, make sure
4911         that if the source of the previous insn is a reload register, its
4912         spill_reg_store and spill_reg_stored_to values are cleared.
4913
4914 Fri Nov  6 16:35:10 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4915
4916         * rs6000.md (floatunssidf2_internal splitter): Use base register
4917         operand, not hard-coded SP.
4918
4919 Fri Nov  6 04:07:53 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4920
4921         * jump.c (calculate_can_reach_end): Fix thinko.
4922
4923 Fri Nov  6 00:16:04 1998  Jeffrey A Law  (law@cygnus.com)
4924
4925         * reorg.c (fill_simple_delay_slots): Fix typo.
4926
4927         * romp.h (LEGITIMIZE_ADDRESS): Fix typo.
4928
4929 Fri Nov  6 00:10:00 1998  Jan Hubicka (hubicka@freesoft.cz)
4930
4931         * i386.md (extendsidi2): Use # in the output template.
4932         (extendsidi splitters): New splitters.
4933
4934 Thu Nov  5 11:13:27 1998  Nick Clifton  <nickc@cygnus.com>
4935
4936         * configure.in: Use unknown-elf.h as tm_file for arm-elf
4937         configuarions.
4938         * configure: Regenerate.
4939
4940 Thu Nov  5 07:59:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4941
4942         * jump.c (init_label_info, delete_barrier_successors,
4943         mark_all_labels, delete_unreferenced_labels,
4944         delete_noop_moves, calculate_can_reach_end): New functions broken
4945         out of jump_optimize.
4946         (jump_optimize): Use them.
4947
4948 Thu Nov  5 07:57:45 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
4949
4950         * except.c (expand_fixup_region_end): Make sure outer context labels
4951         are not issued in an inner context during cleanups.
4952
4953 Thu Nov  5 04:03:06 1998  Richard Henderson  <rth@cygnus.com>
4954
4955         * alpha.md (addsi3, subsi3): No new temporaries once cse is
4956         no longer expected.
4957
4958 Thu Nov  5 03:29:19 1998  Richard Henderson  <rth@cygnus.com>
4959
4960         * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as
4961         to expose this midpoint to CSE.
4962
4963 Thu Nov  5 03:42:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4964
4965         * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again.
4966
4967 Thu Nov  5 10:53:01 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
4968
4969         * configure.in: Bring over gcc2 change of Nov 19 1997.
4970
4971 Wed Nov  4 23:43:08 1998  Graham  <grahams@rcp.co.uk>
4972
4973         * toplev.c (output_lang_identify): Make definition dependent on
4974         ASM_IDENTIFY_LANGUAGE.
4975
4976         * print-rtl.c (spaces): Make static.
4977
4978 Wed Nov  4 22:16:36 1998  Hans-Peter Nilsson  <hp@axis.se>
4979
4980         * extend.texi: Clarify proper uses for register clobbers in asms.
4981
4982 Wed Nov  4 22:16:36 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4983
4984         * recog.h (enum op_type): Define.
4985         (constrain_operands): Adjust prototype.
4986         (recog_op_type): Declare new variable.
4987         * recog.c (recog_op_type): New variable.
4988         (insn_invalid_p): Allow modifying an asm statement after reload.
4989         (extract_insn): Set up recog_op_type.
4990         (constrain_operands): Lose INSN_CODE_NUM arg.  All callers changed.
4991         Don't compute operand types, use recog_op_type.
4992         Use the information computed by extract_insn instead of the previous
4993         method of finding it by insn code number.
4994         * caller-save.c (init_caller_save): Use extract_insn, not insn_extract.
4995         * reorg.c (fill_slots_from_thread): Likewise.
4996         * reload1.c (reload_as_needed): Likewise.
4997         (gen_reload): Likewise.
4998         (inc_for_reload): Likewise.
4999         (reload_cse_simplify_operands): Likewise.
5000         Use the information computed by extract_insn instead of the previous
5001         method of finding it by insn code number.
5002         * genattrtab.c (write_attr_case): Generate call to extract_insn, not
5003         insn_extract.
5004         * final.c (final_scan_insn): Use extract_insn, not insn_extract.
5005         (cleanup_operand_subregs): Use extract_insn, not insn_extract.
5006         Use the information computed by extract_insn instead of the previous
5007         method of finding it by insn code number.
5008         * regmove.c (find_matches): Likewise.  Change meaning of the return
5009         value to be nonzero if the optimization can be performed, zero if
5010         not.  All callers changed.
5011         Shorten some variable names to fix formatting problems.
5012         (regmove_optimize): Shorten some variable names to fix formatting
5013         problems.
5014         Use the information computed by extract_insn instead of the previous
5015         method of finding it by insn code number.
5016         * regclass.c (scan_one_insn): Likewise.
5017         (record_reg_classes): Don't compute operand types, use recog_op_type.
5018         * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use
5019         recog_constraints instead.
5020
5021 Wed Nov  4 21:37:46 1998  Jeffrey A Law  (law@cygnus.com)
5022
5023         * rtl.h (flow2_completed): Declare.
5024         * flow.c (flow2_completed): Definition.
5025         * toplev.c (rest_of_compilation): Set and clear flow2_completed
5026         as necessary.
5027
5028 Wed Nov  4 19:15:37 1998  "Melissa O'Neill" <oneill@cs.sfu.ca>
5029
5030         * Makefile.in (libcpp.a): Ranlib libcpp.a
5031
5032         * cppulp.c (user_label_prefix): Initialize.
5033         
5034 Wed Nov  4 19:07:08 1998   John Wehle  (john@feith.com)
5035
5036         * flow.c (mark_regs_live_at_end): Mark the stack pointer as live
5037         at a RETURN if current_function_sp_is_unchanging is set.
5038
5039 Wed Nov  4 18:16:29 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
5040
5041         * emit-rtl.c (try_split): Fixed error in Oct 10 patch.
5042
5043 Wed Nov  4 15:11:15 1998  Geoffrey Noer  <noer@cygnus.com>
5044
5045         * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL,
5046         TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New.
5047         (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options.
5048         (CPP_PREDEFINES): Don't define __CYGWIN32__ here.
5049         (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options.
5050         (CPP_SPEC): Handle -mno-cygwin option.  Define __CYWIN__ in addition
5051         to __CYGWIN32__.
5052         (LIB_SPEC): Handle -mno-cyginw option.
5053         (LINK_SPEC): Handle -mdll.
5054
5055 Wed Nov  4 22:56:14 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5056
5057         * reload.c (find_reloads): Fix test for usage by other reload
5058         to handle secondary reloads properly.
5059
5060 Wed Nov  4 17:25:10 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5061
5062         * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an
5063         intermediate structure which has exactly the members provided by
5064         ELIMINABLE_REGS.  Define NUM_ELIMINABLE_REGS in terms of the
5065         static intermediate structure.
5066         
5067         (init_elim_table): Xmalloc() `reg_eliminate', and initialize it
5068         from the intermediate structure.  Do the same analogous fix in
5069         the case where ELIMINABLE_REGS is not defined.
5070
5071 Tue Nov  3 20:50:03 1998  Jeffrey A Law  (law@cygnus.com)
5072
5073         * pa.h (SELECT_SECTION): Fix thinko.
5074
5075 Tue Nov  3 17:51:36 1998  Jim Wilson  <wilson@cygnus.com>
5076
5077         * dwarf2out.c (output_call_frame_info): Comments on last change.
5078
5079 Tue Nov  3 07:51:43 1998  Richard Earnshaw (rearnsha@arm.com)
5080
5081         * arm.c (add_constant): When taking the address of an item in the
5082         pool, get the mode of the item addressed.
5083
5084         * arm.c (final_prescan_insn case INSN): If an insn doesn't 
5085         contain a SET or a PARALLEL, don't consider it for conditional
5086         execution.
5087
5088         Restore ABI compatibility for NetBSD.
5089         * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in
5090         arm.h
5091         (RETURN_IN_MEMORY): Likewise.
5092
5093 Mon Nov  2 11:46:17 1998  Doug Evans  <devans@canuck.cygnus.com>
5094
5095         * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations.
5096         (m32r_output_block_move): Rewrite bytes < 4 handling.
5097
5098 Mon Nov  2 10:10:35 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5099
5100         * configure.in: Call AC_FUNC_VFORK.
5101
5102         * collect2.c: Define VFORK_STRING as a printable string for
5103         error messages (either "vfork" or "fork".)  If HAVE_VFORK_H is
5104         defined, include vfork.h.  If VMS is defined, define vfork()
5105         appropriately.  Remove vfork check on USG, we're using autoconf.
5106         (collect_execute): Pass VFORK_STRING to fatal_perror instead of
5107         checking locally what string to pass.
5108         (scan_prog_file): Likewise.
5109         (scan_libraries): Likewise.
5110
5111         * gcc.c: Remove vfork check on USG, we're using autoconf.
5112         Besides, no calls to vfork/fork occur in this file.
5113
5114         * protoize.c: Likewise.
5115
5116 Mon Nov  2 07:52:28 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
5117
5118         * configure.in (DEFAULT_LINKER): renamed from LD
5119         (DEFAULT_ASSEMBLER): renamed from AS; reverted Schwab's patch
5120         (gcc_cv_as): try $DEFAULT_ASSEMBLER before $AS
5121         * configure: rebuilt
5122
5123 Mon Nov  2 01:48:10 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
5124
5125         * BUGS: fix the regexp for `more' to find the appropriate node.
5126         Reported by Joerg Pietschmann  <joerg_pietschmann@zkb.ch>
5127
5128         * BUGS: added link to the WWW FAQ
5129
5130 Sun Nov 1 18:27:15 PST 1998 Jeff Law  (law@cygnus.com)
5131
5132         * version.c: Bump for snapshot.
5133
5134 Sun Nov  1 11:04:32 1998  Jeffrey A Law  (law@cygnus.com)
5135
5136         * From Christian Gafton:
5137         * i386/linux.h (CPP_PREDEFINES): Add -D__i386__.
5138         * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__.
5139         * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__.
5140
5141 Sat Oct 31 21:42:39 1998  Mark Mitchell  <mark@markmitchell.com>
5142
5143         * c-common.c (c_get_alias_set): Allow all type-punning through
5144         unions.  Don't get confused about the type of a bit-field, despite
5145         the antics of build_modify_expr.
5146
5147 Sat Oct 31 22:35:29 1998  Jean-Pierre Radley <jpr@jpr.com>
5148
5149         * fixinc.sco: Paramaterize #include_next values.
5150         * fixinc/fixinc.sco: Likewise.
5151
5152 Sat Oct 31 20:39:35 1998  Jeffrey A Law  (law@cygnus.com)
5153
5154         * toplev.c (rest_of_compilation): No longer set reload_completed.
5155         * reload1.c (reload): Set it here.  Perform instruction splitting
5156         after reload has completed if we will be running the scheduler
5157         again.
5158
5159 Sat Oct 31 12:30:02 1998  Jeffrey A Law  (law@cygnus.com)
5160
5161         * jump.c (jump_optimize): Initialize mappings from INSN_UID to
5162         EH region if exceptions are enabled and we're performing cross
5163         jump optimizations.
5164         (find_cross_jump): Exit loop if the insns are in different EH regions.
5165
5166 Sat Oct 31 10:02:48 1998  Mark Mitchell  <mark@markmitchell.com>
5167
5168         * dwarf2out.c (output_call_frame_info): Use
5169         ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c.
5170
5171 Sat Oct 31 10:23:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5172
5173         Reinstall Apr 24th fix, lost during May 6th gcc2 merge:
5174         * c-common.c (check_format_info): Don't check for the 'x'
5175         format character twice, instead check for 'x' and 'X'
5176
5177 Fri Oct 30 14:50:25 1998  Jeffrey A Law  (law@cygnus.com)
5178
5179         * configure.in (assembler features): Also make gas is configured if
5180         we find it in the souce tree.
5181
5182 Fri Oct 30 13:23:20 1998  Richard Henderson  <rth@cygnus.com>
5183
5184         * i386.c (i386_comp_type_attributes): Compare whether the 
5185         attributes are defined, not their tree nodes.
5186
5187 Fri Oct 30 11:39:47 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
5188
5189         * configure.in (gxx_include_dir): bitten by autoconf quoting
5190         characters :-(
5191         * configure: rebuilt
5192
5193 Fri Oct 30 10:43:29 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
5194
5195         * configure.in: Ignore non-absolute value in $AS.
5196
5197 Fri Oct 30 00:54:25 1998  Peter Jakubek <pjak@snafu.de>
5198
5199         * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.
5200
5201 Fri Oct 30 00:42:34 1998  Mark Elbrecht <snowball3@usa.net>
5202
5203         * configure.in (msdosdjgpp): Set exeext and target_alias.
5204
5205 Thu Oct 29 23:55:43 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
5206
5207         * flow.c (XNMALLOC): New macro.
5208         (flow_int_list_blocks, basic_block_succ, basic_block_pred): New
5209         static variables.
5210         (add_edge, add_edge_to_label): New static functions.
5211         (free_bb_memory): New function.
5212         (flow_delete_insn): Delete function.
5213         (basic_block_drops_in): Delete variable.
5214         (find_basic_blocks): Allocate and initialize basic_block_head,
5215         basic_block_succ.  Don't allocate basic_block_drops_in.
5216         Call free_bb_memory at the beginning.
5217         (find_basic_blocks_1): Don't do multiple passes.
5218         Delete code to compute basic_block_drops_in.
5219         After calling make_edges, mark blocks reached by current block live.
5220         Update test for unreachable live blocks.
5221         (mark_label_ref): Delete args X, CHECKDUP.  Add PRED arg.  All callers
5222         changed.
5223         Simplify to call add_edge_to_label when a LABEL_REF is found.
5224         (make_edges): Simplify to call add_edge_to_label instead of
5225         mark_label_ref most of the time.
5226         Compute here whether control drops into the next block.
5227         (delete_unreachable_blocks): Return void.  All callers changed.
5228         Delete unreachable blocks in reverse order.
5229         After deleting all unreachable blocks, renumber the remaining ones
5230         and update n_basic_blocks.
5231         (delete_block): Speed up deletion a bit.
5232         Don't set basic_block_drops_in for deleted blocks.
5233         (free_basic_block_vars): Don't free basic_block_drops_in.
5234         (life_analysis_1): Update to use new edge representation.
5235         (dump_flow_info): Delete code to print basic block info; call
5236         dump_bb_data instead.
5237         (compute_preds_succs): Delete code to recompute basic_block_drops_in
5238         and uid_block_number.
5239         Simply copy the previously computed cfg.
5240         (dump_bb_data): New arg LIVE_INFO.  All callers changed.
5241         Print register lifetime information if LIVE_INFO is nonzero.
5242         * basic-block.h (dump_bb_data): Adjust prototype.
5243         * gcse.c (gcse_main): Update call to dump_bb_data.
5244         * rtl.h (free_bb_memory): Declare.
5245         * toplev.c (rest_of_compilation): Call free_bb_memory.
5246
5247         * reload1.c (struct elim_table): Delete MAX_OFFSET member.
5248         (update_eliminable_offsets): Don't compute it.
5249         (set_initial_elim_offsets): Don't initialize it.
5250         Break out some code into set_initial_label_offsets so the rest of
5251         this function can be called from reload_as_needed.
5252         Assume that INITIAL_FRAME_POINTER_OFFSET is defeined when
5253         ELIMINABLE_REGS isn't.
5254         (set_initial_label_offsets): New function, broken out of
5255         set_initial_elim_offsets.
5256         (set_offsets_for_label): New function, broken out of set_label_offsets
5257         and reload_as_needed.
5258         (reload): Call the two new functions.
5259         (reload_as_needed): Call set_initial_elim_offsets instead of
5260         duplicating the code.  Likewise for set_offsets_for_label.
5261
5262         * reload1.c (choose_reload_regs): Fix typo in Oct 17 change.
5263         (emit_reload_insns): Ensure that when we set reg_reloaded_valid for
5264         any hard reg, reg_reloaded_dead contains valid data.
5265
5266 Thu Oct 29 22:30:54 1998  Marcus Meissner <Marcus.Meissner@informatik.uni-erlangen.de>
5267
5268         * i386.c (i386_comp_type_attributes): Return nonzero for mismatched
5269         "stdcall" and "cdecl" attributes.
5270
5271 Thu Oct 29 19:05:17 1998  Jim Wilson  <wilson@cygnus.com>
5272
5273         * sched.c (update_flow_info): Add code to ! found_orig_dest case to
5274         handle deleted no-op moves of hard registers.
5275         * haifa-sched.c (update_flow_info): Likewise.
5276
5277 Thu Oct 29 18:07:47 1998  Jeffrey A Law  (law@cygnus.com)
5278
5279         * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end
5280         of the sequences to reload the HILO register which do not actually
5281         reference HILO.
5282
5283 Thu Oct 29 12:39:35 1998  Jim Wilson  <wilson@cygnus.com>
5284
5285         * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field.
5286
5287 Thu Oct 29 14:10:22 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
5288
5289         * except.c (emit_eh_context): Make the EH context register stay alive
5290         at -O0 so stupid.c doesn't get confused.
5291
5292 1998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5293
5294         * emit-rtl.c (try_split): Do not try to split a BARRIER.
5295
5296 Thu Oct 29 01:33:54 1998  Jan Hubicka <hubicka@freesoft.cz>
5297                           Jeffrey A Law  (law@cygnus.com)
5298
5299         * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM
5300         (zero_extendsidi2): Use # in output template and handle completely by
5301         splits.
5302         (zero_extend splitters): New define_splits.
5303         (ashiftrt_32): New pattern.
5304
5305 Wed Oct 28 22:58:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
5306
5307         * tree.c (append_random_chars): New fn.
5308         (get_file_function_name_long): Use it.
5309
5310 Wed Oct 28 22:27:05 1998  Richard Henderson  <rth@cygnus.com>
5311
5312         * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
5313         (LIBCPP_OBJS): New.  Add cppulp.o.
5314         (cppmain, fix-header): Depend on and use libcpp.a.
5315         * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead
5316         of the individual object files.
5317         * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@,
5318         last.
5319
5320         * cccp.c (user_label_prefix): New.
5321         (main): Set it off -f*leading-underscore.
5322         (special_symbol): Use it.
5323         * cpplib.c (special_symbol): Likewise.
5324         (cpp_handle_option): Handle -f*leading-underscore.
5325         * cppulp.c: New file.
5326
5327         * output.h (user_label_prefix): Declare it.
5328         * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix.
5329         * toplev.c (f_options, main): Handle -f*leading-underscore.
5330
5331         * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of
5332         referencing USER_LABEL_PREFIX directly.
5333         * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise.
5334         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
5335         * final.c (asm_fprintf): Use user_label_prefix instead.
5336         * arm/thumb.c (thumb_print_operand): Likewise.
5337
5338         * gcc.c (default_compilers): Pass -f*leading-underscore on to
5339         cpp wherever appropriate.
5340
5341 Wed Oct 28 23:09:25 1998  Robert Lipe  <robertl@dgii.com>
5342
5343         * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer-
5344         specific compiler switches.
5345
5346 Wed Oct 28 21:05:53 1998  Jeffrey A Law  (law@cygnus.com)
5347
5348         * Makefile.in (c-common.o): Depend on c-pragma.h.  Use $(RTL_H) instead
5349         of rtl.h.
5350
5351 Wed Oct 28 20:52:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5352
5353         * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
5354         structure which has exactly the members provided by EXTRA_SPECS.
5355         Xmalloc() the real `extra_specs', and initialize it from this
5356         intermediate structure.
5357
5358         * alpha.h (EXTRA_SPECS): Revert change for missing initializers.
5359
5360         * mips.h  (EXTRA_SPECS): Likewise.
5361
5362         * sparc.h (EXTRA_SPECS): Likewise.
5363
5364 Wed Oct 28 16:46:07 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
5365     
5366         * function.c (purge_addressof_1): Instead of aborting when a
5367         bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
5368         work just put the ADDRESSOF on stack.  Otherwise remember all such
5369         successfull replacements, so that exactly the same replacements
5370         can be made on the REG_NOTEs.  Remove the special case for CALL
5371         insns again.
5372         (purge_addressof_replacements): New variable.
5373         (purge_addressof): Clear it at end.
5374
5375 1998-10-28 16:10 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5376
5377          * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB.
5378            (lang_init): Call check_newline always.
5379          * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling
5380            cpp_start_read, set yy_cur and yy_lim to read from
5381            parse_in.token_buffer, so that we'll see the first #line
5382            directive.
5383          * cpplib.c (cpp_start_read): finclude the main input file
5384            before processing -include/-imacros.  Process -imacros and
5385            -include separately, and handle -include by stacking a
5386            buffer for the file in question as if it'd been #included.
5387          * toplev.c (documented_lang_options) Recognize -H when
5388            USE_CPPLIB is on.
5389
5390 1998-10-28 16:09 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5391
5392          * cpplib.c: Merge do_once into do_pragma.  Break file handling
5393            code out of do_include.
5394            Move append_include_chain, deps_output,
5395            file_cleanup, redundant_include_p, import_hash,
5396            lookup_import, add_import, read_filename_string, read_name_map,
5397            open_include_file, finclude, safe_read to cppfiles.c.
5398            Move prototypes for deps_output, append_include_chain,
5399            finclude to cpplib.h.  Move definition of struct
5400            file_name_list there also.
5401
5402          * cppfiles.c: New file.  Contains all the above functions
5403            broken out of cpplib.c; also hack_vms_include_specification
5404            from cccp.c and find_include_file, a new function broken out of
5405            do_include.
5406
5407          * Makefile.in (cppmain): Depend on cppfiles.o.
5408            (fix-header): Likewise.
5409            (cppfiles.o): New target.
5410          * configure.in (--enable-c-cpplib): Add cppfiles.o to
5411            extra_c_objs.  Add ../cppfiles.o to extra_cxx_objs.
5412
5413 Wed Oct 28 14:06:49 1998  Jim Wilson  <wilson@cygnus.com>
5414
5415         * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
5416         if pending_types is non-zero.
5417         (dwarfout_finish): Verify pending_types is zero before finishing.
5418
5419 Wed Oct 28 10:29:09 1998  Nick Clifton  <nickc@cygnus.com>
5420
5421         * expr.c (convert_move): Use shifts to perform the move if a
5422         suitable extend pattern cannot be found.  Code written by
5423         Richard Henderson <rth@cygnus.com>.
5424
5425 Wed Oct 28 03:59:29 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
5426
5427         * regclass.c (renumber, regno_allocated): New static variables, moved
5428         out of allocate_reg_info.
5429         (allocate_reg_info): Move these two variables outside the function.
5430         Move code to free memory into new function free_reg_info.
5431         (free_reg_info): New function, broken out of allocate_reg_info.
5432         * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info.
5433         * rtl.h (allocate_reg_info): Don't declare.
5434         (free_reg_info): Declare.
5435
5436         * final.c (cleanup_subreg_operands):  ASM_INPUTs need no treatment.
5437
5438 Wed Oct 28 02:38:12 1998  Jason Merrill  <jason@yorick.cygnus.com>
5439
5440         * toplev.c (compile_file): Temporarily revert last change.
5441
5442 Wed Oct 28 00:00:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
5443
5444         * c-typeck.c (convert_for_assignment): Parenthesize.
5445
5446 1998-10-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
5447
5448         * reload1.c (delete_output_reload): Avoid ambigous else.
5449
5450 Wed Oct 28 00:10:35 1998  Jeffrey A Law  (law@cygnus.com)
5451
5452         * toplev.c (compile_file): Call allocate_reg_info to free register
5453         table memory.
5454         * rtl.h (allocate_reg_info): Declare.
5455
5456         * PROJECTS: Remove entry for local spilling.
5457
5458         * final.c (cleanup_subreg_operands): New function.
5459         (final_scan_insn): Use it.
5460         (alter_subreg): Clear the "used" field when we turn a SUBREG into
5461         a REG.
5462         * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG
5463         operands when reload has finished.
5464         * reload.h (cleanup_subreg_operands): Declare..
5465         * flow.c (life_analysis_1): No longer delete CLOBBER insns after
5466         reload.  Handled in reload itself.
5467
5468 Tue Oct 27 23:32:34 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
5469
5470         * reload1.c (verify_initial_offsets): New function.
5471         (reload): Call it after reload_as_needed.  Also verify that the frame
5472         size stays constant during reload_as_needed.
5473         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change.
5474
5475         * reload.h (struct insn_chain): Add need_operand_change element.
5476         * reload1.c (new_insn_chain): Clear it.
5477         (calculate_needs_all_insns): Set it; don't overload need_reload.
5478         (reload_as_needed): Use it.
5479
5480         * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of
5481         reload_address_base_reg_class throughout.  Similar for INDEX_REG_CLASS
5482         and reload_address_index_reg_class.
5483         (find_reloads_address_1): Likewise.
5484         * reload.h (reload_address_base_reg_class,
5485         reload_address_index_reg_class): Don't declare.
5486         * reload1.c (reg_old_renumber, pseudo_previous_regs,
5487         pseudo_forbidden_regs, bad_spill_regs_global): New static variables.
5488         (used_spill_regs): Now static.
5489         (reload_address_base_reg_class, reload_address_index_reg_class,
5490         regs_explicitly_used, counted_for_groups, counted_for_nongroups,
5491         basic_block_needs, max_needs, group_size, group_mode, max_groups,
5492         max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn,
5493         forbidden_regs):
5494         Deleted variables.
5495         (init_reload): Delete code to compute base/index reg classes.
5496         (reload): Delete variable J.
5497         Delete code to manage basic_block_needs.
5498         Don't compute regs_explicitly_used.
5499         Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs,
5500         pseudo_previous_regs.
5501         Initialize bad_spill_regs_global.
5502         Don't call order_regs_for_reload here.
5503         Don't initialize spill_reg_order and n_spills.
5504         Don't forbid explicitly used regs to be used for spill regs.
5505         Change main loop to infinite loop, with explicit break statements.
5506         Make SOMETHING_CHANGED variable local to that loop.
5507         Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn,
5508         max_groups_insn, max_nongroups_insn, group_size, group_mode.
5509         Make sure spilled_speudos is cleared before calling spill_hard_reg or
5510         new_spill_reg.
5511         Don't call dump_needs.
5512         Delete code to reset potential_reload_regs.
5513         Delete code to terminate loop conditional on the global needs variables
5514         showing no further needs.
5515         (calculate_needs_all_insns): Return void.  All callers changed.
5516         Initialize somehing_needs_elimination here, not in reload.
5517         Delete avoid_return_reg kludge.
5518         (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void.
5519         All callers changed.
5520         Initialize the group_mode and group_size elements of the arg CHAIN.
5521         Delete code to manage basic_block_needs.
5522         Operate on elements of CHAIN instead of global variables.
5523         Delete avoid_return_reg kludge.
5524         (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void.
5525         All callers changed.
5526         Operate on elements of CHAIN instead of global variables.
5527         Delete special SMALL_REGISTER_CLASSES code.
5528         Delete spill_failure code; now in new_spill_reg.
5529         (find_group): Lose GLOBAL arg, take CHAIN arg, return void.
5530         All callers changed.
5531         Operate on elements of CHAIN instead of global variables.
5532         (maybe_mark_pseudo_spilled): New static function.
5533         (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void.
5534         All callers changed.
5535         Operate on elements of CHAIN instead of global variables.
5536         Call order_regs_for_reload here, not in reload.
5537         Initialize spill_reg_order and n_spills.
5538         Simplify test whether an asm insn is involved.
5539         Delete spill_failure code; now in new_spill_reg.
5540         Call maybe_mark_pseudo_spilled for everything marked as live in
5541         CHAIN.  Merge CHAIN's used_spill_regs into the global variable
5542         used_spill_regs.
5543         (dump_needs): Take CHAIN arg.  No longer static, to prevent the
5544         compiler from optimizing this function (now unused) away.
5545         Operate on elements of CHAIN instead of global variables.
5546         (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg.  All callers
5547         changed.
5548         Operate on elements of CHAIN instead of global variables.
5549         (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args,
5550         take CHAIN arg.  All callers changed.
5551         Operate on elements of CHAIN instead of global variables.
5552         (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take
5553         CHAIN, NONGROUP args.  Return void.  All callers changed.
5554         Verify caller isn't trying to spill a pseudo.
5555         Simplify test for illegal reg, just use bad_spill_regs.
5556         Generate better error messages.
5557         Operate on elements of CHAIN instead of global variables.
5558         Mark spilled register in CHAIN's used_spill_regs element.
5559         Don't call spill_hard_reg.
5560         (spill_hard_reg): Lose GLOBAL arg, return void.  All callers changed.
5561         Mark spilled hard regs in bad_spill_regs_global.
5562         Mark affected pseudos in spilled_pseudos, but don't spill them.
5563         (ior_hard_reg_set): New static function.
5564         (finish_spills): Return int.  All callers changed.
5565         Compute spill_reg_order, n_spills and spill_regs here.  Also update
5566         regs_ever_live for regs used as spills.
5567         For every pseudo in spilled_pseudos, spill it and mark the previous
5568         hard reg it had in pseudo_previous_regs.  Compute which hard regs
5569         arseudo): New static function.
5570         (order_regs_for_reload): Take CHAIN arg.  All callers changed.
5571         Initialize bad_spill_regs from bad_spill_regs_global, then merge any
5572         hard registers explicitly used across the current insn into the set.
5573         Compute hard_reg_n_uses taking only pseudos live across this insn
5574         into account.
5575         Tweak sorting of potential_reload_regs.
5576         (compare_spill_regs): Delete function.
5577         (reload_as_needed): Don't sort the spill_regs array, it's computed
5578         in proper order in finish_spills.
5579         Delete avoid_return_reg kludge.
5580         Delete code to manage basic_block_needs.
5581         (allocate_reload_reg): Minor speed/readability tweaks.
5582         Operate on elements of CHAIN instead of global variables.
5583         (choose_reload_regs): Lose AVOID_RETURN_REG arg.  All callers changed.
5584         Delete avoid_return_reg kludge.
5585         Initialize reload_reg_used from CHAIN's used_spill_regs element.
5586         Delete unused label FAIL.
5587         (reload_combine): Replce reload_address_index_reg_class with
5588         INDEX_REGS.
5589         Don't use used_spill_regs to determine information about lifetime of
5590         hard regs.
5591
5592 Tue Oct 27 13:15:02 1998  Nick Clifton  <nickc@cygnus.com>
5593         
5594         * toplev.c (display_help): Ignore empty target specific
5595         options, and if -W is also specified on the command line then
5596         display undocumented options.
5597
5598         * config/arm/arm.c: Updated with changes in devo sources.
5599         * config/arm/arm.h: Updated with changes in devo sources.
5600         * config/arm/lib1funcs.asm: Updated with changes in devo sources.
5601         * config/arm/lib1thumb.asm: Add ELF support.
5602
5603 Tue Oct 27 16:11:43 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5604
5605         * collect2.c (aix64_flag): New variable.
5606         (main, case 'b'): Parse it.
5607         (GCC_CHECK_HDR): object magic number must match mode.
5608         (scan_prog_file): Only check for shared object if valid header.
5609         Print debugging if header/mode mismatch.
5610
5611 Tue Oct 27 10:15:02 1998  Nick Clifton  <nickc@cygnus.com>
5612
5613         Added support for arm-elf-linux configuration, submitted by Philip
5614         Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf
5615         code developed by Catherine Moore <clm@cygnus.com>.  The following
5616         files are affected: 
5617
5618         * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf
5619         targets. 
5620
5621         * configure: Regenerated.
5622         
5623         * config/arm/aout.h: Add default definitions of REGISTER_PREFIX,
5624         USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX.  Make other macro
5625         definitions conditional on their not having been already defined.
5626
5627         * config/arm/lin1funcs.asm: Add ELF only macros to generate .size
5628         and .type directives, and add "(PLT)" qualification to function
5629         calls.
5630
5631         * config/arm/linux.h: Deleted.  This file is now superceeded by
5632         either linux-elf.h or linux-aout.h.
5633
5634         * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling.
5635         (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel
5636         support).
5637         Move definitions from old linux.h file here.
5638         
5639         * config/arm/elf.h: New file.  Generic ARM/ELF support.
5640         
5641         * config/arm/linux-aout.h: New file.  Support for Linux with a.out.
5642         
5643         * config/arm/linux-elf.h: New file.  Support for Linux with ELF.
5644         
5645         * config/arm/linux-elf26.h: New file.  Support for Linux with ELF
5646         using the 26bit APCS.
5647         
5648         * config/arm/unknown-elf.h: New file.  Support for OS'es other
5649         than Linux with ELF.
5650
5651         * config/arm/t-arm-elf: New file.  makefile fragment for arm-elf
5652         builds.
5653         
5654         * config/arm/coff.h: Include aout.h for basic assembler macros.
5655         Add support for -mstructure_size_boundary=<n> command line option.
5656         
5657         * config/arm/arm.h: Add support for -mstructure_size_boundary=<n>
5658         command line option.  Make macro definitions conditional on their
5659         not having been already defined. 
5660
5661         * config/arm/arm.c: Add support for -mstructure_size_boundary=<n>
5662         command line option.
5663
5664         
5665 Tue Oct 27 08:56:46 1998  Andrew MacLeod  <amacleod@cygnus.com>
5666
5667         * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING
5668         has been changed to not include a newline. Use this macro instead.
5669         (output_enumeral_list, const_value_attribute, name_attribute,
5670         comp_dir_attribute, prototyped_attribute, producer_attribute,
5671         inline_attribute, pure_or_virtual_attribute, output_inheritance_die,
5672         dwarfout_file_scope_decl, generate_new_sfname_entry,
5673         generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use
5674         ASM_OUTPUT_DWARF_STRING_NEWLINE macro.
5675
5676 Mon Oct 26 13:35:02 1998  Richard Henderson  <rth@cygnus.com>
5677
5678         * combine.c (subst): Process the inputs to a parallel asm_operands
5679         only once.
5680
5681 Mon Oct 26 13:32:31 1998  Richard Henderson  <rth@cygnus.com>
5682
5683         * stmt.c (expand_asm_operands): Accept `=' or `+' at any position.
5684
5685 Mon Oct 26 12:53:14 1998  Jeffrey A Law  (law@cygnus.com)
5686
5687         * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document.
5688
5689 Mon Oct 26 00:36:58 PST 1998 Jeff Law  (law@cygnus.com)
5690
5691         * version.c: Bump for snapshot.
5692
5693 Sun Oct 25 23:36:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
5694
5695         * stmt.c (expand_fixup): Set fixup->before_jump to a
5696         NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
5697
5698 Sun Oct 25 15:49:57 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5699
5700         * Makefile.in (recog.o): Depend on toplev.h.
5701         (insn-emit.o): Depend on recog.h.
5702         (insn-peep.o): Depend on recog.h and insn-config.h.
5703
5704         * combine.c (simplify_set): Remove unused variable `scratches'.
5705
5706         * final.c (final_scan_insn): Wrap declaration of variables `vlen'
5707         and `idx' in macro conditional controlling their use.
5708
5709         * genemit.c (main): Make the generated output file include
5710         recog.h.  Don't have it declare `insn_operand_constraint', since
5711         we get it from recog.h.
5712
5713         * genpeep.c (main): Make the generated output file include
5714         insn-config.h and recog.h.
5715
5716         * recog.c: Include toplev.h.
5717         (extract_insn): Remove unused variable `p'.
5718
5719         * regclass.c (fix_register): Add missing braces around initializer
5720         for `what_option'.
5721         (allocate_reg_info): Move variable `i' into the scope where it is
5722         used.  Change its type to `size_t'.
5723
5724 Sun Oct 25 13:10:15 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
5725
5726         * reload.c (push_reload): When merging reloads, make sure
5727         that reload_in_reg and reload_in are from the same reload in
5728         all cases.
5729
5730 Sun Oct 25 12:07:00 1998  Mumit Khan  <khan@xraylith.wisc.edu>
5731
5732         * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
5733         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
5734
5735 Fri Oct 23 23:42:03 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5736
5737         * loop.c (loop_has_tablejump): New variable.
5738         (prescan_loop): Scan for it.
5739         (insert_bct): Replace explicit scan with use of it.
5740         * regclass.c (regclass): Restore loop variable j.
5741         (record_reg_classes): Deterine op_types modifiers and initialize
5742         classes[i] before matching constraints.  Handle matching
5743         constraints 5-9.
5744         
5745 Fri Oct 23 13:55:48 1998  Jim Wilson  <wilson@cygnus.com>
5746
5747         * m32r/m32r.c (gen_split_move_double): Call alter_subreg.  Delete
5748         subreg support.
5749
5750 Fri Oct 23 16:19:24 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5751
5752         * mips.h (EXTRA_SPECS): Add missing initializers.
5753
5754 Fri Oct 23 16:08:39 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5755
5756         * sparc.h (EXTRA_SPECS): Add missing initializers.
5757         (sparc_defer_case_vector): Provide a prototype.
5758
5759         * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when
5760         comparing it to the result of a pointer subtraction.
5761
5762 Fri Oct 23 15:34:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5763
5764         * alpha.c (override_options): Use ISDIGIT(), not isdigit().  Cast
5765         the argument to (unsigned char).
5766
5767         * alpha.h (EXTRA_SPECS): Add missing initializers.
5768         (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
5769         format specifier.
5770
5771 Fri Oct 23 13:12:35 1998  Jeffrey A Law  (law@cygnus.com)
5772
5773         * flow.c (life_analysis_1): Enable "rescan" code after reload.
5774         (propagate_block): Delete dead code after reload.
5775
5776         * sched.c (update_flow_info): Revert Oct 19, 1998 change.  Brings
5777         back Oct 15, 1998 change.  
5778         * haifa-sched.c (update_flow_info): Likewise.
5779         * flow.c (life_analysis_1): Delete CLOBBER insns after reload.
5780
5781         * mn10200.md (truncated shift): Accept constant inputs too.
5782
5783 Fri Oct 23 04:06:57 1998  Richard Earnshaw (rearnsha@arm.com)
5784
5785         * machmode.h (mode_mask_array): No longer const.
5786         * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined.
5787
5788 Fri Oct 23 11:19:06 1998  Martin v. Löwis <loewis@informatik.hu-berlin.de>
5789
5790         * frame.c: Somewhat explain `FDE'.
5791         Suggested by Brendan Kehoe
5792
5793 Fri Oct 23 00:56:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
5794
5795         * expr.c (pending_chain): Move up.
5796         (save_expr_status): Do save pending_chain.
5797         (restore_expr_status): And restore it.
5798         * function.h (struct function): Add pending_chain.
5799
5800 1998-10-23 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5801
5802         * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The
5803         did not match the code.
5804
5805 Fri Oct 23 00:07:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
5806
5807         * regclass.c (regclass): Break out some code into new function
5808         scan_one_insn, and into regclass_init.
5809         (init_cost): New static variable, moved out of regclass.
5810         (regclass_init): Initialize it here, not in .
5811         (scan_one_insn): New static function, broken out of regclass.
5812         * recog.c (apply_change_group): Break out some code into new
5813         function insn_invalid_p.
5814         (insn_invalid_p): New static fn, broken out of apply_change_group.
5815
5816 Thu Oct 22 22:34:42 1998  Jim Wilson  <wilson@cygnus.com>
5817
5818         * reload1.c (reload_as_needed): When rewrite POST_INC, verify
5819         reg_reloaded_contents matches incremented pseudo.
5820
5821         * v850/v850.c (v850_reorg): Call alter_subreg.  Delete subreg support.
5822
5823 Fri Oct 23 11:11:56 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5824
5825         * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for
5826         addressing modes with side effects.  These are currently
5827         placeholders for the C4x target.
5828
5829 Thu Oct 22 16:46:35 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
5830
5831         * loop.c (express_from): Make sure that when generating a PLUS of
5832         a PLUS, any constant expression appears on the outermost PLUS.
5833
5834 Thu Oct 22 15:46:23 1998  Per Bothner (bothner@cygnus.com)
5835
5836         * Makefile.in (distdir-cvs, distdir-start):  Clean up so it
5837         works if "$(srcdir)" != ".".
5838
5839 Wed Oct 21 19:23:59 1998  Jim Wilson  <wilson@cygnus.com>
5840
5841         * expmed.c (store_bit_field): If need to add a SUBREG, then remove
5842         existing SUBREG if we can, otherwise abort.
5843
5844 Wed Oct 21 09:58:51 1998  Mark Mitchell  <mark@markmitchell.com>
5845
5846         * c-common.c (c_apply_type_quals_to_decl): Don't crash when
5847         `restrict' is applied to a non-pointer variable.
5848
5849 Wed Oct 21 09:18:58 1998  Mark Mitchell  <mark@markmitchell.com>
5850
5851         * invoke.texi: Document -flang-isoc9x.
5852
5853         * Makefile.in (OBJS): Add splay-tree.o.
5854         (c-common.o): Depend on rtl.h.
5855         (splay-tree.o): List dependencies and provide build rule.
5856         
5857         * rtl.h (record_alias_subset): New function.
5858         * alias.c: Include splay-tree.h.
5859         (alias_set_entry): New type.
5860         (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove.
5861         (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p.
5862         (mems_in_disjoin_alias_sets_p): New function.
5863         (alias_set_compare): Likewise.
5864         (insert_subset_children): Likewise.
5865         (get_alias_set_entry): Likewise.
5866
5867         * tree.h (TYPE_RESTRICT): New macro.
5868         (TYPE_UNQUALIFIED): New manifest constant.
5869         (TYPE_QUAL_CONST): Likewise
5870         (TYPE_QUAL_VOLATILE): Likewise.
5871         (TYPE_QUAL_RESTRICT): Likewise.
5872         (tree_type): Add restrict_flag.  Reduce count of free bits.
5873         (DECL_POINTER_ALIAS_SET): New macro.
5874         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
5875         (tree_decl): Add pointer_alias_set.
5876         (build_qualified_type): New function.
5877         (build_type_variant): Define in terms of build_qualified_type.
5878         * tree.c (set_type_quals): New function.
5879         (make_node): Initializae DECL_POINTER_ALIAS_SET.
5880         (build_type_attribute_variant): Use build_qualified_type and
5881         set_type_quals.
5882         (build_type_variant): Rename, and modify, to become...
5883         (build_qualified_type): New function.
5884         (build_complex_type): Use set_type_quals.
5885
5886         * c-tree.h (C_TYPE_OBJECT_P): New macro.
5887         (C_TYPE_FUNCTION_P): Likewise.
5888         (C_TYPE_INCOMPLETE_P): Likewise.
5889         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
5890         (c_apply_type_quals_to_decl): New function.
5891         (c_build_qualified_type): New function.
5892         (c_build_type_variant): Define in terms of c_build_qualified_type.
5893         (flag_isoc9x): Declare.
5894         * c-typeck.c (qualify_type): Use c_build_qualified_type.
5895         (common_type): Change to use TYPE_QUALS.
5896         (comptypes): Likewise.
5897         (convert_for_assignment): Likewise.
5898         * c-aux-info.c (gen_type): Likewise.  Deal with `restrict'.
5899         * c-decl.c (flag_isoc9x): Define.
5900         (c_decode_option): Handle -flang-isoc9x.
5901         (grokdeclarator): Update to handle restrict.  Use TYPE_QUALS,
5902         c_build_qualified_type, etc.  Use c_apply_type_quals_to_decl.
5903         * c-lex.c (init_lex): Deal with restrict.
5904         (init_lex): Don't treat restrict as a reserved word in
5905         -traditional mode, or without -flang-isoc9x.
5906         * c-lex.h (rid): Add RID_RESTRICT.
5907         * c-parse.gperf (restrict, __restrict, __restrict__): Make
5908         equivalent to RID_RESTRICT.
5909         * c-parse.in (TYPE_QUAL): Update comment.
5910         * c-common.c: Include rtl.h.
5911         (c_find_base_decl): New function.
5912         (c_build_type_variant): Rename, and modify, to become ...
5913         (c_build_qualified_type): New function.
5914         (c_apply_type_quals_to_decl): Likewise.
5915         (c_get_alias_set): For INDIRECT_REFs, check to see if we can find
5916         a particular alias set for the reference.
5917         * toplev.c (documented_lang_options): Add -flang-isoc9x.
5918
5919 Wed Oct 21 09:15:06 1998  Nick Clifton  <nickc@cygnus.com>
5920
5921         * config/arm/arm.h (TARGET_SWITCHES): Document arm specific
5922         command line switches.
5923
5924 Tue Oct 20 10:04:51 1998  Graham  <grahams@rcp.co.uk>
5925
5926         * reload.c (loc_mentioned_in_p): Add missing braces to bind
5927         else to correct if.
5928
5929 Mon Oct 19 16:34:05 1998  Tom Tromey  <tromey@cygnus.com>
5930
5931         * gcc.c (option_map): Added --classpath and --CLASSPATH.
5932
5933 Tue Oct 20 10:59:02 1998  Gavin Romig-Koch  <gavin@cygnus.com>
5934
5935         * regclass.c (fix_register): Add error message.
5936         * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the
5937           new error message.
5938
5939 Tue Oct 20 10:12:17 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5940
5941         * c-decl.c (warn_missing_noreturn): New global variable.
5942         (c_decode_option): Check for new flags -W{no-}missing-noreturn.
5943         (finish_function): Implement missing noreturn warning.
5944
5945         * c-tree.h (warn_missing_noreturn): Declare extern.
5946
5947         * invoke.texi: Document new flags.
5948
5949         * toplev.c (documented_lang_options): Add description.
5950
5951 Tue Oct 20 22:16:11 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5952
5953         * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT
5954         loop optimization stable for the C4x.
5955         (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop,
5956         c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get,
5957         c4x_rptb_emit_init, c4x_rptb_process): Deleted (superceded by BCT
5958         loop optimization).
5959         (c4x_address_conflict): Be more paranoid when packing a volatile
5960         memref in a parallel load/store.
5961
5962 Tue Oct 20 21:56:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5963
5964         * config/c4x/c4x.md (repeat_block_top, repeat_block_end,
5965         repeat_block_filler): Deleted.
5966         (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber):
5967         Condition code not set if destination register from 'c' class.
5968         (*subbqi3_carry_clobber): Fix typo.
5969
5970 1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5971
5972         * reorg.c (steal_delay_list_from_target) Check for insns that
5973         modify the condition codes and effect the direction of the jump
5974         in the sequence.
5975
5976 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
5977
5978         * function.c (purge_addressof_1): Replace call to
5979         emit_insns_before() with emit_insn_before().
5980
5981 Mon Oct 19 19:34:03 1998  Mike Stump <mrs@wrs.com>
5982
5983         * libgcc2.c (__pure_virtual): Call __terminate instead of _exit.
5984
5985 Mon Oct 19 13:26:24 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
5986
5987         * jump.c (sets_cc0_p): Compile only if HAVE_cc0.
5988
5989 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
5990
5991         * gcse.c (compute_hash_table): Correctly identify hard regs which are
5992         clobbered across calls.
5993
5994         * loop.c (scan_loop): Be more selective about what invariants are
5995         moved out of a loop.
5996
5997 Mon Oct 19 10:46:58 PDT 1998 Jeff Law  (law@cygnus.com)
5998
5999         * version.c: Bump for snapshot.
6000
6001 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
6002
6003         * libgcc2.c (eh_context_static): Do not call malloc to allocate the
6004         static eh_context structure.
6005
6006 Mon Oct 19 10:45:40 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
6007
6008         * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.  All
6009         callers changed.
6010         (try_combine): Don't update max_scratch.
6011         * flow.c (max_scratch, num_scratch): Delete variables.
6012         (life_analysis_1): Don't initialize max_scratch.
6013         (propagate_block): Don't update max_scratch.
6014         (mark_set_1): Don't increment num_scratch.
6015         * regs.h (max_scratch): Delete declaration.
6016
6017 Mon Oct 19 10:28:15 1998  Jeffrey A Law  (law@cygnus.com)
6018
6019         * reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
6020         is nonzero.  This is temporary!
6021
6022         * sched.c (update_flow_info): Handle death notes made invalid by
6023         instruction splitting.  Partially reverts Oct 15, 1998 patch.
6024         * haifa-sched.c (update_flow_info): Likewise.
6025
6026 Sun Oct 18 17:31:26 1998  Jeffrey A Law  (law@cygnus.com)
6027
6028         * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL
6029         if it has a nonzero DECL_INITIAL.
6030
6031 Sat Oct 17 23:18:08 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6032
6033         * Makefile.in (flow.o): Depend on recog.h.
6034
6035         * cpplib.h (directive_table): Add missing initializiers.
6036         (finclude): Change type of variable `bsize' to size_t.
6037         
6038         * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
6039
6040         * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
6041
6042         * fix-header.c (lookup_std_proto): Cast the result of `strlen' to
6043         `int' when comparing against one.
6044         (cpp_file_line_for_message): Mark parameter `pfile' with
6045         ATTRIBUTE_UNUSED.
6046         (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
6047
6048         * flow.c: Include recog.h.
6049         (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
6050
6051         * function.c (thread_prologue_and_epilogue_insns): Mark parameter
6052         `f' with ATTRIBUTE_UNUSED.
6053         (reposition_prologue_and_epilogue_notes): Likewise.
6054
6055         * genopinit.c (gen_insn): Cast argument of ctype functions to
6056         `unsigned char'.
6057
6058         * haifa-sched.c: Include recog.h.
6059         (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
6060         comparing against one.
6061
6062         * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
6063
6064         * mips-tfile.c (parse_end): Cast the argument of ctype function to
6065         `unsigned char'.
6066         (parse_ent): Likewise.
6067         (parse_input): Likewise.
6068
6069         * optabs.c (init_libfuncs): Likewise.
6070
6071         * protoize.c (find_rightmost_formals_list): Likewise.
6072
6073         * recog.h (const_double_operand): Fix typo in prototype.
6074
6075         * tlink.c (scan_linker_output): Cast the argument of ctype
6076         function to `unsigned char'.
6077
6078         * toplev.c (check_lang_option): Cast the result of `strlen' to
6079         `int' when comparing against one.
6080
6081 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
6082
6083         * gcse.c (dump_cuid_table): Correct typo.
6084
6085 Sat Oct 17 11:02:47 1998  Nick Clifton  <nickc@cygnus.com>
6086
6087         * toplev.c (display_help): Prepend '-m' to target specific
6088         options. 
6089         (check_lang_option): Ignore text after end of first word of a
6090         language specific option.
6091
6092 Sat Oct 17 02:26:03 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
6093
6094         * reload1.c (reg_used_by_pseudo): New static variable.
6095         (choose_reload_regs): Initialize it.
6096         Use it instead of testing spill_reg_order to determine whether a
6097         pseudo is live in a hard register across the current insn.
6098         Fix a typo in a reference to reload_reg_rtx.
6099
6100         * flow.c (propagate_block): Replace code that computes and uses
6101         regs_sometimes_live with simpler code that just walks the set of
6102         currently live registers.
6103
6104         * Makefile.in (insn-extract.o): Fix dependencies.
6105         * genextract.c (main): Generate includes for insn-config.h and
6106         recog.h.
6107         Delete generation of declarations which are now in recog.h.
6108         * genrecog.c (main): Delete generation of definitions which are
6109         now in recog.c.
6110         * local-alloc.c (block_alloc): Use extract_insn and the variables
6111         it sets up instead of looking up values by insn_code.
6112         * recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
6113         recog_dup_num): Define here instead of generating the definition in
6114         genrecog.c.
6115         (recog_n_operands, recog_n_dups, recog_n_alternatives,
6116         recog_operand_mode, recog_constraints, recog_operand_address_p):
6117         New variables.
6118         (extract_insn): New function.
6119         * recog.h (extract_insn): Declare function.
6120         (which_alternative, recog_n_operands, recog_n_dups,
6121         recog_n_alternatives, recog_operand_mode, recog_constraints,
6122         recog_operand_address_p): Declare variables.
6123         * regclass.c (n_occurrences): New static function.
6124         * reload.c (n_occurrences): Delete function.
6125         (find_reloads): Use extract_insn.
6126         * reload.h (n_occurrences): Delete declaration.
6127
6128 Sat Oct 17 01:17:51 1998  Jeffrey A Law  (law@cygnus.com)
6129
6130         * reload1.c (reload_as_needed): Fix test for when to call
6131         update_eliminable_offsets.
6132
6133 Fri Oct 16 20:40:50 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6134
6135         Fix consistency problems with reg_equiv_{mem,address};
6136         Improve reload inheritance;
6137
6138         * reload.c (reload_out_reg): New variable.
6139         (loc_mentioned_in_p, remove_address_replacements): New functions.
6140         (remove_replacements): Deleted.
6141         (push_reload): Set reload_out_reg[i].
6142         When merging, also set reload_{in,out}_reg[i], and remove
6143         duplicate address reloads.
6144         (combine_reloads): Copy reload_out_reg[i].
6145         (find_reloads): Do make_memloc substitution also when
6146         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
6147         are both nonzero.
6148         Include *recog_operand_loc in commutativity operand changes.
6149         Generate optional output reloads.
6150         Delete reference to n_memlocs.  Don't set *recog_operand_loc before
6151         processing operands.  Call make_memloc in reg_equiv_address code.
6152         Set *recog_operand_loc only after processing operands, and only
6153         if replace is true.  Return a value.
6154         When changing address reload types for operands that didn't get
6155         reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
6156         RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
6157         Don't emit USEs for pseudo SUBREGs when not replacing.
6158         (find_reloads_address): Do make_memloc substitution also when
6159         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
6160         are both nonzero.
6161         (find_reloads_toplev): Likewise.
6162         Call make_memloc in reg_equiv_address code.
6163         (debug_reload_to_stream): Add code to output reload_out_reg.
6164         (make_memloc): Delete local variable i, ifdefed out code, and
6165         references to memlocs and n_memlocs.
6166         (memlocs, n_memlocs): Delete.
6167         (push_secondary_reload): Clear reload_out_reg.
6168         (find_reloads_address_1): Provide memrefloc argument to all calls
6169         to find_reloads_address.
6170         In AUTO_INC code, handle non-directly addressable equivalences properly.
6171         * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
6172         (find_reloads): Add return type.
6173         (remove_address_replacements, deallocate_reload_reg): Declare.
6174         * reload1.c (num_not_at_initial_offset): No longer static.
6175         (delete_address_reloads, delete_address_reloads_1): Likewise.
6176         (deallocate_reload_reg): New function.
6177         (spill_reg_stored_to): New array.
6178         (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
6179         (eliminate_regs_in_insn): Move assignments of previous_offset and
6180         max_offset fields, and recalculation of num_not_at_initial_offset
6181         into new static function:
6182         (update_eliminable_offsets) .
6183         (reload_as_needed): Call update_eliminable_offsetss after calling
6184         find_reloads.
6185         Call forget_old_reloads_1 with contents of reloaded auto_inc
6186         expressions if the actual addressing can't be changed to match the
6187         auto_inc.
6188         (choose_reload_regs): For inheritance, replace
6189         reload_reg_free_before_p test with reload_reg_used_at_all test, and
6190         remove stand-alone reload_reg_used_at_all test.
6191         Use reload_out_reg to determine which reload regs have output reloads.
6192         Treat reload_override_in more similar to inherited reloads.
6193         Handle (subreg (reg... for inheritance.
6194         For flag_expensive_optimizations, add an extra pass to remove
6195         unnecessary reloads from known working inheritance.
6196         Delete obsolete code for pseudos replaced with MEMs.
6197         Handle inheritance from auto_inc expressions.
6198         (emit_reload_insns): If reload_in is a MEM, set OLD to 
6199         reload_in_reg[j].
6200         Don't reload directly from oldequiv; if it's a pseudo with a
6201         stack slot, use reload_in[j].
6202         Check that reload_in_reg[j] is a MEM before replacing reload_in
6203         from reg_reloaded_contents.
6204         Include non-spill registers in reload inheritance processing.
6205         Also try to use reload_out_reg to set spill_reg_store /
6206         reg_last_reload_reg.
6207         In code to set new_spill_reg_store, use single_set to find out if
6208         there is a single set.
6209         Add code that allows to delete optional output reloads.
6210         Add code to allow deletion of output reloads that use no spill reg.
6211         At the end, set reload_override_in to oldequiv.
6212         Also call delete_output_reload if reload_out_reg is equal to old
6213         in oldequiv code.
6214         Add code to call delete_output_reload for stores with no matching load.
6215         Set / use spill_reg_stored_to.
6216         Handle case where secondary output reload uses a temporary, but
6217         actual store isn't found.
6218         When looking for a store of a value not loaded in order to call
6219         delete_output_reload, count_occurences should return 0 for no
6220         loads; but discount inherited input reloadill_reg_stored_to.
6221         Do checks for extra uses of REG.  Changed all
6222         callers.
6223         Use delete_address_reloads.
6224         (reload): Take return value of find_reloads into account.
6225         If a no-op set needs more than one reload, delete it.
6226         (reload_reg_free_before_p): RELOAD_FOR_INPUT
6227         can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
6228         for the same operand.
6229         (clear_reload_reg_in_use): Check for other reloads that keep a
6230         register in use.
6231         (reload_reg_free_for_value_p): handle RELOAD_FOR_OPERAND_ADDRESS /
6232         RELOAD_FOR_OPADDR_ADDR.
6233         Take into account when an address address reload is only needed
6234         for the address reload we are considering.
6235         (count_occurrences): Use rtx_equal_p for MEMs.
6236         (inc_for_reload): Return instruction that stores into RELOADREG.
6237         New argument two, IN, and rtx.  Changed all callers.
6238         (calculate_needs_all_insns, reload_as_needed):
6239         Don't clear after_call for a CLOBBER.
6240         Keep track of how many hard registers need to be copied from
6241         after_call, and don't clear after_call before we have seen
6242         that much copies, or we see a different instruction.
6243
6244 Fri Oct 16 10:58:23 1998  Jeffrey A Law  (law@cygnus.com)
6245
6246         * flow.c (find_basic_blocks_1): Do not delete unreachable blocks
6247         after reload has completed.
6248
6249 Fri Oct 16 17:26:10 1998  Dave Brolley  <brolley@cygnus.com>
6250
6251         * cpplib.c (cpp_get_token): Replace whitespace that occurs between
6252         a macro name and the next token with a single blank if that whitespace
6253         is in a macro buffer and the next token is not '('.
6254
6255 Fri Oct 16 15:44:02 1998  Dave Brolley  <brolley@cygnus.com>
6256
6257         * cccp.c (rescan): Handle multibyte chartacters ending in backslash.
6258         (rescan): Ditto.
6259         (skip_if_group): Ditto.
6260         (skip_to_end_of_comment): Ditto.
6261         (macarg1): Ditto.
6262         (discard_comments): Ditto.
6263         (change_newlines): Ditto.
6264
6265 Fri Oct 16 15:26:24 1998  Dave Brolley  <brolley@cygnus.com>
6266
6267         * c-lex.c (yylex): Fix unaligned access of wchar_t.
6268
6269 Fri Oct 16 10:47:53 1998  Nick Clifton  <nickc@cygnus.com>
6270
6271         * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation.
6272         (TARGET_OPTIONS): Add --help documentation.
6273
6274 Fri Oct 16 11:49:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6275
6276         * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change.
6277
6278 Fri Oct 16 07:08:46 1998  Bruce Korb <korb@datadesign.com>
6279         
6280         * fixinc/* Moved in from ../contrib directory in preparation
6281         for integrating it into the normal build process.  In particular,
6282         fixinc/Makefile.in must be config-ed into the build directory
6283         as fixinc/Makefile.  Proposed patches to ./Makefile.in and
6284         ./configure.in will be "in the mail" momentarily.
6285
6286 Fri Oct 16 08:13:46 1998  David S. Miller  <davem@pierdol.cobaltnet.com>
6287
6288         * cse.c (cse_basic_block): Fixup hash flushing loop so we do not
6289         accidently walk into the free list.  Comment how that can happen.
6290         (invalidate): Fix indentation.
6291
6292 Thu Oct 15 23:53:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6293                          Jeffrey A Law  (law@cygnus.com)
6294
6295         * flow.c (life_analysis_1): Do not clobber regs_ever_live after
6296         reload.  Never perform rescans of the insn chain after reload.
6297         (propagate_block): Do not delete insn or create new autoinc addressing
6298         modes after reload.
6299
6300         * jump.c (jump_optimize): Unconditionally use the code that was
6301         previously conditional on PRESERVE_DEATH_INFO_REGNO_P.
6302         * reload1.c (reload): When reloading is finished, delete all
6303         REG_DEAD and REG_UNUSED notes.
6304         (emit_reload_insns): Delete all code that was conditional on
6305         PRESERVE_DEATH_INFO_REGNO_P.
6306         (no_longer_dead_regs): Delete variable.
6307         (reload_cse_delete_death_notes): Delete function.
6308         (reload_cse_no_longer_dead): Delete function.
6309         (reload_cse_regs_1): Delete all code to handle deletion of death
6310         notes.
6311         (reload_cse_noop_set_p): Likewise.
6312         (reload_cse_simplify_set): Likewise.
6313         (reload_cse_simplify_operands): Likewise.
6314         (reload_cse_move2add): Likewise.
6315         * reorg.c (used_spill_regs): Delete declaration.
6316         (max_label_num_after_reload): Delete declaration.
6317         (find_dead_or_set_registers): Don't assume that spill regs are
6318         dead at a CODE_LABEL.
6319         * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate,
6320         even after reload.
6321         * sched.c (sched_analyze_insn): Likewise.
6322         (update_flow_info): Likewise.
6323         * haifa-sched.c (sched_analyze_insn): Likewise.
6324         (update_flow_info): Likewise.
6325         * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation.
6326         * toplev.c (max_label_num_after_reload): Delete variable.
6327         (rest_of_compilation): Don't set max_label_num_after_reload.
6328         Call life_analysis after reload_cse_regs if optimizing.
6329         * config/gmicro/gmicro.h: Delete comment referring to
6330         PRESERVE_DEATH_INFO_REGNO_P.
6331         * config/i386/i386.h: Likewise.
6332         * config/m88k/m88k.h: Likewise.
6333         * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition.
6334         * config/sh/sh.h: Likewise.
6335
6336 Thu Oct 15 19:48:41 1998  David Edelsohn  <edelsohn@mhpcc.edu>
6337
6338         * loop.c (strength_reduce): Restore marking bct_p as
6339         ATTRIBUTE_UNUSED.
6340         * rs6000.c (optimization_options): Change #ifdef HAIFA to
6341         HAVE_decrement_and_branch_on_count.
6342         (small_data_operand): Remove TARGET_ELF condition for marking
6343         parameters ATTRIBUTE_UNUSED.
6344         
6345 Thu Oct 15 11:45:51 1998  Robert Lipe  <robertl@dgii.com>
6346
6347         * config/i386/sco5.h (MAX_OFILE_ALIGNMENT):  Define.
6348         (SELECT_SECTION): Resync with svr4.h.
6349
6350 Thu Oct 15 12:42:13 1998  David Edelsohn  <edelsohn@mhpcc.edu>
6351
6352         * loop.c (strength_reduce): Undo Oct 14 change marking bct_p
6353         ATTRIBUTE_UNUSED.
6354
6355 Thu Oct 15 00:57:55 1998  Robert Lipe  <robertl@dgii.com>
6356
6357         * c-pragma.c (handle_pragma_token): Test for null tree before
6358         dereferencing TREE_CODE.
6359
6360 Thu Oct 15 17:36:48 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6361
6362         * config/c4x/c4x.c: Convert to use GEN_INT.
6363         (c4x_parallel_process): Rework to handle new repeat loop structure.
6364
6365         * config/c4x/c4x.md: Convert to use GEN_INT. 
6366         (rptb_end): Convert to use GE test.  Replace uses with clobbers.
6367         (decrement_and_branch_on_count): Likewise.
6368
6369         * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that
6370         loop.c has the desired functionality.
6371         (rc_reg_operand): New prototype.
6372
6373         * config/c4x/t-c4x: Can now build all front ends.
6374
6375 Wed Oct 14 23:27:08 1998  Didier FORT (didier.fort@fedex.com)
6376
6377         * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
6378
6379 Wed Oct 14 22:13:28 1998  Joel Sherrill (joel@OARcorp.com)
6380
6381         * Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
6382         * config/t-rtems: Do not install assert.h -- use newlib's.
6383
6384 Wed Oct 14 21:57:08 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6385
6386         * combine.c (combine_instructions): When finished, call init_recog.
6387         * regmove.c (optimize_reg_copy_3): Reject volatile MEMs.
6388
6389 Wed Oct 14 16:10:22 1998  Per Bothner  <bothner@cygnus.com>
6390
6391         * toplev.c:  If flag_syntax_only, don't open or write assembler file.
6392
6393 Wed Oct 14 13:26:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6394
6395         * cppalloc.c (memory_full): Mark function prototype with
6396         ATTRIBUTE_NORETURN.
6397
6398         * demangle.h (collect_exit): Likewise.
6399
6400         * fix-header.c (v_fatal, fatal): Likewise.
6401
6402         * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort):
6403         Likewise.
6404
6405         * gcov.c (print_usage): Likewise.
6406
6407         * genattr.c (fatal, fancy_abort): Likewise.
6408
6409         * genattrtab.c (fatal, fancy_abort): Likewise.
6410
6411         * gencodes.c (fatal, fancy_abort): Likewise.
6412
6413         * genconfig.c (fatal, fancy_abort): Likewise.
6414
6415         * genemit.c (fatal, fancy_abort): Likewise.
6416
6417         * genextract.c (fatal, fancy_abort): Likewise.
6418
6419         * genflags.c (fatal, fancy_abort): Likewise.
6420
6421         * genopinit.c (fatal, fancy_abort): Likewise.
6422
6423         * genoutput.c (fatal, fancy_abort): Likewise.
6424
6425         * genpeep.c (fatal, fancy_abort): Likewise.
6426
6427         * genrecog.c (fatal, fancy_abort): Likewise.
6428
6429         * libgcc2.c (__eprintf, __default_terminate, __sjthrow,
6430         __sjpopnthrow, __throw): Likewise.
6431
6432         * objc/objc-act.c (objc_fatal): Likewise.
6433
6434         * protoize.c (usage, aux_info_corrupted,
6435         declare_source_confusing): Likewise.
6436
6437         * rtl.c (dump_and_abort): Likewise.
6438
6439         * rtl.h (sets_cc0_p): Likewise.
6440
6441         * toplev.c (float_signal, pipe_closed): Likewise.
6442         
6443 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
6444
6445         * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges
6446         when generating the decision tree for the general case.
6447
6448         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes
6449         wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs.
6450
6451 Wed Oct 14 11:14:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6452
6453         * Makefile.in (sched.o): Depend on recog.h.
6454
6455         * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to
6456         (unsigned) when comparing against one.
6457         (find_base_value): Likewise.
6458         (record_base_value): Cast variable `regno' to (unsigned) when
6459         comparing against one.  Cast the result of REGNO() macro to
6460         (unsigned) when comparing against one.
6461         (memrefs_conflict_p): Change type of variables `r_x' and `r_y'  to
6462         unsigned.
6463         (init_alias_analysis): Add unsigned variable `ui'.  Use it as loop
6464         variable where an unsigned index is needed.
6465
6466         * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code)
6467         before comparing against one.
6468
6469         * collect2.c: Add prototypes for functions `error', `fatal' and
6470         `fatal_perror'.  Make these functions take variable arguments
6471         instead of faking it with a fixed number of args.
6472         (write_c_file_stat): Cast the argument of ctype macro to (unsigned
6473         char).
6474
6475         * combine.c (can_combine_p): Mark parameter `pred' with
6476         ATTRIBUTE_UNUSED.
6477         (find_split_point): Cast variable `src' to (unsigned
6478         HOST_WIDE_INT) when comparing against one.
6479         (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift.
6480         (simplify_logical): Likewise.
6481         (force_to_mode): Cast result of INTVAL() macro to (unsigned
6482         HOST_WIDE_INT) when comparing against one.  Cast 1 to (unsigned
6483         HOST_WIDE_INT) in shift.
6484         (simplify_and_const_int): Cast result of INTVAL() macro to
6485         `unsigned HOST_WIDE_INT' when comparing against one.
6486         (merge_outer_ops): Cast variable const0 to `unsigned
6487         HOST_WIDE_INT' when comparing against the result of
6488         GET_MODE_MASK() macro.
6489         (simplify_comparison): Likewise for variable `c0'.  Cast variable
6490         `const_op' to `unsigned HOST_WIDE_INT' when comparing against
6491         one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast the
6492         result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing
6493         against one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast
6494         result of INTVAL() macro to `unsigned HOST_WIDE_INT' when
6495         comparing against one.
6496         (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'.
6497
6498         config/mips/mips.c (gen_int_relational): Cast result of INTVAL()
6499         macro to `unsigned HOST_WIDE_INT' when comparing against one.
6500         (output_block_move): Cast `sizeof' expression to (int) when
6501         comparing against one.
6502         (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing
6503         against one.
6504         (save_restore_insns): Cast `base_offset' to `long' to match format
6505         specifier in fprintf.
6506
6507         * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro
6508         to `enum machine_mode'.
6509
6510         * flow.c (life_analysis_1): Remove unused variable `insn'.
6511
6512         * gcc.c (translate_options): Move variables `j' and `k' into the
6513         scope in which they are used.  Change their types to `size_t'.
6514         (set_spec): Cast the argument of ctype macro to `unsigned char'.
6515         (read_specs): Likewise.
6516         (process_command): Cast `sizeof' to (int) when comparing against one.
6517         (do_spec_1): Cast the argument of ctype macro to `unsigned char'.
6518         (handle_braces): Cast both sides of `==' expression to `long' to
6519         ensure sign matching.
6520         (main): Cast variable `i' to `int' when comparing against one.
6521
6522         * gcov-io.h (__fetch_long): Change type of parameter `bytes' from
6523         int to size_t.  Cast variable `i' to size_t when comparing against
6524         one.
6525
6526         * genattrtab.c (convert_set_attr_alternative): Remove unused
6527         parameter `insn_code'.  All callers changed.
6528         (convert_set_attr): Likewise.
6529
6530         * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to
6531         size_t when comparing against one.  Likewise for variable `len'.
6532
6533         * global.c (global_alloc): Cast variable `max_regno' to size_t
6534         when comparing against one.  Likewise for variable `max_allocno'.
6535
6536         * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED.
6537
6538         * local-alloc.c (validate_equiv_mem_from_store): Mark parameter
6539         `set' with ATTRIBUTE_UNUSED.
6540         (find_free_reg): Cast `sizeof' expression to (int) when comparing
6541         against one.
6542
6543         * loop.c (count_loop_regs_set): Remove unused variable `dest'.
6544         (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED.
6545         (get_condition): Cast variable `const_val' to `unsigned
6546         HOST_WIDE_INT' when comparing against one.  Cast unsigned
6547         expression to HOST_WIDE_INT when comparing against one.
6548         (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED.
6549         (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to
6550         `unsigned' when comparing against one.
6551
6552         * protoize.c (is_id_char): Change type of parameter `ch' to
6553         unsigned char.
6554         (munge_compile_params): Cast argument of ctype macro to (const
6555         unsigned char).
6556         (process_aux_info_file): Cast variable `aux_info_size' to int when
6557         comparing against one.
6558         (forward_to_next_token_char): Cast argument of ctype macro to
6559         `const unsigned char'.
6560         (edit_formals_lists): Likewise.
6561         (find_rightmost_formals_list): Likewise.
6562         (add_local_decl): Likewise.
6563         (add_global_decls): Likewise.
6564         (edit_fn_definition): Likewise.
6565         (do_cleaning): Likewise.
6566         (scan_for_missed_items): Likewise.
6567         (edit_file): Cast variable `orig_size' to (int) when comparing
6568         against one.
6569         (main): Cast argument of ctype macro to `const unsigned char'.
6570
6571         * recog.c (const_int_operand): Mark parameter `mode' with
6572         ATTRIBUTE_UNUSED.
6573
6574         * regclass.c (record_reg_classes): Change type of variable `c' to
6575         `unsigned char'.  Cast `char' array index to `unsigned char'.
6576
6577         * reload.c (push_secondary_reload): Cast argument to
6578         REG_CLASS_FROM_LETTER() macro to `unsigned char'.
6579
6580         * reload1.c (calculate_needs): Cast `char' array index to
6581         `unsigned char'.
6582         (set_label_offsets): Change type of variable `i' to unsigned int.
6583         Cast result of XVECLEN() macro to unsigned when comparing against
6584         one.
6585         (mark_not_eliminable): Change type of variable `i' to unsigned.
6586         (order_regs_for_reload): Likewise.  Cast `max_regno' to unsigned
6587         when comparing against one.
6588         (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when
6589         comparing against one.
6590         (choose_reload_regs): Hide unused label `fail'.
6591         (reload_cse_simplify_operands): Cast `char' array index to
6592         `unsigned char'.
6593         (reload_combine_note_store): Mark parameter `set' with
6594         ATTRIBUTE_UNUSED.  Cast UNITS_PER_WORD to unsigned when comparing
6595         against one.
6596         (reload_cse_move2add): Remove unused variable `src2'.
6597
6598         * sched.c: Include recog.h.
6599         (sched_note_set): Remove unused parameter `b'.  All callers
6600         changed.
6601         (split_hard_reg_notes): Likewise for parameter `orig_insn'.
6602         (blockage_range): Cast result of UNIT_BLOCKED() macro to (int)
6603         when comparing against one.
6604
6605         * stupid.c (stupid_find_reg): Mark parameter `changes_size' with
6606         ATTRIBUTE_UNUSED.  Cast `sizeof' expression to (int) when
6607         comparing against one.
6608
6609         * unroll.c (precondition_loop_p): Remove unused parameter
6610         `loop_end'.  All callers changed.
6611
6612 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6613
6614         * reload1.c (maybe_fix_stack_asms): New static function.
6615         (reload): Call it.
6616
6617         * reload.h (compute_use_by_pseudos): Declare.
6618
6619         * reload1.c (spilled_pseudos, insns_need_reload): New variables.
6620         (something_needs_reloads): Delete variable.
6621         (finish_spills): New function.
6622         (compute_use_by_pseudos): New function.
6623
6624         (delete_caller_save_insns): Lose argument FIRST.  All callers changed.
6625         Use the reload_insn_chain instead of walking the rtl directly.
6626
6627         (reload): Allocate and free spilled_pseudos.
6628         Ensure that all calls of spill_hard_reg are followed by a call to
6629         finish_spills.
6630         Use the insns_need_reload list instead of something_needs_reloads
6631         to find out if reload_as_needed must be called.
6632         Clear unused_insn_chains at the end.
6633
6634         (calculate_needs_all_insns): Lose FIRST parameter.  All callers
6635         changed.
6636         Delete code to keep track of current basic block.
6637         Walk reload_insn_chain instead of the rtl structure.  Build the
6638         insns_need_reload chain.
6639         Remember which insns need reloading/elimination by setting the
6640         appropriate fields in struct insn_chain, not by putting modes on the
6641         insn.
6642
6643         (calculate_needs): Lose THIS_BLOCK arg.  Accept arg CHAIN instead of
6644         arg INSN.  All callers changed.
6645         Delete declaration of struct needs.
6646         Don't set something_needs_reloads.
6647         Record insn needs in the CHAIN argument.
6648
6649         (spill_hard_reg): Record the affected pseudos in spilled_pseudos.
6650
6651         (reload_as_needed): Lose FIRST arg.  All callers changed.
6652         Walk the reload_insn_chain instead of the rtx structure.
6653         Delete code to keep track of current basic block.
6654         Rename one of the NEXT variables to OLD_NEXT.
6655
6656         (allocate_reload_reg): Accept arg CHAIN instead of arg INSN.  All
6657         callers changed.
6658         (choose_reload_regs): Likewise.
6659
6660         (emit_reload_insns): Replace INSN and BB args with arg CHAIN.  All
6661         callers changed.
6662         
6663         * caller-save.c (MOVE_MAX_WORDS): New macro.  Use it throughout
6664         instead of (MOVE_MAX / UNITS_PER_WORD) computation.
6665         (hard_regs_live, hard_regs_need_restore): Delete variables.
6666         (n_regs_saved): Now static.
6667         (referenced_regs, this_insn_sets): New variables.
6668
6669         (setup_save_areas): Restructure the code a bit.
6670
6671         (restore_referenced_regs): Delete function.
6672         (mark_referenced_regs): New function, similar to the old
6673         restore_referenced_regs, but mark registers in referenced_regs.
6674
6675         (clear_reg_live): Delete function.
6676         (mark_set_regs): Renamed from set_reg_live.  All callers changed.
6677         Only mark registers in this_insn_sets.
6678
6679         (save_call_clobbered_regs): Rework this function to walk the
6680         reload_insn_chain instead of using the list of instructions directly.
6681         Delete code to keep track of register lives, compute live regs on the
6682         fly from information in the chain.
6683         Instead of calling restore_referenced_regs, use mark_referenced_regs,
6684         then walk the set it computes and call insert_restore as appropriate.
6685
6686         (insert_restore): Lose INSN and BLOCK args.  Add CHAIN arg.  All
6687         callers changed.
6688         Restructure the code a bit.  Test hard_regs_saved instead of
6689         hard_regs_need_restore.
6690         (insert_save): Lose INSN and BLOCK args.  Add CHAIN and TO_SAVE
6691         args.  All callers changed.
6692         Restructure the code a bit.  Use TO_SAVE to determine which regs to
6693         save instead of more complicated test.
6694         (insert_one_arg): Lose INSN and BLOCK args.  Add CHAIN arg.  All
6695         callers changed.
6696         Create a new insn_chain structure for the new insn and place it
6697         into the chain.
6698
6699         * rtl.texi: Update documentation to reflect that reload no longer
6700         puts modes on the insns.
6701
6702 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
6703
6704         * function.c (purge_addressof_1): Force the first argument of a
6705         CALL insn to memory.
6706
6707 Wed Oct 14 00:38:40 1998  Jeffrey A Law  (law@cygnus.com)
6708
6709         * rtl.h: Delete duplicate prototypes.  Add some missing
6710         prototypes.
6711         * rtlanal.c: (for_each_rtx): Formatting tweak.
6712
6713 1998-10-13 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6714
6715         * real.c (emdnorm and etoasc): Disable round to even for c4x target
6716         to be compatible with TI compiler.
6717
6718         * Makefile.in (USER_H): Add va-c4x.h to definition.
6719
6720 Tue Oct 13 23:03:37 1998  Richard Henderson  <rth@cygnus.com>
6721
6722         * function.c (purge_addressof_1): Fix typo in inequality: do
6723         bitfield optimization for equal mode sizes.
6724         * expmed.c (store_bit_field): Don't take subregs of subregs in
6725         the movstrict case.  Tidy a potential problem in the multi-word case.
6726         (extract_bit_field): Likewise.
6727
6728 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6729
6730         * flow.c (find_basic_blocks): Emit NOPs after normal calls in this
6731         function.
6732         Compute max_uid_for_flow by calling get_max_uid after the scan.
6733         (find_basic_blocks_1): Don't emit NOPs here.
6734
6735 Tue Oct 13 22:05:49 1998  Richard Henderson  <rth@cygnus.com>
6736
6737         * alias.c (base_alias_check): Accept new args for the modes of the
6738         two references.  Use them to determine if an AND can overlap.  Update
6739         all callers.
6740         (memrefs_conflict_p): Assume sizes are aligned, and uses them
6741         to determine if an AND can overlap.
6742
6743 Tue Oct 13 17:51:04 1998  Jim Wilson  <wilson@cygnus.com>
6744
6745         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16
6746         check.  Add comment to document problems with TARGET_SUN_FPA version
6747         of this macro.
6748         * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves.
6749
6750 Tue Oct 13 17:46:18 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6751
6752         * Makefile.in (gencheck.o): Depend on gansidecl.h.
6753
6754         * c-common.c (print_char_table): Add missing initializers.
6755         (scan_char_table): Likewise.
6756         (time_char_table): Likewise.
6757
6758         * c-decl.c (c_decode_option): Mark parameter `argc' with
6759         ATTRIBUTE_UNUSED.
6760         (declare_parm_level): Mark parameter `definition_flag' with
6761         ATTRIBUTE_UNUSED.
6762
6763         * c-lex.c (readescape): Use `(unsigned)1' in shift.
6764         (yylex): Likewise.  Cast `sizeof' to an (int) when comparing
6765         against one.
6766
6767         * calls.c (store_one_arg): Remove unused parameter `fndecl'.  All
6768         callers changed.
6769         (emit_call_1): Mark parameters `fndecl' and `funtype' with
6770         ATTRIBUTE_UNUSED.
6771         (expand_call): Cast result of MIN() to (unsigned int) when
6772         comparing against an unsigned value.
6773
6774         * cccp.c (pcfinclude): Remove unused parameter `limit'.  All
6775         callers changed.
6776         (make_definition): Remove unused parameter `op'.  All callers
6777         changed.
6778         (create_definition): Cast REST_EXTENSION_LENGTH to (long) when
6779         comparing against the result of pointer arithmetic.
6780
6781         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned)
6782         when comparing against one.
6783
6784         * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and
6785         HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against
6786         one.
6787         (output_die): Move variable `i' into the scope in which it is
6788         used.  Change its type to `unsigned'.
6789         (output_die): Cast the result of `strlen' to (int) when passing it
6790         to ASM_OUTPUT_ASCII().
6791         (output_pubnames): Likewise.
6792         (output_line_info): Likewise.
6793
6794         * emit-rtl.c (global_rtl): Add missing initializers.
6795
6796         * explow.c (promote_mode): Mark parameter `for_call' with
6797         ATTRIBUTE_UNUSED.
6798
6799         * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to
6800         `unsigned HOST_WIDE_INT' when comparing against one.
6801         (synth_mult): Change type of variable `cost' to int.
6802         (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift.
6803
6804         * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned)
6805         when comparing against one.
6806         (get_inner_reference): Change variable `alignment' to unsigned.
6807         (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned
6808         int) when comparing against one.
6809         (expand_builtin_setjmp): Change type of variable `i' to size_t.
6810
6811         * fold-const.c (div_and_round_double): Cast BASE to
6812         (HOST_WIDE_INT) when comparing against one.
6813
6814         * gencheck.c: Include gansidecl.h.
6815         (main): Mark parameter `argv' with ATTRIBUTE_UNUSED.
6816
6817         * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and
6818         `tcode' with ATTRIBUTE_UNUSED.
6819
6820         * real.c (edivm): Cast constant value to (unsigned long) in
6821         expression compared against an unsigned value.
6822
6823         * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when
6824         comparing against one.
6825         (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int)
6826         when comparing against one.
6827
6828         * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to
6829         (unsigned int) when comparing against one.  Likewise for
6830         GET_MODE_BITSIZE.
6831         (smallest_mode_for_size): Likewise.
6832         (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED.
6833         (restore_storage_status): Likewise.
6834         
6835         * toplev.c (debug_args): Add missing initializer.
6836         (f_options): Spelling correction.  Add missing initializers.
6837         (documented_lang_options): Likewise.
6838         (debug_end_source_file): Mark parameter `lineno' with
6839         ATTRIBUTE_UNUSED.
6840
6841         * tree.c (valid_machine_attribute): Mark parameters `attr_args',
6842         `decl' and `type' with ATTRIBUTE_UNUSED.
6843
6844         * varasm.c (decode_reg_name): Cast `sizeof' expression to (int)
6845         when comparing against one.
6846         (assemble_variable): Mark parameter `top_level' with
6847         ATTRIBUTE_UNUSED.
6848         (assemble_external_libcall): Mark parameter `fun' with
6849         ATTRIBUTE_UNUSED.
6850         (output_constant_pool): Mark parameters `fnname' and `fndecl' with
6851         ATTRIBUTE_UNUSED.
6852
6853 Tue Oct 13 12:51:04 1998  Nick Clifton  <nickc@cygnus.com>
6854
6855         * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration.
6856         Replace use of r5 with use of r19.
6857
6858         * config/v850/v850.h (LINK_POINTER_REGNUM): Define.
6859
6860         * config/v850/v850.c (compute_register_save_size): Allow for the
6861         fact that helper functions save all registers, not just those used
6862         by the function.
6863         
6864         Replace constant 31 with macro LINK_POINTER_REGNUM.
6865
6866         * config/v850/v850.md: Use 'indirect_operand' rather than
6867         'memory_operand' for bit test/set/clear patterns.
6868
6869 Tue Oct 13 11:49:14 1998  Jason Merrill  <jason@yorick.cygnus.com>
6870
6871         * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL.
6872         * varasm.c (assemble_start_function et al): Don't call
6873         ASM_GLOBALIZE_LABEL for weak symbols.
6874
6875 Tue Oct 13 11:37:45 1998  Nick Clifton  <nickc@cygnus.com>
6876
6877         * cse.c (equiv_constant): Check for NULL return from
6878         gen_lowpart_if_possible().
6879
6880 Tue Oct 13 11:24:51 1998  Jeffrey A Law  (law@cygnus.com)
6881
6882         * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands.
6883
6884         * collect2.c (main): Pass -EL/-EB through to the compiler.
6885
6886 1998-10-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6887         
6888         * expr.c (push_block): Handle targets where the stack grows
6889         to higher addresses, but args grow to lower addresses and
6890         ACCUMULATE_OUTGOING_ARGS is not defined.
6891
6892 Tue Oct 13 08:00:52 1998  Catherine Moore  <clm@cygnus.com>
6893
6894         * config/v850/v850.c (print_operand):  Extend meaning
6895         of 'c' operands to support .vtinherit.
6896
6897 Tue Oct 13 21:38:35 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6898
6899         * config/c4x/c4x.c:  Convert to gen_rtx_FOO.
6900         Added ATTRIBUTE_UNUSED to unused function arguments.
6901         (rc_reg_operand): New predicate.
6902         (c4x_rptb_insert): New function.
6903         (c4x_rptb_nop_p): Recognize modified rptb_top pattern.
6904         (c4x_optimization_options): New function.
6905
6906         * config/c4x/c4x.md: Convert to gen_rtx_FOO.
6907          (decrement_and_branch_on_count): New pattern.
6908          (rptb_top): Modified pattern to work with BCT optimization.
6909         
6910         * config/c4x/c4x.h (RC_REG): New register class.
6911         (rc_reg_operand): Define prototype.
6912         (IS_RC_REG): New macro.
6913         (IS_RC_OR_PSEUDO_REG): New macro.
6914         (IS_RC_OR_PSEUDO_REGNO): New macro.
6915         (OPTIMIZATION_OPTIONS): Define.
6916
6917 Mon Oct 12 19:57:34 1998  Jason Merrill  <jason@yorick.cygnus.com>
6918
6919         * collect2.c (extract_init_priority): No priority is 65535.
6920
6921 Mon Oct 12 12:10:37 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
6922         
6923         * Makefile.in (build_tooldir): new variable, same as old
6924         $(tooldir), but without depending on $(libdir)/$(unlibsubdir)
6925         (GCC_FOR_TARGET): add -B$(build_tooldir)/bin/
6926         (bootstrap, bootstrap2, bootstrap3, bootstrap4): ditto
6927         
6928         * configure.in (gxx_include_dir): set default based on unlibsubdir
6929         * Makefile.in (tooldir): ditto
6930         (cccp.o, cpplib.o): use unlibsubdir implicitly through
6931         gxx_include_dir, includedir and tooldir
6932         (protoize.o, unprotoize.o): ditto
6933         
6934 Mon Oct 12 10:50:44 1998  Nick Clifton  <nickc@cygnus.com>
6935
6936         * config/arm/arm.md: Replace (reg 24) with (reg:CC 24).
6937
6938         * config/arm/thumb.c (thumb_override_options): Add warning about
6939         PIC code not being supported just yet.
6940
6941 Sun Oct 11 16:49:15 EDT 1998  John Wehle  (john@feith.com)
6942
6943         * flow.c: Update comment.
6944         (notice_stack_pointer_modification): New static function.
6945         (record_volatile_insns): Use it.
6946         (mark_regs_live_at_end): Mark the stack pointer as alive
6947         at the end of the function if current_function_sp_is_unchanging
6948         is set.
6949         (life_analysis_1): Set current_function_sp_is_unchanging.
6950         * function.c: Define it.
6951         (init_function_start): Initialize it.
6952         * output.h: Declare it.
6953         * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark
6954         the stack pointer as alive at the end of the function if
6955         current_function_sp_is_unchanging is set.
6956         * i386.c (ix86_epilogue): Optimize the restoring
6957         of the stack pointer.
6958
6959 Mon Oct 12 01:22:53 PDT 1998 Jeff Law  (law@cygnus.com)
6960
6961         * version.c: Bump for snapshot.
6962
6963 Sun Oct 11 23:04:30 1998  Robert Lipe  <robertl@dgii.com>
6964
6965         * c-pragma.c (handle_pragma_token): If passed a token instead
6966         of a tree, use that as the pack value.
6967
6968 Sun Oct 11 14:21:14 1998  Mark Mitchell  <mark@markmitchell.com>
6969
6970         * flow.c (find_basic_blocks_1): Fix prototype.
6971
6972 Sun Oct 11 05:03:41 1998  Ken Raeburn  <raeburn@cygnus.com>
6973
6974         * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros.
6975         (struct tree_decl): New fields no_check_memory_usage.
6976         * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE.
6977         (init_attributes): Register it as a new attribute.
6978         (decl_attributes): Set flags on functions given that attribute.
6979         * c-decl.c (duplicate_decls): Merge new attribute.
6980         * expr.h (current_function_check_memory_usage): Declare new var.
6981         * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c,
6982         pa.c, sparc.c: Replace uses of flag_check_memory_usage with
6983         current_function_check_memory_usage.
6984         * function.h: Add field to struct function.
6985         * function.c (current_function_check_memory_usage): Define it.
6986         (push_function_context_to, pop_function_context_from): Save and
6987         restore it.
6988         (expand_function_start): Set it, based on global flag and function
6989         attribute.
6990
6991         * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do
6992         check non-automatic variables, to permit detection of writes to
6993         read-only locations in embedded systems without memory management.
6994         * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument
6995         when emitting chkr_set_right_libfunc call, even if the argument is
6996         BLKmode or variable-sized; don't abort.
6997
6998         * optabs.c (init_optabs): Create Checker and __cyg_profile_*
6999         symbols in Pmode, not VOIDmode.
7000
7001 Sun Oct 11 01:03:05 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7002
7003         * cppexp.c: When forcing unsigned comparisons, cast both sides
7004         of the operation.
7005
7006         * cpphash.h: Move static declaration of hashtab[]...
7007         * cpphash.c: ...here.
7008
7009         * cpplib.c: Cast difference of two pointers to size_t before
7010         comparing it to size_t.  Cast signed to unsigned
7011         before comparing to size_t. (FIXME: struct argdata should use
7012         unsigned buffer sizes.)
7013         * cpplib.h (struct cpp_reader): Declare token_buffer_size as
7014         unsigned int. (CPP_WRITTEN): Cast return value to size_t.
7015         (CPP_RESERVE): Parenthesize N for evaluation order, cast to
7016         size_t before comparison.
7017
7018 Sun Oct 11 00:15:29 1998  Jeffrey A Law  (law@cygnus.com)
7019
7020         * flow.c (find_basic_blocks): Delete "live_reachable_p" argument.
7021         (find_basic_blocks_1): Similarly.
7022         * output.h (find_basic_blocks): Fix prototype.
7023         * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to
7024         find_basic_blocks anymore.
7025
7026 Sat Oct 10 22:00:34 1998  Richard Henderson  <rth@cygnus.com>
7027
7028         * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro.
7029         (sbitmap_free, sbitmap_vector_free): New macros.
7030         * output.h (rtl_dump_file): Declare.
7031
7032 Sat Oct 10 17:01:42 1998  Jeffrey A Law  (law@cygnus.com)
7033
7034         * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION.
7035
7036 Fri Oct  9 22:08:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7037
7038         * fp-bit.c (SFtype): Don't implicitly use int in declaration.
7039         (DFtype): Likewise.
7040         (_fpdiv_parts): Remove unused parameter `tmp', all callers changed.
7041         (divide): Remove unused variable `tmp'.
7042         (si_to_float): Cast numeric constant to (SItype) before comparing
7043         it against one.
7044
7045 Fri Oct  9 16:03:19 1998  Graham  <grahams@rcp.co.uk>
7046
7047         * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use.
7048         * gcc.c (add_preprocessor_option): Correct typo when allocating
7049         memory, sizeof() argument had one too many `*'.
7050         (add_assembler_option): Likewise.
7051         (add_linker_option): Likewise.
7052         * gcov.c (output_data): Likewise.
7053         * local-alloc.c (memref_used_between_p): Likewise.
7054         (update_equiv_regs): Likewise.
7055         * loop.c (strength_reduce): Likewise.
7056         * reg-stack.c (record_asm_reg_life): Likewise.
7057         (subst_asm_stack_reg): Likewise.
7058         * reorg.c (dbr_schedule): Likewise.
7059
7060 Fri Oct  9 15:57:51 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
7061
7062         * flow.c (life_analysis_1): Break out some functions.
7063         (find_basic_blocks_1): Likewise.  Also move some variables out and
7064         make them static.
7065         Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize
7066         new static var nonlocal_label_list with it.
7067         (active_eh_region, nested_eh_region, label_value_list,
7068         nonlocal_label_list): New static variables.
7069         (make_edges, delete_unreachable_blocks, delete_block): New static
7070         functions, broken out of find_basic_blocks_1.
7071         (record_volatile_insns, mark_regs_live_at_end, set_noop_p,
7072         noop_move_p): New static functions, broken out of life_analysis_1.
7073
7074 Fri Oct  9 15:49:29 1998  Richard Henderson  <rth@cygnus.com>
7075
7076         * expmed.c (store_bit_field): Pun non-integral str_rtx modes.
7077         Take extra care for op0 now possibly being a subreg.
7078         (extract_bit_field): Likewise.
7079         * function.c (purge_addressof_1): Revert Oct 4 change.  Drop
7080         the reg to memory if there is no equal sized integral mode.
7081         * stor-layout.c (int_mode_for_mode): New function.
7082         * machmode.h: Prototype it.
7083
7084 Fri Oct  9 14:26:44 1998  Jeffrey A Law  (law@cygnus.com)
7085
7086         * global.c (build_insn_chain): Verify no real insns exist past the
7087         end of the last basic block, then exit the loop.
7088
7089 Fri Oct  9 11:44:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7090
7091         * loop.c (insert_bct): Ensure loop_iteration_var non-zero before use.
7092
7093 Thu Oct  8 21:59:47 1998  Dave Brolley  <brolley@cygnus.com>
7094
7095         * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS.
7096
7097 Thu Oct  8 22:03:45 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7098
7099         * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases.
7100
7101 Thu Oct  8 17:00:18 1998  Richard Henderson  <rth@cygnus.com>
7102
7103         * flow.c (find_basic_blocks): Correctly determine when a call
7104         is within an exception region.
7105
7106 Thu Oct  8 17:15:04 1998  Jeffrey A Law  (law@cygnus.com)
7107
7108         * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'.
7109
7110         * cpplib.h: Protect from multiple inclusions.
7111         * cpplib.c: Fix minor formatting problems.
7112
7113         * i386/xm-cygwin32.h: Only define POSIX if it is not already defined.
7114
7115         * jump.c (jump_optimize): Revert accidental patch.
7116
7117         * Makefile.in (cpplib.o): Use unlibsubdir.
7118
7119 Thu Oct  8 12:50:47 1998  Jim Wilson  <wilson@cygnus.com>
7120
7121         * loop.c (get_condition): Allow combine when either compare is
7122         VOIDmode.
7123
7124 Thu Oct 8 11:31:01 PDT 1998 Jeff Law  (law@cygnus.com)
7125
7126         * version.c: Bump for snapshot.
7127
7128 Thu Oct  8 12:21:14 1998  Richard Frith-Macdonald <richard@brainstorm.co.uk>
7129
7130         * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF.
7131         (init_lex): Initialize ridpointers[RID_BYREF].
7132         * c-lex.h (enum rid): Add RID_BYREF.
7133         * c-parse.gperf: Add RID_BYREF as a type qualifier.
7134         * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF.
7135         (encode_type_qualifiers): Similarly
7136         * c-gperf.h: Rebuilt.
7137
7138 Thu Oct  8 05:56:00 1998  Jeffrey A Law  (law@cygnus.com)
7139
7140         * c-common.c (type_for_mode): Only return TItype nodes when
7141         HOST_BITS_PER_WIDE_INT is >= 64 bits.
7142         * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
7143         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
7144         (init_decl_processing): Only create TItype nodes when
7145         HOST_BITS_PER_WIDE_INT is >= 64 bits.
7146         * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
7147         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
7148
7149 Thu Oct  8 05:05:34 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
7150
7151         * stmt.c (n_occurrences): New static function.
7152         (expand_asm_operands): Verify that all constrains match in the
7153         number of alternatives.
7154         Verify that '+' or '=' are at the beginning of an output constraint.
7155         Don't allow '&' for input operands.
7156         Verify that '%' isn't written for the last operand.
7157         * reload.c (find_reloads): Abort if an asm is found with invalid
7158         constraints; all possible problems ought to be checked for earlier.
7159
7160 Thu Oct  8 04:26:20 1998  Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7161
7162         * flags.h (flag_branch_on_count_reg): Always declare 
7163         * toplev.c (flag_branch_on_count_reg): Likewise.
7164         * toplev.c: Fix typos.
7165
7166         * real.c (c4xtoe): Remove unused variables.  Add some missing parens.
7167         (toc4x): Similarly.
7168
7169 Thu Oct  8 01:25:22 1998  Richard Henderson  <rth@cygnus.com>
7170
7171         * flow.c (find_basic_blocks): Calc upper bound for extra nops in
7172         max_uids_for_flow.
7173         (find_basic_blocks_1): Add a nop to the end of a basic block when
7174         a trailing call insn does not have abnormal control flow.
7175         * gcse.c (pre_transpout): New variable.
7176         (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it.
7177         (compute_pre_transpout): Calculate it.
7178         (compute_pre_ppinout): Use it to eliminate impossible placements
7179         due to abnormal control flow through calls.
7180         (compute_pre_data): Call compute_pre_transpout.
7181
7182 Wed Oct  7 21:40:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7183
7184         * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo.
7185
7186 Wed Oct  7 21:19:46 1998  Ken Raeburn  <raeburn@cygnus.com>
7187
7188         * config/mips/mips.md (tablejump_internal3, tablejump_internal4
7189         and matching define_insns): Tack on a `use' of the table label, so
7190         flow analysis will recognize a tablejump.
7191
7192 Wed Oct  7 17:33:39 1998  Richard Henderson  <rth@cygnus.com>
7193
7194         * gcse.c (pre_insert_insn): Tweek to notice that calls do not
7195         always end basic blocks for abnormal edge reasons.
7196
7197 Wed Oct  7 14:40:43 1998  Nick Clifton  <nickc@cygnus.com>
7198
7199         * config/i386/i386.h: Remove definition of
7200         HANDLE_PRAGMA_PACK_PUSH_POP.
7201         
7202         * config/i386/go32.h: Add definition of
7203         HANDLE_PRAGMA_PACK_PUSH_POP.
7204         
7205         * config/i386/win32.h: Add definition of
7206         HANDLE_PRAGMA_PACK_PUSH_POP.
7207         
7208         * config/i386/cygwin32.h: Add definition of
7209         HANDLE_PRAGMA_PACK_PUSH_POP.
7210
7211         * c-pragma.c (insert_pack_attributes): Do not insert
7212         attributes unless #pragma pack(push,<n>) is in effect.
7213
7214 Wed Oct  7 12:10:46 1998  Jim Wilson  <wilson@cygnus.com>
7215
7216         * expr.c (emit_group_store): Handle a PARALLEL destination.
7217
7218 Wed Oct  7 10:07:29 1998  Richard Henderson  <rth@cygnus.com>
7219
7220         * gcse.c (pre_insert_insn): When a call ends a bb, insert
7221         the new insns before the argument regs are loaded.
7222
7223 Wed Oct  7 12:55:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7224
7225         * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf.
7226         (c-parse.gperf): Update comments describing invocation flags.
7227         (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs).
7228
7229 1998-10-07  Manfred Hollstein  <manfred@s-direktnet.de>
7230
7231         * reload1.c (reload): Call free before clobbering the memory
7232         locations or constants pointers.
7233
7234 Wed Oct  7 02:05:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7235
7236         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework
7237         for efficiency by checking whether we need to modify the current
7238         stack permission at all.
7239         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define.
7240         * config/sparc/sparc.c (sparc_initialize_trampoline): Emit
7241         __enable_execute_stack libcall here too if
7242         TRANSFER_FROM_TRAMPOLINE is defined.
7243         * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if
7244         IN_LIBGCC2.
7245
7246 Wed Oct  7 02:27:52 1998  Jeffrey A Law  (law@cygnus.com)
7247
7248         * Makefile.in (DRIVER_DEFINES): Remove last change.
7249         
7250 Wed Oct  7 01:08:43 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
7251
7252         * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all
7253         insns we're going to copy.
7254         * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX.
7255
7256         * loop.c (count_one_set): Add prototype.
7257
7258         * caller-save.c (restore_referenced_regs): Lose mode argument.
7259         (insert_save): Lose mode argument.
7260         (insert_restore): Lose mode argument.
7261         (insert_one_insn): Lose mode argument.
7262         (save_call_clobbered_regs): Lose mode argument.
7263         (setup_save_areas): Take no argument and return void.  All callers
7264         changed.
7265         Don't verify validity of memory addresses.
7266         * reload.h (setup_save_ares): Adjust prototype.
7267         (save_call_clobbered_regs): Likewise.
7268         * reload1.c (delete_caller_save_insns): New function.
7269         (caller_save_spill_class): Delete variable.
7270         (caller_save_group_size): Delete variable.
7271         (reload): Call setup_save_areas and save_call_clobbered_regs
7272         in the main loop, before calling calculate_needs_all_insns.
7273         Don't call save_call_clobbered_regs after the loop.
7274         Call delete_caller_save_insns at the end of an iteration if
7275         something changed.
7276         Delete code to manage caller_save_spill_class.
7277         Emit the final note before setting reload_first_uid.
7278         Simplify test that determines whether reload_as_needed gets run.
7279         (calculate_needs): Delete code to manage caller_save_spill_class.
7280
7281 Tue Oct  6 15:42:27 1998  Richard Henderson  <rth@cygnus.com>
7282
7283         * collect2.c (main): Initialize ld_file_name.
7284
7285 Tue Oct  6 15:45:15 1998  Catherine Moore  <clm@cygnus.com>
7286  
7287         * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME):  Don't
7288         check for flag_function_sections.
7289
7290 Tue Oct  6 20:02:31 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7291
7292         * cse.c (insert_regs): Fix bug in Sep 24 change.
7293
7294 Tue Oct  6 17:00:42 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7295
7296         * flags.h (flag_dump_unnumbered): Declare.
7297         * toplev.c (flag_dump_unnumbered): Don't declare.
7298         * print-rtl.c (flags.h): Include.
7299         (print_rtl_single): Add return value.
7300         * rtl.h (print_rtl_single): Update declaration.
7301         * flow.c (flag_dump_unnumbered): Don't declare.
7302         (print_rtl_with_bb): Use return value of print_rtl_single.
7303
7304 Tue Oct  6 01:36:00 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
7305
7306         * loop.c (count_one_set): New static function, broken out of
7307         count_loop_regs_set
7308         (count_loop_regs_set): Call it.
7309         * global.c (mark_reg_store): Handle clobbers here by not calling
7310         set_preference.
7311         (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER
7312         is in fact a clobber.
7313         * integrate.c (process_reg_param): New function, broken out of
7314         expand_inline_function.
7315         (expand_inline_function): Call it.
7316
7317
7318         * i386.md (addsidi3_1): Delete unused variable temp.
7319         (addsidi3_2): Likewise.
7320         (clstrstrsi): Delete unused variable addr1.
7321
7322         * rtl.h: Don't declare any functions also declared in recog.h.
7323
7324         * Makefile.in (stupid.o): Update dependencies.
7325         (global.o): Likewise.
7326
7327         * global.c: Include reload.h
7328         (reg_becomes_live): New function.
7329         (reg_dies): New function.
7330         (build_insn_chain): New function.
7331         (global_alloc): Call build_insn_chain before calling reload.
7332
7333         * reload.h (struct needs): New structure definition.
7334         (struct insn_chain): Likewise.
7335         (reload_insn_chain): Declare variable.
7336         (new_insn_chain): Declare function.
7337
7338
7339         * reload1.c (reload_startobj): New variable.
7340         (reload_insn_chain): New variable.
7341         (unused_insn_chains): New variable.
7342         (new_insn_chain): New function.
7343         (init_reload): Initialize reload_startobj, not reload_firstobj.
7344         (reload): Initialize reload_firstobj.
7345         Before returning, free everything on the reload_obstack.
7346
7347         * stupid.c: Include insn-config.h, reload.h and basic-block.h.
7348         (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber,
7349         current_chain): New variables.
7350         (reg_where_born): Delete variable.
7351         (REG_WHERE_BORN): New macro.
7352         (find_clobbered_regs): New function.
7353         (stupid_life_analysis): Don't allocate/free reg_where_born.
7354         Allocate and free reg_where_born_exact, reg_where_born_clobber,
7355         reg_where_dead_chain.
7356         Use REG_WHERE_BORN instead of reg_where_born.
7357         While processing the insns, build the reload_insn_chain with
7358         information about register lifetimes.
7359         (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born.
7360         (stupid_mark_refs): Replace arg INSN with arg CHAIN.  All callers
7361         changed.
7362         Compute and information about birth and death of pseudo registers in
7363         reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber.
7364         Delete code to set elements of reg_where_born.  
7365
7366 Mon Oct  5 22:34:30 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
7367
7368         * tree.def (GOTO_EXPR): Modified documentation.
7369         * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed
7370         goto.
7371
7372 Mon Oct  5 22:43:36 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7373
7374         * unroll.c (loop_iteration_var, loop_initial_value, loop_increment
7375         loop_final_value, loop_comparison_code): No longer static.
7376         (unroll_loop): Delete loop_start_value update.
7377         * loop.h (loop_iteration_var, loop_initial_value, loop_increment,
7378         loop_final_value, loop_comparison_code): Extern.
7379         (loop_start_value): Delete extern.
7380         * loop.c (loop_can_insert_bct, loop_increment, loop_start_value,
7381         loop_comparison_value, loop_comparison_code): Delete.
7382         (loop_optimize): Remove initialization for deleted variables.
7383         (strength_reduce): Delete analyze_loop_iterations call.  Only call
7384         insert_bct if flag_branch_count_on_reg set.
7385         (analyze_loop_iterations): Delete.
7386         (insert_bct): Remove iteration count calculation.  Move checks for
7387         viable BCT optimization to here.  Obtain iteration count from
7388         loop_iterations and correct for unrolling.  Check for enough
7389         iteration to be beneficial.  Comment out runtime iteration count
7390         case.
7391         (insert_bct): Print iteration count in dump file.  Remove
7392         loop_var_mode and use word_mode directly.
7393
7394         * rs6000.h (processor_type): Add PROCESSOR_PPC604e.
7395         * rs6000.c (rs6000_override_options): Use it.
7396         (optimization_options): Enable use of flag_branch_on_count_reg.
7397         * rs6000.md (define_function_unit): Describe 604e.
7398
7399 1998-10-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7400
7401         * loop.c (move_movables): Corrected threshold calculation for
7402         moved_once registers.
7403
7404 Mon Oct  5 21:18:45 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
7405
7406         * loop.c (combine_givs_p): Fix test for identical givs.
7407
7408 Mon Oct  5 10:11:28 1998  Nick Clifton  <nickc@cygnus.com>
7409
7410         * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't
7411         call abort if the function is already defined.
7412
7413 Mon Oct  5 10:02:36 1998  Jeffrey A Law  (law@cygnus.com)
7414
7415         * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if
7416         truncation is not a no-op.
7417
7418 Mon Oct 5 09:02:04 PDT 1998 Jeff Law  (law@cygnus.com)
7419
7420         * version.c: Bump for snapshot.
7421
7422 Mon Oct 5 08:19:55 PDT 1998 Jeff Law  (law@cygnus.com)
7423
7424         * version.c: Bump for snapshot.
7425
7426 Mon Oct  5 01:07:23 1998  Torbjorn Granlund  <tege@matematik.su.se>
7427
7428         * expmed.c (expand_divmod): Don't widen for computing remainder
7429         if we seem to have a divmod pattern for needed mode.
7430
7431 Mon Oct  5 01:01:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
7432
7433         * cpplib.c (macroexpand): Correct off-by-one error in handling
7434         of escapes.
7435
7436 Sun Oct  4 23:58:30 1998  Richard Henderson  <rth@cygnus.com>
7437
7438         * combine.c (expand_field_assignment): Don't do bitwise operations
7439         on MODE_FLOAT; pun to MODE_INT if possible.
7440
7441 Sun Oct  4 18:33:24 1998  Jason Merrill  <jason@yorick.cygnus.com>
7442                           scott snyder  <snyder@d0sgif.fnal.gov>
7443
7444         * tlink.c (scan_linker_output): Recognize errors from irix 6.2
7445         linker.  Recognize mangled names in quotes.
7446
7447 Sun Oct  4 02:58:20 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
7448
7449         * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64.
7450         (ashlsi3_const1, ashldi3_const1): New combiner patterns.
7451         (ashrsi3_extend, ashrsi3_extend2): New combiner patterns.
7452         (lshrsi3_extend, lshrsi3_extend2): Ditto.
7453
7454 Sun Oct  4 00:23:00 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7455
7456         * function.c (purge_addressof_1): If trying to take a sub-word
7457         integral piece of a floating point mode, put it on the stack.
7458
7459 Sat Oct  3 19:01:03 1998  Richard Henderson  <rth@cygnus.com>
7460
7461         * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.
7462
7463 Sat Oct  3 14:42:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
7464
7465         * PROJECTS: Remove template friends.
7466
7467         * collect2.c (sort_ids): Remove unused variable.
7468
7469         * tm.texi (MATH_LIBRARY): Document.
7470         (NEED_MATH_LIBRARY): Remove.
7471
7472         * varasm.c (assemble_start_function, assemble_variable, weak_finish,
7473         assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too.
7474
7475 Sat Oct  3 16:14:44 1998  John Carr  <jfc@mit.edu>
7476
7477         * dwarf2out.c (expand_builtin_dwarf_reg_size):  Initialize
7478         last_end to 0x7fffffff.
7479
7480 Fri Oct  2 19:14:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7481
7482         * function.c (purge_addressof_1): Do not perform endianness
7483         corrections on bitpos, who we call will do it for us.
7484
7485 Fri Oct  2 11:52:35 1998  Jeffrey A Law  (law@cygnus.com)
7486
7487         * h8300.c (WORD_REG_USED): Fix typo.
7488         (initial_offset): Use WORD_REG_USED.
7489
7490         * h8300.c (handle_pragma): Fix typo.
7491
7492 Fri Oct  2 10:51:35 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
7493
7494         * caller-save.c (insert_save_restore): Break this function up
7495         into new functions insert_restore, insert_save and insert_one_insn.
7496         All callers changed.
7497         (insert_restore): New function, mostly broken out of
7498         insert_save_restore.
7499         (insert_save): Likewise.
7500         (insert_one_insn): Likewise.
7501         (restore_referenced_regs): New argument BLOCK.  All callers changed.
7502         (save_call_clobbered_regs): Don't keep track of basic block boundaries
7503         in this function, do it in insert_one_insn instead.
7504
7505         * reload1.c (reload): Break out some more pieces into separate
7506         functions.
7507         (dump_needs): New function, broken out of reload.
7508         (set_initial_elim_offsets): Likewise.
7509         (init_elim_table): Likewise.
7510         (update_eliminables): Likewise.
7511
7512         * global.c (global_alloc): Delete code to manage the scratch_list.
7513         * local-alloc.c (qty_scratch_rtx): Delete.
7514         (scratch_block): Delete.
7515         (scratch_list): Delete.
7516         (scratch_list_length): Delete.
7517         (scratch_index): Delete.
7518         (alloc_qty_for_scratch): Delete.
7519         (local-alloc): Update initialization of max_qty.
7520         Delete code to manage the scratch list.
7521         Delete code to allocate/initialize qty_scratch_rtx.
7522         (block_alloc): Don't allocate quantities for scratches.
7523         Delete code to manage the scratch list.
7524         * regs.h (scratch_list): Delete declaration.
7525         (scratch_block): Delete declaration.
7526         (scratch_list_length): Delete declaration.
7527         * reload1.c (reload): Delete code to manage the scratch list.
7528         (spill_hard_reg): Likewise.
7529         (mark_scratch_live): Delete.
7530
7531         * recog.c (alter_subreg): Delete declaration.
7532
7533 1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
7534
7535         * Makefile.in (cccp.o): Fix typo in last patch.
7536
7537 Fri Oct  2 16:13:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7538
7539         * t-sh (LIB1ASMFUNCS): Add _set_fpscr .
7540         * config/sh/lib1funcs.asm (___set_fpscr): Add.
7541
7542 Fri Oct  2 02:01:59 1998  Jeffrey A Law  (law@cygnus.com)
7543
7544         * regclass.c (reg_scan_mark_refs): Return immediately if passed a
7545         NULL_RTX as an argument.
7546
7547         * Makefile.in (unlibsubdir): Define.
7548         (DRIVER_DEFINES): Use unlibsubdir.
7549         (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly.
7550         (stmp-fixinc): Similarly.
7551
7552 Thu Oct  1 19:58:30 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
7553
7554         * regmove.c (regmove_optimize): Add variable old_max_uid.
7555         At the end of the function, update basic_block_end.
7556
7557 Thu Oct  1 17:58:25 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7558
7559         * dwarf2out.c (expand_builtin_dwarf_reg_size): Use
7560         FIRST_PSEUDO_REGISTER as upper bound for last_end, not an
7561         arbitrary constant.
7562
7563 Thu Oct  1 17:57:14 1998  Nick Clifton  <nickc@cygnus.com>
7564
7565         * config/arm/arm.c: Improve interworking support.
7566
7567 Thu Oct  1 18:43:35 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7568
7569         * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was
7570         copied from reload_out[r] .
7571
7572 Thu Oct  1 19:20:09 1998  John Carr  <jfc@mit.edu>
7573
7574         * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work
7575         with more than three size ranges.
7576
7577         * flow.c (sbitmap_copy): Use bcopy to copy bitmap.
7578
7579         * rtl.c (mode_name): Add a null string at the end of the array.
7580         (mode_wider_mode): Change type to unsigned char.
7581         (mode_mask_array): New variable.
7582         (init_rtl): Update for mode_wider_mode type change.
7583
7584         * rtl.h (mode_wider_mode): Change type to unsigned char.
7585         (mode_mask_array): Declare.
7586         (GET_MODE_MASK): Use mode_mask_array.
7587
7588 Thu Oct  1 15:56:01 1998  Gavin Romig-Koch  <gavin@cygnus.com>
7589
7590         * calls.c (expand_call) : Encapsulate code into 
7591         copy_blkmode_from_reg.
7592         * expr.c (copy_blkmode_from_reg): New function.
7593         * expr.h (copy_blkmode_from_reg): New function.
7594         * integrate.c (function_cannot_inline_p): We can inline
7595         these now.
7596         (expand_inline_function): Use copy_blkmode_from_reg
7597         if needed.  Avoid creating BLKmode REGs.
7598         (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode
7599         object.
7600
7601 Thu Oct  1 10:42:27 1998  Nick Clifton  <nickc@cygnus.com>
7602
7603         * config/v850/v850.c: Add function prototypes.
7604         Add support for v850 special data areas.
7605
7606         * config/v850/v850.h: Add support for v850 special data areas.
7607         
7608         * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and
7609         HANDLE_PRAGMA_PACK_PUSH_POP.
7610         (push_alignment): New function: Cache an alignment requested
7611         by a #pragma pack(push,<n>).
7612         (pop_alignment): New function: Pop an alignment from the
7613         alignment stack.
7614         (insert_pack_attributes): New function: Generate __packed__
7615         and __aligned__ attributes for new decls whilst a #pragma pack
7616         is in effect. 
7617         (add_weak): New function: Cache a #pragma weak directive.
7618         (handle_pragma_token): Document calling conventions.  Add
7619         support for #pragma pack(push,<n>) and #pragma pack (pop).
7620
7621         * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP
7622         are defined enable HANDLE_PRAGMA_PACK.
7623         Move 'struct weak_syms' here (from varasm.c).
7624         Add pragma states for push and pop pragmas.
7625
7626         * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES
7627         if it is defined.
7628
7629         * c-lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with
7630         HANDLE_GENERIC_PRAGMAS.
7631         
7632         * varasm.c: Move definition of 'struct weak_syms' into
7633         c-pragma.h. 
7634         (handle_pragma_weak): Deleted.
7635
7636         * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7637
7638         * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7639
7640         * c-decl.c (start_function): Add invocation of
7641         SET_DEFAULT_DECL_ATTRIBUTES, if defined.
7642
7643         * tm.texi: Remove description of non-existant macro
7644         SET_DEFAULT_SECTION_NAME.
7645         
7646         (HANDLE_SYSV_PRAGMA): Document.
7647         (HANDLE_PRAGMA_PACK_PUSH_POP): Document.
7648
7649 Wed Sep 30 22:27:53 1998  Robert Lipe  <robertl@dgii.com>
7650
7651         * config.sub: Recognize i[34567]86-pc-udk as new target.
7652         * configure.in: Likewise.
7653         * config/i386/t-udk: New file.
7654         * config/i386/udk.h: New file.
7655
7656 Wed Sep 30 19:33:07 1998  Jeffrey A Law  (law@cygnus.com)
7657
7658         * reorg.c (check_annul_list_true_false): Remove unused variables.
7659         (steal_delay_list_from_target): Add missing "used_annul" variable.
7660         (try_merge_delay_insns): Close out half formed comment.
7661
7662 Wed Sep 30 19:13:20 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
7663
7664         * cpplib.c (macroexpand): If arg->raw_before or
7665         arg->raw_after, remove any no-reexpansion escape at the
7666         beginning of the pasted token.  Correct handling of whitespace
7667         markers and no-reexpand markers at the end if arg->raw_after.
7668
7669         * toplev.c (documented_lang_options): Recognize -include,
7670         -imacros, -iwithprefix, -iwithprefixbefore.
7671         * cpplib.c (cpp_start_read): Process -imacros and -include
7672         switches at the same time and in command-line order, after
7673         initializing the dependency-output code.  Emit properly nested
7674         #line directives for them.  Emit a #line for the main file
7675         before processing these switches, and don't do it again
7676         afterward.
7677
7678 Wed Sep 30 18:03:22 1998  Richard Henderson  <rth@cygnus.com>
7679
7680         * function.c (purge_addressof_1): Use bitfield manipulation
7681         routines to handle mem mode < reg mode.
7682
7683 Wed Sep 30 18:43:32 1998  Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
7684
7685         * reorg.c (try_merge_delay_insns): Account for resources referenced
7686         in each instruction in INSN's delay list before trying to eliminate
7687         useless instructions.  Similarly when looking at a trial insn's delay
7688         slots.
7689
7690         * reorg.c (check_annul_list_true_false): New function.
7691         (steal_delay_list_from_{target,fallthrough}): Call it and also
7692         refine tests for when we may annul if already filled a slot.
7693         (fill_slots_from_thread): Likewise.
7694         (delete_from_delay_slot): Return newly-created thread.
7695         (try_merge_delay_isns): Use its new return value.
7696
7697 Wed Sep 30 18:29:26 1998  Jeffrey A Law  (law@cygnus.com)
7698
7699         * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is
7700         used to compute a giv or as some other non-counting use.
7701
7702 Wed Sep 30 18:19:27 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7703
7704         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED):  New macro.
7705         * local-alloc.c (find_free_reg): Use it.
7706         * global.c (find_reg): Likewise.
7707         * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED.
7708
7709         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
7710         * caller-save.c (init_caller_save): Use it.
7711         * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE.
7712
7713 Wed Sep 30 12:57:30 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
7714
7715         * configure.in: Add --enable-cpplib option which uses cpplib
7716         for cpp, but doesn't link cpplib into cc1.  Make help text
7717         capitalization consistent.
7718         * configure: Rebuilt.
7719
7720 Wed Sep 30 10:09:39 1998  Mark Mitchell  <mark@markmitchell.com>
7721
7722         * function.c (gen_mem_addressof): If the address REG is
7723         REG_USERVAR_P make the new REG be so also.
7724         * loop.c (scan_loop): Apply DeMorgan's laws and add documentation
7725         in an attempt to clarify slightly.
7726
7727 Wed Sep 30 09:57:40 1998  Jeffrey A Law  (law@cygnus.com)
7728
7729         * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF
7730         and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE.
7731
7732 Wed Sep 30 10:13:39 1998  Catherine Moore  <clm@cygnus.com>
7733
7734         * toplev.c:  Fix last patch.
7735
7736 Tue Sep 29 20:03:18 1998  Jim Wilson  <wilson@cygnus.com>
7737
7738         * loop.c (get_condition): Fix typo in May 9 change.
7739
7740 Tue Sep 29 11:11:38 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
7741
7742         * invoke.texi (-fexceptions): Merge 2 different descriptions.
7743
7744 Mon Sep 28 22:08:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7745
7746         * toplev.c (documented_lang_options): Spelling corrections.
7747
7748 Mon Sep 28 19:41:24 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
7749
7750         * configure.in: new flags --with-ld and --with-as, equivalent
7751         to setting LD and AS environment variables.  Test whether
7752         specified arguments are GNU commands, and report them with
7753         checking messages.  Use the specified AS for configure
7754         tests too.
7755         * configure: ditto
7756         * acconfig.h: add DEFAULT_ASSEMBLER and DEFAULT_LINKER
7757         * config.in: ditto
7758         * gcc.c (find_a_file): when looking for `as' and `ld', return
7759         the DEFAULT program if it exists
7760         * collect2.c (main): use DEFAULT_LINKER if it exists
7761
7762         * gcc.c (find_a_file): the test for existence of a full
7763         pathname was reversed
7764
7765 Mon Sep 28 17:34:35 1998  Michael Meissner  <meissner@cygnus.com>
7766
7767         * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems.
7768         * rs6000.c (output_mi_thunk): Always use a raw jump for now.
7769
7770 Mon Sep 28 14:24:03 1998  Mark Mitchell  <mark@markmitchell.com>
7771
7772         * tree.h (TYPE_BINFO): Document.
7773
7774 Mon Sep 28 12:55:49 1998   Stan Cox  <scox@cygnus.com>
7775
7776         * i386-coff.h (dbxcoff.h): Added.
7777
7778 Mon Sep 28 12:51:00 1998  Catherine Moore  <clm@cygnus.com>
7779
7780         * toplev.c:  fix bad patch around flag_data_sections.
7781
7782 Mon Sep 28 10:32:28 1998  Nick Clifton  <nickc@cygnus.com>
7783
7784         * reload1.c (reload): Use reload_address_index_reg_class and 
7785         reload_address_base_reg_class when setting
7786         caller_save_spill_class.  (Patch generated by Jim Wilson:
7787         wilson@cygnus.com).
7788
7789 Mon Sep 28 07:43:34 1998  Mark Mitchell  <mark@markmitchell.com>
7790
7791         * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs
7792         and ARRAY_TYPEs.  Tidy up.  Improve support for type-punning. 
7793         * expr.c (store_field): Add alias_set parameter.  Set the
7794         MEM_ALIAS_SET accordingly, if the target is a MEM.
7795         (expand_assignment): Use it.
7796         (store_constructor_field): Pass 0.
7797         (expand_expr): Likewise.
7798
7799 Mon Sep 28 07:54:03 1998  Catherine Moore  <clm@cygnus.com>
7800  
7801         * flags.h:  Add flag_data_sections.
7802         * toplev.c:  Add option -fdata-sections.  Add flag_data_sections.
7803         (compile_file):  Error if flag_data_sections not supported.
7804         * varasm.c (assemble_variable):  Handle flag_data_sections.
7805         * config/svr4.h:  Modify prefixes for UNIQUE_SECTION_NAME.
7806         * config/mips/elf.h:  Likewise.
7807         * config/mips/elf64.h:  Likewise.
7808         * invoke.texi:  Describe -fdata-sections.
7809  
7810 Mon Sep 28 04:15:44 1998  Craig Burley  <burley@melange.gnu.org>
7811
7812         * invoke.texi (-ffloat-store): Clarify that this option
7813         does not affect intermediate results -- only variables.
7814
7815 Mon Sep 28 04:11:35 1998  Jeffrey A Law  (law@cygnus.com)
7816
7817         * cpp.texi: Update for Fortran usage from Craig.
7818
7819 Fri Sep 25 22:09:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7820
7821         * rs6000.c (function_arg_boundary): Revert accidental change on
7822         September 18.
7823
7824 Fri Sep 25 20:30:00 1998  Michael Meissner  <meissner@cygnus.com>
7825
7826         * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk.
7827         (output_mi_thunk): Declare.
7828
7829         * rs6000.c (output_mi_thunk): Function to create thunks for MI.
7830         (output_function_profiler): Use r12 for temp, instead of r11 so
7831         that we preserve the static chain register.
7832         
7833 Fri Sep 25 14:18:33 1998  Jim Wilson  <wilson@cygnus.com>
7834
7835         * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.
7836
7837 Fri Sep 25 19:30:19 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7838
7839         * sh.c (gen_shl_sext): Fix case 5.
7840
7841 Fri Sep 25 17:35:23 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7842
7843         * reload1.c (reload_combine): Re-add line that got accidentally lost.
7844
7845 Fri Sep 25 10:43:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7846
7847         * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid
7848         accessing variables until they are initialized via va_arg().
7849
7850 Thu Sep 24 22:12:16 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7851
7852         * reload1.c (reload_combine): Initialize set before using.
7853
7854 Thu Sep 24 18:53:20 1998  Jason Merrill  <jason@yorick.cygnus.com>
7855
7856         * sdbout.c (sdbout_field_types): Don't emit the types of fields we
7857         won't be emitting.
7858
7859 Thu Sep 24 17:05:30 1998  Nick Clifton  <nickc@cygnus.com>
7860
7861         * config/arm/arm.md (insv): Add comment.  In CONST_INT case, and
7862         operand3 with mask before using it.  Patch provided by Jim Wilson.
7863
7864 Thu Sep 24 15:08:08 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
7865
7866         * config/sparc/sparc.c (function_value): Perform the equivalent of
7867         PROMOTE_MODE for ARCH64.
7868         (eligible_for_epilogue_delay): Allow DImode operations in delay
7869         slot of a return for ARCH64.
7870
7871 Thu Sep 24 22:17:54 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7872
7873         * sh.md (sqrtsf2): Fix mode of sqrt.
7874
7875 Thu Sep 24 21:48:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7876
7877         * reload1.c (choose_reload_regs): Also try inheritance when
7878         reload_in is a stack slot of a pseudo, even if we already got a
7879         reload reg.
7880
7881 Thu Sep 24 21:22:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7882
7883         * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs.
7884         (reload_cse_regs): New function body: call reload_cse_regs_1,
7885         reload_combine, reload_cse_move2add.
7886         When doing expensive_optimizations, call reload_cse_regs_1 a
7887         second time after reload_cse_move2add.
7888         (reload_combine, reload_combine_note_store): New functions.
7889         (reload_combine_note_use): New function.
7890         (reload_cse_move2add, move2add_note_store): New functions.
7891
7892 Thu Sep 24 18:48:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7893
7894         * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR
7895         reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing.
7896
7897         Properly keep track of first RELOAD_FOR_X_ADDRESS also for
7898         more than 3 such reloads.
7899
7900         If there is not more than one RELOAD_FOR_X_ADDRESS, don't change
7901         RELOAD_FOR_X_ADDR_ADDR reload.
7902
7903 Thu Sep 24 17:45:55 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7904
7905         * expr.c (store_constructor): When initializing a field that is smaller
7906         than a word, at the start of a word, try to widen it to a full word.
7907
7908         * cse.c (cse_insn): When we are about to change a register,
7909         remove any invalid references to it.
7910
7911         (remove_invalid_subreg_refs): New function.
7912         (mention_regs): Special treatment for SUBREGs.
7913         (insert_regs): Don't strip SUBREG for call to mention_regs.
7914         Check if reg_tick needs to be bumped up before that call.
7915         (lookup_as_function): Try to match known word_mode constants when
7916         looking for a norrower constant.
7917         (canon_hash): Special treatment for SUBREGs.
7918
7919 Thu Sep 24 01:35:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7920
7921         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define.
7922         * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is
7923         defined, emit libcall to __enable_execute_stack.  Also fix opcodes
7924         and offsets in actual stack trampoline code so they match the
7925         commentary and actually work.
7926
7927 Thu Sep 24 01:19:02 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
7928
7929         * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for
7930         tmake_file.
7931         (sparc64-*-linux): Use t-linux and sparc/t-linux64 for
7932         tmake_file.  Set extra_parts to needed crt objects.
7933         * configure: Rebuilt.
7934         * config/sparc/linux64.h (SPARC_BI_ARCH): Define.
7935         (TARGET_DEFAULT): Set if default is v9 or ultra.
7936         (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros.
7937         (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH.
7938         (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise.
7939         (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
7940         LINK_SPEC, LINK_ARCH_SPEC): Likewise.
7941         (TARGET_VERSION): Define.
7942         (MULTILIB_DEFAULT): Define.
7943         * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that
7944         mixed 32/64 bit compilers based upon SPARC_BI_ARCH work.
7945         (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define
7946         appropriately.
7947         (TARGET_SWITCHES): Allow ptr32/ptr64 options once more.
7948         * config/sparc/sparc.c (sparc_override_options): If arch and
7949         pointer size disagree, emit diagnostic and fix it up.  If
7950         SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32.  Turn off
7951         V8PLUS in 64-bit mode.
7952         * config/sparc/t-linux64: New file.
7953         * config/sparc/t-sol2-64: New file.
7954         * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS.
7955         * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define.
7956         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC,
7957         CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define.
7958         (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those.
7959         (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC):
7960         Define.
7961         (STARTFILE_SPEC): Set approriately based upon those.
7962         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon
7963         disposition of DEFAULT_ARCH32_P.
7964         (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define.
7965         (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those.
7966         (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P.
7967         (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH.
7968         * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on
7969         arch64/v9.
7970         * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise.
7971         
7972 Wed Sep 23 22:32:31 1998  Mark Mitchell  <mark@markmitchell.com>
7973
7974         * rtl.h (init_virtual_regs): New function.
7975         * emit-rtl.c (init_virtual_regs): Define.
7976         (insn_emit): Use it.
7977         * integrate.c (save_for_inline_copying): Likewise.
7978
7979 Wed Sep 23 16:22:01 1998  Nick Clifton  <nickc@cygnus.com>
7980
7981         * config/arm/thumb.h: The following patches were made by Jim Wilson:
7982         (enum reg_class): Add NONARG_LO_REGS support.
7983         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
7984         PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
7985         (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload
7986         completes.  Re-enable HImode REG+OFFSET addresses.
7987         (LEGITIMIZE_RELOAD_ADDRESS): Define.
7988
7989         * expmed.c (extract_bit_field): Add comment from Jim Wilson. 
7990
7991 Wed Sep 23 13:26:02 1998  Richard Henderson  <rth@cygnus.com>
7992
7993         * alpha.c (get_aligned_mem): Revert Sep 20 change.
7994         (alpha_set_memflags, alpha_set_memflags_1): Likewise.
7995         (alpha_align_insns): Properly calculate initial offset wrt max_align.
7996
7997 Wed Sep 23 10:45:44 1998  Richard Earnshaw (rearnsha@arm.com)
7998
7999         * arm.c (find_barrier): Revert change of Apr 23.  Handle table
8000         jumps as a single entity, taking into account the size of the
8001         table.
8002
8003 Tue Sep 22 15:13:34 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
8004
8005         * tree.def (SWITCH_EXPR): New tree node definition.
8006
8007 Mon Sep 21 23:40:38 PDT 1998 Jeff Law  (law@cygnus.com)
8008
8009         * version.c: Bump for snapshot.
8010
8011 Mon Sep 21 22:31:14 PDT 1998 Jeff Law  (law@cygnus.com)
8012
8013         * version.c: Bump for snapshot.
8014
8015 Mon Sep 21 22:48:09 1998  Jeffrey A Law  (law@cygnus.com)
8016
8017         * configure.in: Recognize i[34567]86-*-openbsd* and handle it like
8018         NetBSD.
8019
8020 Mon Sep 21 22:05:28 1998  Jeffrey A Law  (law@cygnus.com)
8021
8022         * Revert this patch.
8023         * reload.c (find_reloads): Do not replace a pseudo with
8024         (MEM (reg_equiv_addr)) in the initializing insn for the
8025         pseudo.
8026
8027 Mon Sep 21 20:19:41 1998  John Carr  <jfc@mit.edu>
8028
8029         * final.c (final_scan_insn): Disable tracking CC across branches.
8030
8031 Mon Sep 21 17:15:26 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
8032
8033         * expr.h (eh_rtime_match_libfunc): New extern declaration.
8034         * optabs.c (init_optabs): Set eh_rtime_match_libfunc.
8035         * except.c (start_catch_handler): Use eh_rtime_match_libfunc.
8036         * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
8037         NULL. Only include <stdio.h> if inhibit_libc is not defined.
8038
8039 Mon Sep 21 14:10:51 1998  Jason Merrill  <jason@yorick.cygnus.com>
8040
8041         * toplev.c (rest_of_compilation): Skip compiling anything with
8042         DECL_EXTERNAL set, not just if it has DECL_INLINE as well.
8043
8044 Mon Sep 21 13:51:05 1998  Jim Wilson  <wilson@cygnus.com>
8045
8046         * flow.c (find_basic_blocks): Delete check for in_libcall_block when
8047         prev_code is a CALL_INSN.  Change check for REG_RETVAL note to
8048         use in_libcall_block.
8049         (find_basic_blocks_1): Delete check for in_libcall_block when prev_code
8050         is a CALL_INSN.  If CALL_INSN and in_libcall_block, then change code
8051         to INSN.
8052
8053 Mon Sep 21 14:02:23 1998
8054
8055         * i386.h: (TARGET_SWITCHES) Improve doc for align-double.  Fix
8056         typo in no-fancy-math-387 description.
8057
8058 Mon Sep 21 09:27:18 PDT 1998 Jeff Law  (law@cygnus.com)
8059
8060         * version.c: Bump for snapshot.
8061
8062 Mon Sep 21 09:24:49 1998   Stan Cox  <scox@cygnus.com>
8063
8064         * i386-coff.h (DBX_DEBUGGING_INFO): Added.
8065
8066 Mon Sep 21 09:14:49 1998   Robert Lipe  <robertl@dgii.com>
8067
8068         * i386.h: (TARGET_SWITCHES) Add description fields for flags 
8069         documented in install.texi.
8070         (TARGET_OPTIONS) Likewise.
8071
8072 Mon Sep 21 01:39:03 PDT 1998 Jeff Law  (law@cygnus.com)
8073
8074         * version.c: Bump for snapshot.
8075
8076 Mon Sep 21 01:53:05 1998  Felix Lee  <flee@cygnus.com>
8077
8078         * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
8079         * cccp.c (main): Likewise.
8080
8081         * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h:
8082         Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some
8083         macro-use bugs.
8084
8085 Mon Sep 21 00:52:12 1998  Per Bothner  <bothner@cygnus.com>
8086
8087         * Makefile.in (LIBS):  Link in libiberty.a.
8088         * c-common.c, gcc.c, toplev.c:  Replace (some) bcopy calls by memcpy.
8089
8090 Sun Sep 20 23:28:11 1998  Richard Henderson  <rth@cygnus.com>
8091
8092         * reload1.c (emit_reload_insns): Accept a new arg for the bb.  Use
8093         it to update bb boundaries.  Update caller.
8094         * function.c (reposition_prologue_and_epilogue_notes): Update
8095         bb boundaries wrt the moved note.
8096
8097 Sun Sep 20 20:57:02 1998  Robert Lipe  <robertl@dgii.com>
8098         
8099         * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder
8100         problems.
8101         * configure: Regenerate.
8102
8103 Sun Sep 20 19:01:51 1998  Richard Henderson  <rth@cygnus.com>
8104
8105         * alpha.c (alpha_sr_alias_set): New variable.
8106         (override_options): Set it.
8107         (alpha_expand_prologue, alpha_expand_epilogue): Use it.
8108         (mode_mask_operand): Fix signed-unsigned comparision warning.
8109         (alpha_expand_block_move): Likewise.
8110         (print_operand): Likewise.
8111         (get_aligned_mem): Use change_address.
8112         (alpha_set_memflags, alpha_set_memflags_1): Set the alias set.
8113         (alphaev4_insn_pipe, alphaev4_next_group): New functions.
8114         (alphaev4_next_nop, alphaev5_next_nop): New functions.
8115         (alpha_align_insns): Remade from old alphaev5_align_insns
8116         to handle multiple processors.
8117         (alpha_reorg): Call alpha_align_insns for both ev4 and ev5.
8118         * output.h (label_to_alignment): Prototype.
8119
8120         * tree.c (new_alias_set): New function.
8121         * tree.h (new_alias_set): Declare it.
8122         * c-common.c (c_get_alias_set): Use it.
8123
8124 Sun Sep 20 12:35:55 1998  Richard Henderson  <rth@cygnus.com>
8125
8126         * fold-const.c (fold): Yet another COND_EXPR bug: when folding 
8127         to an ABS expr, convert an unsigned input to signed.
8128         
8129 Sun Sep 20 12:14:45 1998  Jeffrey A Law  (law@cygnus.com)
8130
8131         * fold-const.c (fold): Fix another type in COND_EXPR handling code.
8132
8133 1998-09-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8134
8135         * configure.in: Add support for c4x targets.
8136         * configure: Rebuilt.
8137
8138 Sun Sep 20 00:00:51 1998  Richard Henderson  <rth@cygnus.com>
8139
8140         * combine.c (distribute_notes): If an insn is a cc0 user, only
8141         delete it if we can also delete the cc0 setter.
8142
8143 Sun Sep 20 00:22:23 1998  Michael Tiemann  <michael@impact.tiemann.org>
8144
8145         * fold-const.c (fold): Fix typo in COND_EXPR handling code.
8146         (invert_truthvalue): Enable truthvalue inversion for
8147         floating-point operands if -ffast-math.
8148
8149 Sat Sep 19 23:58:07 1998  Melissa O'Neill <oneill@cs.sfu.ca>
8150                          
8151         * configure.in: Disable collect2 for nextstep.  Instead use
8152         crtbegin/crtend.
8153         * configure: Rebuilt.
8154         * config/nextstep.h (STARTFILE_SPEC): Add crtbegin.
8155         (ENDFILE_SPEC): Define.
8156         (OBJECT_FORMAT_MACHO): Define.
8157         (EH_FRAME_SECTION_ASM_OP): Define.
8158         * crtstuff.c: Handle MACHO.
8159
8160 Sun Sep 20 00:24:24 1998  Robert Lipe  <robertl@dgii.com>
8161
8162         * config/i386/sco5.h (TARGET_MEM_FUNCTIONS):  Define.
8163
8164 1998-09-19  Torbjorn Granlund  <tege@matematik.su.se>
8165
8166         * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0.
8167         (_fpadd_parts): Get sign right for 0.
8168
8169 1998-09-19  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8170
8171         * ginclude/varargs.h: Add support for C4x target.
8172         * ginclude/stdargs.h: Likewise.
8173
8174 Sat Sep 19 12:05:09 1998  Richard Henderson  <rth@cygnus.com>
8175
8176         * alpha.c (alpha_return_addr): SET should be VOIDmode.
8177         (alpha_emit_set_long_const): Rewrite to be callable from reload
8178         and 32-bit hosts.
8179         (alpha_expand_epilogue): Update for alpha_emit_set_long_const.
8180         * alpha.md (movdi): Likewise.
8181
8182 Sat Sep 19 07:33:36 1998  Richard Earnshaw (rearnsha@arm.com)
8183
8184         * arm.c (add_constant): New parameter address_only, change caller.
8185         Set it non-zero if taking the address of an item in the pool.
8186         (arm_reorg): Handle cases where we need the address of an item in
8187         the pool.
8188
8189         * arm.c (bad_signed_byte_operand): Check both arms of a sum in
8190         a memory address.
8191         * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
8192         memory addresses that are not in standard canonical form.
8193
8194 Sat Sep 19 01:00:32 1998  Michael Hayes  (mph@elec.canterbury.ac.nz)
8195
8196         * README.C4X: New file with information about the c4x ports.
8197         * ginclude/va-c4x.h: New file for c4x varargs support.
8198         * config/c4x: New directory with c4x port files.
8199
8200 Fri Sep 18 22:52:05 1998  Jeffrey A Law  (law@cygnus.com)
8201
8202         * reload.c (find_reloads): Do not replace a pseudo with 
8203         (MEM (reg_equiv_addr)) in the initializing insn for the
8204         pseudo.
8205
8206 Fri Sep 18 23:50:56 1998  David Edelsohn  <edelsohn@mhpcc.edu>
8207
8208         * toplev.c (rest_of_compilation): Set bct_p on second call to
8209         loop_optimize.
8210         * loop.c (loop_optimize, scan_loop, strength_reduce): New argument
8211         bct_p.
8212         (strength_reduce): Only call analyze_loop_iterations and
8213         insert_bct if bct_p set.
8214         (check_dbra_loop): Fix typo.
8215         (insert_bct): Use word_mode instead of SImode.
8216         (instrument_loop_bct): Likewise.  Do not delete iteration count
8217         condition code generation insn.  Initialize iteration count before
8218         loop start.
8219         * rtl.h (loop_optimize): Update prototype.
8220
8221         * ginclude/va-ppc.h (va_arg): longlong types in overflow area are
8222         not doubleword aligned.
8223
8224         * rs6000.c (optimization_options): New function.
8225         (secondary_reload_class): Only call true_regnum for PSEUDO_REGs.
8226         * rs6000.h (OPTIMIZATION_OPTIONS): Define.
8227         (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters
8228         first; cr1 can be used for FP record condition insns.
8229
8230 Fri Sep 18 09:44:55 1998  Nick Clifton  <nickc@cygnus.com>
8231
8232         * config/m32r/m32r.h (m32r_block_immediate_operand): Add to
8233         PREDICATE_CODES.
8234
8235         * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal"
8236         patterns.
8237
8238         * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p'
8239         operators.
8240         (block_move_call): New function: Call a library routine to copy a
8241         block of memory.
8242         (m32r_expand_block_move): New function: Expand a "movstrsi"
8243         pattern into a sequence of insns.
8244         (m32r_output_block_move): New function: Expand a
8245         "movstrsi_internal" pattern into a sequence of assembler opcodes.
8246         (m32r_block_immediate_operand): New function: Return true if the
8247         RTL is an integer constant, less than or equal to MAX_MOVE_BYTES.
8248         
8249 Thu Sep 17 16:42:16 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
8250
8251         * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
8252         re-align some code.
8253         * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
8254
8255 Thu Sep 17 12:24:33 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8256
8257         * regmove.c (copy_src_to_dest): Check that modes match.
8258
8259 Wed Sep 16 22:10:42 1998  Robert Lipe  <robertl@dgii.com>
8260
8261         * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF.
8262
8263 Wed Sep 16 15:24:54 1998  Richard Henderson  <rth@cygnus.com>
8264
8265         * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
8266         narrower than FLOAT_REGS.
8267
8268 Wed Sep 16 17:51:00 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
8269
8270         * cpplib.c: removed OLD_GPLUSPLUS_INCLUDE_DIR
8271         * cccp.c: ditto
8272         * Makefile.in (old_gxx_include_dir): removed
8273
8274 Wed Sep 16 12:29:22 1998  Nick Clifton  <nickc@cygnus.com>
8275
8276         * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match
8277         new specification.
8278
8279         * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma().
8280         (sh_handle_pragma): Change function arguments to match new
8281         specification for HANDLE_PRAGMA. 
8282
8283 Wed Sep 16 12:43:19 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8284
8285         * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to
8286         `unsigned char'.
8287         (main): Mark parameter `argc' with ATTRIBUTE_UNUSED.
8288         When generating output, initialize missing struct member to zero.
8289
8290 Wed Sep 16 14:47:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8291
8292         * regmove.c (copy_src_to_dest): Don't copy if that requires
8293         (a) new register(s).
8294
8295 Wed Sep 16 01:29:12 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8296
8297         * global.c (reg_allocno): Now static.
8298         * reload1.c (reg_allocno): Delete declaration.
8299         (order_regs_for_reload): Take no arguments.  Don't treat regs
8300         allocated by global differently than those allocated by local-alloc.
8301
8302 Wed Sep 16 01:09:01 1998  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
8303
8304         * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q
8305         condition, fix format strings.
8306         (output_function_epilogue): Likewise.
8307
8308         * m68k/m68k.c: Don't include <stdlib.h> directly.
8309
8310 Wed Sep 16 00:30:56 1998  Geoff Keating  <geoffk@ozemail.com.au>
8311
8312         * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
8313         mem_first_set, mem_last_set; because 0 can be a CUID.
8314         (oprs_unchanged_p): Use new definition.
8315         (record_last_reg_set_info): Likewise.
8316         (record_last_mem_set_info): Likewise.
8317         (compute_hash_table): Likewise.
8318
8319 Tue Sep 15 22:59:52 1998  Jeffrey A Law  (law@cygnus.com)
8320
8321         * rs6000.c (output_epilogue): Handle Chill.
8322
8323         * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
8324         * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
8325
8326         * combine.c (make_extraction): If no mode is specified for
8327         an operand of insv, extv, or extzv, default it to word_mode.
8328         (simplify_comparison): Similarly.
8329         * expmed.c (store_bit_field): Similarly.
8330         (extract_bit_field): Similarly.
8331         * function.c (fixup_var_regs_1): Similarly.
8332         * recog.c (validate_replace_rtx_1): Similarly.
8333         * mips.md (extv, extzv, insv expanders): Default modes for most
8334         operands.  Handle TARGET_64BIT.
8335         (movdi_uld, movdi_usd): New patterns.
8336
8337         * pa.c (emit_move_sequence): Do not replace a pseudo with its
8338         equivalent memory location unless we have been provided a scratch
8339         register.  Similarly do not call find_replacement unless a
8340         scratch register has been provided.
8341
8342 Tue Sep 15 19:23:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8343
8344         * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
8345         return FLOAT_REGS.
8346
8347 Tue Sep 15 19:09:06 1998  Richard Henderson  <rth@cygnus.com>
8348
8349         * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
8350         (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
8351         (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
8352         (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
8353         * c-decl.c (init_decl_processing): Update accordingly.
8354         * expr.c (expand_builtin): Likewise.
8355
8356         * rtl.h (global_rtl): Add cfa entry.
8357         (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
8358         (LAST_VIRTUAL_REGISTER): Update.
8359         * emit-rtl.c (global_rtl): Add cfa entry.
8360         (init_emit): Initialize it.
8361         * function.c (cfa_offset): New.
8362         (instantiate_virtual_regs): Initialize it.
8363         (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
8364         (expand_function_end): Call expand_eh_return.
8365         * tm.texi (ARG_POINTER_CFA_OFFSET): New.
8366
8367         * except.c (current_function_eh_stub_label): Kill.
8368         (current_function_eh_old_stub_label): Likwise; update all references.
8369         (expand_builtin_set_return_addr_reg): Kill.
8370         (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
8371         (expand_builtin_set_eh_regs): Kill.
8372         (eh_regs): Produce a third reg for the actual handler address.
8373         (eh_return_context, eh_return_stack_adjust): New.
8374         (eh_return_handler, eh_return_stub_label): New.
8375         (init_eh_for_function): Initialize them.
8376         (expand_builtin_eh_return, expand_eh_return): New.
8377         * except.h: Update prototypes.
8378         * flow.c (find_basic_blocks_1): Update references to the stub label.
8379         * function.h (struct function): Kill stub label elements.
8380
8381         * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
8382         register number is one that would be in the previous window.
8383         Provide a dummy definition for non-windowed targets.
8384         (get_reg_addr): New function.
8385         (get_reg, put_reg, copy_reg): Use it.
8386         (__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
8387         generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
8388
8389         * alpha.c (alpha_eh_epilogue_sp_ofs): New.
8390         (alpha_init_expanders): Initialize it.
8391         (alpha_expand_epilogue): Use it.
8392         * alpha.h: Declare it.
8393         * alpha.md (eh_epilogue): New.
8394
8395         * m68h.h (ARG_POINTER_CFA_OFFSET): New.
8396         * sparc.h (ARG_POINTER_CFA_OFFSET): New.
8397
8398 Tue Sep 15 19:31:58 1998  Michael Meissner  <meissner@cygnus.com>
8399
8400         * i960.h (CONST_COSTS): Fix thinko.  Test flag, not the constant
8401         flag bit mask.
8402
8403 Tue Sep 15 14:10:54 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
8404
8405         * except.h (struct eh_entry): Add false_label field.
8406         (end_catch_handler): Add prototype.
8407         * except.c (push_eh_entry): Set false_label field to NULL_RTX.
8408         (start_catch_handler): When using old style exceptions, issue
8409         runtime typematch code before continuing with the handler.
8410         (end_catch_handler): New function, generates label after handler
8411         if needed by older style exceptions.
8412         (expand_start_all_catch): No need to check for new style exceptions.
8413         (output_exception_table_entry): Only output the first handler label
8414         for old style exceptions.
8415         * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching
8416         mechanism into one function, if a runtime matcher is provided.
8417
8418 Tue Sep 15 13:53:59 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
8419
8420         * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
8421
8422 Tue Sep 15 09:59:01 1998  Mark Mitchell  <mark@markmitchell.com>
8423
8424         * integrate.c (copy_decl_list): Fix typo.
8425
8426 Tue Sep 15 04:18:52 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8427
8428         * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length
8429         attribute.
8430
8431 Mon Sep 14 14:02:53 PDT 1998 Jeff Law  (law@cygnus.com)
8432
8433         * version.c: Bump for snapshot.
8434
8435 Mon Sep 14 10:33:56 PDT 1998 Jeff Law  (law@cygnus.com)
8436
8437         * version.c: Bump for snapshot.
8438
8439 Mon Sep 14 09:51:05 PDT 1998 Jeff Law  (law@cygnus.com)
8440
8441         * version.c: Bump for snapshot.
8442
8443 Sun Sep 13 22:10:18 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8444
8445         * invoke.texi (C Dialect Options): Put back missing @end itemize.
8446
8447 Mon Sep 14 02:33:46 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
8448
8449         * configure.in: remove usage of `!' to negate the result of a
8450         command; some common shells do not support it
8451
8452 Sun Sep 13 19:17:35 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8453
8454         * configure.in: in sparc9-sol2 config, use 'if test' not
8455         brackets.
8456         * configure: Rebuilt.
8457
8458         * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to
8459         CM_MEDANY.
8460         (CPP_CPU_SPEC): Do not define _LP64, header files do this.
8461         (CPP_CPU_DEFAULT_SPEC): Likewise.
8462         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right
8463         for arch64 libfuncs.
8464         
8465         * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode
8466         for operand zero.
8467
8468 Sun Sep 13 09:11:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8469
8470         * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub.
8471
8472         * collect2.c: Don't declare `sys_siglist' here.
8473         (my_strsignal): Prototype and define new function.  Use it in
8474         place of `sys_siglist' hacks.
8475
8476         * mips_tfile.c:  Likewise.
8477
8478         * configure.in (AC_CHECK_FUNCS): Check for strsignal.
8479         (GCC_NEED_DECLARATIONS): Likewise.
8480
8481         * system.h (strsignal): Prototype it, if necessary.
8482         (sys_siglist): Declare it, if necessary.
8483
8484 Sun Sep 13 04:37:28 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8485
8486         * loop.c (move_movables): While removing insn sequences, preserve
8487         the next pointer of the most recently deleted insn when we skip
8488         over a NOTE.
8489
8490 Sun Sep 13 08:13:39 1998  Ben Elliston  <bje@cygnus.com>
8491
8492         * objc/config-lang.in: Do not output the name of the selected
8493         thread file when building the front-end.  The Makefile for the
8494         runtime library will do this.
8495
8496         * objc/Make-lang.in: Do not build the runtime library or install
8497         the Objective C header files.  The Makefile for the runtime
8498         library will do this.
8499
8500         * objc/Makefile.in (all.indirect): Only build the front-end.
8501         (compiler): Rename to `frontend'.
8502         (obj-runtime): Remove target.
8503         (copy-headers): Likewise.
8504         (clean): No need to remove `libobjc.a' any longer.
8505
8506 Sat Sep 12 11:37:19 1998  Michael Meissner  <meissner@cygnus.com>
8507
8508         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
8509         supported with -mcpu=xxx.
8510
8511 Fri Sep 11 23:55:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8512
8513         * flow.c (mark_set_1): Recognize multi-register structure return
8514         values in CALL insns.
8515         (mark_used_regs): Likewise.
8516         (count_reg_sets_1): Likewise.
8517         (count_reg_references): Likewise.
8518         * rtlanal.c (note_stores): Likewise.
8519         (reg_overlap_mentioned_p): Likewise.
8520         * haifa-sched.c (check_live_1): Likewise.
8521         (update_live_1): Likewise.
8522         (sched_analyze_1): Likewise.
8523         (sched_note_set): Likewise.
8524         (birthing_insn_p): Likewise.
8525         (attach_deaths): Likewise.
8526
8527         * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable.
8528
8529
8530 Fri Sep 11 22:57:55 1998  Eric Dumazet  <dumazet@cosmosbay.com>
8531
8532         * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h.
8533
8534 Thu Sep 10 22:02:04 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8535
8536         * glimits.h (__LONG_MAX__): Recognize __sparcv9 too.
8537
8538 Thu Sep 10 21:19:10 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
8539
8540         * configure.in: Add check for GAS subsection -1 support.
8541         * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add.
8542         * configure config.in: Rebuilt.
8543         * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use
8544         SImode is subsection -1 works, else use DImode.
8545         (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if
8546         subsection -1 works.
8547         * config/sparc/sparc.c (sparc_output_addr_vec,
8548         sparc_output_addr_diff_vec): Use them if defined.
8549
8550 Thu Sep 10 10:46:01 1998  Mark Mitchell  <mark@markmitchell.com>
8551
8552         * tree.h (DECL_ORIGIN): New macro.
8553         * integrate.c (copy_and_set_decl_abstract_origin): New function.
8554         (copy_decl_list): Use it.
8555         (integrate_parm_decls): Likewise.
8556         (integrate_decl_tree): Likewise.
8557         * dwarf2out.c (decl_ultimate_origin): Simplify.
8558         * dwarfout.c (decl_ultimate_origin): Likewise.
8559         * c-decl.c (duplicate_decls): Use DECL_ORIGIN.
8560         (pushdecl): Likewise.
8561
8562 Thu Sep 10 08:01:31 1998  Anthony Green  <green@cygnus.com>
8563
8564         * config/rs6000/rs6000.c (output_epilog): Add Java support.
8565
8566 Thu Sep 10 14:48:59 1998  Martin von Löwis  <loewis@informatik.hu-berlin.de>
8567
8568         * invoke.texi (C++ Dialect Options): Document -fhonor-std.
8569
8570 Thu Sep 10 01:38:05 1998  Jeffrey A Law  (law@cygnus.com)
8571
8572         * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
8573         empty or has a single entry.
8574
8575         * toplev.c (rest_of_compilation): Open up the dump file for reg-stack
8576         before calling reg_to_stack.
8577
8578 Thu Sep 10 00:03:34 1998  Richard Henderson  <rth@cygnus.com>
8579
8580         * alpha.c (alphaev5_insn_pipe): Abort on default case.
8581         (alphaev5_next_group): Swallow CLOBBERs and USEs.
8582
8583         * c-tree.h (warn_long_long): Declare it.
8584
8585 Wed Sep  9 23:31:36 1998  (Stephen L Moshier) <moshier@world.std.com>
8586
8587         * emit-rtl.c (gen_lowpart_common): Disable optimization of
8588         initialized float-int union if the value is a NaN.
8589
8590 Wed Sep  9 23:00:48 1998  Nathan Sidwell  <nathan@acm.org>
8591
8592         * c-lex.c (real_yylex): Don't warn about long long constants if 
8593         we're allowing long long
8594
8595 Wed Sep  9 21:58:41 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8596
8597         * except.h (current_function_eh_stub_label): Declare.
8598         (current_function_eh_old_stub_label): Declare.
8599         * function.h (struct function): New members eh_stub_label and
8600         eh_old_stub_label.
8601         * except.c (current_function_eh_stub_label): New variable.
8602         (current_function_eh_old_stub_label): New variable.
8603         (init_eh_for_function): Clear them.
8604         (save_eh_status): Save them.
8605         (restore_eh_status): Restore them.
8606         (expand_builtin_eh_stub): Set current_function_eh_stub_label.
8607         (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label.
8608         * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't
8609         make an edge from the block that contains it to the block starting
8610         with the label if this label is one of the eh stub labels.
8611         If eh stub labels exist, show they are reachable from the last block
8612         in the function.
8613
8614         * reload1.c (reload): Break out several subroutines and make some
8615         variables global.
8616         (calculate_needs_all_insns): New function, broken out of reload.
8617         (calculate_needs): Likewise.
8618         (find_reload_regs): Likewise.
8619         (find_group): Likewise.
8620         (find_tworeg_group): Likewise.
8621         (something_needs_reloads): New global variable, formerly in reload.
8622         (something_needs_elimination): Likewise.
8623         (caller_save_spill_class): Likewise.
8624         (caller_save_group_size): Likewise.
8625         (max_needs): Likewise.
8626         (group_size): Likewise.
8627         (max_groups): Likewise.
8628         (max_nongroups): Likewise.
8629         (group_mode): Likewise.
8630         (max_needs_insn): Likewise.
8631         (max_groups_insn): Likewise.
8632         (max_nongroups_insn): Likewise.
8633         (failure): Likewise.
8634
8635         * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET.
8636
8637 Wed Sep  9 13:14:41 1998  Richard Henderson  <rth@cygnus.com>
8638
8639         * loop.c (load_mems): Copy rtx for output mem.
8640
8641 Wed Sep  9 15:16:58 1998  Gavin Romig-Koch  <gavin@cygnus.com>
8642
8643         * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for
8644         mips1 or mips2 either.
8645
8646 Wed Sep  9 12:31:35 1998  Jeffrey A Law  (law@cygnus.com)
8647
8648         * pa.c (pa_reorg): New marking scheme for jumps inside switch
8649         tables.
8650         (pa_adjust_insn_length): Update to work with new marking scheme
8651         for jumps inside switch tables. 
8652         * pa.md (switch_jump): Remove pattern.
8653         (jump): Handle jumps inside jump tables.
8654
8655         * Makefile.in (profile.o): Depend on insn-config.h
8656
8657 Wed Sep  9 09:36:51 1998  Jim Wilson  <wilson@cygnus.com>
8658
8659         * iris6.h (DWARF2_UNWIND_INFO): Undef.
8660
8661 Wed Sep  9 01:32:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8662
8663         Add preliminary native sparcv9 Solaris support.
8664         * configure.in: Recognize sparv9-*-solaris2*
8665         * configure: rebuilt
8666         * config.sub: Recognize sparcv9 just like sparc64.
8667         * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm
8668         config/sparc/sol2-cn.asm: Macroize so it can be shared between
8669         32-bit and 64-bit Solaris systems.
8670         * config/sparc/t-sol2: Assemble those with cpp.
8671         * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9.
8672         (*TF*_LIBCALL): If ARCH64 use V9 names.
8673         * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files.
8674
8675 Wed Sep  9 01:07:30 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
8676
8677         * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation.
8678         (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and
8679         not doing pic.
8680         (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not
8681         Pmode.
8682         * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0
8683         to Pmode if CASE_VECTOR_MODE is something else.
8684
8685 Wed Sep  9 00:10:31 1998  Jeffrey A Law  (law@cygnus.com)
8686
8687         * prefix.c (update_path): Correctly handle cases where PATH is
8688         a substring of the builtin prefix, but specifies a different
8689         directory location.
8690
8691 Tue Sep  8 23:46:04 1998  Hans-Peter Nilsson  <hp@axis.se>
8692
8693         * expr.c: Corrected comment about what MOVE_RATIO does.
8694         * config/alpha/alpha.h: Ditto.
8695         * config/1750a/1750a.h: Ditto.
8696         * config/clipper/clipper.h: Ditto.
8697         * config/i386/i386.h: Ditto.
8698
8699 Tue Sep  8 22:56:12 1998  Jeffrey A Law  (law@cygnus.com)
8700
8701         * configure.in (m68k-next-nextstep3*): Use collect2.
8702         Similarly for x86 NeXT configurations.
8703         * configure: Rebuilt.
8704
8705 Tue Sep  8 01:38:57 1998  Nathan Sidwell  <nathan@acm.org>
8706
8707         * configure.in: Don't assume srcdir is .../gcc
8708         * configure: Rebuilt.
8709
8710 Sat Sep  5 16:34:34 EDT 1998  John Wehle  (john@feith.com)
8711
8712         * global.c: Update comments.
8713         (global_alloc): Assign allocation-numbers
8714         even for registers allocated by local_alloc in case
8715         they are later spilled and retry_global_alloc is called.
8716         (mark_reg_store, mark_reg_clobber,
8717         mark_reg_conflicts, mark_reg_death): Always record a
8718         conflict with a pseudo register even if it has been
8719         assigned to a hard register.
8720         (dump_conflicts): Don't list pseudo registers already assigned to
8721         a hard register as needing to be allocated, but do list their
8722         conflicts.
8723         * local-alloc.c: Update comment.
8724
8725 Mon Sep  7 23:38:01 1998  Jeffrey A Law  (law@cygnus.com)
8726
8727         * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH.
8728         * configure: Rebuilt.
8729
8730 Mon Sep  7 22:41:46 1998  Michael Meissner  <meissner@cygnus.com>
8731
8732         * rs6000.c (rs6000_override_options): Fix name for ec603e, to add
8733         missing 'c'.
8734         * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx
8735         for all targets that set -msoft-float.
8736
8737 Mon Sep  7 23:30:07 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8738
8739         * toplev.c (print_switch_values): Make static to match prototype.
8740
8741 Mon Sep  7 19:13:59 1998  Jeffrey A Law  (law@cygnus.com)
8742
8743         * configure.in: If we are unable to find the "gnatbind" program,
8744         then do not configure the ada subdir.
8745         * configure: Rebuilt.
8746
8747 Sun Sep 6 14:03:58 PDT 1998 Jeff Law  (law@cygnus.com)
8748
8749         * version.c: Bump for snapshot.
8750
8751 Sun Sep 6 13:28:07 PDT 1998 Jeff Law  (law@cygnus.com)
8752
8753         * version.c: Bump for snapshot.
8754
8755 Sun Sep  6 08:54:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8756
8757         * Makefile.in (toplev.o): Depend on $(EXPR_H).
8758         (insn-extract.o, insn-attrtab.o): Depend on toplev.h.
8759
8760         * gansidecl.h: Define ATTRIBUTE_NORETURN.
8761
8762         * genattrtab.c: Have insn-attrtab.c include toplev.h.
8763
8764         * genextract.c: Have insn-extract.c include toplev.h.
8765
8766         * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'.
8767
8768         * toplev.c: Include expr.h.
8769         (really_sorry, fancy_abort): Remove prototypes.
8770         (set_target_switch): Add argument in prototype.
8771         (vfatal): Mark prototype with ATTRIBUTE_NORETURN.
8772         (v_really_sorry): Likewise.
8773         (print_version, print_single_switch, print_switch_values): Make
8774         static and add prototype arguments.
8775         (decl_printable_name): Add prototype arguments.
8776         (lang_expand_expr_t): New typedef.
8777         (lang_expand_expr): Declare as a lang_expand_expr_t.
8778         (incomplete_decl_finalize_hook): Add prototype argument.
8779         (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED.
8780         (botch): Likewise for variable `s'.
8781         (rest_of_type_compilation): Mark variables `type' and `toplev'
8782         with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO,
8783         XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined.
8784         (display_help): Make variable `i' an `unsigned long'.
8785         (main): Remove unused parameter `envp'.
8786         Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'.
8787         Cast -1 when comparing it with a `size_t'.
8788
8789         * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark
8790         prototype with ATTRIBUTE_NORETURN.
8791         (fatal_insn_not_found, fatal_insn, really_sorry,
8792         push_float_handler, pop_float_handler): Add prototypes.
8793         (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN.
8794         (do_abort, botch): Add prototypes.
8795         
8796 Sat Sep  6 12:05:18 1998  John Carr  <jfc@mit.edu>
8797
8798         * final.c (final): If a label is reached only from a single jump,
8799         call NOTICE_UPDATE_CC on the jump and its predecessor before
8800         emitting the insn after the label.
8801         
8802         * i386.h: Add AMD K6 support.
8803         Change TARGET_* macros to use table lookup.
8804         (INITIALIZE_TRAMPOLINE): Improve trampoline code.
8805         (ADJUST_COST): Change definition to call function in i386.c.
8806         (ISSUE_RATE): Define as 2 for anything newer than an 80486.
8807         * i386.c: Add AMD K6 support.
8808         Add constants for feature tests used by TARGET_* macros.
8809         (split_di): If before reload, call gen_lowpart and gen_highpart.
8810         (x86_adjust_cost): New function.
8811         (put_jump_code): New function.
8812         (print_operand): New codes 'D' and 'd'.
8813         * i386.md: New insn types.  New insn attribute "memory".
8814         Redefine scheduling parameters to use new types and add AMD K6
8815         support.  Explicitly set type of most insns.
8816         (move insns): K6 prefers movl $0,reg to xorl reg,reg.  Pentium
8817         Pro and K6 prefer movl $1,reg to incl reg.
8818         (adddi3, subdi3): Set cc_status.
8819         (DImode shift patterns): Change label counters from HOST_WIDE_INT
8820         to int; x86 can't have more than 2^31 DImode shifts per file.
8821         (setcc): Combine all setcc patterns.  Allow writing memory.
8822         Combine all jump patterns using match_operator.
8823         (*bzero): Name pattern.  Emit mutliple stos instructions when that
8824         is faster than rep stos.
8825         (xordi3, anddi3, iordi3): Simplify DImode logical patterns and
8826         add define_split.
8827
8828 Sun Sep  6 11:17:20 1998  Dave Love  <d.love@dl.ac.uk>
8829
8830         * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771
8831         linking.
8832
8833 Sat Sep  5 22:05:25 1998  Richard Henderson  <rth@cygnus.com>
8834
8835         * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
8836         not whatever we're generating now.
8837
8838         * alpha.c (set_frame_related_p, FRP): New.
8839         (alpha_expand_prologue): Mark frame related insns.
8840         (alpha_expand_epilogue): Likewise, but with a null FRP.
8841         * alpha.h (INCOMING_RETURN_ADDR_RTX): New.
8842         * alpha.md (exception_receiver): New.
8843         * alpha/crtbegin.asm (.eh_frame): New beginning.
8844         (__do_frame_setup, __do_frame_takedown): New.
8845         * alpha/crtend.asm (.eh_frame): New ending.
8846         * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define.
8847         (ASM_SPEC): Don't emit both dwarf2 and mdebug.
8848         (ASM_FILE_START): Don't emit .file for dwarf2.
8849
8850         * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
8851         * rtl.c (reg_note_name): Likewise.
8852         * rtl.texi (REG_NOTES): Likewise.
8853         * dwarf2out.c (dwarf2out_frame_debug): Use it.  Recognize a store
8854         without an offset.
8855
8856 Sat Sep  5 14:47:17 1998  Richard Henderson  <rth@cygnus.com>
8857
8858         * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS.
8859         * i386.md (movsf, movdf, movxf): Validate memory address returned
8860         from force_const_mem.  Kill useless REG_EQUAL setting code.
8861
8862 Sat Sep  5 14:23:31 1998  Torbjorn Granlund <tege@matematik.su.se>
8863
8864         * m68k.md (zero_extendsidi2): Fix typo.
8865
8866 Sat Sep  5 13:40:24 1998  Krister Walfridsson  <cato@df.lth.se>
8867
8868         * configure.in: Removed references to the removed file
8869         * config/xm-netbsd.h. Use ${cpu_type}/xm-netbsd.h for
8870         * arm*-*-netbsd* and ns32k-*-netbsd*.
8871         * config/i386/xm-netbsd.h: Removed unnecessary file.
8872         * config/m68k/xm-netbsd.h: Likewise.
8873         * config/sparc/xm-netbsd.h: Likewise.
8874         * config/mips/xm-netbsd.h: Likewise.
8875
8876 Sat Aug 29 13:32:58 1998  Mumit Khan  <khan@xraylith.wisc.edu>
8877
8878         * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define.
8879         (PCC_BITFIELD_TYPE_MATTERS): Define to be 0.
8880
8881         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
8882         for exact section attributions.
8883
8884         * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
8885         runtime.
8886         * i386/crtdll.h (CPP_PREDEFINES): Define.
8887
8888 Sat Sep  5 03:23:05 1998  Jeffrey A Law  (law@cygnus.com)
8889
8890         * m68k.md (5200 movqi): Do not allow byte sized memory references
8891         using address regs.
8892         * m68k.c (output_move_qimode): Do not use byte sized operations on
8893         address registers.
8894
8895         * Makefile.in (pexecute.o): Use pexecute.c from libiberty.  Provide
8896         explicit rules for building.  Similarly for alloca, vfprintf,
8897         choose-temp and mkstemp, getopt, getopt1, and obstack.
8898         (INCLUDES): Add $(srcdir)/../include.
8899         * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete.
8900         * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise.
8901
8902 Fri Sep  4 11:57:50 1998  Tom Tromey  <tromey@cygnus.com>
8903
8904         * gcc.c (do_spec_1): [case 'o'] Account for
8905         lang_specific_extra_outfiles.
8906         (main): Correctly clear all slots in outfiles for
8907         lang_specific_extra_outfiles.  Set input_file_number before
8908         calling lang_specific_pre_link.
8909
8910 Fri Sep  4 10:37:07 1998  Jim Wilson  <wilson@cygnus.com>
8911
8912         * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
8913
8914 Fri Sep  4 02:01:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8915
8916         * config/sparc/sparc.c (output_double_int): In all V9 symbolic
8917         cases, use xword.
8918         (sparc_output_deferred_case_vectors): If no work to do, return.
8919         Fix thinko in Sept 1 change.
8920
8921 1998-09-03  SL Baur  <steve@altair.xemacs.org>
8922
8923         * Makefile.in: add semicolon in BISON definition for portability.
8924
8925 Thu Sep  3 13:34:41 1998  Toon Moene  <toon@moene.indiv.nluug.nl>
8926
8927         * config/nextstep.c (handle_pragma): Correct name of third
8928         argument.
8929
8930 Tue Sep  1 11:30:33 1998  Nick Clifton  <nickc@cygnus.com>
8931
8932         * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17).
8933         * config/m32r/m32r.h: Make register 17 be fixed.
8934         * config/m32r/m32r.c: Use SImode for cc operations.
8935
8936 Thu Sep  3 18:17:34 1998 Benjamin Kosnik  <bkoz@cygnus.com>
8937
8938         * invoke.texi (Warning Options): Add -Wnon-template-friend
8939         documentation.
8940
8941 Thu Sep  3 18:16:16 1998  Michael Meissner  <meissner@cygnus.com>
8942
8943         * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}.
8944
8945 Thu Sep  3 18:05:16 1998  David Edelsohn  <edelsohn@mhpcc.edu>
8946
8947         * rs6000.md (movsf): Disable explicit secondary-reload-like
8948         functionality if TARGET_POWERPC64.
8949         (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
8950         functionality.
8951
8952 Thu Sep  3 11:41:40 1998  Robert Lipe   <robertl@dgii.com>
8953
8954         * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
8955         and term.h from fixinc.wrap.
8956
8957 Thu Sep  3 09:47:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8958
8959         * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is
8960         safe to include both string.h and strings.h together.
8961         (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding
8962         which headers to search for function declarations.  Continue to
8963         prefer string.h over strings.h when both are not acceptable.
8964
8965         * acconfig.h (STRING_WITH_STRINGS): Add stub.
8966
8967         * configure.in: Call GCC_HEADER_STRING.
8968
8969         * system.h: Test STRING_WITH_STRINGS when deciding which headers
8970         to include.  Continue to prefer string.h over strings.h when both
8971         are not acceptable.
8972
8973 Wed Sep  2 23:56:29 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8974
8975         * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do
8976         not assume top 32-bits of symbolic addresses are zero if
8977         flag_pic.
8978
8979 Thu Sep  3 00:23:21 1998  Richard Henderson  <rth@cygnus.com>
8980
8981         * ginclude/va-alpha.h: Protect entire second portion of the
8982         file against double inclusion.
8983
8984 Thu Sep  3 00:37:55 1998  Ovidiu Predescu  <ovidiu@aracnet.com>
8985
8986         Added support for the Boehm's garbage collector.
8987         * configure.in: Handle --enable-objc-gc.
8988         * configure: Rebuilt.
8989         * Makefile.in (CHECK_TARGETS): Add check-objc.
8990         (check-objc): New rule.
8991         * objc/Make-lang.in: Build a different Objective-C library that
8992         runs with the Boehm's collector.
8993         * objc/encoding.c (objc_round_acc_size_for_types): New function.
8994         * objc/encoding.c: Correctly compute the size of compound types in
8995         the presence of bitfields. Skip the variable name of the type if
8996         any. Added support for long long.
8997         * objc/encoding.h (_C_GCINVISIBLE): New specifier.
8998         (_F_GCINVISIBLE): New mask.
8999         * objc/gc.c: New file. Compute the type memory mask associated with
9000         a class based on the runtime information.
9001         * objc/misc.c: Added the hooks that use the Boehm's collector
9002         allocation functions.
9003         * objc/objc-act.c (build_class_template): Generate a new class
9004         member (gc_object_type) to hold the class' type memory mask.
9005         (build_shared_structure_initializer): Initialize the new member to
9006         NULL.
9007         (encode_complete_bitfield): New function. Generate the new
9008         encoding.
9009         (encode_field_decl): Generate the new encoding only for the GNU
9010         runtime.
9011         * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the
9012         long long types.
9013         (class_get_gc_object_type): New function to mark a pointer instance
9014         variable as a weak pointer.
9015         * objc/objc-features.texi: New file.
9016         * objc/objc.h (gc_object_type): New class member.
9017         * objc/objects.c (class_create_instance): Create a typed memory
9018         object when compiled with Boehm's collector support.
9019         * objc/sendmsg.c (__objc_init_install_dtable): Call
9020         __objc_send_initialize instead of setting the initialize flag.
9021         (__objc_send_initialize): Call __objc_generate_gc_type_description
9022         to generate the class type memory mask. Rewrite the code that
9023         sends the +initialize so that it is called only once (bug report
9024         and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>).
9025         * testsuite/objc: New testsuite for Objective-C type encoding.
9026         * testsuite/lib/objc-torture.exp: New file.
9027         * testsuite/lib/objc.exp: New file.
9028
9029 Wed Sep  2 14:47:36 1998  Jim Wilson  <wilson@cygnus.com>
9030
9031         * jump.c (jump_optimize): In if/then/else transformations, add
9032         another call to modified_between_p for the jump insn.
9033
9034 Wed Sep  2 14:16:49 1998  Jeffrey A Law  (law@cygnus.com)
9035
9036         * fix-header.c (symlink): Treat like readlink.
9037
9038 Wed Sep  2 19:30:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9039
9040         * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles
9041         as FT_float.
9042
9043 Wed Sep  2 10:06:07 1998  Nick Clifton  <nickc@cygnus.com>
9044
9045         * config/nextstep.h:    Update HANDLE_PRAGMA macro.
9046         * config/h8300/h8300.h: Update HANDLE_PRAGMA macro.
9047         * config/i960/i960.h:   Update HANDLE_PRAGMA macro.
9048         
9049         * config/nextstep.c (handle_pragma): Take three arguments, as per
9050         the new HANDLE_PRAGMA macro specification.
9051         * config/h8300/h8300.c (handle_pragma): Take three arguments, as
9052         per the new HANDLE_PRAGMA macro specification.
9053         * config/i960/i960.c (process_pragma): Take three arguments, as
9054         per the new HANDLE_PRAGMA macro specification.
9055
9056 Wed Sep  2 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
9057
9058         * c-lex.c (check_newline):  Call HANDLE_PRAGMA before
9059         HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
9060         if unknown pragmas are encountered.
9061         (handle_sysv_pragma): Interpret return code from
9062         handle_pragma_token ().  Return success/failure indication rather
9063         than next unprocessed character. 
9064         (pragma_getc): New function: retrieves characters from the
9065         input stream.  Defined when HANDLE_PRAGMA is enabled.
9066         (pragma_ungetc): New function: replaces characters back into the
9067         input stream.  Defined when HANDLE_PRAGMA is enabled.
9068         
9069         * c-pragma.c (handle_pragma_token): Return success/failure status
9070         of the parse.
9071         
9072         * c-pragma.h: Change prototype of handle_pragma_token().
9073
9074         * varasm.c: (handle_pragma_weak): Only create this function if
9075         HANDLE_PRAGMA_WEAK is defined.
9076
9077         * c-common,c (decl_attributes): If defined call the expression
9078         contained within the INSERT_ATTRIBUTES macro before adding
9079         attributes to a decl.
9080
9081         * tm.texi (HANDLE_PRAGMA): Document the new verion of
9082         HANDLE_PRAGMA, which takes three arguments.
9083         (INSERT_ATTRIBUTES): Document this new macro.  
9084
9085         * LANGUAGES: Document the new version of HANDLE_PRAGMA and the
9086         new INSERT_ATTRIBUTES macro.
9087
9088 Wed Sep  2 02:03:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9089
9090         * config/sparc/sparc.md (movdf): Only generate special RTL for
9091         LABEL_REFs when PIC.
9092         (move_label_di): Remove
9093         (movdi_pic_label_ref, movdi_high_pic_label_ref,
9094         movdi_lo_sum_pic_label_ref): New patterns for 64-bit label
9095         references when PIC.
9096         * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT,
9097         ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW,
9098         output an .xword for all 64-bit cases.
9099         
9100 Tue Sep  1 15:55:17 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9101
9102         * config/sparc/sparc.c (finalize_pic): Don't output arbitrary
9103         alignment, use FUNCTION_BOUNDARY instead.
9104         (sparc_output_deferred_case_vectors): Likewise.
9105
9106 Mon Aug 31 17:25:41 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9107
9108         * config/sparc/sparc.md (movsf_const_intreg): Kill warning.
9109         (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives.
9110
9111 Mon Aug 31 13:57:55 1998  Richard Henderson  <rth@cygnus.com>
9112
9113         * alpha/va_list.h: New file.
9114         * alpha/x-alpha (EXTRA_HEADERS): New.  Add va_list.h.
9115
9116 Mon Aug 31 14:55:02 1998  Jeffrey A Law  (law@cygnus.com)
9117
9118         * NEWS: Add SCO Openserver and Unixware 7 notes.
9119
9120         * NEWS: Fix typos.
9121
9122 Mon Aug 31 15:42:18 1998  Dave Brolley  <brolley@cygnus.com>
9123
9124         * varasm.c (compare_constant_1): Handle RANGE_EXPR.
9125         (record_constant_1): Handle RANGE_EXPR.
9126
9127 Mon Aug 31 10:54:03 1998  Richard Henderson  <rth@cygnus.com>
9128
9129         * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap.
9130         * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START
9131         and NOTE_INSN_RANGE_END specially.
9132         (reemit_notes): Likewise.
9133
9134 Mon Aug 31 10:18:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9135
9136         * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'.
9137         (ultrasparc_sched_init): Remove unneeded &.
9138
9139 Mon Aug 31 10:47:16 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9140
9141         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040
9142         for m68020-60, to prevent the use of fintrz.
9143
9144 Sun Aug 30 22:17:20 1998  Mark Mitchell  <mark@markmitchell.com>
9145
9146         * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) 
9147         even in stage1. 
9148         * Makefile.in: Likewise.
9149         * configure: Regenerated.
9150
9151 Sun Aug 30 22:15:41 1998  H.J. Lu  (hjl@gnu.org)
9152
9153         * configure.in (gxx_include_dir): Changed to
9154         '${prefix}/include/g++'-${libstdcxx_interface}.
9155         * configure: Rebuilt.
9156
9157 Sun Aug 30 20:19:43 1998  Hans-Peter Nilsson  <hp@axis.se>
9158
9159         * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use
9160         consistent.
9161         * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move
9162         *sequences* *below* which scalar moves will be used.
9163
9164 Sun Aug 30 17:18:43 1998  Jeffrey A Law  (law@cygnus.com)
9165
9166         * collect2.c (mktemp): Delete unused declaration.
9167
9168         * config/xm-netbsd.h: Remove unnecessary file.
9169         * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h
9170         file anymore, it is not needed.
9171
9172 Sun Aug 30 16:05:45 1998  Mark Mitchell  <mark@markmitchell.com>
9173
9174         * convert.c (convert_to_integer): Issue an error on conversions to
9175         incomplete types.
9176
9177 Sun Aug 30 16:47:20 1998  Martin von Lvwis  <loewis@informatik.hu-berlin.de>
9178
9179         * Makefile.in: Add lang_tree_files and gencheck.h.
9180         * configure.in: Generate them.
9181         * gencheck.c: Include gencheck.h.
9182
9183 Sat Aug 29 21:38:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9184
9185         * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to
9186         movdi_lo_sum_pic and movdi_high_pic and make visible.
9187         * config/sparc/sparc.c (legitimize_pic_address): For -fPIC,
9188         emit these when Pmode is not SImode.
9189         * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW.
9190
9191 Sat Aug 29 14:59:32 1998  Mumit Khan  <khan@xraylith.wisc.edu>
9192
9193         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
9194         .linkonce directive after the first time.
9195
9196 Sat Aug 29 12:39:56 1998  Jeffrey A Law  (law@cygnus.com)
9197
9198         * m68k.md (beq0_di): Generate correct (and more efficient) code when
9199         the clobbered operand overlaps with an input.
9200         (bne0_di): Similarly.
9201
9202         * Makefile.in (INSTALL): Remove "--no-header" argument.
9203
9204         * NEWS: Various updates.
9205
9206 Fri Aug 28 19:00:44 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9207
9208         * config/sparc/sparc.c (arith_operand, const64_operand,
9209         const64_high_operand, arith_double_4096_operand): Mark mode as
9210         unused.
9211         (create_simple_focus_bits): Remove unused arg highest_bit_set, all
9212         callers changed.
9213         (sparc_emit_set_const64): Remove unused variable i.
9214         (sparc_splitdi_legitimate): Likewise for addr_part.
9215         (ultra_code_from_mask): Likewise for mask.
9216         (ultra_cmove_results_ready_p): Fixup entry modulo calc. and
9217         reverse return values so it matches usage and comments.
9218         (ultra_flush_pipeline): Likewise.
9219         (ultra_fpmode_conflict_exists): Likewise, remove unused variable
9220         this_type, and allow loads and stores of differing FP modes as
9221         they do not create a conflict.
9222         (ultra_find_type): Initialize fpmode to SFmode, fix
9223         parenthesization thinkos in large conditional.
9224         (ultrasparc_sched_init): Mark dump and sched_verbose as unused.
9225         Init free_slot_mask after ultra_cur_hist is reset, not before.
9226         (ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
9227         (ultrasparc_sched_reorder): Don't bzero current pipeline state,
9228         use ultra_flush_pipeline instead, then re-init group pointer.
9229         Fix statement with no effect.  If no progress made in, and no
9230         instructions scheduled at all, advance to new pipeline cycle else
9231         we get into an endless loop.
9232         (ultrasparc_adjust_cost): Remove previous arg.
9233         * config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
9234         
9235 Fri Aug 28 13:52:35 1998  Jim Wilson  <wilson@cygnus.com>
9236
9237         * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
9238         code.  Use reg_overlap_mentioned_p to detect when source and
9239         destination overlap.
9240         (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.
9241
9242 1998-08-28  Brendan Kehoe  <brendan@cygnus.com>
9243
9244         * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not
9245         COMPARISON_VAL, into invariant_p.
9246
9247 Fri Aug 28 15:13:25 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9248
9249         * regmove.c (regclass_compatible_p): New function.
9250         (regmove_optimize): Use it.
9251
9252         Use NREGS parameter insted of calling max_reg_num.
9253
9254         (fixup_match_1): Don't use code = MINUS when later tieing with
9255         a hard register is likely.
9256
9257 Fri Aug 28 14:54:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9258
9259         * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when
9260         COMPARISON_VAL was normalized.
9261
9262 Thu Aug 27 20:10:46 1998  Jeffrey A Law  (law@cygnus.com)
9263
9264         * loop.c (check_dbra_loop): The loop ending comparison value
9265         must be an invariant or we can not reverse the loop.
9266
9267         * loop.c (scan_loop): Count down from max_reg_num - 1 to
9268         FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
9269         of the loop.
9270         (load_mems_and_recount_loop_regs_set): Likewise.
9271
9272         * i386.c (print_operand): Remove obsolete 'c' docs.
9273
9274 Wed Aug 26 17:13:37 1998  Tom Tromey  <tromey@cygnus.com>
9275
9276         * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
9277         * frame.c (init_object_mutex): New function.
9278         (init_object_mutex_once): Likewise.
9279         (find_fde): Call it.
9280         (__register_frame_info): Likewise.
9281         (__register_frame_info_table): Likewise.
9282         (__deregister_frame_info): Likewise.
9283
9284 Thu Aug 27 15:14:18 1998  Jeffrey A Law  (law@cygnus.com)
9285
9286         * haifa-sched.c (sched_analyze_insn): Fix thinko in last change.
9287
9288 Thu Aug 27 16:34:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9289
9290         * loop.c (check_dbra_loop): Enable code for reversal
9291         of some loops without a known constant loop end.
9292
9293 Wed Aug 26 18:38:15 1998  Richard Henderson  <rth@cygnus.com>
9294
9295         * haifa-sched.c (last_clock_var): New.
9296         (schedule_block): Initialize it.
9297         (schedule_insn): Use it to fill insn modes with issue information.
9298
9299         * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
9300         Tag trapb and next insn with TImode.
9301         (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
9302         (alpha_reorg): Add conditional for alpha_handle_trap_shadows.
9303         Invoke alphaev5_align_insns as appropriate.
9304         * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
9305         (MD_SCHED_VARIABLE_ISSUE): New.
9306         * alpha.md (attr type): Add multi.
9307         (define_asm_attributes): New.
9308         (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
9309         (arg_home): Likewise.
9310         (fnop, unop, realign): New.
9311
9312 Wed Aug 26 15:55:41 1998  Jim Wilson  <wilson@cygnus.com>
9313
9314         * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef.
9315         * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
9316
9317         * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
9318         (rs6000-ibm-aix4.[12]*): Likewise.
9319         * configure: Regnerate.
9320
9321 Wed Aug 26 09:30:59 1998  Nick Clifton  <nickc@cygnus.com>
9322
9323         * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
9324         already contains the return address.
9325
9326 Wed Aug 26 12:57:09 1998  Jeffrey A Law  (law@cygnus.com)
9327
9328         * calls.c (expand_call): Use bitfield instructions to extract/deposit
9329         word sized hunks when loading unaligned args into registers.
9330
9331         * haifa-sched.c (sched_analyze_insn): Only create scheduling
9332         barriers for LOOP, EH and SETJMP notes on the loop_notes list.
9333
9334         * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.
9335
9336 Wed Aug 26 16:35:37 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9337
9338         * loop.c (check_dbra_loop): Add some code that would allow reversal
9339         of some loops without a known constant loop end if it were enabled.
9340
9341 Wed Aug 26 11:08:44 1998  Gavin Romig-Koch  <gavin@cygnus.com>
9342
9343         * mips.md (lshrsi3_internal2+2): Fix type-o.
9344
9345 Wed Aug 26 10:53:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9346
9347         * system.h: Include stdarg.h/varargs.h, make sure they are ordered
9348         correctly with regards to stdio.h.
9349         
9350         * calls.c: Remove stdarg.h/varargs.h.
9351         * cccp.c: Likewise.
9352         * cexp.y: Likewise.
9353         * combine.c: Likewise.
9354         * cpperror.c: Likewise.
9355         * cpplib.c: Likewise.
9356         * cpplib.h: Likewise.
9357         * doprint.c: Likewise.
9358         * emit-rtl.c: Likewise.
9359         * final.c: Likewise.
9360         * fix-header.c: Likewise.
9361         * gcc.c: Likewise.
9362         * genattr.c: Likewise.
9363         * genattrtab.c: Likewise.
9364         * gencodes.c: Likewise.
9365         * genconfig.c: Likewise.
9366         * genemit.c: Likewise.
9367         * genextract.c: Likewise.
9368         * genflags.c: Likewise.
9369         * genopinit.c: Likewise.
9370         * genoutput.c: Likewise.
9371         * genpeep.c: Likewise.
9372         * genrecog.c: Likewise.
9373         * mips-tfile.c: Likewise.
9374         * prefix.c: Likewise.
9375         * protoize.c: Likewise.
9376         * regmove.c: Likewise.
9377         * toplev.c: Likewise.
9378         * tree.c: Likewise.
9379
9380 Wed Aug 26 05:09:27 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
9381
9382         * config/sparc/sparc.c (sparc_override_options): If not
9383         TARGET_FPU, turn off TARGET_VIS.
9384         * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
9385         (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
9386         * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
9387         (movdi_insn_sp64): Add VIS fzero alternative.
9388         (clear_sf, clear_df): New VIS patterns.
9389         (movsf, movdf expanders): Allow fp_zero_operand flat out when
9390         TARGET_VIS.
9391         (one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
9392         
9393 Tue Aug 25 10:57:41 1998  Mark Mitchell  <mark@markmitchell.com>
9394
9395         * loop.c (n_times_set, n_times_used, may_not_optimize,
9396         reg_single_usage): Convert to varrays.  All uses changed.
9397         (insert_loop_mem): Return a value.
9398         (scan_loop): Tweak AVOID_CC_MODE_COPIES code.
9399         (load_mems_and_recount_loop_regs_set): Likewise.  Grow the arrays, if
9400         necessary.
9401
9402 Tue Aug 25 23:57:12 1998  Jeffrey A Law  (law@cygnus.com)
9403
9404         * From Alexandre:
9405         * configure.in: Do not set thread_file to "irix" since no such
9406         support exists yet.
9407
9408         * sparc.md (float abs/neg splits): Check reload_completed before
9409         calling alter_subreg.
9410
9411 Tue Aug 25 19:17:59 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9412
9413         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
9414         function.
9415         * config/sparc/sparc.h: Declare it.
9416         * config/sparc/sparc.md (float abs/neg splits): Use it.
9417         (all other splits): Handle SUBREGs properly where necessary.
9418         (unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
9419
9420 Tue Aug 25 19:48:46 1998  Jeffrey A Law  (law@cygnus.com)
9421
9422         * reorg.c (fill_simple_delay_slots): Do not abort if we encounter
9423         an insn on the unfilled_slots_list that has no delay slots.
9424         (fill_eager_delay_slots): Similarly.
9425
9426 Tue Aug 25 13:35:20 1998  Nick Clifton  <nickc@cygnus.com>
9427
9428         * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
9429         as an ordinary operand.
9430
9431 Tue Aug 25 12:54:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
9432
9433         * tree.c (valid_machine_attribute): Don't apply attributes to both
9434         decl and type.
9435
9436 Tue Aug 25 12:23:20 PDT 1998  Richard Henderson  <rth@cygnus.com>
9437
9438         * reload.c (operands_match_p): Handle rtvecs.
9439
9440         * i386.c (legitimate_pic_address_disp_p): New.
9441         (legitimate_address_p): Use it.
9442         (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
9443         Handle constant pool symbols just like statics.
9444         (emit_pic_move): Use Pmode not SImode for clarity.
9445         (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
9446         [UNSPEC]: New, handling what we killed above.
9447         [PLUS]: Detect and abort on invalid symbol arithmetic.
9448         * i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
9449
9450 Tue Aug 25 12:02:23 1998  Mark Mitchell  <mark@markmitchell.com>
9451
9452         * alias.c: Include output.h.
9453         (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
9454         different if we're in a varargs function.
9455         * Makefile.in (alias.o): Depend on output.h
9456         
9457 Tue Aug 25 19:20:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9458
9459         * sh.h (GIV_SORT_CRITERION): Delete.
9460
9461 Tue Aug 25 13:19:46 1998  Dave Brolley  <brolley@cygnus.com>
9462
9463         * regclass.c (regclass): Use xmalloc/free instead of alloca.
9464         * stupid.c (stupid_life_analysis): Ditto.
9465         * reload1.c (reload): Ditto.
9466
9467 Tue Aug 25 05:48:18 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
9468
9469         * config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
9470         arith_double_4096_operand, arith_double_add_operand): New
9471         predicates.
9472         * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
9473         * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
9474         them to transform add/sub 4096 into add/sub -4096.
9475
9476 Mon Aug 24 23:31:03 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9477
9478         * loop.c (scan_loop): Allocate some slop to handle pseudos
9479         generated by move_movables.
9480         (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
9481         here too.
9482
9483 Mon Aug 24 19:45:40 1998  Jim Wilson  <wilson@cygnus.com>
9484
9485         * tree.def (DECL_RESULT): Correct documentation.
9486
9487 Tue Aug 25 01:15:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9488
9489         * reload1.c (reload_reg_free_before_p): New argument EQUIV;  Changed
9490         all callers.  Abort for RELOAD_FOR_INSN.  RELOAD_FOR_OUTADDR_ADDR:
9491         conflicts will all RELOAD_FOR_OUTPUT reloads.
9492
9493         * reload1.c (reload_cse_regs_1): When deleting a no-op move that
9494         loads the function result, substitute with a USE.
9495
9496 Mon Aug 24 15:20:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
9497
9498         * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
9499         when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
9500         (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
9501         * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
9502         (print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
9503         * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
9504         operand. 
9505         (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
9506         'o' to 'm' for GPR variant constraints.
9507
9508 Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)
9509
9510         * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
9511
9512         * h8300.h (STRIP_NAME_ENCODING): Fix typo.
9513
9514         * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
9515         when the source and destination overlap.
9516
9517         * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
9518         clash with global type.
9519
9520 Mon Aug 24 00:53:53 1998  Jason Merrill  <jason@yorick.cygnus.com>
9521
9522         * fixinc.irix: Add curses.h handling from fixinc.wrap.
9523
9524         * c-common.c (combine_strings): Also set TREE_READONLY.
9525         Change warn_write_strings to flag_const_strings.
9526         * c-decl.c, c-tree.h: Likewise.
9527
9528 Sun Aug 23 18:39:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9529
9530         * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
9531         CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
9532         sequence, use SET/IOR instead so CSE can see it.
9533         * config/sparc/sparc.md (movhi_const64_special,
9534         movsi_const64_special): New patterns necessitated by that change.
9535         (movhi_high): Remove.
9536         (movhi_lo_sum): Change to match an IOR.
9537         (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
9538         (movdf_insn_v9only): New pattern for when V9 but not ARCH64.
9539         (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
9540         (movdf splits): Allow when not V9 or when not ARCH64 and integer
9541         registers are involved.
9542         (snesi_zero_extend split): Remove reload_completed test.
9543         (unnamed plus and minus zero_extend sidi splits): Add it.
9544
9545 Sun Aug 23 11:56:08 1998  Mark Mitchell  <mark@markmitchell.com>
9546
9547         * extend.texi: Remove description of extension to explicit
9548         instantiation that is now endorsed by standard C++.
9549
9550 Sun Aug 23 09:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9551
9552         * config/arc/arc.c (arc_initialize_pic): Remove.
9553         * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
9554         nothing on any platform and is invoked by no-one, it does not even
9555         appear in the documentation.
9556         * config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
9557         * config/sparc/sparc.c (initialize_pic): Likewise.
9558         (find_addr_reg): Remove this as well, no longer referenced after
9559         my rewrite.
9560
9561 Sun Aug 23 00:17:14 1998  Jeffrey A Law  (law@cygnus.com)
9562
9563         * recog.c (validate_replace_rtx_group): New function.
9564         * recog.h (validate_replace_rtx_group): Declare it.
9565         * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
9566         the entire group of substitutions.
9567
9568 Sat Aug 22 23:31:00 1998  Klaus-Georg Adams  (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)
9569
9570         * loop.c (load_mems): Fix initializers.
9571
9572 Fri Aug 21 23:07:46 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9573
9574         * config/sparc/sparc.md (TFmode splits): Handle destination
9575         registers being referenced in the address correctly.
9576
9577         * expmed.c (make_tree) [CONST_INT]: Sign extend even if
9578         TREE_UNSIGNED, when bitsize of type's mode is larger than
9579         HOST_BITS_PER_WIDE_INT.
9580
9581 Fri Aug 21 19:31:31 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
9582
9583         * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
9584         * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
9585         EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
9586         macros.
9587         * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
9588         EXIT_BLOCK_EXPR.
9589
9590 Thu Aug 20 19:43:44 1998  Jeffrey A Law  (law@cygnus.com)
9591
9592         * h8300.c (h8300_encode_label): Use '&' for tiny data items.
9593         * h8300.h (TINY_DATA_NAME_P): Likewise.
9594         (STRIP_NAME_ENCODING): Handle '&'.
9595
9596         * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
9597         register (it could be accessed via an outer SUBREG).
9598         (REG_OK_FOR_BASE_P): Likewwise.
9599         (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
9600
9601         * remove.c (optimize_reg_copy_3): Abort instead of silently generating
9602         bogus rtl.
9603
9604         * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.
9605
9606 Thu Aug 20 17:35:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9607
9608         * config/sparc/sparc.md (movtf_insn_sp32): All memory operands
9609         must be offsettable so the splits can be made.
9610
9611 Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>
9612
9613         * config/i386/winnt.c: Include system.h, not stdio.h to get
9614         sys/param.h pulled in before rtl.h in case the system defines MIN
9615         and MAX.
9616
9617 Thu Aug 20 13:44:20 1998  David Edelsohn  <edelsohn@mhpcc.edu>
9618
9619         * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
9620
9621 Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>
9622
9623         * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
9624         arrays of bits.
9625         * cpplib.c (cpp_define): Handle macros with parameters.
9626
9627 Wed Aug 19 21:33:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
9628
9629         * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
9630         (output_toc): Use single TOC slot or llong minimal-toc for DFmode
9631         and DImode 64-bit.  Use llong for minimal-toc SFmode and
9632         SYMBOL_REF / LABEL_REF 64-bit.
9633         (output_function_profiler): Use llong for profiler label and ld to
9634         load 64-bit label address.
9635
9636 Wed Aug 19 17:52:27 1998  Nick Clifton  (nickc@cygnus.com)
9637
9638         * config/arm/thumb.md (extendqisi2_insn): Cope with REG +
9639         OFFSET addressing.
9640
9641 Wed Aug 19 14:13:31 PDT 1998 Jeff Law  (law@cygnus.com)
9642
9643         * version.c: Bump for snapshot.
9644
9645 Wed Aug 19 13:10:30 PDT 1998 Jeff Law  (law@cygnus.com)
9646
9647         * version.c: Bump for snapshot.
9648
9649 Wed Aug 19 13:06:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
9650
9651         * collect2.c (extract_init_priority): Use atoi instead of strtoul.
9652
9653 Wed Aug 19 13:51:35 1998  Hans-Peter Nilsson  <hp@axis.se>
9654
9655         * tm.texi (Misc): Fix typo "teh".
9656
9657         * tm.texi (PIC): Fix typo "PPIC".
9658
9659         * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
9660         effect when -O2 and higher.
9661         * invoke.texi (Optimize Options): Likewise for -fcaller-saves.
9662
9663 1998-08-19  Michael Hayes  <michaelh@ongaonga.chch.cri.nz>
9664
9665         * regclass.c: Changed register set documentation to be consistent
9666         with GCC behaviour.
9667
9668         * final.c (final_start_function) Removed redundant test for
9669         call_fixed_regs.
9670
9671 Wed Aug 19 13:28:41 1998  Mark Mitchell  <mark@markmitchell.com>
9672
9673         * rtl.h (rtx_function): New type.
9674         (for_each_rtx): New function.
9675         * rtlanal.c (for_each_rtx): Define it.
9676         
9677         * recog.c (change_t): New type.
9678         (change_objects, change_old_codes, change_locs, change_olds):
9679         Replace with ...
9680         (changes): New variable.
9681         (validate_change): Dynamically allocate room for more changes, if
9682         necessary.  Uses changes array instead of change_objects, etc.
9683         (apply_change_group):  Use changes array instead of
9684         change_objects, etc.
9685         
9686         * loop.c (loop_mem_info): New type.
9687         (loop_mems): New variable.
9688         (loop_mems_idx): Likewise.
9689         (looop_mems_allocated): Likewise.
9690         (scan_loop): Remove nregs parameter.
9691         (next_insn_in_loop): New function.
9692         (load_mems_and_recount_loop_regs_set): Likewise.
9693         (load_mems): Likewise.
9694         (insert_loop_mem): Likewise.
9695         (replace_loop_mem): Likewise.
9696         (replace_label): Likewise.
9697         (INSN_IN_RANGE_P): New macro.
9698         (loop_optimize): Don't pass max_reg_num() to scan_loop.
9699         (scan_loop): Remove nregs parameter, compute it after any new
9700         registers are created by load_mems.  Use INSN_IN_RANGE_P and
9701         next_insn_in_loop rather than expanding them inline.  Call
9702         load_mems to load memory into pseudos, if appropriate.
9703         (prescan_loop): Figure out whether or not there are jumps from the
9704         loop to targets other than the label immediately following the
9705         loop.  Call insert_loop_mem to notice all the MEMs used in the
9706         loop, if it could be safe to pull MEMs into REGs for the duration
9707         of the loop.
9708         (strength_reduce): Use next_insn_in_loop.  Tweak comments.
9709
9710 Wed Aug 19 08:29:44 1998  Richard Earnshaw (rearnsha@arm.com)
9711
9712         * arm.c (arm_override_options): Remove lie about ignoring PIC flag.
9713
9714 Wed Aug 19 07:08:15 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9715
9716         * config/sparc/sparc.c (finalize_pic): Check for the correct
9717         nonlocal_goto_receiver UNSPEC number.
9718         * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
9719         making note of this dependency existing in sparc.c
9720         (negtf2_notv9 split): Give NEG SFmode.
9721         (negsf2): Fix insn output string.
9722         
9723 Tue Aug 18 12:40:27 1998  Richard Henderson  <rth@cygnus.com>
9724
9725         * c-common.c (decl_attributes): Issue an error if the argument
9726         to alias is not a string.
9727
9728 Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)
9729
9730         * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
9731         pending memory flush list.
9732
9733         * combine.c (can_combine_p): Allow combining insns with REG_RETVAL
9734         notes.
9735         (try_combine): Allow combining insns with REG_LIBCALL notes.
9736
9737         * expr.c (emit_block_move): Do not call memcpy as a libcall
9738         instead build up a CALL_EXPR and call it like any other
9739         function.
9740         (clear_storage): Similarly for memset.
9741
9742         * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
9743         on notes.
9744
9745         * Makefile.in (cplus-dem.o): Provide explicit rules for building
9746         cplus-dem.o
9747
9748         * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
9749         and REG_LIVE_LENGTH as successful substitutions are made.
9750
9751 Tue Aug 18 07:15:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9752
9753         * config/sparc/sparc.c (ultra_find_type): Add empty semicolon
9754         statement after end of loop label.
9755
9756 Tue Aug 18 07:13:27 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9757
9758         * config/sparc/sparc.c (ultra_types_avail): New variable.
9759         (ultra_build_types_avail): New function to record mask of insn
9760         types in ready list at this cycle.
9761         (ultrasparc_sched_reorder): Call it.
9762         (ultra_find_type): Use it to quicken the search.  Also simplif
9763         dependency check, don't use rtx_equal_p because we know exactly
9764         what we are looking for.
9765
9766 Tue Aug 18 03:20:53 1998  Richard Earnshaw  (rearnsha@arm.com)
9767
9768         * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
9769         for architecture v4.
9770
9771 Mon Aug 17 21:26:38 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9772
9773         * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
9774         gen_compare_reg.
9775         (movsf_const_intreg, movsf_const_high, movsf_const_lo,
9776         movdf_const_intreg and helper splits): New patterns to move float
9777         constants into integer registers.
9778         (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
9779         splits.
9780
9781 Mon Aug 17 11:46:19 1998  Jeffrey A Law  (law@cygnus.com)
9782
9783         * From Graham
9784         * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
9785         to itype.
9786         * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
9787
9788         * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
9789         a BASE_REGS register is needed as an intermediate when copying
9790         a symbolic value into any register class other than BASE_REGS.
9791
9792         * expr.c (move_by_pieces): No longer static.  Remove prototype.
9793         * rtl.h (move_by_pieces): Add extern prototype.
9794         * mips.c (expand_block_move): Handle aligned straight line copy by
9795         calling move_by_pieces.
9796
9797         * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
9798         and VAR_DECLs.
9799
9800 Mon Aug 17 10:28:52 1998  Mark Mitchell  <mark@markmitchell.com>
9801
9802         * stmt.c (expand_end_loop): Tidy.  Allow unconditional
9803         jumps out of the loop to be treated as part of the exit test.
9804
9805 Mon Aug 17 10:06:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9806                           Jeff Law <law@cygnus.com>
9807
9808         * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
9809         * cplus-dem.c: Delete.
9810
9811         * Makefile.in (fold-const.o): depend on $(RTL_H).
9812
9813         * fold-const.c: Include rtl.h to get the prototype for
9814         `set_identifier_local_value'.
9815
9816         * loop.c (express_from_1): Remove unused variable `tmp'.
9817         (combine_givs): cast the first argument of bzero to char *.
9818
9819         * toplev.c (display_help): Remove unused variable `looking_for_start'.
9820
9821         * c-decl.c (init_decl_processing): Remove unneeded &.
9822
9823         * alpha.h (alpha_initialize_trampoline): Provide prototype.
9824         
9825         * except.c (set_exception_lang_code, set_exception_version_code):
9826         Change parameter from `short' to `int' to avoid using a gcc
9827         extension.
9828
9829         * except.h (set_exception_lang_code, set_exception_version_code):
9830         Likewise for prototypes.
9831
9832         * flow.c (count_reg_references): Remove unused variables `regno'
9833         and `i'.
9834
9835         * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
9836
9837         * prefix.c (translate_name): Cast the result of `alloca'.
9838
9839         * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
9840
9841 Mon Aug 17 09:23:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9842
9843         * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
9844         Include "toplev.h".
9845         (valid_dbcc_comparison_p): Mark mode argument as unused.
9846         (symbolic_operand): Likewise.
9847         (legitimize_pic_address): Likewise.
9848         (const_uint32_operand): Likewise.
9849         (const_sint32_operand): Likewise.
9850         * sched.c [!INSN_SCHEDULING]: Define only dummy function
9851         schedule_insns and comment out rest of file.
9852
9853         * m68k.c (output_move_simode_const): Use subl to move a zero into an
9854         address register.
9855         (output_move_[hq]imode): Likewise.
9856
9857 Mon Aug 17 09:15:47 1998  Jeffrey A Law  (law@cygnus.com)
9858
9859         * toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
9860         * invoke.texi: Corresponding changes.
9861
9862 Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>
9863
9864         * regclass.c (allocate_reg_info): Respect MIN when clearing data.
9865
9866 Sun Aug 16 17:37:06 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9867
9868         * config/sparc/sparc.c (ultra_code_from_mask,
9869         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
9870         ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
9871         ultrasparc_sched_init, ultrasparc_variable_issue,
9872         ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
9873         functions to describe UltraSPARC pipeline exactly to Haifa.
9874         (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
9875         as there is nothing the scheduler can do about it.  Indicate that
9876         REG_DEP_OUTPUT's collide.  Fixup formatting.
9877         * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
9878         divide costs on Ultra for DImode.
9879         (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
9880         Define.
9881         * config/sparc/sparc.md (ieu_unnamed function unit): Rename to
9882         ieuN and add call_no_delay_slot to type list.
9883         (cti function unit): New unit for branches on UltraSPARC.
9884         (subx/addx insns): Set type to misc.
9885         (sidi zero/sign extension insns on arch64): Set type to shift.
9886         (sign_extendhidi2_insn): Set type to sload.
9887
9888 Sun Aug 16 13:52:00 1998  David Edelsohn  <edelsohn@mhpcc.edu>
9889
9890         * rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
9891         (output_epilog): Use if != 0 for offset.
9892         (rs6000_fatal_bad_address): Prepare for Intl.
9893         * rs6000.h (rs6000_fatal_bad_address): Declare.
9894         * rs6000.md (movsfcc, movdfcc): Use else if.
9895         (elf_high): Use {liu|lis}.
9896         (elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
9897         (movsi): Use rs6000_fatal_bad_address.
9898         
9899 Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>
9900
9901         * reload.c (find_equiv_reg): Reject equivalences separated
9902         by a volatile instruction.
9903
9904 Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
9905
9906         * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
9907
9908 Sat Aug 15 20:51:35 1998  Richard Henderson  <rth@cygnus.com>
9909
9910         * alpha.md (movsicc): Fix mode mismatch.
9911
9912 Sat Aug 15 20:22:33 1998  H.J. Lu  (hjl@gnu.org)
9913
9914         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
9915         return type.
9916         * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
9917
9918 Sat Aug 15 08:39:49 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9919
9920         * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
9921         write-only modifier from operand 1 constraint.
9922
9923 Sat Aug 15 06:28:19 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9924
9925         * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
9926         emitting a XOR of -1 at the end, emit a NOT instead for combine's
9927         sake.
9928         (sparc_emit_set_const64): Likewise, also when computing trailing
9929         bits do not negate low_bits and make fast_int an int.
9930
9931 Fri Aug 14 21:07:03 1998  Jeffrey A Law  (law@cygnus.com)
9932
9933         * loop.c (add_label_notes): Do not ignore references to labels
9934         before dispatch tables.  Mirrors Apr 8 change to mark_jump_label.
9935         * gcse.c (add_label_notes): Similarly.
9936
9937         * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
9938
9939         * m68k.md (adddi_dilshr32): One of the operands must be a register.
9940         (adddi_dishl32): Similarly.
9941
9942 Fri Aug 14 14:12:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
9943
9944         * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
9945         * alias.c (memrefs_conflict_p): Add braces to shut up warnings.
9946         * cse.c (cse_basic_block): Add parens to shut up warnings.
9947
9948 Fri Aug 14 12:58:21 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9949
9950         * config/sparc/sparc.c (sparc_emit_set_const64_quick2,
9951         sparc_emit_set_const64_longway, const64_is_2insns,
9952         create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
9953         in 64-bit constant formation.
9954         * config/sparc/sparc.md (snesi_zero_extend split): Generate
9955         rtl for addx not subx.
9956         (define_insn movdi_const64_special): Make available even when
9957         HOST_BITS_PER_WIDE_INT is not 64.
9958         (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
9959         (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
9960         (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
9961         instances of operand 1 inside a QI subreg.
9962         (xordi3_sp64_dbl): Remove '%' constraint for op1.
9963         (one_cmpldi2_sp64): Fix output string.
9964         (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
9965         alternative case.
9966         (unnamed arch64 ashift DI): Truncate shift count if greater than
9967         63, not 31.
9968
9969 Fri Aug 14 21:52:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9970
9971         * expr.c (store_expr): Don't optimize away load-store pair
9972         when either source or destination have a side effect.
9973
9974 Fri Aug 14 16:50:10 1998  John Carr  <jfc@mit.edu>
9975
9976         * genrecog.c (add_to_sequence): Fatal error if the modes of the
9977         operands of SET are incompatible.
9978
9979         * alpha.md: Fix max and min patterns so modes of SET operands match.
9980
9981 Fri Aug 14 12:22:55 1998  Ian Lance Taylor  <ian@cygnus.com>
9982
9983         * configure.in: Avoid [[ by using test and changequote.
9984         * configure: Rebuild.
9985
9986 Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9987
9988         * rtl.def (CONSTANT_P_RTX): Fix typo in string name.
9989
9990         * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
9991         seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
9992         split, snedi_zero_trunc and split, seqsi_zero_extend and split,
9993         seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
9994         movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
9995         split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
9996         Fix mismatching modes in SET operands.
9997         (conditional move patterns): Fix formatting.
9998         (unnamed subx arch64 pattern): Remove duplicate insn.
9999         
10000 Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10001
10002         * config/sparc/sparc.c (const64_operand, const64_high_operand):
10003         Get it right when HOST_BITS_PER_WIDE_INT is not 64.
10004         (input_operand): Fixup test for what we accept for constant
10005         integers.
10006         (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
10007         set VOIDmode.
10008         (safe_constDI): Remove.
10009         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
10010         gen_safe_XOR64): New functions.
10011         (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
10012         sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
10013         them.
10014         * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
10015         available when HOST_BITS_PER_WIDE_INT is not 64.
10016         (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
10017         move before movdi_insn_sp64 pattern.
10018         (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
10019         (define_insn sethi_di_medlow, seth44, setm44, sethh): Use
10020         symbolic_operand as predicate for second operand.
10021         (DImode minus split on arch32, negsi2 expander, one_cmplsi2
10022         expander): Give set VOIDmode.
10023         
10024 Fri Aug 14 01:45:06 1998  Mumit Khan  <khan@xraylith.wisc.edu>
10025
10026         * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
10027
10028 Fri Aug 14 01:40:21 1998  Geoffrey Keating  <geoffk@ozemail.com.au>
10029
10030         * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
10031
10032 Fri Aug 14 01:23:23 1998  Richard Earnshaw (rearnsha@arm.com)
10033
10034         * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating 
10035         point.
10036         (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
10037
10038 Fri Aug 14 01:19:08 1998  Robert Lipe  <robertl@dgii.com>
10039
10040         * install.texi: Various SCO OpenServer tweaks.
10041
10042 Thu Aug 13 20:14:40 1998  Jim Wilson  <wilson@cygnus.com>
10043
10044         * reload1.c (eliminate_regs_in_insn): Handle another case when
10045         eliminating the frame pointer to the hard frame pointer.  Add
10046         missing ep->to_rtx check to one existing case.
10047
10048         * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.
10049
10050 Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
10051
10052         * tree.h: De-conditionalize init_priority code.
10053
10054         * mips.h (NM_FLAGS): Change from -Bp to -Bn.
10055         * collect2.c (NM_FLAGS): Change from -p to -n.
10056
10057         * configure.in: Turn on collect2 for mipstx39-elf.
10058         Handle use_collect2=no properly.
10059
10060         * c-common.c: De-conditionalize init_priority code.
10061         * collect2.c (extract_init_priority, sort_ids): New fns.
10062         (main): Call sort_ids.
10063         Move sequence_number to file scope.
10064
10065         * configure.in: Handle --enable-init-priority.
10066         * c-common.c (attrs): Add A_INIT_PRIORITY.
10067         (init_attributes, decl_attributes): Likewise.
10068         * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
10069         * tree.c (get_file_function_name_long): Split out...
10070         (get_file_function_name): ...from here.
10071
10072 Thu Aug 13 16:09:53 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
10073
10074         * expr.c (safe_from_p): Change code to ERROR_MARK only when not
10075         accessing nodes.
10076
10077 Thu Aug 13 15:24:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
10078
10079         * toplev.c (display_help): Add braces to shut up warnings.
10080         * tree.c (simple_cst_equal): Likewise.
10081
10082         * fold-const.c (non_lvalue): Don't deal with null pointer 
10083         constants here.
10084         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
10085
10086         * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
10087         of any size to a pointer.
10088
10089 Thu Aug 13 12:53:13 1998  Jim Wilson  <wilson@cygnus.com>
10090
10091         * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
10092
10093 Wed Aug 12 17:25:18 1998  Jeffrey A Law  (law@cygnus.com)
10094
10095         * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
10096         which will be saved.
10097         * mn10300.md (prologue insn): Only save registers which need saving.
10098         (epilogue insn): Similarly.
10099
10100         * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
10101         optimizations.
10102
10103 Wed Aug 12 12:39:16 1998  Gavin Romig-Koch  <gavin@cygnus.com>
10104
10105         * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
10106         VAR_DECL's in gp addressable sections.
10107
10108 Tue Aug 11 23:02:31 1998  John Carr  <jfc@mit.edu>
10109
10110         * sparc.c: Change return <exp> to <exp>; return; in functions
10111         returning void.
10112         * sparc.md: Add empty semicolon statement after final label in
10113         move expanders.
10114
10115 Tue Aug 11 22:42:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10116
10117         * config/sparc/sparc.md (define_insn addx_extend): Rename to
10118         addx_extend_sp64, only allow when TARGET_ARCH64.
10119         (define_insn addx_extend_sp32 and split): Version that works when
10120         not TARGET_ARCH64.
10121         (define_insn subx_extend): Likewise.
10122         (define_split adddi3 and subdi3 with zero extension): Fixup and
10123         correct bugs when not TARGET_ARCH64.
10124
10125 Tue Aug 11 16:04:34 1998  John Carr  <jfc@mit.edu>
10126
10127         * except.c (set_exception_lang_code, set_exception_version_code):
10128         Use prototype-style definition if __STDC__, to match declaration
10129         in except.h.
10130
10131         * genemit.c: Change FAIL and DONE macros not to use loops.
10132
10133 Tue Aug 11 12:27:03 1998  Jim Wilson  <wilson@cygnus.com>
10134
10135         * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
10136         ASM_OUTPUT_DWARF2_ADDR_CONST if defined.
10137
10138         * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.
10139
10140 Tue Aug 11 18:12:53 1998  Dave Love  <d.love@dl.ac.uk>
10141
10142         * README.g77: Update from Craig.
10143
10144 Tue Aug 11 04:46:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10145
10146         * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
10147         type HOST_WIDE_INT.
10148         (safe_constDI sparc_emit_set_const64_quick1,
10149         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
10150         analyze_64bit_constant, const64_is_2insns,
10151         create_simple_focus_bits): Fix some bugs when compiled on real
10152         64-bit hosts.
10153         (function_arg_record_value_3, function_arg_record_value_2,
10154         function_arg_record_value): Add fully prototyped forward decls.
10155         * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
10156         to cmpsi_insn and use on both 64 and 32 bit targets.
10157         (define_insn cmpsi_insn_sp64): Remove.
10158         (define_expand zero_extendsidi2): Allow for 32-bit target too.
10159         (define_insn zero_extendsidi2_insn): Rename to
10160         zero_extendsidi2_insn_sp64.
10161         (define_insn zero_extendsidi2_insn_sp32): New pattern and
10162         assosciated forced split for it.
10163
10164         * config/sparc/sparc.c (const64_operand, const64_high_operand):
10165         New predicates.
10166         * config/sparc/sparc.h: Declare them.
10167         (PREDICATE_CODES): Add them.
10168         * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
10169         movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.
10170
10171 Mon Aug 10 22:57:24 1998  John Carr  <jfc@mit.edu>
10172
10173         * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
10174         in v9 case as the latter makes the Solaris assembler crash.
10175
10176 Mon Aug 10 22:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10177
10178         * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
10179         for TFmode when !v9.  We require offsettable memory addresses.
10180         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
10181         DFmode register number conversions.
10182         * config/sparc/sparc.md (define_split DFmode moves): If register
10183         is a SUBREG do alter_subreg on it before using.
10184         (define_expand movtf): Fixup comment about alignment on v9.
10185         (define_split TFmode moves): Don't use gen_{high,low}part, create
10186         explicit SUBREGs instead.
10187
10188 Mon Aug 10 19:02:55 1998  John Carr  <jfc@mit.edu>
10189
10190         * Makefile.in (mbchar.o): Depend on mbchar.c.
10191
10192 Mon Aug 10 04:28:13 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10193                           Richard Henderson  <rth@cygnus.com>
10194         
10195         Rewrite Sparc backend for better code generation and
10196         improved sparc64 support.
10197         * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
10198         zero.
10199         * config/sparc/sysv4.h: Likewise.
10200         * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
10201         move_operand, v8plus_regcmp_op, emit_move_sequence,
10202         singlemove_string, doublemove_string, mem_aligned_8,
10203         output_move_double, output_move_quad, output_fp_move_double,
10204         move_quad_direction, output_fp_move_quad, output_scc_insn):
10205         Remove.
10206         (small_int_or_double): New predicate.
10207         (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
10208         (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
10209         old pic_{sethi,lo_sum}_si patterns.
10210         (mem_min_alignment): New generic function to replace
10211         mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
10212         available and can test for arbitrary alignments.  All callers
10213         changed.
10214         (save_regs, restore_regs, build_big_number,
10215         output_function_prologue, output_cbranch, output_return,
10216         sparc_flat_save_restore, sparc_flat_output_function_prologue,
10217         sparc_flat_output_function_epilogue): Prettify
10218         insn output.
10219         (output_function_epilogue): Likewise and add code to output
10220         deferred case vectors.
10221         (output_v9branch): Likewise, add new arg INSN and use it to tack
10222         on branch prediction settings.  All callers changed.
10223         (print_operand): Likewise and output %l44 for LO_SUMs when
10224         TARGET_CM_MEDMID.
10225         (sparc_splitdi_legitimate): New function to make sure DImode
10226         splits can be run properly when !arch64.
10227         (sparc_initialize_trampoline, sparc64_initialize_trampoline):
10228         Reformat example code in comments.
10229         (set_extends): Remove UNSPEC/v8plus_clear_high case.
10230         (sparc_addr_diff_list, sparc_addr_list): New statics to keep track
10231         of deferred case vectors we need to output.
10232         (sparc_defer_case_vector): Record a case vector.
10233         (sparc_output_addr_vec, sparc_output_addr_diff_vec,
10234         sparc_output_deferred_case_vectors): New functions to output them.
10235         (sparc_emit_set_const32): New function to form 32-bit constants in
10236         registers when that requires more than one instruction.
10237         (safe_constDI, sparc_emit_set_const64_quick1,
10238         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
10239         analyze_64bit_constant, const64_is_2insns,
10240         create_simple_focus_bits, sparc_emit_set_const64): New functions
10241         which do the same for 64-bit constants when arch64.
10242         (sparc_emit_set_symbolic_const64): New function to emit address
10243         loading for all code models on v9.
10244         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
10245         %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
10246         (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
10247         (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
10248         inaccuracies in comments, add symbolic and text_segment operands
10249         when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively.  Use
10250         GENERAL_REGS in these cases as a temp REG is needed to load these
10251         addresses into a register properly.
10252         (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
10253         is no longer used.
10254         (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
10255         quads are guarenteed to have 16-byte alignment.
10256         (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
10257         copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
10258         (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
10259         deferred case vector implementation.
10260         (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
10261         (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
10262         Generate "internal label - label" instead of "label - 1b".
10263         (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
10264         (PREDICATE_CODES): Remove sparc_operand, move_operand,
10265         v8plus_regcmp_op.  Add small_int_or_double, input_operand, and
10266         zero_operand.
10267         (doublemove_string, output_block_move, output_fp_move_double,
10268         output_fp_move_quad, output_move_double, output_move_quad,
10269         output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
10270         sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
10271         (sparc_emit_set_const32, sparc_emit_set_const64,
10272         sparc_emit_set_symbolic_const64, input_operand, zero_operand,
10273         mem_min_alignment, small_int_or_double): Add externs.
10274         * config/sparc/sparc.md: Document the many uses of UNSPEC and
10275         UNSPEC_VOLATILE in this backend.
10276         (define_function_unit ieu): Rename to ieu_unnamed.  Add move and
10277         unary to types which execute in it.
10278         (define_function_unit ieu_shift): Rename to ieu0.
10279         (define_function_unit ieu1): New, executes compare, call, and
10280         uncond_branch type insns.
10281         (define_function_units for type fdivs, fdivd, fsqrt): These
10282         execute in the fpu multiply unit not the adder on UltraSparc.
10283         (define_expand cmpdi): Disallow TARGET_V8PLUS.
10284         (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
10285         (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
10286         allows the arith_double_operand predicate and rHI constraint when
10287         TARGET_ARCH64.
10288         (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
10289         cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
10290         neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
10291         sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
10292         sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
10293         movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
10294         movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
10295         movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
10296         movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
10297         cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
10298         sign_extendqihi2_insn, sign_extendqisi2_insn,
10299         sign_extendqidi2_insn, sign_extendhidi2_insn,
10300         extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
10301         trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
10302         floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
10303         fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
10304         adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
10305         subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
10306         muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
10307         const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
10308         smulsi3_highpart_v8plus, unnamed subreg mult,
10309         const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
10310         const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
10311         const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
10312         const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
10313         const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
10314         udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
10315         andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
10316         or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
10317         xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
10318         cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
10319         cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
10320         cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
10321         cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
10322         cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
10323         cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
10324         addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
10325         muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
10326         negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
10327         ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
10328         cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
10329         ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
10330         lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
10331         call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
10332         call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
10333         call_address_untyped_struct_value_sp32,
10334         call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
10335         call_value_symbolic_sp32, call_value_address_sp64,
10336         call_value_symbolic_sp64, branch_sp32, branch_sp64,
10337         flush_register_windows, goto_handler_and_restore,
10338         goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
10339         flush, all ldd/std peepholes, return_qi, return_hi, return_si,
10340         return_addsi, return_di, return_adddi, return_sf, all call+jump
10341         peepholes, trap, unnamed trap insns): Prettify output strings.
10342         (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
10343         or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
10344         Likewise and force + implement splits for integer cases.
10345         (define_insn return_sf_no_fpu): Likewise and allow to match when
10346         no-fpu because of our subreg SFmode splits.
10347         (define_insn zero_extendqihi2, zero_extendqisi2_insn,
10348         zero_extendqidi2_insn, zero_extendhidi2_insn,
10349         zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
10350         input_operand for second operand.
10351         (cmp_minus_cc, cmp_minus_cc_set): Likewise and use
10352         reg_or_0_operand for operand 2 so new splits can use it.
10353         (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
10354         cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
10355         too.
10356         (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
10357         CONST_DOUBLEs for operand 2.
10358         (define_insn move_label_di): Likewise and label distance
10359         optimization because it no longer works with new deferred case
10360         vector scheme.  To be revisited.
10361         (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
10362         and allow reg_or_0_operand and J constraint for second operand.
10363         (define_insn jump): Set branch predict taken on V9.
10364         (define_insn tablejump): Emit LABEL_REF + PLUS memory address for
10365         new deferred case vector scheme.
10366         (define_insn pic_tablejump_32, pic_tablejump_64): Remove.
10367         (define_insn negdi2_sp32): Force + implement splits.
10368         (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
10369         one_cmplsi2_not_liveg0 respectively, and create expander of original
10370         names which emit special rtl for TARGET_LIVE_G0.
10371         (define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
10372         (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
10373         gen_compare_reg, FAIL instead.
10374         (define_insn sgtu, sleu): Likewise and check gen_s*() return
10375         values when trying to reverse condition codes, if they FAIL then
10376         do likewise.
10377         (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
10378         snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
10379         neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
10380         seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
10381         x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
10382         set output string to # to indicate they are mandatory splits.
10383         (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
10384         pic_sethi_di, move_pic_label_si): Remove.
10385         (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
10386         movsi_high_pic, movsi_pic_label_reg): New patterns to take their
10387         place.
10388         (define_expand movsi_pic_label_ref, define_insn
10389         movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
10390         expander and insns to handle PIC label references and deferred
10391         case vectors.
10392         (define_insn get_pc_via_rdpc): Comment out as it is no longer
10393         used.
10394         (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
10395         Rewrite to not use emit_move_sequence, make use of new constant
10396         formation code, and new splits for all multi-insn cases.
10397         (define_insn movqi_insn): Remove sethi case, it can never happen.
10398         Use reg_or_zero_operand instead of const0_rtx explicit test,
10399         use input_operand instead of move_operand for source, and use
10400         general_operand now for dest.
10401         (define_insn movhi_insn): Similar but leave sethi case.
10402         (define_insn lo_sum_qi, store_qi, store_hi): Remove.
10403         (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
10404         movhi_lo_sum respectively, prettify output string.
10405         (define_insn movsi_zero_liveg0): New pattern to put zero into a
10406         register when needed on TARGET_LIVE_G0.
10407         (define_insn movsi_insn): Use general_operand and input_operand
10408         for dest and src respectively.  Simplify applicability test.
10409         Prettify output strings, and add clr alternative for J
10410         constraint.
10411         (define_insn movdi_sp32_v9, movdi_sp32, define_splits for
10412         deprecated std and reg-reg DI moves): Remove and...
10413         (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
10414         implementation which uses forced splits for all non-single insn
10415         cases.
10416         (define_split DI move cases on !arch64): New splits to handle all
10417         situations of 64-bit double register DImode on 32bit, and
10418         unaligned registers and memory addresses for all subtargets.
10419         (define_insn movsf_const_insn, movdf_const_insn, store_sf):
10420         Remove.
10421         (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
10422         input_operand for dest and src respectively, prettify output
10423         strings.
10424         (define_insn movdf_insn, movdf_no_e_insn, store_df,
10425         movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
10426         and...
10427         (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
10428         movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
10429         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
10430         movtf_no_e_insn_sp64) Replace with new
10431         implementation which uses forced splits for all non-single insn
10432         cases.
10433         (define_split DF move cases): New splits in similar vein to DI
10434         move counterparts.
10435         (define_insn sethi_di_medlow, sethi_di_medium_pic,
10436         sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
10437         movdi_sp64_insn): Remove old v9 code model and constant loading
10438         support insns and..
10439         (define_insn pic_lo_sum_di, pic_sethi_di,
10440         sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
10441         seth44, setm44, setl44, sethh, setlm, sethm, setlo,
10442         embmedany_sethi, embmedany_losum, embmedany_brsum,
10443         embmedany_textuhi, embmedany_texthi, embmedany_textulo,
10444         embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
10445         movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
10446         scheme, using unspecs, secondary reloads, and one to one sparc
10447         insn to rtl insn mapping for better scheduling and code gen.
10448         (define_expand reload_indi, reload_outdi): Reload helpers for
10449         MEDANY and EMBMEDANY symbol address loading cases which require a
10450         temporary register.
10451         (define_expand movsicc): Remove v8plus_regcmp cases.
10452         (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
10453         cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
10454         cmp_diqi_trunc_set): New patterns used by some of the new scc
10455         splits on arch64.
10456         (define_insn xordi3_sp64_dbl): New pattern used for constant
10457         formation when crossing from 32-bit targets.
10458         (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
10459         split): Remove.
10460         (define_insn addx, subx): Make visible and prettify.
10461         (define_insn adddi3_insn_sp32): Likewise and force split.
10462         (define_insn addx_extend, subx_extend, unnamed): New patterns for
10463         64bit scc split usage.
10464         (define_insn unnamed plusDI zero_extend, unnamed minusDI
10465         zero_extend, subdi3): Force and implement splits.
10466         
10467         * final.c (final_scan_insn): Don't output labels if target
10468         specifies ASM_OUTPUT_ADDR_{DIFF}_VEC.  Do these macro operations
10469         instead.
10470         
10471         * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
10472         don't forget to walk inside SEQUENCESs too as these are what the
10473         delay slot scheduler will create.
10474         
10475 Mon Aug 10 01:21:01 1998  Richard Henderson  <rth@cygnus.com>
10476
10477         * alpha.md (extxl+1,+2): New patterns to work around
10478         combine lossage.
10479
10480 Sat Aug  8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org)
10481
10482         * rs6000.c (rs6000_allocate_stack_space) Fix typo which
10483         caused bad assembly code to be generated.
10484
10485 Sat Aug  8 18:53:28 1998  Jeffrey A Law  (law@cygnus.com)
10486
10487         * netbsd.h: Fix typo.
10488
10489 Mon Aug  3 00:06:42 1998  Robert Lipe  <robertl@dgii.com> 
10490
10491         * config.sub: Fix typo.
10492
10493 Sun Aug  2 22:39:08 1998  Hans-Peter Nilsson  <hp@axis.se>
10494
10495         * invoke.texi (Environment Variables): Typo: Change "ascpects"
10496         into "aspects".
10497         (Running Protoize): Typo: Change "ther" into "other".
10498
10499 Sun Aug  2 00:42:50 1998  Jeffrey A Law  (law@cygnus.com)
10500
10501         * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
10502         * m68k/netbsd.h: Likewise.
10503         * ns32k/netbsd.h: Likewise.
10504         * sparc/netbsd.h: Likewise.
10505
10506 Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>
10507
10508         * ginclude/va-alpha.h (va_list): Use a typedef, not a define.
10509         * ginclude/va-clipper.h (va_list): Likewise.
10510
10511 Fri Jul 31 20:22:02 1998  Michael Meissner  <meissner@cygnus.com>
10512
10513         * rs6000.c (rs6000_override_options): If big endian and -Os, use
10514         load/store multiple instructions unless user overrides.
10515
10516 Fri Jul 31 17:08:59 1998  Jeffrey A Law  (law@cygnus.com)
10517
10518         * ns32k/netbsd.h: Fix typo.
10519
10520 Fri Jul 31 10:23:55 1998  Doug Evans  <devans@canuck.cygnus.com>
10521
10522         * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
10523         labels with .debugsym if no parallel insns.
10524
10525 Thu Jul 30 19:15:53 1998  Richard Henderson  <rth@cygnus.com>
10526
10527         * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
10528         (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
10529
10530 Thu Jul 30 19:50:15 1998  David Edelsohn  <edelsohn@mhpcc.edu>
10531
10532         * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
10533         (AR_FOR_TARGET): Define.
10534
10535 Thu Jul 30 12:29:12 1998  Mark Mitchell  <mark@markmitchell.com>
10536
10537         * dyn-string.h: New file.
10538         * dyn-string.c: Likewise.
10539         * Makefile.in (OBJS): Add dyn-string.o.
10540         (dwarf2out.o): Add dyn-string.h dependency.
10541         (dyn-string.o): List dependencies.
10542         * dwarf2out.c: Include dyn-string.h.
10543         (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
10544         (addr_const_to_string): Take a dyn_string_t, not a char* as a
10545         prototype.  Use dyn_string_append rather than strcat, throughout.
10546         (addr_to_string): Use dyn_string_t.
10547
10548 Thu Jul 30 13:08:07 1998  Ken Raeburn  <raeburn@cygnus.com>
10549
10550         Function entry/exit profiling instrumentation:
10551         * expr.h (profile_function_entry_libfunc,
10552         profile_function_exit_libfunc): Declare new variables.
10553         * optabs.c: Define them here.
10554         (init_optabs): Initialize them.
10555         * tree.h (struct tree_decl): New flag
10556         no_instrument_function_entry_exit.
10557         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
10558         * c-decl.c (duplicate_decls): Merge it.
10559         * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
10560         (init_attributes): Use it for "no_instrument_function".
10561         (decl_attributes): Handle it, for functions that have not yet been
10562         compiled.  Set decl flag.
10563         * flags.h (flag_instrument_function_entry_exit): Declare new
10564         variable.
10565         * toplev.c (flag_instrument_function_entry_exit): Define it here.
10566         (f_options): New option "instrument-functions".
10567         * function.h (struct function): New field instrument_entry_exit.
10568         * function.c (current_function_instrument_entry_exit): New
10569         variable.
10570         (push_function_context_to, pop_function_context_from): Save and
10571         restore.
10572         (expand_function_start): Set current_ variable, maybe emit return
10573         label and entry profile call.
10574         (expand_function_end): Maybe emit exit profile call.
10575
10576 Thu Jul 30 00:58:34 1998  Jeffrey A Law  (law@cygnus.com)
10577
10578         * i386.md (movqi): When optimizing a load of (const_int 1) into a
10579         NON_QI_REG_P, pretend the register is SImode.
10580
10581 Wed Jul 29 23:49:23 1998  Todd Vierling <tv@netbsd.org>
10582
10583         * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
10584         Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
10585         manufacturer id for ns32k.
10586         * configure: Regenerated.
10587         * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
10588         * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
10589         * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
10590         * config/m68k/netbsd.h: Same.
10591         * config/ns32k/netbsd.h: Same.
10592         * config/sparc/netbsd.h: Same.
10593
10594 Wed Jul 29 22:39:21 1998  Jeffrey A Law  (law@cygnus.com)
10595
10596         * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
10597         or UNROLL_COMPLETELY loop that starts with a jump to its
10598         exit code.
10599
10600 Wed Jul 29 22:18:14 1998  David Edelsohn  <edelsohn@mhpcc.edu>
10601
10602         * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
10603         * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
10604         (print_operand, case 'B'): Don't fall through.
10605         (print_operand, case 'S'): Correct mask begin/end computation.
10606         Use HOST_BITS_PER_WIDE_INT.
10607         * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
10608         (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
10609         * rs6000/aix41.h (CPP_PREDEFINES): Same.
10610         * rs6000/aix43.h (CPP_PREDEFINES): Same.
10611
10612 Wed Jul 29 11:47:10 1998  Nick Clifton  <nickc@cygnus.com>
10613
10614         * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
10615         constraint from second alternative.
10616
10617 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
10618
10619         * configure.in: Fix --without/--disable cases for local-prefix, 
10620         gxx-include-dir and checking.
10621
10622 Tue Jul 28 22:01:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10623
10624         * configure.in (enable_haifa): Set by default for sparc64 too.
10625         configure: Rebuilt.
10626
10627 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
10628
10629         * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
10630         * i386/winnt.c (associated_type): New fn.
10631         (i386_pe_valid_type_attribute_p): New fn.
10632         (i386_pe_check_vtable_importexport): Remove.
10633         (i386_pe_dllexport_p): Use associated_type.
10634         (i386_pe_dllimport_p): Likewise.
10635
10636         From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
10637         * i386.c (i386_valid_type_attribute_p): Also accept
10638         attributes for METHOD_TYPEs.
10639
10640 Tue Jul 28 23:17:39 1998  Peter Gerwinski <peter@gerwinski.de>
10641
10642         * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
10643
10644 Tue Jul 28 22:31:12 1998  Craig Burley  <burley@gnu.org>
10645
10646         * gcc.c: Fix commentary describing %g, %u, %U, and %O.
10647
10648         * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
10649         them from generating a new base name for each occurence of
10650         a specific suffix.
10651
10652 1998-07-28  Vladimir N. Makarov  <vmakarov@cygnus.com>
10653
10654         * cse.c (cse_insn): Enable subsitution inside libcall only for REG,
10655         SUBREG, MEM.
10656         * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. 
10657
10658
10659
10660         * cplus-dem.c (type_kind_t): New type.
10661         (demangle_template_value_parm): Add type_kind_t parameter.  Rely
10662         on this paramter, rather than demangling the type again.
10663         (demangle_integral_value): Pass tk_integral.
10664         (demangle_template_: Pass the value returned from do_type.
10665         (do_type): Return a type_kind_t.  Pass tk_integral to
10666         demangle_template_value_parm for array bounds.
10667         (demangle_fund_type): Likewise.
10668         
10669 Mon Jul 27 00:54:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
10670
10671         * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
10672         identical.
10673
10674 Mon Jul 27 22:18:36 1998  Jeffrey A Law  (law@cygnus.com)
10675
10676         * pa.c (move_operand): Accept CONSTANT_P_RTX.
10677
10678 Mon Jul 27 17:18:52 1998  Dave Brolley  <brolley@cygnus.com>
10679
10680         * stor-layout.c (layout_type): Handle arrays of bits, for Chill.
10681
10682         * expr.c (get_inner_reference): Handle zero-based, unsigned, array
10683         index conversion.
10684
10685 Mon Jul 27 14:51:33 1998  Jeffrey A Law  (law@cygnus.com)
10686
10687         * mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
10688         (DEBUGGER_ARG_OFFSET): Likewise.
10689
10690         * mn10300.md (movsf): Remove last change.  Not needed.
10691
10692 Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
10693
10694         * c-lex.c (yylex): Fix boundary conditions in character literal and
10695         string literal loops.
10696
10697 Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>
10698
10699         * longlong.h (count_leading_zeros): Sparclite scan instruction was
10700         being invoked incorrectly.
10701
10702         * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
10703         * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): 
10704         Add -pg support. 
10705         * i386/win32.h: New file.  Hybrid mingw32.h/cygwin32.h configuration.
10706         * configure.in: Added i[34567]86-*-win32
10707         * config.sub: Ditto.
10708         * configure: Rebuilt.
10709         
10710 Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)
10711
10712         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
10713         the frame pointer and compiling PIC code and reload has not completed.
10714
10715         * i386.c (output_to_reg): Add code to emulate non-popping DImode
10716         case.
10717
10718 Sun Jul 26 01:01:32 1998  Jeffrey A Law  (law@cygnus.com)
10719
10720         * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
10721
10722 Sat Jul 25 23:29:23 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10723
10724         * Makefile.in (install-info): Only try to update the info
10725         directory file if it exists in the first place.
10726
10727 Fri Jul 24 18:58:37 1998  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
10728
10729         * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
10730
10731 Fri Jul 24 14:20:26 1998  Jeffrey A Law  (law@cygnus.com)
10732
10733         * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
10734         CONST_DOUBLE source.
10735
10736 Fri Jul 24 11:17:04 1998  Nick Clifton  <nickc@cygnus.com>
10737
10738         * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
10739         strings as the insertion of USER_LABEL_PREFIX.
10740         * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
10741         valid code.
10742         * config/arm/thumb.md: Use %_ as a prefix to gcc library function
10743         calls. 
10744
10745 Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>
10746
10747         * dbxout.c (dbxout_range_type): Only call dbxout_type_index for
10748         already defined type.
10749
10750 Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)
10751
10752         * expr.c (check_max_integer_computation_mode): Allow conversions
10753         of constant integers to MAX_INTEGER_COMPUTATION_MODE.
10754         (expand_expr): Likewise.
10755
10756 Thu Jul 23 11:12:06 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
10757
10758         * expr.c (expand_expr): Expand RETURN_EXPR.
10759
10760 Thu Jul 23 11:00:29 1998  Jim Wilson  <wilson@cygnus.com>
10761
10762         * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.
10763
10764 Wed Jul 22 19:10:00 1998  Catherine Moore  <clm@cygnus.com>
10765
10766         * dwarf2out.c (output_aranges):  Call stripattributes
10767         for TEXT_SECTION references.
10768         (output_line_info): Likewise.
10769
10770 Wed Jul 22 14:08:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10771
10772         * profile.c (branch_prob): Call allocate_reg_info after outputting
10773         profile rtl in instrument_arcs.
10774
10775 Wed Jul 22 12:47:49 1998  Jim Wilson  <wilson@cygnus.com>
10776
10777         * fixinc.irix (math.h): Install wrapper instead of copying.
10778
10779 Wed Jul 22 12:37:14 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
10780
10781         * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
10782         so WFL are expanded correctly when contained in a COMPOUND_EXPR.
10783         * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
10784         lang_flag_0. Added documentation in the flag table.
10785
10786 Tue Jul 21 23:28:35 1998  Klaus Kaempf <kkaempf@rmi.de>
10787
10788         * cccp.c (do_include): Fix vax c style include handling.
10789
10790 Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
10791
10792         * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
10793
10794 Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
10795
10796         * fold-const.c (non_lvalue): Don't deal with null pointer 
10797         constants here.
10798         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
10799
10800 Tue Jul 21 15:49:31 1998  David Edelsohn  <edelsohn@mhpcc.edu>
10801
10802         * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
10803         * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
10804         * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
10805         (u_short_cint_operand): Same.
10806         (reg_or_cint_operand): Same.
10807         (logical_operand): Same.
10808         (input_operand): Same.
10809         (reg_or_short_operand): Use u_short_cint_operand.
10810
10811 Tue Jul 21 08:56:42 1998  Richard Henderson  <rth@cygnus.com>
10812
10813         * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
10814         but keep the insns and splits.  Adjust so when the ultimate destination
10815         is memory, use cvtql.
10816
10817 Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>
10818
10819         * flow.c (regno_uninitialized): Fixed regs are never uninitialized.
10820
10821 Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)
10822
10823         * gcc.c (do_spec): Call "error" not "warning".
10824
10825         * configure.in: Fix minor problems with gas feature detection code.
10826         * configure: Rebuilt.
10827
10828         * gcc.c (do_spec): Issue a warning for '%[]' usage.
10829
10830         * Undo this change.
10831         * gcc.c: Delete %[spec] support.
10832         (do_spec_1, case '('): Likewise.
10833         (do_spec_1, case '['): Call error.
10834
10835 Mon Jul 20 22:34:17 1998  Richard Henderson  <rth@cygnus.com>
10836
10837         * alpha.h (CPP_SPEC): Tidy.  Hook to cpp_cpu and cpp_subtarget.
10838         (CPP_SUBTARGET_SPEC): Default to empty string.
10839         (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
10840         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
10841         * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
10842         * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
10843         (LIB_SPEC): Tidy.
10844         * alpha/linux.h (CPP_PREDEFINES): Tidy.
10845         * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
10846         * alpha/netbsd.h (CPP_PREDEFINES): Tidy.
10847         * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
10848         * alpha/win-nt.h (CPP_PREDEFINES): Likewise.
10849         * alpha/vsf.h (CPP_PREDEFINES): Likewise.
10850         (CPP_SUBTARGET_SPEC): New.  Do this instead of overriding CPP_SPEC.
10851         * alpha/vxworks.h: Likewise.
10852
10853 Mon Jul 20 22:51:57 1998  Ken Raeburn  <raeburn@cygnus.com>
10854
10855         * mips.md (reload_outsi): Added missing REGNO call.
10856         (smulsi3_highpart, umulsi3_highpart): Provide prototype for
10857         function pointer.
10858         (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
10859         another match_operator and compare the codes.
10860
10861         * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
10862
10863         * MIPS multiply pattern fixes:
10864         * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
10865         Add union classes for HI, LO, or HILO plus general registers.
10866         (GENERATE_MADD): Deleted.
10867         * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
10868         Add TARGET_MAD to condition.
10869         (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
10870         (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
10871         "*d" for accumulator, to give preference to LO initially but not
10872         during reload.
10873
10874 Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>
10875
10876         * configure.in (enable_c_mbchar): New configure option.
10877         (extra_cpp_objs): Always available now.
10878
10879         * cexp.y (mbchar.h): #include it.
10880         (yylex): Handle Multibyte characters in character literals.
10881
10882         * cccp.c (mbchar.h): #include it.
10883         (main): Set character set based on LANG environment variable.
10884         (rescan): Handle multibyte characters in comments.
10885         (skip_if_group): See above.
10886         (validate_else): See above.
10887         (skip_to_end_of_comment): See above.
10888         (macarg1): See above.
10889         (discard_comments): See above.
10890         (rescan): Handle multibyte characters in string and character literals.
10891         (collect_expansion): See above.
10892         (skip_quoted_string): See above.
10893         (macroexpand): See above.
10894         (macarg1): See above.
10895         (discard_comments): See above.
10896         (change_newlines): See above.
10897
10898         * c-lex.c (mbchar.h): #include it.
10899         (GET_ENVIRONMENT): New macro.
10900         (init_lex): Set character set based on LANG environment variable.
10901         (yylex): Handle multibyte characters in character literals.
10902         (yylex): Handle multibyte characters in string literals.
10903
10904         * Makefile.in (mbchar.o): New target.
10905         (cccp$(exeext)): @extra_cpp_objs@ is always available.
10906         (cppmain$(exeext)): @extra_cpp_objs@ is always available.
10907
10908         * mbchar.[ch]: New files for multibyte character handling.
10909
10910 Mon Jul 20 01:11:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10911
10912         * jump.c (jump_optimize): When simplifying noop moves and
10913         PUSH_ROUNDING, fix thinko so we use same criterion for identifying
10914         the PUSHes to rewrite in second loop as we did in the first.
10915
10916 Sun Jul 19 08:23:53 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10917
10918         * cplus-dem.c (demangle_nested_args): Make function definition
10919         static to match the prototype.
10920
10921 Fri Jul 17 14:58:44 1998  Richard Henderson  <rth@cygnus.com>
10922
10923         * alloca.c: Respect USE_C_ALLOCA.
10924         * gencheck.c (xmalloc): Ignore __GNUC__ for definition.
10925         * gengenrtl.c (xmalloc): Likewise.
10926
10927 Fri Jul 17 14:18:14 1998  Richard Henderson  <rth@cygnus.com>
10928
10929         * loop.h (struct induction): Add no_const_addval.
10930         * loop.c (the_movables, reg_address_cost): New variables.
10931         (init_loop): Init reg_address_cost.
10932         (loop_optimize): Call end_alias_analysis.
10933         (scan_loop): Init the_movables.
10934         (record_giv): Init induction->no_const_addval.
10935         (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
10936         [REG]: Rearrange loop search test to catch more cases.
10937         (general_induction_var): Return success not benefit; take an extra
10938         argument for that.  Change all callers.
10939         (simplify_giv_expr) [PLUS]: Always combine invariants.  Use sge_plus.
10940         [MULT]: Use rtx_equal_p instead of ==.  Combine simple invariants.
10941         [default]: Search the_movables for additional combinations.
10942         (sge_plus_constant, sge_plus): New functions.
10943         (express_from_1): New function.
10944         (express_from): Always define.  Rewrite using express_from_1.
10945         (combine_givs_p): Handle more cases.  Ignore address cost.
10946         (cmp_combine_givs_stats): New function.
10947         (combine_givs_used_once, combine_givs_benefit_from): New functions.
10948         (combine_givs): Rewrite to do best-fit combination.
10949
10950         * fold-const.c (operand_equal_p): Handle RTL_EXPR.
10951         (fold): Do a complete (A*C)+(B*C) association check.
10952
10953 Fri Jul 17 11:21:55 1998  Jim Wilson  <wilson@cygnus.com>
10954
10955         * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
10956
10957 Fri Jul 17 11:48:55 1998  Jeffrey A Law  (law@cygnus.com)
10958
10959         * mn10300.c (MODES_TIEABLE_P): Fix typo.
10960
10961 Fri Jul 17 03:26:12 1998  Rihcard Earnshaw (rearnsha@arm.com)
10962
10963         * tree.c (valid_machine_attribute): Only create a new type variant if
10964         there is a decl to use it.
10965
10966 Thu Jul 16 14:48:04 1998  Nick Clifton  <nickc@cygnus.com>
10967
10968         * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
10969         a suffix.
10970
10971 Fri Jul 17 03:24:40 1998  Hans-Peter Nilsson  <hp@axis.se>
10972
10973         * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
10974         be deleted" 
10975
10976 Thu Jul 16 14:48:47 1998  Jeffrey A Law  (law@cygnus.com)
10977
10978         * mn10300.c (count_tst_insns): New arg oreg_countp.  Callers changed.
10979         Simplify tests for clearing an address register.
10980         (expand_prologue): Corresponding changes.
10981
10982         * mn10300.md (movXX patterns): Make sure the destination is an
10983         ADDRESS_REG when substituting "zero_areg" for (const_int 0).
10984         (logical patterns): Split into expanders + patterns
10985         (zero and sign extension patterns): Similarly.
10986         (shift patterns): Similarly.
10987
10988 Thu Jul 16 01:17:44 1998  Richard Henderson  <rth@cygnus.com>
10989
10990         * loop.c (emit_iv_add_mult): Scan the entire insn list generated
10991         for the sequence, recording base values.
10992
10993 Wed Jul 15 10:49:55 1998  Richard Henderson  <rth@cygnus.com>
10994
10995         * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).
10996
10997 Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>
10998
10999         * gcc.c: Remove ANSI-C ism from --help code.
11000
11001         * toplev.c: Support --help with USE_CPPLIB.
11002
11003 Tue Jul 14 14:46:08 1998  Jeffrey A Law  (law@cygnus.com)
11004
11005         * configure.in: Rework gas feature code to work with symlink based
11006         source trees.
11007
11008         * extend.texi: Clarify some issues related to local variables
11009         assigned to explicit registers.
11010
11011         * mn10300.md (mulsi): Turn into expander + pattern.
11012
11013         * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
11014         alternative.
11015
11016 Tue Jul 14 07:41:59 1998  Richard Earnshaw (rearnsha@arm.com)
11017
11018         * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.
11019
11020 Tue Jul 14 03:02:44 1998  Jeffrey A Law  (law@cygnus.com)
11021
11022         * version.c: Bump again to distinguish mainline tree from the
11023         egcs-1.1 branch.
11024
11025 See ChangeLog.0 for earlier changes.
11026
11027 Local Variables:
11028 add-log-time-format: current-time-string
11029 End: