OSDN Git Service

9dd929767072c4a190d4d0cabfa891193c78335f
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-05-16  Zack Weinberg  <zackw@stanford.edu>
2
3         * i386.md: Add two peepholes to clean up code generated by
4         cmpstr* expanders.
5
6 2001-05-16  Richard Henderson  <rth@redhat.com>
7
8         * dwarf2asm.c (eh_data_format_name): Add names for "pointer size" 
9         variants of non-absolute encodings.
10
11         * config/i386/i386.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
12
13         * libgcc-std.ver (_Unwind_Find_FDE, __register_frame_info_bases,
14         __register_frame_info_table_bases): Export.
15
16 2001-05-16  Richard Henderson  <rth@redhat.com>
17
18         * except.c (eh_data_format_name): Move to ...
19         * dwarf2asm.c: ... here.  Use designated initializers if available.
20         (dw2_asm_output_encoded_addr_rtx): Accept varargs commentary.
21         * dwarf2asm.h: Update declarations.
22         * dwarf2out.c (output_cfi) [DW_CFA_set_loc]: If for_eh, mind
23         ASM_PREFERRED_EH_DATA_FORMAT.
24         (output_call_frame_info): Likewise.  Use 'L' augmentation for
25         the LSDA encoding.
26
27         * unwind-dw2-fde.h (struct fde_vector): New.
28         (struct old_object): Rename from struct object.
29         (struct object): New.
30         (__register_frame_info_bases): Declare.
31         (__register_frame_info_table_bases): Declare.
32         (struct dwarf_fde): Remove explicit pc_begin/pc_range members.
33         * unwind-dw2-fde.c (objects): Remove.
34         (unseen_objects, seen_objects): New.
35         (__register_frame_info_bases): New.
36         (__register_frame_info): Use it.
37         (__register_frame_info_table_bases): New.
38         (__register_frame_info_table): Use it.
39         (__deregister_frame_info): Rewrite for changed object struct.
40         (base_from_object, get_cie_encoding, get_fde_encoding): New.
41         (fde_unencoded_compare): Rename from fde_compare; uninline.
42         (fde_single_encoding_compare, fde_mixed_encoding_compare): New.
43         (start_fde_sort): Adjust for new definition of fde_vector.
44         (fde_insert): Likewise.
45         (end_fde_sort): Likewise.  Select comparison function based
46         on properties of the object.
47         (fde_split): Take object and fde_compare_t arguments.
48         (frame_heapsort, fde_merge): Likewise.
49         (classify_object_over_fdes): Rename from count_fdes.  Handle
50         encoded pointers.  Collect encoding, mixed_encoding, and pc_begin
51         for the object.
52         (add_fdes): Handle encoded pointers.
53         (init_object): Rename from frame_init.  Update for new struct object.
54         (linear_search_fdes): Rename from search_fdes.  Handle encoded
55         pointers.
56         (binary_search_unencoded_fdes): Broken out from _Unwind_Find_FDE.
57         (binary_search_single_encoding_fdes): New.
58         (binary_search_mixed_encoding_fdes): New.
59         (search_object): New.
60         (_Unwind_Find_FDE): Update for new struct object.  Fill in
61         the dwarf_eh_bases.
62         * unwind-dw2.c: Include unwind-pe.h.  Constify all pointers
63         iterating over EH data.
64         (_Unwind_FrameState): Remove saw_lsda, addr_encoding.  Add
65         fde_encoding, lsda_encoding.
66         (read_uleb128, read_sleb128): Remove.
67         (read_encoded_pointer): Remove.  All callers use read_encoded_value.
68         (extract_cie_info): Set lsda_encoding from 'L' augmentation.
69         (uw_frame_state_for): Don't set bases.func.  Handle encoded fde
70         pointers.
71         * unwind-pe.h: Add "struct" to _Unwind_Context references.
72
73 2001-05-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
74
75         * cppexp.c (lex): Use NODE_NAME and NODE_LEN.
76         * cpphash.c (_cpp_lookup_with_hash): Similarly.
77         * cpplex.c (cpp_ideq, parse_identifier, cpp_token_len,
78         cpp_spell_token, cpp_output_token): Similarly.
79         * cpplib.c (lex_macro_node, do_undef, do_pragma,
80         do_pragma_poison, parse_assertion, do_assert): Similarly.
81         * cppmacro.c (builtin_macro, parse_args, funlike_invocation_p,
82         save_parameter, _cpp_create_definition, check_trad_stringification,
83         cpp_macro_definition): Similarly.
84         * cppmain.c (cb_define, cb_undef, dump_macro): Similarly.
85         * c-lex.c (cb_undef, c_lex): Similarly.
86         * fix-header.c (recognized_function): Similarly.
87         * cpplib.h (NODE_LEN, NODE_NAME): New.
88         (cpp_hashnode): Rename length len.
89
90 Wed May 16 13:41:10 2001  Jeffrey A Law  (law@cygnus.com)
91
92         * pa32-regs.h (HARD_REGNO_MODE_OK): Allow TI/TFmode values in
93         GPRs.
94
95 2001-05-16  Andreas Jaeger  <aj@suse.de>
96
97         * Makefile.in (toplev.o): Add dependency on dwarf2asm.h.
98
99         * toplev.c: Include dwarf2asm.h for prototype of
100         dw2_output_indirect_constants.
101
102 Wed May 16 19:53:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
103
104         * stmt.c (expand_asm_operands): Be able to offload addressof
105         expression to memory. (PR optimization/185)
106
107 Wed May 16 18:53:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
108
109         * combine.c (combine_simplify_rtx): Set op0_mode to VOIDmode after
110         applying distributive law.
111
112 2001-05-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
113
114         * pa-hpux10.h (THREAD_MODEL_SPEC): Define.
115
116         * gthr-dce.h (UNUSED): Attribute unused macro.
117         (__gthread_key_dtor): Make arguments UNUSED.
118         (__gthread_key_delete): Revise for compatibility with DRAFT4
119         implementation.
120
121 2001-05-16  David Edelsohn  <edelsohn@gnu.org>
122
123         * doc/install.texi: Update AIX information.
124         * README.RS6000: Remove obsolete file.
125
126 2001-05-16  Jakub Jelinek  <jakub@redhat.com>
127             Nathan Sidwell  <nathan@codesourcery.com>
128
129         * gcc.c (give_switch): Don't write before start of string.
130         Always append suffix.
131
132 2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
133
134         * cpplex.c (_cpp_lex_token, '/' case): Comments can't appear
135         after stage3.
136
137 2001-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
138
139         * README.ALTOS: Remove obsolete file.
140
141 2001-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
142
143         * c-lex.h (save_and_forget_protocol_qualifiers,
144         forget_protocol_qualifiers, remember_protocol_qualifiers):
145         Remove deleted functions' prototypes.
146
147 2001-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
148
149         * c-parse.in (methodtype): New production.
150         (methoddef, methodproto): Collapse separate '-' and '+'
151         handlers into 1.
152
153 2001-05-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
154
155         * c-common.h (RID_FIRST_PQ): New.
156         * c-parse.in (objc_pq_context): New.
157         (objc parser): Set objc_pq_context rather than calling
158         remember_protocol_qualifiers and forget_protocol_qualifiers.
159         Don't call save_and_forget_protocol_qualifiers.
160         (yylexname): Handle objc protocol qualifiers here.
161         * stringpool.c (struct str_header): Replace with sp_hashnode.
162         (SP_EMPTY, SP_LEN, SP_TREE, SP_STR, SP_VALID): New.
163         (alloc_string): Rename alloc_ident.  Use the SP_ accessors.
164         Allocate an IDENTIFIER_NODE for each identifier.
165         (FORALL_STRINGS, set_identifier): Delete.
166         (FORALL_IDS, expand_string_table, stringpool_statistics): Update.
167         (ggc_alloc_string): Use an obstack.
168         (get_identifier, maybe_get_identifier, mark_string_hash): Update.
169         * tree.h: Update comments.
170         (set_identifier): Delete.
171         * objc/objc-act.c (N_PQ, saved_pq, saved_not_pq,
172         save_and_forget_protocol_qualifiers, forget_protocol_qualifiers,
173         remember_protocol_qualifiers): Delete.
174
175 Tue May 15 22:14:09 2001  Jeffrey A Law  (law@cygnus.com)
176
177         * flow.c (life_analysis): After life analysis is complete, do
178         an optional scan over insns looking for REG_LABEL notes that
179         reference a deleted label.
180         (propagate_block_delete_insn): Verify INOTE is a CODE_LABEL
181         before peeking at LABEL_NUSES.
182
183 2001-05-15  Richard Henderson  <rth@redhat.com>
184
185         * unwind-sjlj.c (_Unwind_GetDataRelBase): New.
186         (_Unwind_GetTextRelBase): New.
187
188 2001-05-15  Mark Mitchell  <mark@codesourcery.com>
189
190         * config/sparc/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
191
192 2001-05-15  Geoffrey Keating  <geoffk@redhat.com>
193
194         * objc/objc-act.c (handle_class_ref): Use rest_of_decl_compilation
195         so that CHOOSE_SECTION gets used.
196
197         * config/rs6000/sysv4.h (ASM_PREFERRED_EH_DATA_FORMAT): Treat
198         TARGET_RELOCATABLE like flag_pic for now.
199
200 2001-05-15  David Edelsohn  <edelsohn@gnu.org>
201
202         * rs6000.md (movdi splitter): Sign extend more efficiently.
203         * rs6000.c (reg_or_arith_cint_operand): Redefine 64-bit constant
204         to "long long" valid on 32-bit and 64-bit hosts.
205         (logical_operand): Cast trunc_int_for_mode return value.
206         (rs6000_emit_move): Shift macro to encapsulate variable.
207         (rs6000_va_start): Use HOST_WIDE_INT_PRINT_DEC.
208         (rs6000_emit_{prologue,epilogue}): EH regno is unsigned but
209         plus_constant requires signed argument.
210
211 2001-05-15  Loren J. Rittle  <ljrittle@acm.org>
212
213         * gthr-posix.h: Make additional pthread-* functions weak.
214
215 Tue May 15 13:51:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
216
217         * recog.c (apply_change_group): Avoid unneeded validating.
218
219 2001-05-14  David Edelsohn  <edelsohn@gnu.org>
220
221         * rs6000.c (num_insns_constant_wide): Constants are sign-extended.
222         (num_insns_constant): CONST_INT can be 64-bits.
223
224 2001-05-14  Stan Shebs  <shebs@apple.com>
225
226         * config/darwin.h (LIB_SPEC): Just use -lSystem.
227         (LIBGCC_SPEC): Don't define.
228
229 2001-05-14  Richard Henderson  <rth@redhat.com>
230
231         * configure.in (gcc_cv_as_eh_frame): New test.
232         * config.in, configure: Rebuild.
233         * gcc.c (init_spec): Honor USE_AS_TRADITIONAL_FORMAT.
234
235 2001-05-14  Andrew MacLeod  <amacleod@redhat.com>
236
237         * config/ia64/lib1funcs.asm (__divtf3): Fix incorrect bits in
238         extended precision divide.
239
240 2001-05-14  Andrew MacLeod  <amacleod@redhat.com>
241
242         * config/ia64/ia64.c (rtx_needs_barrier): Call rtx_needs_barrier
243         for RETURNS as well.
244
245 Mon May 14 17:34:48 CEST 2001  Jan Hubicka  <jh@suse.cz>
246
247         * i386.h (TARGET_64BIT): Define to constant if !TARGET_BI_ARCH
248         (CPP_CPU??_SIZE_TYPE): New.
249         (CPP_CPU??_SPEC, CPP_CPUCOMMON_SPEC): Break out from...
250         (CPP_CPU_SPEC): ... here; support choosing of CPU.
251         (EXTRA_SPECS): Add cpp_cpu??, cpp_cpu??sizet, cpp_cpucommon.
252         (MAX_LONG_TYPE_SIZE, MAX_BITS_PER_WORD): Define to 32 for 32bit-only
253         compiler.
254         * i386.c (override_options): Add sorry about not suported modes.
255
256 Mon May 14 08:56:47 2001  Jeffrey A Law  (law@cygnus.com)
257
258         * config/pa/som.h (NM_FLAGS): Remove.
259         (ASM_OUTPUT_FUNCTION_PREFIX): No longer truncate subspace names.
260         (ASM_OUTPUT_SECTION_NAME): Remove.
261         (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Likewise.
262
263 2001-05-14  Mark Mitchell  <mark@codesourcery.com>
264
265         * regrename.c (regrename_optimize): Do not rename registers to
266         leaf registers.
267
268 2001-05-14  Alexandre Oliva  <aoliva@redhat.com>
269
270         * rtl.texi (CALL_INSN_FUNCTION_USAGE): Note that (and when) it may
271         contain MEMs.  Remove useless distinction about clobbering
272         registers.
273
274 2001-05-13  Geoff Keating  <geoffk@redhat.com>
275
276         * config/rs6000/rs6000.h (EXCEPTION_SECTION): Move to...
277         * config/rs6000/aix.h (EXCEPTION_SECTION): ... here.
278         * config/rs6000/sysv4.h (CONST_SECTION_ASM_OP): Delete.
279         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
280         (EXCEPTION_SECTION): Define.
281
282 2001-05-13  Zack Weinberg  <zackw@stanford.edu>
283
284         * libgcc2.c, libgcc2.h: Restore __eprintf.  Label as used for
285         binary backward compat only.
286         * Makefile.in (LIB2FUNCS_ST): New.  Put _eprintf here, not
287         in LIB2FUNCS.  Pass it to mklibgcc.
288         * mklibgcc.in: Handle LIB2FUNCS_ST.
289
290         * Makefile.in (installdirs): Don't create $(gcc_tooldir).
291
292 2001-05-13  Alexandre Oliva  <aoliva@redhat.com>
293
294         * tm.texi (THREAD_MODEL_SPEC): Document it.
295         * gcc.c (main): Use it.
296         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Define it.
297         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Likewise.
298
299 2001-05-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
300
301         * rtl.h (SYMBOL_REF_WEAK): New macro.
302         * rtlanal.h (rtx_addr_can_trap): Use it, a weak SYMBOL_REF can trap.
303         * varasm.c (make_decl_rtl): Mark SYMBOL_REF weak if necessary.
304         * rtl.texi (SYMBOL_REF_WEAK): Document it.
305         * gcc.texi: Remove wrong description.
306
307 2001-05-13  Mark Mitchell  <mark@codesourcery.com>
308
309         * Makefile.in (STAMP): New macro.
310         Replace all uses of `touch' with $(STAMP).
311         * fixinc/Makefile.in: Likewise.
312
313 Sun May 13 07:26:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
314
315         * configure.in: ldopen is never in -lexc, so don't test for it.
316         Add test for exc_resume in -lexc for Ada.
317         * configure: Regenerated.
318
319 2001-05-12  Richard Henderson  <rth@redhat.com>
320
321         * dwarf2asm.c (size_of_encoded_value): New function.
322         * dwarf2asm.h: Declare it.
323         * except.c (output_function_exception_table): Align the TType
324         array only as wide as the encoding.
325
326 2001-05-12  Zack Weinberg  <zackw@stanford.edu>
327
328         * extend.texi: Document #pragma GCC java_exceptions.
329
330 2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
331
332         * c-parse.in (bison parser, init_reswords): Remove uses of
333         doing_objc_thang.
334         * c-tree.h (doing_objc_thang): Remove.
335
336 2001-05-12  Neil Booth  <neil@daikokuya.demon.co.uk>
337
338         * cpplex.c (_cpp_lex_token): Ensure we warn at most once
339         about files not ending in newlines.
340
341 2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
342
343         * dwarfout.c (dwarfout_init): Add cast.
344         * sched-deps.c (sched_analyze_insn): Remove unused vars.
345         * unwind-dw2-fde.c (_Unwind_Find_FDE): Flag unused parameter so.
346 cp:
347         * method.c (build_mangled_C99_name): Remove unused prototype.
348
349 2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
350
351         * config/arm/arm.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Use delta.
352
353 2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
354
355         * defaults.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
356         * tm.texi (TARGET_PRTMEMFUNC_VBIT_LOCATION): Document.
357
358 2001-05-11  Richard Henderson  <rth@redhat.com>
359
360         * defaults.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
361         * dwarf2asm.c (dw2_force_const_mem, dw2_output_indirect_constant_1,
362         dw2_output_indirect_constants, dw2_asm_output_encoded_addr_rtx): New.
363         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): Prototype.
364         (dw2_output_indirect_constants): Prototype.
365         * dwarf2out.c (dwarf2out_begin_prologue): Generate
366         current_function_func_begin_label if we'll need it for EH.  Exit
367         early for IA64_UNWIND_INFO.
368         * except.c: Get DW_EH_PE_* defines from dwarf2.h.
369         (eh_data_format_name): Update for indirect references.
370         (output_function_exception_table): Care for IA64_UNWIND_INFO.
371         Handle ASM_PREFERRED_EH_DATA_FORMAT.
372         * except.h (MUST_USE_SJLJ_EXCEPTIONS): IA64_UNWIND_INFO needn't
373         define HAVE_eh_return etc.
374         * final.c (final_start_function): Always call dwarf2out_begin_prologue.
375         (final_end_function): Don't call output_function_exception_table.
376         * toplev.c (compile_file): Call dw2_output_indirect_constants.
377         (rest_of_compilation): Invoke output_function_exception_table
378         for ia64 before assemble_end_function.
379         * tm.texi (ASM_PREFERRED_EH_DATA_FORMAT): Document.
380         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Document.
381
382         * unwind-dw2.c (_Unwind_GetTextRelBase, _Unwind_GetDataRelBase): New.
383         * unwind.h: Declare them.
384         * libgcc-std.ver: Export them.
385         * unwind-pe.h: New file.
386
387         * config/alpha/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
388
389         * config/ia64/fde-glibc.c: Use "struct unw_table_entry"
390         instead of "fde".
391         (find_fde_for_dso): Extract DT_PLTGOT.
392         (_Unwind_FindTableEntry): Rename from __ia64_find_fde; return
393         the segment and gp as well.
394         * config/ia64/frame-ia64.c: Remove file.
395         * config/ia64/frame-ia64.h: Remove file.
396         * config/ia64/unwind-ia64.c: New file.
397         * config/ia64/unwind-ia64.h: New file.
398         * config/ia64/ia64.h (ASM_OUTPUT_EH_CHAR): Remove.
399         (ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT): Remove.
400         (ASM_OUTPUT_EH_DOUBLE_INT): Remove.
401         (ASM_PREFERRED_EH_DATA_FORMAT): New.
402         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New.
403         (IA64_UNWIND_INFO): Re-enable.
404         (HANDLER_SECTION): Remove.
405         (EH_RETURN_DATA_REGNO): New.
406         * config/ia64/ia64.md (exception_receiver): Remove.
407         * config/ia64/t-glibc (LIB2ADDEH): Re-enable.
408         * config/ia64/t-ia64 (LIB2ADDEH): Re-enable.
409
410 2001-05-11  Richard Henderson  <rth@redhat.com>
411
412         * config/ia64/ia64.c (group_barrier_needed_p): Don't allow
413         calls and jumps to be bundled together.
414         (ia64_reorg): Emit a break after a noreturn call that ends
415         a function.
416         * config/ia64/ia64.md (break_f): New.
417
418 2001-05-12  Neil Booth  <neil@daikokuya.demon.co.uk>
419
420         * c-lex.c (lex_charconst): Convert into a simple wrapper
421         around cpp_interpret_charconst, to which most of the code
422         body is moved.
423         * cppexp.c (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE,
424         MAX_LONG_TYPE_SIZE, MAX_INT_TYPE_SIZE, MAX_CHAR_TYPE_MASK,
425         MAX_WCHAR_TYPE_MASK, parse_escape, parse_charconst): Remove.
426         (lex): Use cpp_interpret_charconst.
427         * cpplex.c (parse_escape, read_ucs, cpp_interpret_charconst,
428         hex_digit_value): New functions.
429         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): New macros.
430         * cpplib.h (cpp_interpret_charconst): New prototype.
431         * Makefile.in: Update.
432
433 2001-05-12  Dean Wakerley  <dean@wakerley.com>
434
435         * doc/install.texi: New file. Converted to texinfo from the HTML
436         documentation in wwwdocs/htdocs/install.
437
438 Fri May 11 15:50:13 2001  Jeffrey A Law  (law@cygnus.com)
439
440         * gcse.c (insert_insn_end_bb): Do not search for assignments to
441         non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE.
442
443         * toplev.c (compile_file): Move comment for opening output
444         file to just before the code that opens the output file.
445
446 2001-05-11  Jakub Jelinek  <jakub@redhat.com>
447
448         * regmove.c (regmove_optimize): Suppress the optimization for
449         unchanging destination register.  Add comment above function.
450
451 2001-05-11  Zack Weinberg  <zackw@stanford.edu>
452
453         * Makefile.in: Exterminate all references to assert.h.
454         * cross-make: Likewise.
455         * assert.h: Delete.
456         * configure.in: Correct commentary.
457         * configure: Regenerate.
458
459         * libgcc-std.ver, libgcc2.c, libgcc2.h, sys-protos.h:
460         Remove __eprintf.
461
462         * config/t-freebsd, config/t-linux, config/t-linux-aout,
463         config/t-netbsd, config/t-rtems, config/x-linux,
464         config/i386/t-beos, config/mcore/t-mcore, config/mcore/t-mcore-pe:
465         No need to override INSTALL_ASSERT_H.
466
467         * fixinc/fixinc.dgux, fixinc/fixinc.interix, fixinc/fixinc.ptx,
468         fixinc/fixinc.svr4, fixinc/fixinc.winnt, fixinc/fixinc.wrap,
469         fixinc/fixincl.sh: Don't install assert.h into objdir/include.
470
471 2001-05-11  Graham Stott  <grahams@redhat.com>
472
473         * combine.c (simplify_comparison): Fix typo.
474
475 2001-05-11  Mark Mitchell  <mark@codesourcery.com>
476
477         * loop.h (struct movables): Remove `num'.
478         * loop.c (scan_loop): Don't set it.  Use count_insns_in_loop.
479         Adjust call to strength_reduce.
480         (num_unmoved_movables): New function.
481         (move_movables): Don't set movables->num.
482         (strength_reduce): Compute the number of instructions in the loop
483         here, rather than in the caller.
484         (check_dbra_loop): Always clear reversible_mem_store if there
485         are any memory sets.
486         (loop_regs_scan): Don't count instructions here.
487         (count_insn_in_loop): New function.
488
489 2001-05-11  Mark Mitchell  <mark@codesourcery.com>
490
491         * optabs.c (emit_libcall_block): Don't mark calls as CONST_CALL_P.
492
493 2001-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
494
495         * c-common.c (finish_label_expr): New function, lifted from
496         from cp/semantics.c.
497         * c-common.h (finish_label_expr, lookup_label): New prototypes.
498         * c-parse.in: Move 3 blocks of parser code into new functions.
499         * c-typeck.c (simple_asm_stmt, c_cast_expr): New functions.
500         * c-tree.h (simple_asm_stmt, c_cast_expr): New prototypes.
501         (lookup_label): Remove.
502
503 2001-05-11  Alexandre Oliva  <aoliva@redhat.com>
504
505         * config/mn10300/t-mn10300 (dp-bit.c, fp-bit.c): Don't define
506         FLOAT_BIT_ORDER_MISMATCH.
507
508 2001-05-10  David Edelsohn  <edelsohn@gnu.org>
509
510         * expr.c (emit_push_insn): Convert PUSH_ROUNDING argument to
511         bytes.  Reported by Kazu Hirata <kazu@hxi.com>.
512
513 2001-05-10  David Edelsohn  <edelsohn@gnu.org>
514
515         * expr.c (emit_group_load): extract_bit_field requires a REG or
516         MEM as an argument.
517
518 Thu May 10 14:45:44 2001  Jeffrey A Law  (law@cygnus.com)
519
520         * cse.c (cse_insn): Mostly remove first hunk of code which collapsed
521         a computed jump into an unconditional jump.
522         In second hunk of code for collapsing computed and conditional jumps
523         into unconditional jumps, reemit the jump in additional cases.
524
525         * jump.c (jump_optimize_1): Do not wrap the new jump target
526         inside a LABEL_REF; gen_jump will do that automatically.
527
528 2001-05-10  Toon Moene  <toon@moene.indiv.nluug.nl>
529
530         * dwarf2out.c (mem_loc_descriptor): Do not pass constant pool
531         contents for a SYMBOL_REF in case of floating point constants.
532
533 2001-05-10  DJ Delorie  <dj@redhat.com>
534
535         * c-common.c (combine_strings): Widen strings in a
536         host-endian-independent way.
537
538 2001-05-10  Joseph S. Myers  <jsm28@cam.ac.uk>
539
540         * c-parse.in: Remove many shift/reduce conflicts.  Update
541         %expect values.
542         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
543         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
544         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
545         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
546         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
547         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
548         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
549         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
550         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
551         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
552         maybe_type_quals_setattrs, typespec_nonattr, typespec_attr,
553         typespec_reserved_nonattr, typespec_reserved_attr,
554         typespec_nonreserved_nonattr, maybe_setattrs, structsp_attr,
555         structsp_nonattr, components_notype, component_notype_declarator,
556         absdcl1_ea, absdcl1_noea, direct_absdcl1, absdcl_maybe_attribute,
557         firstparm, setspecs_fp): New
558         (typed_declspecs, reserved_declspecs, typed_typespecs,
559         reserved_typespecquals, declmods, typespec, typespecqual_reserved,
560         typed_declspecs_no_prefix_attr reserved_declspecs_no_prefix_attr
561         declmods_no_prefix_attr, nonempty_type_quals, structsp,
562         type_quals): Remove.  Users updated.
563         (initdecls, notype_initdecls, after_type_declarator,
564         parm_declarator, notype_declarator, absdcl1, components, ivars):
565         Don't allow attributes at the start of a declarator; include them
566         in the production containing the declarator instead.  Always
567         require type specifiers before trying to redeclare a typedef name.
568         (typename): Allow for attributes but warn that they are ignored.
569         (parmlist, firstparm, setspecs_fp): Include attributes in
570         parmlist; suck them off the parser stack in firstparm using
571         setspecs_fp.
572
573 Thu May 10 09:17:42 2001  Jeffrey A Law  (law@cygnus.com)
574
575         * ifcvt.c (merge_if_block): Use any_uncondjump_p, not simplejump_p
576         to determine if a block has an unconditional jump at its end.
577
578         * jump.c (jump_optimize_1): When converting a conditional jump
579         to an unconditional jump, build the jump using gen_jump instead
580         of just modify operands in-place.
581
582 2001-05-09  Zack Weinberg  <zackw@stanford.edu>
583
584         * cppinit.c (cpp_post_options): Shut off macro expansion if
585         -fpreprocessed.
586         * cpplib.c (_cpp_handle_directive): If -fpreprocessed, accept
587         IN_I directives only if the # is in column 1 and the directive
588         name begins in column 2.
589         * cppmain.c (scan_buffer): Insert a space between # and an
590         identifier, when that identifier is a directive name.
591
592         * tradcpp.c (struct file_buf): Add a pointer to the next entry
593         in the header search path.
594         (enum node_type): Add T_INCLUDE_NEXT.
595         (directive_table): Add entry for include_next.
596         (do_include_next): New function.
597         (process_include): New routine, broken out of do_include.
598         (finclude): Insert 'nhd' argument, to be copied into
599         next_header_dir of the new buffer.
600         (main): Adjust to match.
601         * gsyslimits.h, limity.h: Un-indent #include_next.
602
603 2001-05-09  Joseph S. Myers  <jsm28@cam.ac.uk>
604
605         * objc.texi: Move from ../libobjc/objc-features.texi.  Adjust for
606         inclusion as a chapter of the GCC manual.
607         * gcc.texi: Include objc.texi.
608         * fdl.texi: Use @unnumberedsec for the addendum.
609         * Makefile.in ($(srcdir)/gcc.info, gcc.dvi): Update dependencies.
610
611 Wed May  9 16:01:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
612
613         * i386.md (DImode move splitters): Use !MMX and !SSE for the condition.
614
615 Wed May  9 10:40:25 2001  Alexandre Oliva  <aoliva@redhat.com>
616
617         * regclass.c (scan_one_insn): Update REG_N_REFS when optimizing
618         handling of two-address insns.
619
620 Wed May  9 10:36:18 2001  Alexandre Oliva  <aoliva@redhat.com>
621
622         * Makefile.in (NM_FOR_TARGET): Look for ./nm, then
623         ../binutils/nm-new instead of ../binutils/nm.
624
625 Wed May  9 12:15:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
626
627         * i386.md (movdi splitter): Fix the splitting condition
628         (float_extenddftf splitter): Fix mode.
629
630 Wed May  9 12:05:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
631
632         * genrecog.c (write_switch): Avoid outputting of switch for
633         types wider than int.
634
635 2001-05-03  Andrew Haley  <aph@cambridge.redhat.com>
636
637         * reload1.c (copy_eh_notes): New function.
638         (emit_input_reload_insns): Call it.
639         (emit_output_reload_insns): Call it.
640
641 2001-05-07  Zack Weinberg  <zackw@stanford.edu>
642
643         * config.gcc (i[34567]86-*-sco3.2v4*, i[34567]86-*-sco*):
644         Delete stanzas.
645         * config/i386/sco.h, config/i386/sco4.h, config/i386/scodbx.h,
646         config/i386/sco4dbx.h, config/i386/x-sco4: Delete file.
647
648         * optabs.c: Delete #ifdef BROKEN_LDEXP block.
649
650 2001-05-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
651
652         * pa.md (interspace_jump): Revise comment.
653         (builtin_longjmp): Block initial setup insns from delay slot of
654         interspace branch.
655         (builtin_setjmp_receiver): New expander to save and restore PIC
656         register.
657
658         * som.h (NM_FLAGS): Remove `-n' sort option.  Revise comment.
659
660 Mon May  7 09:30:14 2001  Jeffrey A Law  (law@cygnus.com)
661
662         * toplev.c (compile_file): Set up the output file before we call
663         the various initializers for the compiler.
664
665         * except.c (sjlj_mark_call_sites): Do not search for assignments to
666         non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE.
667
668         * pa.h (MAX_LONG_TYPE_SIZE): Should be 32, not 64.
669         * pa-64.h (*_TYPE_SIZE): Undefine before redefining.
670
671 2001-05-06  Zack Weinberg  <zackw@stanford.edu>
672
673         * Makefile.in (tradcpp0): Correct typo in dependency list.
674
675 2001-05-06  Geoff Keating  <geoffk@redhat.com>
676
677         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't save
678         the link register if we're not going to use it.
679
680         * config/rs6000/rs6000.c (output_profile_hook): Fix a warning.
681         (output_function_profiler): Likewise.
682
683 2001-05-07  Alan Modra  <amodra@one.net.au>
684
685         * pa.c (compute_frame_size): 64-bit frame marker is 16 bytes.
686
687 2001-05-06  Alexandre Oliva  <aoliva@redhat.com>
688
689         * unroll.c (loop_iterations): Don't sign-extend abs_diff;
690         zero-extend it.  Make abs_inc unsigned.
691
692         * optabs.c (expand_binop): Sign-extend xop0 and xop1 from the
693         widest mode in narrowing and widening operations.
694
695         * config/mips/mips.md: Sign extend CONST_INTs.
696
697 2001-05-06  Andreas Jaeger  <aj@suse.de>
698
699         * invoke.texi (Option Summary): Add -momit-leaf-frame-pointer
700         (i386 Options): Document -momit-leaf-frame-pointer.
701
702 2001-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
703
704         * c-typeck.c (internal_build_compound_expr): Check for
705         array to pointer conversion just once.
706
707 2001-05-05  Richard Henderson  <rth@redhat.com>
708
709         * integrate.c (copy_insn_list): Substitute NOTE_EXPECTED_VALUE.
710
711 2001-05-05  Richard Henderson  <rth@redhat.com>
712
713         * except.c (remove_fixup_regions): Adjust REG_EH_REGION notes
714         to the parent of the fixup region.
715
716 2001-05-05  Jakub Jelinek  <jakub@redhat.com>
717
718         * gcc.c (cpp_options): Define __NO_INLINE__ unless we are honoring
719         "inline" keyword.
720         * cpp.texi (__NO_INLINE): Document it.
721
722 2001-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
723
724         * cppfiles.c (struct include_file): New member err_no.
725         (find_or_create_entry): Set it.
726         (open_file): Don't set fds to -2.  Instead, use err_no to
727         remember previous errors, if any.
728
729 2001-05-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
730
731         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Optimize moves
732         between X and Y by using sequences of xgdx and xgdy.
733
734 2001-05-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
735
736         * config/m68hc11/m68hc11.md ("*logicalsi3_silshr16"): Use '?' instead
737         of '!' for the 'D' alternative ('!' is too strong).
738         ("*logicalsi3_silshl16"): Likewise.
739         ("movstricthi"): Accept 'A' when 'd' constraint, remove spurious '+'.
740         ("movstrictsi"): Remove spurious '+'.
741         ("movstrictqi"): Don't accept 'A' and remove spurious '+'.
742         ("tstqi_1", "*lshrqi3_const1"): Put 'm' constraint before 'd'.
743         ("subqi3"): Disparage with '!' the 'x' and 'y' registers to avoid
744         a reload to them.
745
746 2001-05-04  David Edelsohn  <edelsohn@gnu.org>
747
748         * calls.c (store_one_arg): Don't divide align by BITS_PER_UNIT.
749
750 2001-05-04  Lars Brinkhoff  <lars@nocrew.org>
751
752         * simplify-rtx.c (simplify_binary_operation): Simplify ~a + 1
753         into -a.
754
755 2001-05-04  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
756
757         * config/rs6000/rs6000.md (ashldi3 splits): Guard with
758         TARGET_POWERPC64.
759
760 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
761
762         * config/m68hc11/m68hc11.md (lshrhi3_const1): Fix shift of
763         soft register, use ror instead of rol.
764
765 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
766
767         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Take
768         into account pre/post increment decrement for 68HC12.
769         Fix other problems in replacement and fix call to reg_mentioned_p.
770
771 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
772
773         * config/m68hc11/larith.asm (L_regs_frame): New for _.frame.
774         Put the soft registers in bss for 68HC12.
775         (L_regs_d3_4): New for _.d3 and _.d4.
776         (L_regs_d5_6): Likewise.
777         (L_regs_d1_2): Likewise.
778         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Compile new parts.
779
780 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
781
782         * config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__HAVE_SHORT_DOUBLE__
783         to the pre-processor when -fshort-double is specified.
784         * config/m68hc11/m68hc11.2 (CPP_SPEC): Likewise.
785
786 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
787
788         * config/m68hc11/larith.asm (divmodhi4): Empty for 68HC12.
789         (__mulsi3): Rewrite for 68HC12.
790         * config/m68hc11/m68hc11.md (divmodhi4): Use idivs for 68HC12.
791         Mark 'x' constraint with earlyclobber to prevent a
792         RELOAD_FOR_OTHER_ADDRESS to go in it.
793         (mulhi3_m68hc12): New pattern.
794         (mulhi3_m68hc11): Rename of mulhi3.
795         (mulhi3): New expand for 68HC12 optimisation.
796         (umulhisi3, mulhisi3): New patterns for 68HC12.
797
798 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
799
800         * config/m68hc11/m68hc11.md (*tbne, *tbeq): New patterns for 68HC12.
801         (extendqisi2, extendqihi2, extendhisi2): Use sex for 68HC12.
802         (uminqi3, umaxqi3, uminhi3, umaxhi3): New pattern for 68HC12.
803
804 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
805
806         * config/m68hc11/m68hc11.h (CONST_COSTS): Make the cost of
807         constants cheap after reload.
808         * config/m68hc11/m68hc11.c (m68hc11_shift_cost): Shift by 16 and 32
809         are cheap.
810         (m68hc11_rtx_costs): Cost of multiplication by 65536 is expensive
811         so that gcc prefers a shift by 16.
812         (m6811_cost, m6812_cost): Make the shift cheap compared to an add.
813
814 2001-05-04  Nick Clifton  <nickc@cambridge.redhat.com>
815
816         * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Define.
817
818 2001-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
819
820         * alpha.h: NULL_PTR -> NULL.
821         * arm.c: Likewise.
822         * arm.h: Likewise.
823         * avr.h: Likewise.
824         * c4x.c: Likewise.
825         * c4x.h: Likewise.
826         * i386.c: Likewise.
827         * i386.md: Likewise.
828         * i860.c: Likewise.
829         * ia64.c: Likewise.
830         * m68hc11.h: Likewise.
831         * rs6000.h: Likewise.
832         * sh.c: Likewise.
833         * sh.h: Likewise.
834         * sparc.h: Likewise.
835         * v850.c: Likewise.
836
837         * expr.c: Likewise.
838         * final.c: Likewise.
839         * gcc.c: Likewise.
840         * recog.c: Likewise.
841
842 2001-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
843
844         * i386.c (ix86_emit_restore_regs_using_mov, ix86_save_reg): Change
845         `bool' parameter to `int'.
846
847         * hash.c (hash_lookup): Likewise.
848
849         * hash.h (hash_lookup): Likewise.
850
851         * tlink.c (symbol_hash_lookup, demangled_hash_lookup): Likewise.
852
853 Fri May  4 13:10:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
854
855         * i386.c (x86_initialize_trampoline): Fix mode of constant.
856
857 2001-05-03  Geoff Keating  <geoffk@redhat.com>
858
859         * invoke.texi (i386 Options): Delete references to -malign-jumps,
860         -malign-loops, -malign-functions.
861         * i386.c (ix86_align_funcs): Delete.
862         (ix86_align_loops): Delete.
863         (ix86_align_jumps): Delete.
864         (override_options): Mark -malign-* as obsolete.  Emulate their
865         behaviour with the -falign-* options.  Default -falign-* from
866         the processor table.
867         * i386.h (FUNCTION_BOUNDARY): Define to 16; revert Richard Kenner's
868         patch of Wed May 2 13:09:36 2001.
869         (LOOP_ALIGN): Delete.
870         (LOOP_ALIGN_MAX_SKIP): Delete.
871         (LABEL_ALIGN_AFTER_BARRIER): Delete.
872         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Delete.
873
874 2001-05-04  Andreas Jaeger  <aj@suse.de>
875
876         * except.h: Add prototype declaration for
877         expand_builtin_init_dwarf_reg_sizes.
878
879 2001-05-03  Geoffrey Keating  <geoffk@redhat.com>
880
881         * Makefile.in (site.exp): Set TESTING_IN_BUILD_TREE.
882
883 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
884
885         * config/m68hc11/m68hc11.md ("bitcmpqi"): New pattern for bitb
886         instruction.
887         ("bitcmpqi2"): New pattern for bit-extract and test.
888         ("bitcmphi"): New pattern for bitb/bita instructions.
889
890 2001-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
891
892         * gccbug.in: Use a temporary directory when the mktemp command is
893         not available.
894
895 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
896
897         * config/m68hc11/m68hc11.h (STATIC_CHAIN_REGNUM): Use soft z register
898         instead of _.d1.
899         (INITIALIZE_TRAMPOLINE): Call it.
900         (TRAMPOLINE_SIZE): Define according to 68HC11/68HC12.
901         (TRAMPOLINE_TEMPLATE): Remove.
902         * config/m68hc11/m68hc11.c (m68hc11_initialize_trampoline): New.
903         * config/m68hc11/m68hc11-protos.h (m68hc11_initialize_trampoline):
904         Declare.
905
906 2001-05-03  David O'Brien  <obrien@FreeBSD.org>
907
908         * config/t-freebsd: Don't install "assert.h" in gcc.  Compile crtbeginS.o
909         and crtendS.o with PIC.
910
911 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
912
913         * config/m68hc11/larith.asm (__mulqi3): Fix multiplication of two
914         negative numbers.
915         (___subdi3, ___adddi3): Use x instead of y as index register.
916         (__init_bss_section, __map_data_section): Optimize for 68HC12.
917         (__memset, __memcpy): Likewise.
918         (regs): Put the soft registers in bss for 68HC12.
919         (abort): Use trap to abort for 68hc12.
920         (__mulhi3, __mulhi32): Use emul for 68hc12.
921         (__mulsi3): Avoid to use the tmp soft register for 68hc12.
922
923 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
924
925         * config/m68hc11/m68hc11.h (LIMIT_RELOAD_CLASS): Don't define.
926         * config/m68hc11/m68hc11-protos.h (limit_reload_class): Remove.
927         * config/m68hc11/m68hc11.c (limit_reload_class): Remove.
928         (m68hc11_override_options): Remove setting of flag_no_nonansi_builtin.
929         Set 68HC12 min offset to -65536.
930         (print_operand): Put parenthesis arround the operand if it refers
931         to a symbol having the same name as a register.
932         (m68hc11_z_replacement): When z register is replaced by its
933         equivalent soft register, force the insn to be re-recognized.
934         (m68hc11_check_z_replacement): Fix the test when destination is
935         the index register and z dies in the insn.
936         (m68hc11_reorg): Remove the REG_DEAD notes beforce recomputing them.
937
938 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
939
940         * config/m68hc11/m68hc11.c (m68hc11_override_options): Initialize
941         costs according to processor variant.
942         (m68hc11_shift_cost): New function to compute shift costs.
943         (m68hc11_rtx_costs): Define costs according to processor variant.
944         (m6811_cost): Costs for 68HC11.
945         (m6812_cost): Costs for 68HC12.
946         (COSTS_N_INSNS): Remove.
947
948         * config/m68hc11/m68hc11.h (RTX_COSTS): New.
949         (DEFAULT_RTX_COSTS): Remove.
950         (CONST_COSTS): Define costs according to OUTER_CODE.
951         (processor_costs): New struct to define costs.
952         (m68hc11_cost): Pointer to current costs.
953
954 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
955
956         * config/m68hc11/m68hc11.md (*addhi3_68hc12): Fix generation
957         and use m68hc11_notice_keep_cc when using leax/leay.
958         (addhi3 split): Reject split if the insn is handled by
959         leax/leay above.
960         * config/m68hc11/m68hc11.c (m68hc11_split_move): For 68HC12 the
961         push must be handled in a special way if the source operand uses
962         sp as index register.
963         (m68hc11_notice_keep_cc): New function.
964         (m68hc11_gen_movhi): Use it when an insn changes a register but
965         not the flags.
966         (m68hc11_gen_movqi): Fix move for 68HC12.
967         * config/m68hc11/m68hc11-protos.h (m68hc11_notice_keep_cc): Declare.
968
969 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
970
971         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use LCT_CONST
972         and don't pass operands[0] to emit_library_call_value.
973
974 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
975
976         * config/m68hc11/m68hc11.md (tsthi_1): Use cpd for 68HC12.
977         (zero_extendsi split): Simplify and use (zero_extendhi).
978         (*addhi3): Remove 'w' constraint since stack pointer is handled
979         by (addhi3_sp).
980         (*ashlhi3_2): Operand 2 is clobbered use '+' for its constraint.
981         (*ashlhi3, *ashrhi3, *lshrhi3): Likewise.
982         (*ashrhi3_const): Fix shift by 7.
983         (*lshrsi3_const16): Fix template.
984         (call, call_value): Fix constraint and predicate.
985
986 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
987
988         * config/m68hc11/m68hc11.md (X_REGNUM, D_REGNUM): New constant.
989         (Y_REGNUM, SP_REGNUM, PC_REGNUM, A_REGNUM, B_REGNUM): Likewise.
990         (CC_REGNUM): Likewise.
991         (*unnamed splits): Use above constants instead of hard coded numbers.
992         (*adcq, *subcq, *addsi_carry, *rotlqi3_with_carry): Likewise.
993         (*rotlhi3_with_carry, *rotrhi3_with_carry): Likewise.
994         (*return_16bit, *unnamed peepholes): Likewise.
995
996 2001-05-03  David O'Brien  <obrien@FreeBSD.org>
997
998         * config.gcc(rs6000-ibm-aix|powerpc-ibm-aix):  Do not include
999         rs6000/rs6000.h twice.
1000
1001 2001-05-03  Mark Elbrecht  <snowball3@bigfoot.com>
1002
1003         * config/i386/djgpp.h (CPP_PREDEFINES): Define __GO32__.
1004         (CPP_SPEC): Conditionally define MSDOS and GO32.
1005         (SUBTARGET_SWITCHES): Ignore -mbnu210 and -mno-bnu210.
1006         (SUBTARGET_OVERRIDE_OPTIONS): Warn that -mbnu210 and -mno-bnu210 are
1007         ignored.
1008         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Remove.
1009
1010 2001-05-03  Alexandre Oliva  <aoliva@redhat.com>
1011
1012         * config/mn10300/mn10300.md: Sign-extend GEN_INT operands.
1013
1014 2001-05-03  Mark Mitchell  <mark@codesourcery.com>
1015
1016         * integrate.h (struct inline_remap): Add leaf_reg_map table.
1017         * integrate.c (expand_inline_function): Use xcalloc to allocate
1018         memory.
1019         (copy_rtx_and_substitute): Use the leaf_reg_map for leaf
1020         registers.
1021
1022 2001-05-03  Mark Mitchell  <mark@codesourcery.com>
1023
1024         * c-dump.c (dequeue_and_dump): Don't look at DECL_ASSEMBLER_NAME
1025         if it is not set.
1026
1027 2001-05-03  Alexandre Oliva  <aoliva@redhat.com>
1028
1029         * config/mn10300/mn10300.h (LINK_SPEC): Pass --relax to the
1030         linker if -mrelax is given.
1031         (TARGET_SWITCHES): Document -mrelax.
1032
1033         Re-installed 2001-01-09's patch:
1034         * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long
1035         if it's wider than long and the target's long is wider than the
1036         host's.
1037
1038 2001-05-02  David O'Brien  <obrien@FreeBSD.org>
1039
1040         * config.gcc, config/rs6000/aix51.h, config/rs6000/mach.h:  Do not
1041         directly include rs6000/rs6000.h.  Instead do it in tm.h.
1042
1043 2001-05-02  Stan Shebs  <shebs@apple.com>
1044
1045         * objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Default to
1046         NSConstantString for NeXT-style runtimes.
1047         (STRING_OBJECT_GLOBAL_NAME): New macro.
1048         (enum objc_tree_index): Add values OCTI_CNST_STR_GLOB_ID and
1049         OCTI_STRING_CLASS_DECL.
1050         (constant_string_global_id): New macro.
1051         (string_class_decl): Ditto.
1052         (setup_string_decl): New function.
1053         (build_objc_string_object): Use it to build a NeXT runtime
1054         compatible string initializer.
1055
1056 2001-05-02  Jakub Jelinek  <jakub@redhat.com>
1057
1058         * tradcpp.c (do_define): Make sure we don't walk past limit.
1059
1060 2000-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1061
1062         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow any stack
1063         offsets if not REG_OK_STRICT.
1064
1065         * config/rs6000/rs6000.h (REG_OK_STRICT_FLAG): New macro.
1066         (INT_REG_OK_FOR_INDEX_P): Likewise.
1067         (INT_REG_OK_FOR_BASE_P): Likewise.
1068         (REG_OK_FOR_INDEX_P): Use INT_REG_OK_FOR_INDEX_P.
1069         (REG_OK_FOR_BASE_P): Use INT_REG_OK_FOR_BASE_P.
1070         (LEGITIMATE_OFFSET_ADDRESS_P): Use INT_REG_OK_FOR_INDEX_P and
1071         INT_REG_OK_FOR_BASE_P instead of REG_OK_FOR_INDEX_P and
1072         REG_OK_FOR_BASE_P. Take an additional parameter.
1073         (LEGITIMATE_INDEXED_ADDRESS_P): Likeewise.
1074         (LEGITIMATE_INDIRECT_ADDRESS_P): Likewise.
1075         (LEGITIMATE_LO_SUM_ADDRESS_P): Likewise.
1076         (GO_IF_LEGITIMATE_ADDRESS): Move code into new function
1077         rs6000_legitimate_address() and use it.
1078         * config/rs6000/rs6000.c: Update all callers.
1079         (rs6000_legitimate_address): New function.
1080
1081 2001-05-02  David Edelsohn  <edelsohn@gnu.org>
1082
1083         * config/rs6000/rs6000.c (rs6000_emit_move): Merge
1084         special_constant conditional blocks together.
1085
1086 2001-05-02  Dale Johannesen  <dalej@apple.com>
1087
1088         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Remove unused NAMED
1089         parameter.
1090         (STRICT_ARGUMENT_NAMING): Define.
1091         * config/rs6000/rs6000.c (function_arg_advance, function_arg,
1092         function_arg_partial_nregs, setup_incoming_varargs): Remove
1093         args logic which depends on "named" now that STRICT_ARGUMENT_NAMING
1094         is defined.
1095
1096 Wed May  2 13:09:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1097
1098         * config/i386/i386.h (FUNCTION_BOUNDARY): Result is unsigned.
1099
1100         * function.c (fixup_var_regs_1, case SUBREG): Use promoted mode
1101         for replacement.
1102
1103         * expr.c (store_field): Do nothing except elaborate side-effects if
1104         zero-bit field.
1105
1106 2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1107
1108         * c-lex.c: NULL_PTR -> NULL.
1109         * cse.c: Likewise.
1110         * emit-rtl.c: Likewise.
1111         * gcse.c: Likewise.
1112         * genpeep.c: Likewise.
1113         * jump.c: Likewise.
1114         * mips-tdump.c: Likewise.
1115         * reload1.c: Likewise.
1116         * rtlanal.c: Likewise.
1117         * stmt.c: Likewise.
1118         * stor-layout.c: Likewise.
1119         * toplev.c: Likewise.
1120
1121 2001-05-01  Per Bothner  <per@bothner.com>
1122
1123         * expr.c (expand_expr):  When compiling LABELED_BLOCK_EXPR,
1124         call do_pending_stack_adjust before emiting label.
1125
1126 2001-05-01  Mark Mitchell  <mark@codesourcery.com>
1127
1128         * extend.texi: Fix typo.
1129
1130 2001-05-01  Stan Shebs  <shebs@apple.com>
1131
1132         * objc/objc-act.c (build_module_descriptor): Clear DECL_CONTEXT
1133         of UOBJC_MODULES_decl.
1134         (generate_strings): Clear DECL_CONTEXT of new decl nodes.
1135         (generate_descriptor_table): Ditto.
1136         (generate_protocols): Ditto.
1137         (generate_protocol_list): Ditto.
1138         (generate_classref_translation_entry): Ditto.
1139
1140 2001-05-01  Jeffrey Oldham  <oldham@codesourcery.com>
1141
1142         * invoke.texi (Optimize Options): Add documentation for `--param
1143         max-delay-slot-insn-search' and `--param
1144         max-delay-slot-live-search' and reorder --param section.
1145         * params.def: Modify initial comment.
1146         * params.h (param_info): Add `help' member.
1147         * toplev.c (lang_independent_params): Include `help' description.
1148         (display_help): Print --param parameters.
1149
1150 2001-05-01  Zack Weinberg  <zackw@stanford.edu>
1151
1152         * config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
1153         Remove references to deleted files.
1154         (*-*-openbsd): No need to override xmake_file.
1155         (*-*-sysv4): Treat like *-*-sysv.
1156
1157         * configure.in: Probe for ldopen in various places, and set up
1158         collect2 to be linked with them if found.
1159         Don't dink with Windows registry stuff unless $host_os is a
1160         Win32 os name.  Check to see if we need -ladvapi32.
1161         * configure: Regenerate.
1162
1163         * Makefile: Get rid of CLIB and HOST_CLIB.
1164         Substitute in COLLECT2_LIBS and link collect2 against its contents.
1165         * build-make: Get rid of HOST_CLIB.
1166
1167         * config/a29k/x-unix, config/alpha/x-osf, config/i386/x-aix,
1168         config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
1169         config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
1170         config/mips/x-sysv, config/rs6000/x-aix31, config/rs6000/x-aix41,
1171         config/rs6000/x-rs6000: Delete.
1172
1173         * config/i386/x-cygwin, config/m68k/t-aux, config/mips/x-iris:
1174         Don't set CLIB.
1175
1176         24 x-host fragments remain, 0 x-cpu, 3 top level.
1177
1178 2001-05-01  Zack Weinberg  <zackw@stanford.edu>
1179
1180         * aclocal.m4 (gcc_AC_C_CHAR_BIT): Correct test program.
1181         * configure: Regenerate.
1182
1183 2001-05-01  Angela Marie Thomas <angela@cygnus.com>
1184
1185         * Makefile.in (install-headers): Remove redundant dependency.
1186
1187 2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
1188
1189         * c-tree.texi (USING_STMT): Document.
1190
1191 2001-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1192
1193         * bitmap.c: Change NULL_PTR to NULL or "(rtx*)0".
1194         * c-common.c: Likewise.
1195         * c-decl.c: Likewise.
1196         * combine.c: Likewise.
1197         * rs6000.c: Likewise.
1198         * except.c: Likewise.
1199         * explow.c: Likewise.
1200         * expr.c: Likewise.
1201         * fold-const.c: Likewise.
1202         * function.c: Likewise.
1203         * gcc.c: Likewise.
1204         * gcse.c: Likewise.
1205         * integrate.c: Likewise.
1206         * loop.c: Likewise.
1207         * objc/objc-act.c: Likewise.
1208         * recog.c: Likewise.
1209         * reg-stack.c: Likewise.
1210         * reload.c: Likewise.
1211         * reload1.c: Likewise.
1212         * simplify-rtx.c: Likewise.
1213         * stmt.c: Likewise.
1214         * varasm.c: Likewise.
1215
1216 2001-05-01  Gabriel Dos Reis  <gdr@codesourcery.com>
1217
1218         * diagnostic.def: New file.
1219         * diagnostic.h (diagnostic_t): New enum.
1220         * Makefile.in (diagnostic.o): Depend on diagnostic.def
1221
1222 2001-04-30  Zack Weinberg  <zackw@stanford.edu>
1223
1224         * tsystem.h: Test only POSIX for availability of string.h
1225         and time.h.
1226         * config.gcc (all systems): If USG appeared in xm_defines,
1227         change it to POSIX.  If both USG and POSIX appeared, just
1228         delete USG. Remove unnecessary quotes around xm_defines
1229         settings.
1230         (m68k-crds-unos*): Don't #define unos - tested nowhere.
1231         (m68k-apple-aux*): Don't #define AUX - tested nowhere.
1232         (alpha*-*-linux*ecoff*, powerpc-*-linux*libc1,
1233         powerpc-*-linux*): No need to set xm_defines - handled by
1234         global settings for *-*-linux*.
1235
1236 2001-04-30  Zack Weinberg  <zackw@stanford.edu>
1237
1238         * dbxout.c, mips-tfile.c, config/mips/mips.c, xcoffout.c:
1239         Always include gstab.h, not system stab.h.  Don't provide
1240         default definitions of N_CATCH or N_OPT.  Always use the
1241         gstab.h variant of STAB_CODE_TYPE.
1242         * final.c: Don't include stab.h/gstab.h at all, or provide
1243         defaults for N_SLINE and N_SOL.
1244
1245         * xcoffout.c: Can assume N_MAIN, N_DSLINE, N_BSLINE, N_BINCL,
1246         N_EINCL, N_EXCL, N_M2C, N_SCOPE, N_CATCH, and N_OPT are
1247         available.
1248         * sdbout.c: Always include gsyms.h instead of system syms.h.
1249
1250         * configure.in: No need to check for stab.h.
1251         * configure, config.in: Regenerate.
1252         * Makefile.in (final.o): Don't depend on gstab.h.
1253
1254 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
1255             Richard Henderson  <rth@redhat.com>
1256
1257         * extend.texi: Improve documentation of volatile asms.
1258
1259 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
1260
1261         * c-tree.texi: Fix thinko.
1262         * gcc.texi: Likewise.
1263
1264 2001-04-30  Richard Henderson  <rth@redhat.com>
1265
1266         * c-common.c (c_promoting_integer_type_p): New function, from the
1267         corpse of old macro.  Properly promote too-small enumerations and
1268         booleans.  Adjust all callers.
1269         * c-common.h (C_PROMOTING_INTEGER_TYPE_P): Remove.
1270         (c_promoting_integer_type_p): Declare.
1271         * c-decl.c: Adjust C_PROMOTING_INTEGER_TYPE_P invocations.
1272         * c-typeck.c: Likewise.
1273         (default_conversion): Remove now redundant boolean check.
1274
1275 2001-04-30  Jan Hubicka  <jh@suse.cz>
1276             Richard Henderson  <rth@redhat.com>
1277
1278         * regmove.c (try_apply_stack_adjustment): Remove now redundant
1279         sanity checks.
1280         (combine_stack_adjustments_for_block): Don't combine stack
1281         allocation followed by deallocations.  Handle grow-up stacks.
1282
1283 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
1284
1285         * fdl.texi: New file.
1286         * c-tree.texi: Use the GFDL.
1287         * gcc.texi: Likewise.
1288
1289 2001-04-30  Stan Shebs  <shebs@apple.com>
1290
1291         * invoke.texi: Add a section documenting Objective-C options.
1292
1293 2001-04-27  Andrew Haley  <aph@cambridge.redhat.com>
1294
1295         * emit-rtl.c (try_split):  Copy EH notes to sequence.
1296
1297 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
1298
1299         * regmove.c (record_stack_memrefs): Catch all references to the
1300         stack pointer.
1301
1302 2001-04-29  Toomas Rosin <toomas at ns dot tklabor dot ee>
1303
1304         * Makefile.in(stmp-fixinc): quote shell assignment values
1305
1306 2001-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1307
1308         * c-aux-info.c: NULL_PTR->NULL in calls to `concat'.
1309
1310         * gcc.c: Likewise.
1311
1312         * prefix.c: Likewise.
1313
1314 2001-04-28  Stan Shebs  <shebs@apple.com>
1315
1316         * objc/objc-act.c (handle_class_ref): Rewrite to flush target
1317         specific code and use new macro ASM_DECLARE_UNRESOLVED_REFERENCE.
1318         * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Define.
1319         * tm.texi (ASM_DECLARE_UNRESOLVED_REFERENCE): Document.
1320
1321         * config/darwin.h (STANDARD_EXEC_PREFIX): Don't define.
1322         (NEXT_OBJC_RUNTIME): Define.
1323
1324 Sat Apr 28 21:02:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
1325
1326         * rtl.h (simplify_gen_relational): Add cmp_mode parameter.
1327         * simplify-rtx.c (simplify_gen_relational): Likewise.
1328
1329         * simplify-rtx.c (simplify_replace_rtx): Handle relationals and MEMs.
1330
1331         * i386.h (VALID_SSE_REG_MODE): Accept MMX modes if SSE2
1332         * i386.md (movsi_1, movdi2, movdi_1_rex64): Handle SSE2 moves.
1333
1334         * i386.md (negsf2, negdf2, abssf2, absdf2): Force operands to
1335         registers in SSE case; fix handling of the immediates.
1336         (negsf2_ifs, abssf2_ifs): Tweak constraints; require
1337         operands to be in regsiters before reload.
1338         (negdf2_ifs, absdf2_ifs): Likewise; disable for 64bit
1339         (negdf2_ifs_rex64, absdf2_ifs_rtx64): New.
1340         (abstf,absxf,negtf,negxf splitters): Compute
1341         properly the regnum for x86_64.
1342         (avsdf2_if_rex64): New.
1343
1344 Sat Apr 28 10:36:23 2001  Jeffrey A Law  (law@cygnus.com)
1345
1346         * flow.c (propagate_block_delete_insn): Handle deletion of ADDR_VEC
1347         and ADDR_DIFF_VEC insns when the proceeding CODE_LABEL was put
1348         into the constant pool.
1349         * jump.c (jump_optimize_1): Remove barrier successors after all
1350         the LABEL_NUSES counds have been computed.
1351         (delete_barrier_successors): When deleting a tablejump insn, also
1352         delete the jump table it uses.
1353         * varasm.c (force_const_mem): Set LABEL_PRESERVE_P when forcing a
1354         label into memory.
1355
1356 2001-04-28  Martin Kalen  <martin.kalen@todaysystems.com.au>
1357
1358         * pa.c (FRP): Remove erroneous white space in macro definition.
1359
1360 2001-04-28  Andreas Jaeger  <aj@suse.de>
1361
1362         * invoke.texi: Use XX-bit instead of XXbit or XX bit where
1363         appropriate.
1364         * extend.texi: Likewise.
1365         * tm.texi: Likewise.
1366
1367 2001-04-28  Andreas Jaeger  <aj@suse.de>
1368
1369         * md.texi: Use XX-bit instead of XXbit or XX bit where
1370         appropriate.
1371
1372 2001-04-28  Jens Schweikhardt <schweikh@schweikhardt.net>
1373
1374         * gcc.c (process_command): Allow -l lib in addition to -llib
1375         for POSIX compliance. This fixes PR c/2347.
1376
1377         * invoke.texi: Update section on Link Options accordingly.
1378
1379 2001-04-27  Zack Weinberg  <zackw@stanford.edu>
1380
1381         * function.c (purge_addressof_1): Remove the duplicate
1382         if (code == SET) block.  Fold the two if (code == ADDRESSOF)
1383         blocks together.
1384
1385 2001-04-28  Jason Merrill  <jason_merrill@redhat.com>
1386
1387         * except.c (expand_eh_region_start): Don't start a new block.
1388         (expand_eh_region_end): Don't end a block.
1389         * stmt.c (expand_end_bindings): Don't end EH blocks.
1390         (expand_decl_cleanup): Starting an EH region won't change the block.
1391         (mark_block_as_eh_region, mark_block_as_not_eh_region): Lose.
1392         (is_eh_region): Lose.
1393         * tree.h: Adjust.
1394
1395 2001-04-27  Jeffrey Oldham  <oldham@codesourcery.com>
1396
1397         * except.c (expand_eh_region_end_cleanup): word_mode, not Pmode.
1398
1399         * collect2.c (main): Add `-L' case to remove duplicate entries.
1400         (is_in_args): New function to check for a duplicate argument.
1401         * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New macro.
1402         * tm.texi (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New documentation.
1403         * config/mips/iris6.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
1404         Define to be nonzero.
1405
1406 2001-04-27  Andreas Jaeger  <aj@suse.de>
1407             Richard Henderson  <rth@redhat.com>
1408
1409         * md.texi (Machine Constraints): Document additional i386
1410         constraints and fix description of "A".
1411
1412 Fri Apr 27 10:43:49 2001  Jeffrey A Law  (law@cygnus.com)
1413
1414         * tm.texi (TARGET_MEM_FUNCTIONS): Update text.
1415
1416 2001-04-27  Jason Merrill  <jason_merrill@redhat.com>
1417
1418         * except.c (get_exception_filter): word_mode, not Pmode.
1419
1420 2001-04-26  Geoffrey Keating  <geoffk@redhat.com>
1421
1422         * config/sparc/sparc.md (movsf_no_f_insn): Add more alternatives
1423         common to other movsf patterns.  Move up so that in future
1424         people who change the other patterns will change it too.
1425         (movsf_lo_sum): Allow even for soft-float; add appropriate
1426         constraints.
1427         (movsf_high): Likewise.
1428         (movsf_high+1): Allow even for soft-float.
1429
1430         * function.c (expand_function_end): Always clobber the
1431         return registers, even if there is no return label.
1432
1433 Thu Apr 26 20:28:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
1434
1435         * (ix86_expand_fp_movcc): Re-enable SSE conditional move generation.
1436
1437 Thu Apr 26 19:20:28 CEST 2001  Jan Hubicka  <jh@suse.cz>
1438
1439         * i386.md (abs/neg splitter): Fix calculation of sign bit for TFmodes
1440         (pushqi2_rex64, pushhi2_rex64): Add.
1441
1442 2001-04-26  Andrew Haley  <aph@cambridge.redhat.com>
1443
1444         * except.c (expand_eh_region_end_cleanup): Force pending stack
1445         adjust before emitting label that branches around cleanup code.
1446
1447 2001-04-26  H.J. Lu  (hjl@gnu.org)
1448
1449         * config.gcc (mips*-*-linux*): Add elfos.h to tm_file.
1450
1451         * config/mips/ecoff.h (STARTFILE_SPEC): Undefine before
1452         define.
1453         * config/mips/elf64.h (MAX_OFILE_ALIGNMENT): Likewise.
1454         (ASM_OUTPUT_SECTION_NAME): Likewise.
1455         (ASM_WEAKEN_LABEL): Likewise.
1456         (UNIQUE_SECTION): Likewise.
1457         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
1458         (ASM_OUTPUT_DESTRUCTOR): Likewise.
1459         * config/mips/elf.h (MAX_OFILE_ALIGNMENT): Likewise.
1460         (ASM_OUTPUT_SECTION_NAME): Likewise.
1461         (ASM_WEAKEN_LABEL): Likewise.
1462         (UNIQUE_SECTION): Likewise.
1463         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
1464         (ASM_OUTPUT_DESTRUCTOR): Likewise.
1465         * config/mips/linux.h (HANDLE_SYSV_PRAGMA): Likewise.
1466         * config/mips/mips.h (DBX_CONTIN_LENGTH): Likewise.
1467         (ASM_FILE_START): Likewise.
1468         (ASM_OUTPUT_SOURCE_LINE): Likewise.
1469         (ASM_DECLARE_OBJECT_NAME): Likewise.
1470         (ASM_FILE_END): Likewise.
1471         (ASM_DECLARE_FUNCTION_NAME): Likewise.
1472         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
1473         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1474         (ASM_OUTPUT_CASE_LABEL): Likewise.
1475         (ASM_OUTPUT_SKIP): Likewise.
1476         (ASM_OUTPUT_ASCII): Likewise.
1477         (ASM_OUTPUT_IDENT): Likewise.
1478         (READONLY_DATA_SECTION): Likewise.
1479         (EXTRA_SECTIONS): Likewise.
1480         (EXTRA_SECTION_FUNCTIONS): Likewise.
1481         (SELECT_RTX_SECTION): Likewise.
1482         (SELECT_SECTION): Likewise.
1483
1484         * config/mips/linux.h (INVOKE__main): Undefine.
1485         (CTOR_LIST_BEGIN): Likewise.
1486         (CTOR_LIST_END): Likewise.
1487         (DTOR_LIST_BEGIN): Likewise.
1488         (DTOR_LIST_END): Likewise.
1489         (SET_ASM_OP): Defined it to ".dummy".
1490         (ASM_OUTPUT_DEF): Defined.
1491         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Defined.
1492
1493 2001-04-26  Nick Clifton  <nickc@cambridge.redhat.com>
1494
1495         * config/arm/arm.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define, if the
1496         assembler supports .p2align.
1497
1498 2001-04-26  Nathan Sidwell <nathan@codesourcery.com>
1499
1500         * c-lex.c (c_lex): Remove # from %o diagnostic formatting.
1501
1502 2001-04-26  Jakub Jelinek  <jakub@redhat.com>
1503
1504         * integrate.c (expand_inline_function): Check for error_mark_node
1505         in actual argument.
1506
1507 2001-04-26  Jakub Jelinek  <jakub@redhat.com>
1508
1509         * config/i386/i386.h (CC1_CPU_SPEC): Fix deprecation warnings for
1510         -m386 and -m486.
1511
1512 2001-04-26  Alexandre Oliva  <aoliva@redhat.com>
1513
1514         * configure.in (configargs.h): Define thread_model.
1515         * configure: Rebuilt.
1516         * gcc.c (main): Print it with -v.
1517
1518 2001-04-25  Joseph S. Myers  <jsm28@cam.ac.uk>
1519
1520         * invoke.texi: Document -Wmissing-braces, -dumpspecs,
1521         -dumpmachine, -dumpversion, -fmem-report and -ftime-report.
1522         * gcc.1: Regenerate.
1523
1524 2001-04-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1525
1526         * dwarfout.c (is_pseudo_reg, type_main_variant, is_tagged_type,
1527         is_redundant_typedef): Use static inline instead of inline static.
1528
1529 Wed Apr 25 18:21:01 2001  Christopher Faylor <cgf@cygnus.com>
1530
1531         * config/i386/cygwin.h: Move W32API search to LINK_SPEC to ensure that
1532         this directory is always searched.
1533
1534 2001-04-25  Richard Henderson  <rth@redhat.com>
1535
1536         * config/i386/i386.c (ix86_expand_epilogue): Properly compute size
1537         of registers to restore along non eh_return path.
1538
1539 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
1540
1541         * c-format.c (check_format_info_recurse): Handle
1542         PLUS_EXPR for format string.
1543
1544 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
1545
1546         * config/ia64/ia64.h (CC1_SPEC): Define.
1547         * config/ia64/linux.h (CC1_SPEC): Define.
1548
1549 Wed Apr 25 17:09:50 2001  J"orn Rennecke <amylaar@redhat.com>
1550
1551         * emit-rtl.c (constant_subword): Also do sign extension in
1552         BITS_PER_WORD == 16 case.
1553
1554 2001-04-25  Jason Merrill  <jason_merrill@redhat.com>
1555
1556         * loop.c (try_swap_copy_prop): Go back to checking insn.
1557
1558 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
1559
1560         * emit-rtl.c (subreg_hard_regno): Only do HARD_REGNO_MODE_OK check
1561         if check_mode is non-zero.
1562
1563 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
1564
1565         * config/i386/i386.c (ix86_expand_int_movcc): If overlap between
1566         out and comparison sequence has been detected, put result into
1567         proper temporary pseudo.
1568
1569 2001-04-24  Zack Weinberg  <zackw@stanford.edu>
1570
1571         * Makefile.in (LIB2FUNCS): Remove _varargs and __dummy.
1572         * libgcc-std.ver: Remove __builtin_saveregs, __dummy, and __empty.
1573         * libgcc2.c: Remove __dummy and __builtin_saveregs.
1574         * libgcc2.h: Don't prototype __builtin_saveregs or __dummy.
1575         * config/i860/varargs.asm: New file - preserve i860 __builtin_saveregs
1576         for future reference.
1577
1578 2001-04-24  Jason Merrill  <jason_merrill@redhat.com>
1579
1580         * except.c (reachable_handlers): Step out one level from a RESX.
1581
1582         * except.c (struct eh_region): Rename 'last' to 'resume'.
1583         (mark_eh_region, duplicate_eh_region_1): Adjust.
1584         (expand_eh_region_end_cleanup): Remember the jump, not the barrier.
1585         (build_post_landing_pads): Likewise.
1586         (expand_end_catch, expand_eh_region_end_allowed): Don't set it.
1587         (expand_eh_region_end_must_not_throw): Likewise.
1588         (connect_post_landing_pads): Thread (only) regions with non-deleted
1589         resume insns.
1590
1591         * except.c (expand_eh_region_end_cleanup): Save the EH return data
1592         registers around the cleanup.
1593         (get_exception_filter): New fn.
1594         (finish_eh_generation): Use it.
1595
1596 2001-04-24  Nathan Sidwell <nathan@codesourcery.com>
1597
1598         * c-semantics.c (add_scope_stmt): Don't call
1599         current_scope_stmt_stack multiple times.
1600
1601 2001-04-24  Zack Weinberg  <zackw@stanford.edu>
1602             Nathan Sidwell <nathan@codesourcery.com>
1603
1604         Lazy __FUNCTION__ generation.
1605         * c-common.h (RID_FUNCTION_NAME, RID_PRETTY_FUNCTION_NAME,
1606         RID_C99_FUNCTION_NAME): New _RIDs.
1607         (CTI_FUNCTION_ID, CTI_PRETTY_FUNCTION_ID, CTI_FUNC_ID): Remove.
1608         (CTI_FUNCTION_NAME_DECL, CTI_PRETTY_FUNCTION_NAME_DECL,
1609         CTI_C99_FUNCTION_NAME_DECL, CTI_SAVED_FUNCTION_NAME_DECLS): New
1610         global tree slots.
1611         (function_id_node, pretty_function_id_node, func_id_node): Remove.
1612         (c99_function_name_decl_node, function_name_decl_node,
1613         pretty_function_name_decl_node, saved_function_name_decls):
1614         Declare.
1615         (struct language_function): Remove x_function_name_declared_p.
1616         (make_fname_decl): Remove a parameter.
1617         (declare_function_names): Remove prototype.
1618         (start_fname_decls, finish_fname_decls): Prototype.
1619         (fname_as_string): Likewise.
1620         (fname_string, fname_decl): Likewise.
1621         * c-common.c (make_fname_decl): Adjust.
1622         (struct fname_var_t): New struct.
1623         (fname_vars): New static array.
1624         (declare_function_name): Remove.
1625         (start_fname_decls, finish_fname_decls): New functions.
1626         (fname_as_string): New function from remnants of
1627         declare_function_name.
1628         (fname_string, fname_decl): New functions.
1629
1630         * c-decl.c (c_function_name_declared_p): Remove.
1631         (init_decl_processing): Don't generate __FUNCTION__ et al ids,
1632         don't call declare_function_name. Call start_fname_decls.
1633         (c_make_fname_decl): Adjust parameters. Generate the name. Don't
1634         clobber the line number. Call finish_decl.
1635         (start_function): Call start_fname_decls.
1636         (finish_function): Call finish_fname_decls.
1637         Remove c_function_name_declared_p.
1638         (push_c_function_context): Don't push c_function_name_declared_p.
1639         (pop_c_function_context): Don't pop c_function_name_declared_p.
1640         (c_begin_compound_stmt): Don't check c_function_name_declared_p.
1641         * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): New tokens.
1642         (program): Call finish_fname_decls for C.
1643         (primary): Add VAR_FUNC_NAME.
1644         (reswords): Add slots for __FUNCTION__ et al.
1645         (rid_to_yy): Add mappings for __FUNCTION__ et al.
1646         (yylexname): If it's a STRING_FUNC_NAME generate the function name
1647         now. Don't look for VAR_DECLs containing __FUNCTION__ et al.
1648         * c-semantics.c (prune_unused_decls): Remove.
1649         (finish_stmt_tree): Don't call prune_unused_decls.
1650         (genrtl_decl_stmt): Don't prune unused decls here.
1651
1652 2001-04-24  Nick Clifton  <nickc@cambridge.redhat.com>
1653
1654         * dwarf2out.c (mem_loc_descriptor): If a SYMBOL_REF is in the
1655         constant pool, use the pool's SYMBOL_REF instead.
1656
1657         * config/v850/v850.h (STRICT_ALIGNMENT): Always set, even for the
1658         v850e.
1659
1660 2001-04-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1661
1662         * c-convert.c (convert): When converting to a BOOLEAN_TYPE, avoid
1663         passing nested NOP_EXPRs to fold.
1664
1665 Mon Apr 23 14:32:12 CEST 2001  Jan Hubicka  <jh@suse.cz>
1666
1667         * reg-stack.c (emit_swap_insn): Do not get pass CALL_INSNs.
1668
1669 2001-04-22  Mark Mitchell  <mark@codesourcery.com>
1670
1671         * loop.c (loop_delete_insns): Add prototype.
1672
1673 2001-04-23  Phil Edwards  <pme@sources.redhat.com>
1674
1675         * configure.in:  Remove ENABLE_STD_NAMESPACE.
1676         * config.in:  Regenerated.
1677         * configure:  Regenerated.
1678
1679 2001-04-22  Stan Shebs  <shebs@apple.com>
1680
1681         * config.gcc (powerpc-*-darwin*): Move the flag in xm-darwin.h
1682         into xm_defines.
1683         * config/rs6000/xm-darwin.h: Remove file.
1684
1685 2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1686
1687         * collect2.c (main): Use concat in lieu of xmalloc/sprintf.
1688         (write_c_file_stat): Likewise.
1689
1690         * dbxout.c (dbxout_init): Likewise.
1691
1692         * profile.c (output_func_start_profiler): Likewise.
1693
1694 2001-04-22  Philipp Thomas  <pthomas@suse.de>
1695
1696         * ABOUT-GCC-NLS: Now that gettext 0.10.37 is out,
1697         require it instead of the CVS version.
1698         * cpperror.c (v_message): Put a blank before the macro
1699         body to not confuse exgettext.
1700
1701 2001-04-21  Mark Mitchell  <mark@codesourcery.com>
1702
1703         * flow.c (proagate_one_insn): Remove useless assignment.
1704         * jump.c (delete_insn): Tidy.
1705         * loop.c (try_copy_prop): When deleting an instruction with a
1706         REG_RETVAL note, delete the entire libcall sequence.
1707         (loop_delete_insns): New function.
1708         * unroll.c (initial_reg_note_copy): Copy INSN_LIST notes, even if
1709         we're not substituting into them yet.
1710
1711 2001-04-21  Kazu Hirata  <kazu@hxi.com>
1712
1713         * config/h8300/h8300.c (general_operand_src): Fix a comment typo.
1714
1715         * config/sparc/sparc.c (sparc_flat_eligible_for_epilogue_delay):
1716         Fix a comment typo.
1717         * config/i960/i960.c (signed_arith_operand): Likewise.
1718
1719         * calls.c (expand_call): Fix a comment typo.
1720
1721 2001-04-20  Zack Weinberg  <zackw@stanford.edu>
1722
1723         * configure.in: Probe for times, clock, struct tms, and clock_t.
1724         * configure, config.in: Regenerate.
1725         * timevar.c: Replace ifdef forest in get_time with (relatively)
1726         straightforward series of checks based on autoconf's probes.
1727
1728 Fri Apr 20 12:24:50 2001  Jeffrey A Law  (law@cygnus.com)
1729
1730         * config/pa/som.h (NM_FLAGS): Define.
1731
1732 2001-04-20  Bernd Schmidt  <bernds@redhat.com>
1733
1734         * ia64.h (MD_SCHED_REORDER, MD_SCHED_REORDER2): Pass CLOCK to called
1735         function.
1736         * ia64-protos.h (ia64_sched_reorder): Additional arg for clock.
1737         * ia64.c (nop_cycles_until): New function.
1738         (prev_cycle, prev_first, last_issued): New static variables.
1739         (ia64_sched_reorder): Additional arg for clock.
1740         On final scheduling pass, emit extra NOPs as needed.
1741         Set prev_first and prev_cycle.
1742         (ia64_sched_reorder2): Pass clock arg down to ia64_sched_reorder.
1743         (ia64_variable_issue): Set last_issued.
1744
1745 2001-04-20  Alexandre Oliva  <aoliva@redhat.com>
1746
1747         * config/i386/i386.c (ix86_expand_int_movcc,
1748         ix86_expand_strlensi_unroll_1): Sign-extend CONST_INTs.
1749
1750 2001-04-20  Geoff Keating  <geoffk@redhat.com>
1751
1752         * config/rs6000/rs6000.md (ctrsi_internal1, ctrsi_internal2,
1753         ctrsi_internal3, ctrsi_internal4, ctrsi_internal5,
1754         ctrsi_internal6, ctrdi_internal1, ctrdi_internal2,
1755         ctrdi_internal3, ctrdi_internal4, ctrdi_internal5,
1756         ctrdi_internal6): In the short-branch case, this insn is only 4
1757         bytes long.  Reported by Reza Yazdani <reza@apple.com>.
1758
1759 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
1760
1761         * reg-stack.c (check_asm_stack_operands): Issue error if "=t" resp.
1762         "=u" is used together with "st" resp. "st(1)" clobber.
1763
1764 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
1765
1766         * gcse.c (gcse_main): Fix comment typo.
1767         (delete_null_pointer_check): Likewise.
1768         (hash_scan_set): Don't consider sets with REG_EQUIV MEM notes.
1769         * cse.c (cse_insn): Likewise.
1770         * function.c (fixup_var_refs_insns_with_hash): The sequence is
1771         toplevel.
1772
1773 2001-04-19  Zack Weinberg  <zackw@stanford.edu>
1774
1775         * toplev.c: Excise all code for the undocumented -dm option.
1776         (float_signal): Call signal just once, unconditionally.
1777
1778 2001-04-19  Geoff Keating  <geoffk@redhat.com>
1779
1780         * fold-const.c (fold): Use first_rtl_op rather than
1781         TREE_CODE_LENGTH when looping over parameters of a tree.
1782         Correct strange grouping in test for evaluated SAVE_EXPR.
1783
1784 Thu Apr 19 19:15:26 2001  Jeffrey A Law  (law@cygnus.com)
1785
1786         * config/pa/pa-linux.h (CPLUSPLUS_CPP_SPEC): Undefine.
1787         * config/pa/pa.h (CPLUSPLuS_CPP_SPEC): Define.
1788
1789         * config/pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Truncate subspace
1790         name at 32 total characters.
1791         (ASM_OUTPUT_SECTION_NAME): Similarly.  Also, only support placing
1792         functions in named sections -- data items can still go into unique
1793         sections, but they have normal names (ie $LIT$ and $DATA$).
1794
1795         * config/pa/som.h (SUPPORTS_INIT_PRIORITY): SOM does not support
1796         INIT_PRIORITY.
1797
1798 2001-04-19 DJ Delorie  <dj@redhat.com>
1799
1800         * config/alpha/vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
1801         to TARGET_OBJECT_SUFFIX and TARGET_EXECUTABLE_SUFFIX.
1802         * config/i386/cygwin.h: Likewise.
1803         * config/i386/mingw32.h: Likewise.
1804         * config/vax/vms.h: Likewise.
1805         * config/i386/djgpp.h: Remove NO_AUTO_EXE_SUFFIX.
1806
1807         * config/alpha/xm-vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
1808         to HOST_OBJECT_SUFFIX and HOST_EXECUTABLE_SUFFIX.
1809         * config/i386/xm-cygwin.h: Likewise.
1810         * config/i386/xm-djgpp.h: Likewise.
1811         * config/i386/xm-mingw32.h: Likewise.
1812         * config/vax/xm-vms.h: Likewise.
1813
1814         * mkdeps.c (deps_add_default_target): Use TARGET_OBJECT_SUFFIX
1815         instead of OBJECT_SUFFIX.
1816         * collect2.c (find_a_file): Look for files matching the extension
1817         HOST_EXECUTABLE_SUFFIX instead of EXECUTABLE_SUFFIX.
1818         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Depend on
1819         TARGET_EXECUTABLE_SUFFIX.
1820         (find_a_file): Use HOST_EXECUTABLE_SUFFIX.
1821         (make_relative_prefix): Likewise.
1822         (convert_filename): Use TARGET_ suffixes throughout.  Remove
1823         NO_AUTO_EXE_SUFFIX.
1824         (process_command): Likewise.
1825         (do_spec_1): Likewise.
1826         * java/lang.c (init_parse): Likewise.
1827
1828         * gcc.texi : Document four new options matching the pattern
1829         (HOST|TARGET)_(OBJECT|EXECUTABLE)_SUFFIX.  Remove documentation
1830         for deleted macros OBJECT_SUFFIX and EXECUTABLE_SUFFIX.  Remove
1831         documentation for NO_AUTO_EXE_SUFFIX.
1832
1833 2001-04-19  Mark Mitchell  <mark@codesourcery.com>
1834
1835         * toplev.h (struct lang_hooks): Allow decode_option to indicate
1836         that language-independent processing should not be done.
1837         * toplev.c (main): Adjust accordingly.
1838
1839         * rtl.texi (jump_insn): Expand on JUMP_LABEL documentation.
1840         * loop.c (load_mems): Handle a NULL JUMP_LABEL for a JUMP_INSN.
1841
1842         * mips.md (reload_outputdi): Require that operand0 be a
1843         general_operand.
1844
1845 2001-04-19  Jakub Jelinek  <jakub@redhat.com>
1846
1847         * invoke.texi (-Wshadow): Clarify.
1848
1849 2001-04-18  Mark Mitchell  <mark@codesourcery.com>
1850
1851         * loop.c (load_mems): Examine all the instructions in the loop
1852         before concluding that all jumps branch to the first instruction
1853         after the loop.
1854
1855 Wed Apr 18 20:32:03 2001  Christopher Faylor <cgf@cygnus.com>
1856
1857         * config/i386/xm-cygwin.h (CPP_SPEC): Fix typo.
1858
1859 2001-04-18  Jakub Jelinek  <jakub@redhat.com>
1860
1861         * cpp.texi (-Wwhite-space): Remove.
1862         (-Wall): -Wall does not imply -Wwhite-space.
1863
1864 2001-04-17  Zack Weinberg  <zackw@stanford.edu>
1865
1866         * dbxout.c (dbxout_init): If DBX_OUTPUT_GCC_MARKER is defined,
1867         use it instead of blindly generating a .stabs.
1868         * xcoffout.h: Define DBX_OUTPUT_GCC_MARKER so we put the type
1869         in the right place.
1870         * xcoffout.c: Don't bother defining default for N_CATCH.
1871         (UNKNOWN_STAB): Use internal_error.
1872         (stab_to_sclass): Remove now-unnecessary aborts.
1873         Remove #if 0'ed case N_BROWS.  Add #ifdef N_OPT block.
1874
1875 Tue Apr 17 21:41:11 2001  Jeffrey A Law  (law@cygnus.com)
1876
1877         * jump.c (mark_all_labels): Canonicalize the tail recursion
1878         label attached to CALL_PLACEHOLDER insns.
1879
1880 2001-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1881
1882         * output.h (dump_flow_info, free_basic_block_vars,
1883         which_alternative): Delete redundant prototypes.
1884
1885         * rtl.h (bss_section): Likewise.
1886
1887 2001-04-17  Loren J. Rittle  <ljrittle@acm.org>
1888
1889         * dbxout.c (N_OPT): Define if not available from <stab.h>
1890
1891 2001-04-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1892
1893         * vax.h (PROMOTE_PROTOTYPES): Define for compatibility with system
1894         libraries and native K&R compilers.
1895
1896 2001-04-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1897
1898         * c-typeck.c (convert_arguments): Don't check for width changes
1899         with -Wtraditional.
1900
1901         * invoke.texi (-Wtraditional): Update documentation.
1902
1903 2001-04-16  Zack Weinberg  <zackw@stanford.edu>
1904
1905         * toplev.c (output_lang_identify): Delete.
1906         (compile_file): Don't call ASM_IDENTIFY_GCC or ASM_IDENTIFY_LANGUAGE.
1907         Don't generate gcc2_compiled. label.  Don't emit a nop if profiling.
1908         If IDENT_ASM_OP is defined, emit an .ident "GCC (GNU) <version>"
1909         after calling ASM_FILE_END.
1910
1911         * dbxout.c (dbxout_init): Don't call ASM_IDENTIFY_GCC_AFTER_SOURCE.
1912         Instead, unconditionally emit an N_OPT stab with string equal
1913         to STABS_GCC_MARKER, which defaults to "gcc2_compiled."
1914
1915         * defaults.h: Don't provide default for ASM_IDENTIFY_LANGUAGE.
1916
1917         * config/dbxelf.h, config/freebsd.h, config/nextstep.h,
1918         config/psos.h, config/ptx4.h, config/1750a/1750a.h,
1919         config/alpha/alpha.h, config/alpha/elf.h, config/arc/arc.h,
1920         config/arm/aof.h, config/arm/coff.h, config/arm/elf.h,
1921         config/arm/linux-elf.h, config/avr/avr.h, config/d30v/d30v.h,
1922         config/dsp16xx/dsp16xx.h, config/h8300/h8300.h,
1923         config/i370/i370.h, config/i386/beos-elf.h,
1924         config/i386/osf1elf.h, config/i386/osfrose.h,
1925         config/ia64/sysv4.h, config/m68k/3b1.h, config/m68k/auxgas.h,
1926         config/m68k/crds.h, config/m68k/hp320.h, config/m68k/m68kv4.h,
1927         config/m68k/mot3300.h, config/m68k/news.h, config/m68k/sgs.h,
1928         config/m68k/tower-as.h, config/mcore/mcore-elf.h,
1929         config/mips/iris6.h, config/mips/osfrose.h,
1930         config/mips/sni-svr4.h, config/pa/som.h, config/pdp11/pdp11.h,
1931         config/sparc/sp64-elf.h:
1932         Delete definitions of any or all of: ASM_IDENTIFY_GCC,
1933         ASM_IDENTIFY_GCC_AFTER_SOURCE, and ASM_IDENTIFY_LANGUAGE.
1934
1935         * config/elfos.h, config/freebsd.h, config/linux.h,
1936         config/alpha/elf.h, config/arm/linux-elf.h, config/i386/i386elf.h,
1937         config/i386/ptx4-i.h, config/mips/gnu.h, config/mips/linux.h,
1938         config/sparc/linux.h, config/sparc/linux64.h: Delete definitions
1939         of ASM_FILE_START which merely emit a .version directive.  Delete
1940         definitions of ASM_FILE_END which merely emit an .ident directive.
1941
1942         * config/avr/avr.h, config/vax/vax.h: Delete definition of
1943         ASM_IDENTIFY_GCC and move part of its logic into
1944         ASM_FILE_START.
1945
1946         * config/i386/att.h, config/i386/gas.h, config/i386/linux.h,
1947         config/sparc/linux-aout.h: Don't emit .version directive in
1948         ASM_FILE_START.
1949
1950         * config/i386/dgux.c, config/m88k/m88k.c, config/sh/sh.c
1951         (output_file_start): Correct comment.
1952
1953         * config/i386/osfrose.h: Don't emit trailing .ident directive.
1954         * config/m68k/mot3300.h: Override STABS_GCC_MARKER to "gcc2_compiled%"
1955         to match gdb.
1956         * config/pa/lib2funcs.asm: Delete gcc_compiled. label.
1957         * config/rs6000/aix.h: Correct comment.
1958
1959         * config/i386/i386afe.h: Delete.
1960         * config.gcc: Remove references to i386afe.h.
1961
1962         * tm.texi: Delete documentation of ASM_IDENTIFY_GCC.  The
1963         other macros deleted by this patch were undocumented.
1964
1965 Mon Apr 16 08:03:48 2001  Jeffrey A Law  (law@cygnus.com)
1966
1967         * pa.md (reload_outdi): Operand 0 must be a non hard register.
1968
1969         * pa.c (secondary_reload_class): SAR<->FP copies require a
1970         secondary register.
1971
1972         * install.texi (mips-mips-bsd): Update list of functions
1973         required to include memmove.
1974         * tm.texi (TARGET_MEM_FUNCTIONS): Update list of implicitly
1975         used functions to include memmove.
1976
1977 2001-04-15  Toon Moene  <toon@moene.indiv.nluug.nl>
1978
1979         * i386.md (sqrtdf2): SFmode should be DFmode.
1980
1981 2001-04-15  Alexandre Oliva  <aoliva@redhat.com>
1982
1983         * gcse.c (compute_ld_motion_mems): ASM outputs aren't moveable.
1984         (find_moveable_store): Likewise.
1985
1986 2001-04-15  Jim Wilson  <wilson@redhat.com>
1987
1988         * function.c (expand_function_end): Handle PARALLEL real_decl_rtl.
1989
1990 Sat Apr 14 16:24:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
1991
1992         * i386.md (ashldi3_1_rex64): Add 'J' to the constraints
1993         (ashrdi3_1_rex64): Change 'n' constraint to 'J'.
1994
1995 2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
1996
1997         * config/mn10300/mn10300.md (cmpsi): Tell reload to disregard the
1998         first alternative.
1999
2000 2001-04-14  Alan Modra  <amodra@one.net.au>
2001
2002         * pa.c (force_mode): New function.
2003         (emit_move_sequence): Use it instead of generating new rtx_REGs.
2004
2005 2001-04-13  Jim Wilson  <wilson@redhat.com>
2006
2007         * config/ia64/ia64.c (ia64_expand_epilogue): Emit alloc if sibcall_p.
2008         (first_instruction): New static variable.
2009         (rtx_needs_barrier): Return 1 for alloc.
2010         (init_insn_group_barriers): Set first_instruction.
2011         (rws_sum): Delete duplicate definition.
2012         (group_barrier_needed_p): Return 0 when first_instruction true.
2013         (safe_group_barrier_needed_p): Save and restore first_instruction
2014         around group_barrier_needed_p call.
2015
2016 Fri Apr 13 21:40:28 2001  Loren J. Rittle  <ljrittle@acm.org>
2017
2018         * expr.h (enum libfunc_index): Add LTI_memmove.
2019         (memmove_libfunc): Define macro.
2020         * optabs.c (init_optabs): Initialize memmove_libfunc.
2021         * expr.c (expand_assignment): Use memmove_libfunc instead of
2022         memcpy_libfunc.
2023
2024 2001-04-13  Alan Modra  <alan@linuxcare.com.au>
2025
2026         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Disallow PIC LO_SUM
2027         fp mode addresses.
2028
2029 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2030
2031         * Makefile.in (reg-stack.o): Depend on reload.h.
2032         (insn-attrtab.o): Depend on flags.h.
2033
2034         * genattrtab (main): Include flags.h in insn-attrtab.c.
2035
2036         * reg-stack.c: Include reload.h.
2037
2038         * sparc.h (flag_pic): Delete redundant declaration.
2039
2040         * output.h (flag_pic): Likewise.
2041
2042         * tree.h (pedantic): Likewise.
2043
2044 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2045
2046         * Makefile.in (toplev.o, jump.o, regmove.o): Depend on reload.h
2047
2048         * jump.c, regmove.c, toplev.c: Include reload.h.
2049
2050         * reload.h (reload_cse_regs): Declare.
2051
2052         * rtl.h (find_equiv_reg, operands_match_p, safe_from_earlyclobber,
2053         reload_cse_regs, init_reload, mark_home_live, reload,
2054         init_caller_save): Delete redundant prototypes.
2055
2056 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2057
2058         * Makefile.in (ssa.o, regclass.o): Depend on $(EXPR_H).
2059
2060         * regclass.c, ssa.c: Include expr.h.
2061
2062         * rtl.h (memory_address, force_reg, emit_queue, emit_move_insn,
2063         gen_move_insn): Delete redundant declarations.
2064
2065 2001-04-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2066
2067         * Makefile.in (CFLAGS, BOOT_CFLAGS): Partly revert 2000-10-27 patch.
2068         (stage1_build): Instead pass down STAGE1_CFLAGS here. Pass down
2069         MAKEINFO and MAKEINFOFLAGS too.
2070         (stage4_build): Correctly order -B flags.
2071
2072 2001-04-13  Alan Modra  <amodra@one.net.au>
2073
2074         * pa.c (hppa_init_pic_save): Set rtx_unchanging for
2075         PIC_OFFSET_TABLE_SAVE_RTX.
2076         (zdepi_cint_p): Describe zdepi insn.
2077         Formatting and white space fixes throughout file.
2078
2079         * pa.c (uint32_operand): Don't use long constant >= 2^32.
2080         (emit_move_sequence): Use HOST_WIDE_INT constants.  Don't worry
2081         about 32->64 bit sign extension if 32 bit HOST_WIDE_INTs.
2082         (compute_movstrsi_length): Make `align' unsigned to avoid warning.
2083         (output_64bit_and): Use plain `int's for shift counts.
2084         (output_64bit_ior): Likewise.
2085         (function_arg_partial_nregs): Use unsigned vars to avoid warnings.
2086         * pa.h (CONST_OK_FOR_LETTER_P): Use HOST_WIDE_INT constants for case
2087         `N', and simplify.
2088
2089         * pa-hpux10.h (NEW_HP_ASSEMBLER): Define to 1.
2090         * pa-hpux11.h (NEW_HP_ASSEMBLER): Likewise.
2091         * pa.h (LEGITIMATE_CONSTANT_P) Collapse two defines depending on
2092         NEW_HP_ASSEMBLER into one.  Kill warnings.
2093
2094         * pa-gas.h: Delete file.
2095         * config.gcc: Match `parisc' as well as `hppa' for cpu_type=pa.
2096         Add new targets hppa*64*-*-linux* and parisc*64*-*-linux*.  Update
2097         hppa*-*-linux*.  For all pa targets, remove pa/gas.h from tm_file,
2098         instead setting MASK_GAS | MASK_JUMP_IN_DELAY in target_cpu_default2.
2099
2100         * config/pa/mill32.S: New file.
2101         * config/pa/mill64.S: New file.
2102         * config/pa/t-linux (LIBGCC1, CROSS_LIBGCC1, LIB1ASMFUNCS,
2103         LIB1ASMSRC, CRTSTUFF_T_CFLAGS_S, TARGET_LIBGCC2_CFLAGS): Define.
2104         * config/pa/t-linux64: New file.
2105         * config/pa/t-pa64 (CROSS_LIBGCC1): Change to libgcc1-asm.a
2106         (LIB1ASMFUNCS, LIB1ASMSRC): Define.
2107         (TARGET_LIBGCC2_CFLAGS): Add -Dpa64=1 -DELF=1.
2108
2109         * elfos.h (SELECT_SECTION): Undef before defining.
2110         * pa-linux.h (LINUX_DEFAULT_ELF, PTRDIFF_TYPE, CPP_SPEC): Remove.
2111         (LIB_SPEC): Remove -lmilli.
2112         (DBX_REGISTER_NUMBER): Remove.
2113         (PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO,
2114         (DWARF2_UNWIND_INFO, ASM_SPEC, LINK_SPEC, FUNCTION_OK_FOR_SIBCALL,
2115         NO_PROFILE_COUNTERS, SELECT_RTX_SECTION, INCOMING_RETURN_ADDR_RTX,
2116         DWARF_FRAME_RETURN_COLUMN, STRING_ASM_OP, TEXT_SECTION_ASM_OP,
2117         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_FILE_START,
2118         ASM_OUTPUT_DEF, ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT,
2119         ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL, ASM_DECLARE_FUNCTION_NAME,
2120         TARGET_GAS): Define.
2121         * pa.c (output_arg_descriptor): Disable for TARGET_ELF32.
2122         (function_arg): If TARGET_ELF32, pass fp args in both general and fp
2123         regs if we don't have a prototype.
2124         * pa.md (canonicalize_funcptr_for_compare): Not for TARGET_ELF32.
2125         * pa.h (TARGET_ELF32): Default to 0 if undefined.
2126         (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX,
2127         EH_RETURN_HANDLER_RTX): Define.
2128         * pa32-regs.h (DBX_REGISTER_NUMBER): Remove unnecessary test.
2129         (DWARF_FRAME_REGNUM): Define.
2130         * pa64-regs.h (DWARF_FRAME_REGNUM): Define.
2131         * pa32-linux.h: New file.
2132         * pa64-linux.h: New file.
2133
2134         * pa-64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
2135         (ASM_OUTPUT_DOUBLE_INT): Format, protect macro with do..while.
2136         (LINK_SPEC, LIB_SPEC, MD_EXEC_PREFIX, MD_STARTFILE_PREFIX,
2137         NEW_HP_ASSEMBLER, ASM_FILE_START, OBJECT_FORMAT_ELF,
2138         DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_FORMAT,
2139         DWARF2_ASM_LINE_DEBUG_INFO, USE_CONST_SECTION, CONST_SECTION_ASM_OP,
2140         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
2141         FINI_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
2142         READONLY_DATA_SECTION, CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION,
2143         DTORS_SECTION_FUNCTION, ASM_OUTPUT_SECTION_NAME, MAKE_DECL_ONE_ONLY,
2144         UNIQUE_SECTION_P, UNIQUE_SECTION, INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
2145         ASM_OUTPUT_DESTRUCTOR, TYPE_ASM_OP, SIZE_ASM_OP, ASM_WEAKEN_LABEL,
2146         TYPE_OPERAND_FMT, ASM_DECLARE_RESULT): Move to..
2147         * pa64-hpux.h: New file.
2148         (ASM_FILE_START): Correct typo.
2149         (PREFERRED_DEBUGGING_FORMAT): Rename to PREFERRED_DEBUGGING_TYPE.
2150         * config.gcc: Modify for above.
2151
2152 Fri Apr 13 00:09:22 EDT 2001  John Wehle  (john@feith.com)
2153
2154         * jump.c (jump_optimize_1): Don't delete dead stores here.
2155         * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns
2156         prior to running jump optimize before cse2.
2157
2158 2001-04-12  Richard Henderson  <rth@redhat.com>
2159
2160         * Makefile.in (regmove.o): Depend on except.h.
2161         * regmove.c: Include it.
2162
2163 2001-04-12  Stan Shebs  <shebs@apple.com>
2164
2165         * objc/objc-act.c: Remove all code ifdefed with the never-used
2166         macro OBJC_INT_SELECTORS.
2167         * config/d30v/d30v.h: Remove commented-out ref to OBJC_INT_SELECTORS.
2168         * tm.texi: Remove doc for OBJC_INT_SELECTORS.
2169
2170 Thu Apr 12 18:13:37 2001  Rodney Brown  <RodneyBrown@mynd.com>
2171
2172         * config/pa/quadlib.c: Add prototypes.
2173
2174 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2175
2176         * bitmap.h (debug_bitmap): Delete redundant prototype.
2177
2178         * rtl.h (get_frame_size): Likewise.
2179
2180 2001-04-12  Jim Wilson  <wilson@redhat.com>
2181
2182         * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Simplify
2183         to just emit an fnorm.
2184
2185 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2186
2187         * c-common.h (truthvalue_conversion, type_for_mode,
2188         type_for_size): Delete redundant declarations.
2189
2190         * c-lex.h (is_class_name): Likewise.
2191
2192         * c-tree.h (pedantic, convert, getdecls, gettags,
2193         global_bindings_p, init_decl_processing, insert_block,
2194         maybe_build_cleanup, poplevel, print_lang_decl,
2195         print_lang_identifier, print_lang_type, pushdecl, pushlevel,
2196         set_block, incomplete_type_error, build_function_call,
2197         lvalue_or_else, mark_addressable): Likewise.
2198
2199         * expr.h (expand_tree_builtin): Likewise.
2200
2201 2001-04-12  Mark Mitchell  <mark@codesourcery.com>
2202
2203         * invoke.texi: Document --param max-gcse-memory.
2204
2205 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2206
2207         * configure.in (errno): Check for declaration.
2208         * configure, config.in: Regenerated.
2209
2210         * system.h (errno): Only declare if not already done.
2211
2212 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
2213
2214         * recog.c (general_operand, immediate_operand,
2215         nonmemory_operand): Require CONST_INTs to be sign-extended
2216         values for their modes.
2217
2218 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
2219
2220         * expmed.c (store_bit_field): Truncate CONST_INTs.
2221         (expand_mult_highpart, expand_divmod): Likewise.
2222         * expr.c (convert_modes, store_field): Likewise.
2223         * integrate.c (expand_inline_function): Use promote_mode() to
2224         determine whether to convert_modes() an argument as signed
2225         or unsigned.
2226         * optabs.c (expand_binop): Get CONST_INT operands
2227         sign-extended for their appropriate modes.
2228         * stmt.c (emit_case_nodes): Convert node values to the
2229         appropriate mode.
2230         (expand_end_case): Convert minval and range to the appropriate
2231         mode.
2232         * unroll.c (loop_iterations): Truncate abs_diff to the mode of
2233         the iteration variable.
2234         * varasm.c (immed_double_const): Don't require words to be
2235         narrower than host wide ints to properly sign-extend
2236         CONST_INTs.
2237
2238 2001-04-12  kaz Kojima  <kkojima@rr.iij4u.or.jp>
2239
2240         * sh.md (builtin_setjmp_receiver): New expander.
2241
2242 2001-04-12  David Edelsohn  <dje@watson.ibm.com>
2243
2244         * config/rs6000/rs6000.c (rs6000_emit_move): Do not
2245         special-case HOST_BITS_PER_WIDE_INT != 32.  Use same criteria
2246         for generating CONST_INT and CONST_DOUBLE.
2247
2248 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
2249
2250         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
2251         already sign-extended.
2252         (rs6000_emit_prologue): Make register iterator signed.
2253         (rs6000_emit_epilogue): Likewise.
2254         * config/rs6000/rs6000.md (addsi3, adddi3): Sign-extend high
2255         and low.
2256         (movsf split, movdf split): Sign-extend CONST_INTs.
2257         (movdi splits): Likewise.
2258
2259 2001-04-12  Kelley Cook <kelley.cook@home.com>
2260
2261         * config-lang.in (lang_dirs): Add in zlib.
2262
2263 2001-04-11  Alexandre Oliva  <aoliva@redhat.com>
2264
2265         * config/i386/i386.md: Apply trunc_int_for_mode() to GEN_INT
2266         operands that make it to RTL.
2267
2268 2001-04-11  Stan Shebs  <shebs@apple.com>
2269
2270         Add Darwin (Mac OS X kernel) native support.
2271         * config.gcc (powerpc-*-darwin*): Add native bits.
2272         * config/darwin.c: New file, generic Darwin support functions.
2273         * config/darwin.h: New file, generic Darwin definitions.
2274         * config/darwin-protos.h: New file, generic Darwin prototypes.
2275         * rs6000/darwin.h: New file, Darwin for PowerPC.
2276         * rs6000/t-darwin: New file, Darwin makefile fragment.
2277         * rs6000/rs6000.h (OBJECT_MACHO): New macro.
2278         (TARGET_MACHO): Ditto.
2279         (rs6000_abi): Add ABI_DARWIN.
2280         (RS6000_REG_SAVE): Add ABI_DARWIN case.
2281         (RS6000_SAVE_AREA): Ditto.
2282         (FP_ARG_MAX_REG): Ditto.
2283         (RETURN_ADDRESS_OFFSET): Ditto.
2284         * rs6000/rs6000.c (rs6000_legitimize_address): Add TARGET_MACHO
2285         cases.
2286         (rs6000_emit_move): Add ABI_DARWIN cases.
2287         (print_operand): Ditto.
2288         (first_reg_to_save): Ditto.
2289         (rs6000_stack_info): Ditto, also align stack by 16 instead of 8.
2290         (debug_stack_info): Ditto.
2291         (rs6000_emit_prologue): Ditto.
2292         (rs6000_emit_epilogue): Ditto.
2293         (output_profiler_hook): Ditto.
2294         (output_function_profiler): Ditto.
2295         (rs6000_add_gc_roots): Call machopic_add_gc_roots if TARGET_MACHO.
2296         (output_mi_thunk): Add TARGET_MACHO case.
2297         (add_compiler_stub): Ditto.
2298         (output_compiler_stub): Ditto.
2299         (no_previous_def): Ditto.
2300         (output_call): Ditto.
2301         (machopic_output_stub): Ditto.
2302         (rs6000_machopic_legitimize_pic_address): Ditto.
2303         (toc_section): Ditto.
2304         * rs6000/rs6000.md (addsi3_high): New TARGET_MACHO pattern.
2305         (macho_high): Ditto.
2306         (macho_low): Ditto.
2307         (movsi_low): Ditto.
2308         (load_macho_picbase): Ditto.
2309         (call): Add TARGET_MACHO case to modify function.
2310         (call_value): Ditto.
2311         (call_nonlocal_sysv): Add ABI_DARWIN case.
2312         (call_value_nonlocal_sysv): Ditto.
2313         * rs6000/rs6000-protos.h (rs6000_machopic_legitimize_pic_address):
2314         Add prototype.
2315         (machopic_output_stub): Ditto.
2316         * ginclude/stddef.h: Test _BSD_WCHAR_T_DEFINED_.
2317
2318 2001-04-11  Mark Mitchell  <mark@codesourcery.com>
2319
2320         * dwarf2out.c (modified_type_die): Don't create new types here.
2321         * tree.h (get_qualified_type): New function.
2322         (build_qualified_type): Adjust comment.
2323         * tree.c (get_qualified_type): New function.
2324         (build_qualified_type): Use it.
2325
2326 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2327
2328         * cpp.texi (-Wtraditional): Update description.
2329
2330         * invoke.texi (-Wtraditional): Likewise.
2331
2332 2001-04-11  Jim Wilson  <wilson@redhat.com>
2333
2334         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Return 128 if argument
2335         requires more than 64 bits of alignment.
2336
2337 2001-04-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2338
2339         * cpplib.c (do_line): Sanity check iff enable checking.
2340
2341 2001-04-11  Richard Henderson  <rth@redhat.com>
2342
2343         * Makefile.in (insn-recog.o): Depend on toplev.h.
2344         (insn-emit.o, doloop.o): Likewise.
2345         * genrecog.c, genemit.c: Include toplev.h in generated file.
2346         * doloop.c: Include toplev.h.
2347
2348 2001-04-11  Mark Mitchell  <mark@codesourcery.com>
2349
2350         * Makefile.in (gcse.o): Depend on params.h.
2351         * gcse.c: Include params.h.
2352         (gcse_main): Don't do GCSE if doing so will take inordinate
2353         amounts of memory.
2354         * params.def (PARAM_MAX_GCSE_MEMORY): New  parameter.
2355         * params.h (MAX_GCSE_MEMORY): New macro.
2356
2357 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2358
2359         * Makefile.in (insn-output.o): Depend on $(EXPR_H).
2360
2361         * genoutput.c (output_prologue): Include expr.h in insn-output.c.
2362
2363 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2364
2365         * output.h (assemble_real): Declare if REAL_VALUE_TYPE is defined.
2366
2367         * real.h (ereal_atof, real_value_truncate, target_isnan,
2368         target_isinf, target_negative, assemble_real, debug_real): Delete
2369         redundant prototypes.
2370
2371         * Makefile.in (ifcvt.o): Depend on toplev.h.
2372
2373         * c-semantics.c: Include expr.h.
2374
2375         * ifcvt.c: Include toplev.h.
2376
2377         * expr.h (rtx_equal_p): Delete prototype.
2378
2379         * rtl.h (exact_log2_wide, floor_log2_wide, permalloc,
2380         protect_from_queue, gen_jump, gen_beq, gen_bge, gen_ble,
2381         eliminate_constant_term, expand_complex_abs, find_single_use,
2382         make_tree, init_expr_once, init_optabs, supports_one_only):
2383         Likewise.
2384
2385         * tree.h (exact_log2_wide, floor_log2_wide, expand_null_return,
2386         rest_of_type_compilation, emit_queue, do_pending_stack_adjust,
2387         expand_assignment, store_expr, emit_line_note_after,
2388         emit_line_note_force, split_specs_attrs, label_rtx): Likewise.
2389
2390         * toplev.h (exact_log2_wide, floor_log2_wide): Add prototype.
2391
2392         * sparc-protos.h: Delete redundant prototypes.
2393
2394 2001-04-11  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
2395
2396         * reload.c (push_reload): Add condition missed in SUBREG byte
2397         offset patch.
2398
2399 Wed Apr  4 00:28:23 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2400
2401         * sparc/sol2-sld-64.h (STARTFILE_SPEC): Added missing blank.
2402
2403 Wed Apr 11 14:06:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
2404
2405         * i386.md (floatsisf_sse): Fix output template
2406         * i386.c (ix86_expand_fp_movcc)
2407
2408         * reg-stack.c (emit_pop_insn): Handle complex modes.
2409         (move_for_stack_reg): Emit proper move mode.
2410         (subst_stack_regs_pat): Handle complex modes.
2411
2412 2001-04-11  Jakub Jelinek  <jakub@redhat.com>
2413
2414         * cpplex.c (_cpp_lex_token): Only warn if -Wcomment.
2415
2416 2001-04-10  Richard Henderson  <rth@redhat.com>
2417
2418         * libgcc2.h (__terminate_func_ptr): Remove typedef.
2419         (__pure_virtual, __terminate, __terminate_set_func,
2420         __default_terminate, __throw_type_match, __empty,
2421         __get_eh_context, __get_eh_info, __get_dynamic_handler_chain,
2422         __eh_rtime_match, __unwinding_cleanup, __rethrow,
2423         __sjthrow, __sjpopnthrow, __eh_alloc, __eh_free):
2424         Remove prototypes of deleted functions.
2425
2426 2001-04-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2427
2428         * c-typeck.c (convert_arguments): -Wtraditional now activates
2429         -Wconversion warnings, except for changes in signed-ness.
2430         Detect complex<->int & int<->complex conversions as well.
2431
2432         * invoke.texi (-Wtraditional): Document it.
2433
2434 Tue Apr 10 17:45:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2435
2436         * gcse.c (update_ld_motion_stores): Don't use variable I for an insn.
2437         * flow.c (set_block_for_new_insns): Remove needless cast and
2438         properly check for unset block number.
2439
2440 2001-04-10  Andrew MacLeod  <amacleod@redhat.com>
2441
2442         * function.c (purge_single_hard_subreg_set): Only check REGNO if
2443         the subreg was a hard register. Pseudos are left as subregs.
2444
2445 2001-04-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2446
2447         * Makefile.in (LIB2FUNCS_STATIC_EXTRA): New macro.
2448         (LIB2ADD_ST): New macro, pass it to mklibgcc.
2449         * mklibgcc.in (libgcc2_st_objs): New variable, set it from LIB2ADD_ST.
2450         (libgcc_st_objs): New, set from libgcc2_st_objs. Use it for libgcc.a.
2451         * config/rs6000/t-ppccomm (LIB2FUNCS_STATIC_EXTRA): New macro.
2452
2453 2001-04-09  Bo Thorsen  <bo@suse.co.uk>
2454
2455         * config/i386/i386.md: "TARGET_64BIT && TARGET_64BIT": Removed one.
2456
2457 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
2458
2459         * output.h (set_block_num): Missed it earlier, remove deprecated
2460         prototype.
2461
2462 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
2463
2464         * gcse.c (oprs_unchanged_p): Pass basic_block to load_killed_in_block_p.
2465         (load_killed_in_block_p): Change bb parameter from int to basic_block.
2466         (oprs_not_set_p): Pass basic_blocks instead of ints as parameters.
2467         (handle_rd_kill_set): Change bb parameter from int to basic_block.
2468         (compute_kill_rd): Pass basic_blocks instead of ints as parameters.
2469         (expr_killed_p): Change bb parameter from int to basic_block, pass
2470         basic_blocks instead of ints as parameters.
2471         (compute_ae_kill): Pass basic_blocks instead of ints as parameters.
2472         (expr_reaches_here_p_work, expr_reaches_here_p): Change bb parameter
2473         from int to basic_block, pass basic_blocks instead of ints as parms.
2474         (pre_expr_reaches_here_p_work, pre_expr_reaches_here_p): Change bb
2475         parameter from int to basic_block, pass basic_blocks instead of ints.
2476         (process_insert_insn): Pass basic_blocks instead of ints as parameters.
2477         (insert_insn_end_bb): Change bb parameter from int to basic_block,
2478         pass basic_blocks instead of ints.
2479         (pre_edge_insert, pre_insert_copy_insn, pre_insert_copies): Pass
2480         basic_blocks instead of ints as parameters.
2481         (pre_delete): Pass basic_blocks instead of ints as parameters.
2482         (hoist_expr_reaches_here_p): Change bb parameter from int to
2483         basic_block, pass basic_blocks instead of ints.
2484         (hoist_code): Pass basic_blocks instead of ints as parameters.
2485         (reg_set_info, store_ops_ok, store_killed_after, store_killed_before):
2486         Change bb parameter from int to basic_block.
2487         (build_store_vectors): Pass basic_blocks instead of ints as parameters.
2488         (insert_insn_start_bb): Change bb parameter from int to basic_block,
2489         pass basic_blocks instead of ints.
2490         (insert_store): Pass basic_blocks instead of ints as parameters.
2491         (replace_store_insn, delete_store): Change bb parameter from int to
2492         basic_block, pass basic_blocks instead of ints.
2493         (store_motion): Pass basic_blocks instead of ints as parameters.
2494
2495 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
2496
2497         * basic-block.h (set_new_block_for_insns): New Prototype.
2498         (set_block_num): Delete prototype.
2499         * flow.c (set_block_num): Remove obsolete function.
2500         (set_block_for_new_insns): Set BB for single or multiple insns.
2501         * gcse.c (handle_avail_expr): Use set_block_for_new_insns.
2502         (process_insn_end_bb): Use set_block_for_new_insns or
2503         set_block_for_insn instead of set_block_num.
2504         (pre_insert_copy_insn): Use set_block_for_new_insns.
2505         (update_ld_motion_stores): Use set_block_for_new_insns.
2506         (insert_insn_start_bb): Use set_block_for_new_insns.
2507         (replace_store_insn): Use set_block_for_new_insns.
2508
2509 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
2510             Jeff Law  <law@redhat.com>
2511
2512         * alias.c (get_addr): Externalize.
2513         (canon_true_dependence): New function. Behaves like true_dependance
2514         except it already assumes a MEM has been canonicalized.
2515         * flags.h (flag_gcse_lm, flag_gcse_sm): New optimization flags.
2516         * gcse.c (struct ls_expr): Add load/store expressions structure.
2517         (modify_mem_list, canon_modify_mem_list): New variable.
2518         (gcse_main): Initialize & finalize alias analysis. Use enhanced
2519         load motion and store motion if requested.
2520         (alloc_gcse_mem): Allocate space for modify_mem_list array.
2521         (free_gcse_mem): Free the modify_mem_list array.
2522         (oprs_unchanged_p): Use load_killed_in_block_p.
2523         (gcse_mems_conflict_p, gcse_mem_operand): New variables.
2524         (mems_conflict_for_gcse_p): New function.  Don't kill loads
2525         with stores to themselves if its in the load/store expression list.
2526         (load_killed_in_block_p): New function.
2527         (canon_list_insert): New Function.
2528         (record_last_mem_set_info): Keep a list of all instructions which
2529         can modify memory for each basic block.
2530         (compute_hash_table, reset_opr_set_tables): Clear modify_mem_list.
2531         (oprs_not_set_p): Use load_killed_in_block_p.
2532         (mark_call, mark_set, mark_clobber): Use record_last_mem_set_info.
2533         (expr_killed_p): Use load_killed_in_block_p.
2534         (compute_transp): Do not pessimize memory references.
2535         (pre_edge_insert): Update stores for a load motion expression.
2536         (one_pre_gcse_pass): Check loads/stores for extra load motion.
2537         (ldst_entry): Find or create a ldst_expr structure.
2538         (free_ldst_entry): Free memory for an individual item.
2539         (free_ldst_mems): Free entire load/store expression list.
2540         (print_ldst_list): Print debug info.
2541         (find_rtx_in_ldst): Try to find an rtx expression in the ldst list.
2542         (enumerate_ldsts): Assign integer values to each entry in list.
2543         (first_ls_expr): First expression in the list.
2544         (next_ls_expr): Next expression in the list.
2545         (simple_mem): Check if expression qualifies for ld/st expression list.
2546         (invalidate_any_buried_refs): Remove from expression list if its
2547         used in some other way we dont understand.
2548         (compute_ld_motion_mems): Find all potential enhanced load motion
2549         expression.
2550         (trim_ld_motion_mems): Remove any expressions which are invalid.
2551         (update_ld_motion_stores): Copy store values to registers for loads
2552         which have been moved.
2553         (regvec, st_antloc, num_store): New global statics.
2554         (reg_set_info): Marks registers as set.
2555         (store_ops_ok): Verfies registers expressions are valid in a block.
2556         (find_moveable_store): Look for moveable stores in a pattern.
2557         (compute_store_table): Find stores in a function worth moving, maybe.
2558         (load_kills_store): Check dependance of a load and store.
2559         (find_loads): Find any loads in a pattern.
2560         (store_killed_in_insn): Check if a store is killed in an insn.
2561         (store_killed_after): Check is store killed after an insn in a block.
2562         (store_killed_before): Check is store killed before an insn in a block.
2563         (build_store_vectors): Generate the antic and avail vectors.
2564         (insert_insn_start_bb): Insert at the start of a BB, update BLOCK_HEAD.
2565         (insert_store): Add a store to an edge.
2566         (replace_store_insn): Replace a store with a SET insn.
2567         (delete_store): Delete a store insn.
2568         (free_store_memory): Free memory.
2569         (store_motion): Perform store motion.
2570         * invoke.texi: Add documentation for -fcse-lm and -fgcse-sm.
2571         * rtl.h (get_addr, canon_true_dependence): Add prototypes.
2572         * toplev.c (flag_gcse_lm, flag_gcse_sm): New Variables.
2573         (f_options): Add gcse-lm and gcse-sm.
2574
2575 Mon Apr  9 16:18:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
2576
2577         * i386.c (expand_fp_movcc): Fix condition reversal code.
2578
2579         * i386.c (ix86_register_move_cost): Fix handling of reformating penalty
2580         * i386.h (INTEGER_CLASS_P, MAYBE_INTEGER_CLASS_P): New.
2581         (CLASS_MAX_NREGS): Use it.
2582
2583         * i386.h (HARD_REGNO_NREGS): Handle properly TF and TCmodes on 64bit;
2584         handle properly complex values.
2585         (CLASS_MAX_NREGS): Likewise; update comment.
2586
2587 2001-04-05  Bernd Schmidt  <bernds@redhat.com>
2588
2589         * ia64.c (ia64_flag_schedule_insns2): New variable.
2590         (ia64_override_options): Initialize it.  Clear
2591         flag_schedule_insns_after_reload.
2592         (ia64_reorg): Only do scheduling if ia64_flag_schedule_insns2.
2593
2594 Mon Apr  9 15:09:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
2595
2596         * i386.md (truncdfsf2_*): Add i387->int/sse reg alternatives;
2597         Do not require source to match destination anymore;
2598         Add abort to the nontrivial cases that should be handled by split.
2599         (fix_trunc?fdi): Add SSE case for x86_64.
2600         (floatdi?f): Likewise.
2601         (floatdi?f_sse): New.
2602         (fix_trunc?fdi_sse): New.
2603
2604 2001-04-09  Richard Sandiford   <rsandifo@redhat.com>
2605
2606         * dwarfout.c (DEBUG_ARANGES_BEGIN_LABEL): New label.
2607         (DEBUG_ARANGES_END_LABEL): Ditto.
2608         (dwarfout_init): Generate length and version fields at the start
2609         of the .debug_aranges info.  Insert DEBUG_ARANGES_BEGIN_LABEL
2610         after the length field.
2611         (dwarfout_finish): Insert DEBUG_ARANGED_END_LABEL at the end of
2612         the .debug_aranges info.
2613
2614 Sun Apr  8 00:43:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
2615
2616         * i386.c (call, call_value): Make sure that resulting call_insn
2617         does have proper second operand.
2618
2619 Sun Apr  8 22:50:49 2001  Christopher Faylor <cgf@cygnus.com>
2620
2621         * config/i386/xm-cygwin.h (GET_ENV_PATH_LIST): Eliminate obsolete
2622         function.  Remove include of sys/cygwin.h.
2623
2624 Sun Apr  8 22:20:27 2001  Christopher Faylor <cgf@cygnus.com>
2625
2626         * config/i386/cygwin.h (STARTFILE_SPEC): search */lib/w32api by default.
2627         (CPP_SPEC): Always search */include/w32api for header files.
2628         (ASM_OUTPUT_SECTION_NAME): Avoid testing NULL DECL.
2629         (LINK_SPEC): Add "cyg" to the library search prefixes.
2630
2631 2001-04-08  Philip Blundell  <philb@gnu.org>
2632
2633         * config/arm/arm.h (ASM_OUTPUT_LABELREF): Use asm_fprintf.
2634
2635 2001-04-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2636
2637         * cpperror.c (print_location): Don't special case <stdin>.
2638         (_cpp_begin_message): Handle WARNING_SYSHDR the same as
2639         WARNING, but we don't check if we're in system headers.
2640         * cpplib.h (enum error_type): WARNING_SYSHDR: New.
2641         * cpplib.c (do_warning): Warn in system headers.
2642
2643 2001-04-07  Mumit Khan <khan@NanoTech.Wisc.EDU>
2644
2645         * mbchar.c: Include config.h first.
2646
2647 2001-04-07  Zack Weinberg  <zackw@stanford.edu>
2648
2649         * config.gcc: Set default for xmake_file at top, not bottom.
2650         Change places that set xmake_file to "none" to set to the
2651         empty string instead, or remove them entirely if there is no
2652         default xmake_file for this cpu_type.  Remove references to
2653         deleted files.
2654
2655         * config/x-lynx, config/convex/x-convex, config/elxsi/x-elxsi,
2656         config/i386/x-isc, config/i386/x-isc3, config/i386/x-ncr3000,
2657         config/i386/x-next, config/i386/x-sco, config/i386/x-sysv3,
2658         config/i386/x-vsta, config/i860/x-sysv4, config/m68k/x-amix,
2659         config/m68k/x-apollo68, config/m68k/x-ccur, config/m68k/x-crds,
2660         config/m68k/x-hp2bsd, config/m68k/x-mot3300, config/m68k/x-mot3300-gas,
2661         config/m68k/x-tower, config/m88k/x-sysv4, config/mips/x-dec-osf1,
2662         config/mips/x-sni-svr4, config/mips/x-ultrix, config/romp/x-mach,
2663         config/romp/x-romp, config/rs6000/x-beos, config/rs6000/x-lynx,
2664         config/rs6000/x-mach, config/rs6000/x-sysv4, config/sparc/x-sysv4:
2665         Delete.
2666
2667         * config/a29k/x-unix, config/i386/x-aix, config/i386/x-osf1elf,
2668         config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
2669         config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
2670         config/mips/x-sysv, config/rs6000/x-aix31:
2671         Just set CLIB to -lld or -lmld, as appropriate.
2672
2673         * config/arm/x-riscix, config/i370/x-oe, config/i386/x-dgux,
2674         config/i386/x-sco4, config/i386/x-sco5, config/m68k/x-hp320,
2675         config/m68k/x-hp320g, config/m68k/x-next, config/m88k/x-dgux,
2676         config/mips/x-iris, config/pa/x-pa:
2677         Just set (some of) FIXPROTO_DEFINES, STMP_FIXPROTO,
2678         OTHER_FIXINCLUDES_DIRS.
2679
2680         * config/i386/x-djgpp: Don't set LN or LN_S.
2681         * config/m88k/x-dolph: Don't define __m88k__.
2682         * config/m88k/x-tekXD88: Don't set AR_FLAGS.
2683         * config/pa/x-pa-mpeix: Just set up quadlib.asm.
2684         * config/i860/fx2800.h: No need to #undef SVR4.
2685
2686         38 x-host fragments remain, 2 x-cpu.
2687
2688 2001-04-07  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2689
2690         * c4x.h (HARD_REGNO_NREGS): HCmode mode uses 2 regs not 4.
2691
2692 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2693
2694         * cpplib.c (cpp_push_buffer): Give stdin buffers the name <stdin>.
2695
2696 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2697
2698         * configure.in: Add check for lstat.
2699         * configure, config.in: Regenerate.
2700         * cppinit.c (append_include_chain): Make empty path ".".
2701         * cpplib.c (do_line): Don't simplify #line paths.
2702         * cppfiles.c (remove_component_p): New function.
2703         (find_or_create_entry): Acknowledge stat () errors during
2704         path simplification.
2705         (handle_missing_header): Don't simplify paths.
2706         (_cpp_simplify_pathname): Don't simplify VMS paths.  Return
2707         the empty path untouched.  Don't leave a trailing '/'.
2708
2709 2001-04-06  Benjamin Kosnik  <bkoz@redhat.com>
2710
2711         * cppdefault.c (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
2712         * Makefile.in (-DGPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
2713
2714 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2715
2716         * cppfiles.c (open_file): Fail directories silently, but
2717         with an errno of NOENT set.
2718         (read_include_file): Move the common exit code to the sole
2719         caller.  Return an int indicating success or failure.  Let
2720         open_file handle directories.
2721         (stack_include_file): If read_include_file fails,
2722         push a "null" buffer.
2723
2724 2001-04-05  DJ Delorie  <dj@redhat.com>
2725
2726         * function.h (virtuals_instantiated): Declare.
2727         * function.c: (virtuals_instantiated): Make global.
2728         * calls.c (emit_library_call_value_1): Use
2729         virtual_outgoing_args_rtx only if it hasn't been instantiated.
2730         Otherwise, use the stack pointer directly.
2731
2732 Thu Apr  5 19:13:33 CEST 2001  Jan Hubicka  <jh@suse.cz>
2733
2734         * i386.c (x86_initialize_trampoline): New global function.
2735         * i386.h (TRAMPOLINE_SIZE): Size is 23 for x86_64.
2736         (INITIALIZE_TRAMPOLINE): Move offline.
2737         * i386-protos.h (x86_initialize_trampoline): Declare.
2738
2739 Thu Apr  5 19:02:15 CEST 2001  Jan Hubicka  <jh@suse.cz>
2740
2741         * i386.md (movdi_1_rex64): Allow SSE->SSE reg move.
2742         (lea_0): Rename to lea_1.
2743         (lea_1_zext, lea_1_rex64, lea_2_rex64): New patterns.
2744         (lea_general_?): Allow SImodes on TARGET_64BIT
2745         (lea_general_?_zext): New patterns.
2746         (call_1, call_1_rex64): Fix.
2747
2748 Thu Apr  5 19:00:15 CEST 2001  Jan Hubicka  <jh@suse.cz>
2749
2750         * i386.c (ix86_split_long_move): Use PUT_MODE instead of change_address.
2751
2752 Thu Apr  5 18:25:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
2753
2754         * i386.c (function_arg): Return constm1_rtx for last argument.
2755         (ix86_expand_prologue): Update gen_call calls.
2756         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
2757         * i386.md (call_pop): Likewise.
2758         (call): Second operand is VOIDmode.
2759         (call_0): Likewise; Support 64bits.
2760         (call_exp): New expander.
2761         (call_1): Get to the sync.
2762         (call_1_exp): New pattern.
2763         (call_value): Support 64bit.
2764         (call_value_exp): New pattern.
2765         (untyped_call): Update gen_call call.
2766         (call_value_pop): Disable for 64bit.
2767         (call_value_0_rex64): New pattern.
2768         (call_value_1_rex64): Likewise.
2769
2770 2001-04-05  Bo Thorsen  <bo@suse.de>
2771
2772         * i386.md: Don't allow "builtin_setjmp_receiver" for TARGET_64BIT.
2773
2774 Thu Apr  5 13:44:17 2001  J"orn Rennecke <amylaar@redhat.com>
2775
2776         * i386.md (*andsi_1+3): If used after reload, make sure the operand
2777         satisfies ANY_QI_REG_P.
2778
2779 2001-04-05  Bernd Schmidt  <bernds@redhat.com>
2780
2781         * config/ia64/ia64.c (rtx_needs_barrier): A PARALLEL can contain
2782         ASM_OPERAND.
2783
2784         * sched-deps.c (sched_analyze_insn): Revert more of the March 27
2785         change.
2786
2787 2001-04-04  Zack Weinberg  <zackw@stanford.edu>
2788
2789         * config.gcc: Remove default for xm_file.  Clean up local
2790         machine type handling.  Remove settings of xm_file to
2791         something that doesn't exist.  In the big switch, set xm_file,
2792         don't append to it (the value before the big switch is always
2793         null).  Don't force build_xm_file or host_xm_file to have a value.
2794         * configure.in: Remove default for xm_file.  Do not special
2795         case $cpu/xm-$cpu.h not existing.
2796         * configure: Regenerate.
2797
2798 2001-04-04  Diego Novillo  <dnovillo@redhat.com>
2799
2800         * simplify-rtx.c (simplify_binary_operation): Check for overflow
2801         when folding integer division and modulo operations.
2802
2803 2001-04-04  Andrew MacLeod  <amacleod@redhat.com>
2804
2805         * dwarf2out.c (output_cfi): Add 'for_eh' parameter, use PTR_SIZE
2806         instead of DWARF2_ADDR_SIZE for EH addresses.
2807         (output_call_frame_info): Use PTR_SIZE instead of DWARF2_ADDR_SIZE for
2808         EH addresses.
2809
2810 2001-04-04  Richard Henderson  <rth@redhat.com>
2811
2812         * config/ia64/ia64.h (IA64_UNWIND_INFO): Disable.
2813         * config/ia64/t-glibc (LIB2ADDEH): Disable.
2814         * config/ia64/t-ia64 (LIB2ADDEH): Disable.
2815
2816 2001-04-04  Richard Henderson  <rth@redhat.com>
2817
2818         * configure.in (gcc_cv_as_leb128): Escape "." in regexp.
2819         * configure: Rebuilt.
2820
2821 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
2822
2823         * gcse.c (delete_null_pointer_checks_1): Add delete_list argument,
2824         push insns to delete to it instead of deleting them.
2825         (delete_null_pointer_checks): Delete insns from delete_list after
2826         all delete_null_pointer_checks_1 passes are done.
2827
2828 2001-04-04  Richard Henderson  <rth@redhat.com>
2829
2830         * configure.in (gcc_cv_as_leb128): Tweek minor number extraction.
2831         * configure: Rebuilt.
2832
2833 2001-04-04  Zack Weinberg  <zackw@stanford.edu>
2834
2835         * expr.h: Remove #ifdef FUNCTION_CONVERSION_BUG logic.
2836         * config/romp/xm-romp.h: Delete.
2837
2838 2001-04-04  Bernd Schmidt  <bernds@redhat.com>
2839
2840         * sched-deps.c (sched_analyze_insn): Partially revert March 27
2841         change.
2842
2843 2001-04-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2844
2845         * emit-rtl.c (mark_label_nuses) Increment the label uses for
2846         all labels present in rtx.
2847         (try_split) Call new function for all split insns.
2848
2849 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
2850
2851         * recog.c (validate_replace_rtx_1): Instead of aborting just make
2852         sure the change won't be validated.
2853
2854 Wed Apr  4 00:45:38 EDT 2001  John Wehle  (john@feith.com)
2855
2856         * rtl.h (set_noop_p): Declare.
2857         * flow.c (set_noop_p): Move from here ...
2858         * rtlanal.c (set_noop_p): ... to here and enhance.
2859         * cse.c (delete_trivially_dead_insns): Use it.
2860         * gcse.c (hash_scan_set): Likewise.
2861         * jump.c (delete_noop_moves): Likewise.
2862         * recog.c (split_all_insns): Likewise.
2863
2864 2001-04-04  Alan Modra  <alan@linuxcare.com.au>
2865
2866         * dwarf2out.c (dwarf2out_frame_debug_expr): Support adjusting
2867         stack pointer via a LO_SUM.  Ditto for setting a temp register
2868         used to save to the stack.  Set cfa_temp when setting fp, and
2869         allow matches to cfa_temp in addition to cfa_store when saving
2870         regs.  Handle POST_INC and LO_SUM register stores.  Document the
2871         changes and errors in rule 12 doco.
2872
2873         * pa.c (set_reg_plus_d, store_reg, load_reg): Return last insn.
2874         (actual_fsize, local_fsize, save_fregs): Move for store_reg to see.
2875         (load_reg): Move closer to epilogue code.
2876         (DO_FRAME_NOTES): Define to control the following..
2877         (FRP): Define to set RTX_FRAME_RELATED_P on insns.
2878         (hppa_expand_prologue): Use FRP and REG_FRAME_RELATED_EXPR
2879         notes as necessary.
2880         (hppa_expand_epilogue): Likewise.
2881
2882 2001-04-03  Richard Henderson  <rth@redhat.com>
2883
2884         * configure.in (gcc_cv_as_leb128): Reject gas before 2.11.
2885         * configure: Rebuild.
2886
2887 2001-04-03  Richard Henderson  <rth@redhat.com>
2888
2889         * rtl.h (LCT_THROW): New.
2890         * calls.c (emit_library_call_value_1): Handle it.
2891         * except.c (connect_post_landing_pads): Use it.
2892
2893 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
2894
2895         * gansidecl.h: Delete file.
2896         * configure.in: Change all refs to gansidecl.h to use
2897         ansidecl.h.  Adjust *_file_list so they know where ansidecl.h
2898         lives.
2899         * configure: Regenerate.
2900
2901         * Makefile.in (intl.o): Don't depend on gansidecl.h.
2902         * defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
2903         * ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
2904         Don't include gansidecl.h.
2905         * intl.c, main.c, version.c, fixinc/fixlib.h,
2906         fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
2907         gansidecl.h.
2908
2909 Tue Apr  3 19:41:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
2910
2911         * i386.c (ix86_force_to_memory, ix86_free_from_memory):
2912         Update for 64bit.
2913
2914 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
2915
2916         * config/i386/xm-beos.h, config/i386/xm-isc.h,
2917         config/i386/xm-next.h, config/i386/xm-sco.h,
2918         config/i386/xm-sco5.h, config/m68k/xm-plexus.h,
2919         config/m88k/xm-m88k.h: Delete.
2920
2921         * config/i386/xm-djgpp.h: Don't define __MSDOS__.
2922         * config/romp/xm-romp.h: Don't define bcopy.
2923         * config/rs6000/xm-beos.h: Don't define bcopy, HAVE_VPRINTF,
2924         HAVE_PUTENV, HAVE_RENAME, or USE_C_ALLOCA.
2925
2926         * config.gcc: Remove references to deleted files.
2927
2928         14 xm-host.h remain, 1 xm-cpu.h.
2929
2930 2001-04-03  Jakub Jelinek  <jakub@redhat.com>
2931             David S. Miller  <davem@pierdol.cobaltmicro.com>
2932             Andrew MacLeod  <amacleod@redhat.com>
2933
2934         Use byte offsets in SUBREGs instead of words.
2935
2936         * alias.c (nonlocal_mentioned_p): Use subreg_regno function.
2937         * caller-save.c (mark_set_regs): Change callers of subreg_hard_regno
2938         to pass new argument.
2939         (add_stored_regs): Use subreg_regno_offset function.
2940         * calls.c (expand_call): For non-paradoxical SUBREG take endianess
2941         into account.
2942         (precompute_arguments): Use gen_lowpart_SUBREG.
2943         * combine.c (try_combine): Replace explicit XEXP with SUBREG_REG.
2944         (combine_simplify_rtx): Rework to use SUBREG_BYTE.
2945         (simplify_set): Rework to use SUBREG_BYTE.
2946         (expand_field_assignment): Use SUBREG_BYTE.
2947         (make_extraction): Use SUBREG_BYTE.
2948         (if_then_else_cond): Use SUBREG_BYTE.
2949         (apply_distributive_law): Use SUBREG_BYTE and fixup subreg comments.
2950         (gen_lowpart_for_combine): Compute full byte offset.
2951         * cse.c (mention_regs): Use SUBREG_BYTE.
2952         (remove_invalid_subreg_refs): Rework to use SUBREG_BYTE.
2953         (canon_hash): Use SUBREG_BYTE.
2954         (fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to operand_subword.
2955         (gen_lowpart_if_possible): Formatting.
2956         * dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos
2957         correctly.
2958         * dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
2959         (mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
2960         (loc_descriptor): Fixup explicit XEXP into SUBREG_REG
2961         * dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
2962         (output_mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
2963         (output_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
2964         * emit-rtl.c (gen_rtx_SUBREG): New function, used to verify
2965         certain invariants about SUBREGs the compiler creates.
2966         (gen_lowpart_SUBREG): New function.
2967         (subreg_hard_regno): New function to get the final register number.
2968         (gen_lowpart_common): Use SUBREG_BYTE.
2969         (gen_imagpart): Spacing nits.
2970         (subreg_realpart_p): Use SUBREG_BYTE.
2971         (gen_highpart): Use SUBREG_BYTE.
2972         (subreg_lowpart_p): Always compute endian corrected goal offset,
2973         even at the byte level, then compare against that.
2974         (constant_subword): New function, pulled out all constant cases
2975         from operand_subword and changed second argument name to offset.
2976         (operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early
2977         and call constant_subword to do the work.  Return const0_rtx if
2978         looking for a word outside of OP.
2979         (operand_subword_force): Change second arg name to offset.
2980         * expmed.c (store_bit_field): Use SUBREG_BYTE.
2981         (store_split_bit_field): Use SUBREG_BYTE.
2982         (extract_bit_field): Use SUBREG_BYTE.
2983         (extract_split_bit_field): Use SUBREG_BYTE.
2984         (expand_shift): Use SUBREG_BYTE.
2985         * expr.c (store_expr, expand_expr): Use gen_lowpart_SUBREG.
2986         * final.c (alter_subreg) Use subreg_hard_regno and SUBREG_BYTE.
2987         * flow.c (set_noop_p): Use SUBREG_BYTE.
2988         (mark_set_1): Remove ALTER_HARD_SUBREG. Use subreg_regno_offset instead.
2989         * function.c (fixup_var_refs_1): Fixup explicit XEXP into a SUBREG_REG.
2990         (fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian
2991         correction code.
2992         (optimize_bit_field): Use SUBREG_BYTE.
2993         (purge_addressof_1): Use SUBREG_BYTE.
2994         (purge_single_hard_subreg_set): Use subreg_regno_offset function.
2995         (assign_params): Mark arguments SUBREG_PROMOTED_VAR_P if they are
2996         actually promoted by the caller and PROMOTE_FOR_CALLS_ONLY is true.
2997         * gengenrtl.c (special_rtx): Add SUBREG.
2998         * global.c (mark_reg_store): Use SUBREG_BYTE.
2999         (set_preference): Rework to use subreg_regno_offset and SUBREG_BYTE.
3000         * ifcvt (noce_emit_move_insn): Use SUBREG_BYTE.
3001         * integrate.c (copy_rtx_and_substitute): Use SUBREG_BYTE and make sure
3002         final byte offset is congruent to subreg's mode size.
3003         (subst_constants): Use SUBREG_BYTE.
3004         (mark_stores): Use subreg_regno_offset function.
3005         * jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset
3006         function and SUBREG_BYTE.
3007         * local-alloc.c (combine_regs): Use subreg_regno_offset function.
3008         (reg_is_born): Use subreg_hard_regno.
3009         * recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte
3010         endian correction code.  Don't combine subregs unless resulting
3011         offset aligns with type.  Fix subreg constant extraction for DImode.
3012         Simplify SUBREG of VOIDmode CONST_DOUBLE.
3013         (general_operand): Remove dead mode_altering_drug code.
3014         (indirect_operand): Use SUBREG_BYTE.
3015         (constrain_operands): Use subreg_regno_offset function.
3016         * reg-stack.c (get_true_reg): Use subreg_regno_offset function.
3017         * regmove.c (regmove_optimize): Use SUBREG_BYTE.
3018         (optimize_reg_copy_3): Use gen_lowpart_SUBREG.
3019         * regs.h (REG_SIZE): Allow target to override.
3020         (REGMODE_NATURAL_SIZE): New macro which target can override.
3021         * reload.c (reload_inner_reg_of_subreg): subreg_regno should be used
3022         on the entire subreg rtx.
3023         (push_reload): Use SUBREG_BYTE in comments and code.
3024         (find_dummy_reload): Use subreg_regno_offset.  Only adjust offsets
3025         for hard registers inside subregs.
3026         (operands_match_p): Use subreg_regno_offset.
3027         (find_reloads): Use SUBREG_BYTE and only advance offset for subregs
3028         containing hard regs.
3029         (find_reload_toplev): Use SUBREG_BYTE.  Remove byte endian
3030         corrections when fixing up MEM subregs.
3031         (find_reloads_address_1): Use SUBREG_BYTE, subreg_regno, and
3032         subreg_regno_offset where appropriate.
3033         (find_reloads_subreg_address): Use SUBREG_BYTE.  Remove
3034         byte endian corrections when fixing up MEM subregs.
3035         (subst_reloads): When combining two subregs, make sure final
3036         offset is congruent to subreg's mode size.
3037         (find_replacement): Use SUBREG_BYTE and subreg_regno_offset.
3038         (refers_to_regno_for_reload_p): Use subreg_regno.
3039         (reg_overlap_mentioned_for_reload_p): Use subreg_regno_offset.
3040         * reload1.c (eliminate_regs) Use SUBREG_BYTE. Remove byte endian
3041         correction code for memory subreg fixups.
3042         (forget_old_reload_1): Use subreg_regno_offset.
3043         (choose_reload_regs): Use subreg_regno.
3044         (emit_input_reload_insns): Use SUBREG_BYTE.
3045         (reload_combine_note_store): Use subreg_regno_offset.
3046         (move2add_note_store): Use subreg_regno_offset.
3047         * resource.c (update_live_status, mark_referenced_resources): Use
3048         subreg_regno function.
3049         (mark_set_resources): Use subreg_regno function.
3050         * rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE.
3051         (subreg_regno_offset, subreg_regno): Define prototypes.
3052         (subreg_hard_regno, constant_subword, gen_rtx_SUBREG): Newi functions.
3053         (gen_lowpart_SUBREG): Add prototype.
3054         * rtl.texi (subreg): Update to reflect new byte offset representation.
3055         Add mentioning of the effect that BYTES_BIG_ENDIAN has on subregs now.
3056         * rtlanal.c (refers_to_regno_p): Use subreg_regno.
3057         (reg_overlap_mentioned_p): Use subreg_regno.
3058         (replace_regs); Make sure final offset of combined subreg is
3059         congruent to size of subreg's mode.
3060         (subreg_regno_offset): New function.
3061         (subreg_regno): New function.
3062         * sched-vis.c (print_value): Change SUBREG_WORD to SUBREG_BYTE.
3063         * sdbout.c (sdbout_symbol): Compute offset using alter_subreg.
3064         * stmt.c (expand_anon_union_decl): Use gen_lowpart_SUBREG.
3065         * tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead.
3066         (SUBREG_REGNO_OFFSET): Describe SUBREG_REGNO_OFFSET overrides.
3067         * config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno.
3068         (a29k_get_reloaded_address): Use SUBREG_BYTE.
3069         (print_operand): Use SUBREG_BYTE.
3070         * config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE.
3071         * config/arm/arm.c (arm_reload_in_hi): Use SUBREG_BYTE.
3072         (arm_reload_out_hi): Use SUBREG_BYTE.
3073         * config/d30v/d30v.c (d30v_split_double): Use subreg_regno_offset
3074         instead of SUBREG_WORD.
3075         (d30v_print_operand_memory_reference): Use subreg_regno_offset.
3076         * config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix
3077         SUBREG creation to use byte offset.
3078         * config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit
3079         inverted load insns): Fix explicit rtl subregs to use byte
3080         offsets.
3081         * config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3,
3082         udivsi3, umodsi3): Generate SUBREGs with byte offsets.
3083         * config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE.
3084         * config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl
3085         to use byte offsets.
3086         (unnamed fmlow.dd insn): Fixup SUBREGS to use byte offsets.
3087         * config/i960/i960.md (extendhisi2): Generate SUBREGs with byte
3088         offsets, also make sure it is congruent to SUBREG's mode size.
3089         (extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2,
3090         unnamed ldob insn): Generate SUBREGs with byte offset.
3091         (zero_extendqihi2): SUBREG's are byte offsets.
3092         * config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Use SUBREG_BYTE.
3093         (m68hc11_gen_highpart): Use SUBREG_BYTE.
3094         * config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2,
3095         zero-extendqisi2): Generate SUBREGs with byte offset.
3096         (umulsidi3, mulsidi3, subreghi1ashrdi_const32,
3097         subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit
3098         subregs in rtl to use byte offsets.
3099         * config/m88k/m88k.md (extendsidi2): fixup subregs to use byte offset.
3100         * config/mips/mips.c (mips_move_1word): Use subreg_regno_offset.
3101         (mips_move_2words): Use subreg_regno_offset.
3102         (mips_secondary_reload_class): Use subreg_regno_offset.
3103         * config/mips/mips.md (DImode plus, minus, move, and logical op
3104         splits): Fixup explicit subregs in rtl to use byte offsets.
3105         * config/mn10200/mn10200.c (print_operand): Use subreg_regno function.
3106         * config/mn10300/mn10300.c (print_operand): Use subreg_regno function.
3107         * config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in
3108         rtl to use byte offsets.
3109         * config/pa/pa.c (emit_move_sequence): Use SUBREG_BYTE.
3110         * config/pa/pa.md (floatunssisf2, floatunssidf2, mulsi3): fix explicit
3111         subregs to use byte offsets.
3112         * config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1):
3113         Fixup explicit subregs in rtl to use byte offsets.
3114         * config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE
3115         and remove byte endian correction code.
3116         * config/sh/sh.c (output_movedouble): Use subreg_regno.
3117         (gen_ashift_hi): Use SUBREG_BYTE.
3118         (regs_used): Use subreg_regno_offset.
3119         (machine_dependent_reorg): Use subreg_regno_offset.
3120         * config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE.
3121         * config/sh/sh.md (DImode and DFmode move splits): Use subreg_regno.
3122         (movdf_i4): Subregs are byte offsets now.
3123         * config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE.
3124         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Removed.
3125         (REGMODE_NATURAL_SIZE): Override.
3126         (REG_SIZE): For SUBREG check float mode on SUBREG_REG's mode.
3127         * config/sparc/sparc.md (TFmode move splits): Generate SUBREGs
3128         with byte offsets.
3129         (zero_extendhisi2, zero_extendqidi2_insn, extendhisi2,
3130         extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn,
3131         extendqidi2): Generate SUBREGs with byte offsets, also make sure
3132         it is congruent to SUBREG's mode size.
3133         (smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte
3134         offsets.
3135         (cmp_siqi_trunc, cmp_siqi_trunc_set, cmp_diqi_trunc,
3136         cmp_diqi_trunc_set, lshrdi3_v8plus+1, lshrdi3_v8plus+2,
3137         lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper
3138         SUBREG_BYTE offset for non-paradoxical subregs in patterns.
3139         * config/v850/v850.c (print_operand, output_move_double): Use
3140         subreg_regno function.
3141
3142 2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
3143
3144         * configure.in (target_subdir): Use target_alias, not target.
3145         * configure: Rebuilt.
3146
3147         * config/sh/crtn.asm (init, fini): Restore r15 from r14, not the
3148         other way round.
3149         * config/sh/crti.asm: Fix typos in comments.
3150
3151 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
3152
3153         * pa.h: Revise comments for TARGET_NO_SPACE_REGS and
3154         TARGET_FAST_INDIRECT_CALLS.
3155         * pa.c (override_options): TARGET_NO_SPACE_REGS is now OK with
3156         -fPIC.  Don't warn.
3157         (return_addr_rtx): Short circuit export stub matching when
3158         TARGET_NO_SPACE_REGS.
3159         (output_millicode_call): For out of range calls, make -fPIC
3160         take precedence, then TARGET_PORTABLE_RUNTIME, then ble.  Don't
3161         return before delay slot checks when TARGET_PORTABLE_RUNTIME.
3162         * pa.md: Modify length attr calculation of all millicode insns to
3163         match above.
3164
3165 2001-04-02  Geoffrey Keating  <geoffk@redhat.com>
3166
3167         * configure.in (gcc_cv_as_leb128): Correct name of cache variable.
3168         Require at least 2.11 in the version test.  Specifically check
3169         for and reject GAS version 2.10.90.
3170         * configure: regenerate.
3171
3172 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
3173
3174         * pa.c (override_options): Remove PIC profiling warning.
3175         (hp_profile_labelno): Delete.
3176         (hp_profile_label_rtx): Delete.
3177         (hp_profile_label_name): Delete.
3178         (pa_add_gc_roots): Remove reference to hp_profile_label_rtx.
3179         (output_function_prologue): Remove profiling code and all tests on
3180         profile_flag.  Move store of PIC_OFFSET_TABLE_REGNUM now that
3181         merge_sp_adjust_with_store can work for PIC and profiling.
3182         (hppa_expand_epilogue): Remove profile_flag test.
3183         (hppa_can_use_return_insn_p): Likewise.
3184         (hppa_init_pic_save): Emit before tail_recursion_reentry, and
3185         cater for PROFILE_HOOK.
3186         (hppa_profile_hook): New function.
3187         * pa.h (FUNCTION_PROFILER): Now does nothing.
3188         (PROFILE_HOOK): Define.
3189         (hppa_profile_hook): Declare.
3190         (PROFILE_BEFORE_PROLOGUE): Delete.
3191         (ASM_OUTPUT_REG_PUSH): Delete.
3192         (ASM_OUTPUT_REG_POP): Delete.
3193         * pa.md (call_profiler): Turn it into a call insn, and don't `use'
3194         r24.  Accept function name operand, and use this and a locally
3195         generated label to calculate pc-rel offset to func start.
3196
3197 2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3198
3199         * $(HOST_PREFIX_1)errors.o, $(HOST_PREFIX_1)ggc-none.o,
3200         ggc-common.o, ggc-simple.o, ggc-page.o, ggc-none.o: Depend on
3201         $(SYSTEM_H).
3202
3203 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
3204
3205         * dwarf2out.c (dwarf2out_frame_debug_expr): Move errant HIGH and
3206         LO_SUM cases to where they belong.
3207
3208 2001-04-02  Richard Henderson  <rth@redhat.com>
3209
3210         * except.h (lang_eh_type_covers): Mark extern.
3211         (lang_eh_runtime_type): Likewise.
3212
3213 2001-04-02  Zack Weinberg  <zackw@stanford.edu>
3214
3215         * genattr.c, gencheck.c, gencodes.c, genconfig.c, genflags.c,
3216         gengenrtl.c:  Wrap generated header in multiple-include guard.
3217         Improve error checking.
3218
3219 2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3220
3221         * configure.in: Don't check for putenv.
3222         * configure: Regenerate.
3223         * gcc.c (putenv): Don't define.
3224         * vax/xm-vms.h: Handle putenv.
3225
3226 2001-04-02  Jakub Jelinek  <jakub@redhat.com>
3227
3228         * ifcvt.c (noce_emit_move_insn): New.
3229         (noce_try_store_flag, noce_try_store_flag_constants,
3230         noce_try_store_flag_inc, noce_try_store_flag_mask,
3231         noce_try_cmove, noce_try_cmove_arith, noce_try_minmax,
3232         noce_try_abs): Use it.
3233         (noce_process_if_block): Likewise.
3234         For STRICT_LOW_PART, take mode from its SUBREG.
3235
3236 2001-04-02  Jakub Jelinek  <jakub@redhat.com>
3237
3238         * fold-const.c (fold): Before optimizing unsigned comparison with
3239         0x7fffffffU, make sure arg0 is integral type.
3240
3241 2001-04-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3242
3243         * c-tree.texi: Document representation of wide strings.
3244
3245 2001-04-01  Richard Henderson  <rth@redhat.com>
3246
3247         * except.h (expand_builtin_dwarf_fp_regnum): Declare.
3248
3249 Sun Apr  1 11:49:05 CEST 2001  Jan Hubicka  <jH@suse.cz>
3250
3251         * i386.md: remove obsoleted comments.
3252         (adddi_?): Rename to adddi_?_rex64; disable for 32bit.
3253         (x86_movsicc_0_m1_rex64): Rename to x86_movdicc_0_m1_rex64;
3254         fix output template.
3255
3256 2001-03-31  Marek Michalkiewicz  <marekm@linux.org.pl>
3257
3258         * config/avr/libgcc.S (__mulhi3): Optimize previous change.
3259
3260 2001-03-30  Bernd Schmidt  <bernds@redhat.com>
3261
3262         * loop.c (load_mems): When generating a load from a pseudo, update
3263         REGNO_LAST_UID.
3264
3265 Fri Mar 30 17:36:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
3266
3267         * i386.c (ix86_split_long_move): Use change address to compensate
3268         stack pointer change in push instruction.
3269
3270 Fri Mar 30 00:31:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
3271
3272         * i386.md (sse_movdfcc_eq): Fix constraint (sse_mov?fcc splitter): Use operands_match_p
3273         instead of rtx_equal_p; fix the output template.
3274
3275 Fri Mar 30 00:21:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
3276
3277         * i386.c (ix86_expand_setcc): Support 64bit.
3278         (ix86_expand_int_movcc): Likewise.
3279         * i386.md (movdicc_rex64, x86_movsicc_0_m1_rex64, movdicc_c_rex64):
3280         New patterns.
3281
3282         * i386.md (allocate_stack_worker): Turn to expander.
3283         (allocate_stack_worker_1, allocate_stack_worker_rex64): New insns.
3284
3285         * i386.c (print_reg): Do not print x86_64 style regs on IA-32
3286
3287 2001-03-29  Richard Henderson  <rth@redhat.com>
3288
3289         * libgcc2.c [L__main]: Include unwind-dw2-fde.h instead of frame.h.
3290
3291 2001-03-28  Matthew Hiller  <hiller@redhat.com>
3292
3293         * config/mn10300/mn10300.md (cmpsi): Fix first alternative's
3294         output template.
3295
3296         * MAINTAINERS: Added self.
3297
3298 2001-03-28  Richard Henderson  <rth@redhat.com>
3299
3300         * Makefile.in (cs-tconfig.h): Depend on CONFIG_H, not GCONFIG_H.
3301         Use ALL_CFLAGS not HOST_CFLAGS for sjlj detection.
3302
3303 2001-03-28  Jim Wilson  <wilson@redhat.com>
3304
3305         * config/ia64/ia64.md (movtf): Change DImode to TFmode in calls to
3306         operand_subword.
3307
3308 2001-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3309
3310         * toplev.h (fatal_error): Add ATTRIBUTE_NORETURN.
3311
3312         * tradcif.y (yyerror): Likewise.  Add format specifier in call to
3313         `error'.
3314
3315         * tradcpp.c (macroexpand): Likewise for call to `error_with_line'.
3316
3317 2001-03-28  DJ Delorie  <dj@redhat.com>
3318
3319         * Makefile.in (stage1_build): Revert CFLAGS patch.
3320
3321 2001-03-28  Marek Michalkiewicz  <marekm@linux.org.pl>
3322
3323         * config/avr/libgcc.S (__mulhi3): Correct tests to exit the loop
3324         when multiplier or multiplicand is zero.
3325
3326 2001-03-28  Bernd Schmidt  <bernds@redhat.com>
3327
3328         * cselib.c (hash_rtx): Don't do tail recursion elimination by hand.
3329
3330         * config/ia64/ia64.c (update_set_flags): New function, broken out of
3331         rtx_needs_barrier.
3332         (set_src_needs_barrier): Likewise.
3333         (rtx_needs_barrier): For SET case, use these two functions.  Rework
3334         PARALLEL case to handle all inputs before all outputs.
3335         (emit_insn_group_barriers): Call init_insn_group_barriers only if we
3336         saw a label and no stop bit since then.
3337         (maybe_rotate, process_epilogue): Add prototypes.
3338
3339 2001-03-28  Richard Henderson  <rth@redhat.com>
3340
3341         * config/rs6000/rs6000.h (EPILOGUE_USES): Use TARGET_AIX,
3342         not TARGET_TOC for special toc restore handling.
3343         * config/rs6000/rs6000.md (eh_return): Likewise.
3344
3345 2001-03-28  Richard Henderson  <rth@redhat.com>
3346
3347         * config/sparc/sparc.c (eligible_for_epilogue_delay): False if
3348         current_function_calls_eh_return.
3349         (output_function_epilogue): Handle eh_return.
3350         * config/sparc/sparc.h (DOESNT_NEED_UNWINDER): Remove.
3351         (EH_RETURN_DATA_REGNO): New.
3352         (EH_RETURN_STACKADJ_RTX): New.
3353         (EH_RETURN_HANDLER_RTX): New.
3354         * config/sparc/sparc.md (call/short branch peepholes): Check
3355         can_throw_internal instead of in_same_eh_region.
3356
3357         * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space
3358         for eh_return data registers.
3359         (rs6000_emit_prologue): Save eh_return data registers.
3360         (rs6000_emit_epilogue): Force inline restores if eh_return.
3361         Restore eh_return data registers.  Mind EH_RETURN_STACKADJ_RTX.
3362         * config/rs6000/rs6000.h (rs6000_stack_t): Add ehrd_offset.
3363         (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX): New.
3364         (EPILOGUE_USES): True for TOC_REGISTER if calls_eh_return and
3365         the target uses one.
3366         * config/rs6000/rs6000.md (eh_epilogue, eh_reg_restore): Remove.
3367         (return_eh_si, return_eh_di): Remove.
3368         (eh_return): New, from corpse of eh_epilogue.
3369         (eh_set_lr_si, eh_set_lr_di): New.
3370
3371         * config/i386/i386.c (general_no_elim_operand): Disallow virtual regs.
3372         (ix86_save_reg): If maybe_eh_return, true for EH_RETURN_DATA_REGNOs.
3373         True for pic register if current_function_calls_eh_return.
3374         (ix86_expand_epilogue): Change "emit_return" argument into "style".
3375         Handle eh_return requirements.
3376         * config/i386/i386.h (EH_RETURN_DATA_REGNO): New.
3377         (EH_RETURN_STACKADJ_RTX): New.
3378         * config/i386/i386.md (exception_receiver): Remove.
3379         (eh_return, eh_return_1): New.
3380         * config/i386/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
3381
3382         * config/alpha/alpha.c (alpha_sa_mask): Add EH_RETURN_DATA_REGNOs.
3383         (alpha_mark_machine_status): No eh_epilogue_sp_ofs ...
3384         (alpha_expand_epilogue): ... use EH_RETURN_STACKADJ_RTX instead.
3385         * config/alpha/alpha.h (machine_function): Remove eh_epilogue_sp_ofs.
3386         (EH_RETURN_DATA_REGNO): New.
3387         (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): New.
3388         * config/alpha/alpha.md (eh_epilogue): Remove.
3389         (exception_receiver): Use $26 for ldgp input.
3390         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
3391
3392 2001-03-28  Richard Henderson  <rth@redhat.com>
3393
3394         * except.c: Rewrite entirely for IA-64 ABI exception handling.
3395         * except.h: Likewise.
3396
3397         * Makefile.in (LIB2ADDEH): Mention unwind-dw2*.c
3398         (LIB2ADDEHDEP): New.
3399         (LIB2FUNCS_EH): Remove.
3400         (LIB2ADD): Remove LIB2ADDEH.
3401         (libgcc.mk): Pass LIB2ADDEHDEP, don't pass LIB2FUNCS_EH.
3402         (LIBGCC_DEPS): Use LIB2ADDEHDEP.
3403         (crt{begin,end}[S].o): Likewise.
3404         (except.o): Update includes.
3405         * mklibgcc.in: Remove LIB2FUNCS_EH, add LIB2ADDEH, LIB2ADDEHDEP.
3406         (libgcc2_c_dep): Use LIB2ADDEHDEP.
3407
3408         * basic-block.h (struct basic_block_def): Remove eh_beg, eh_end.
3409         * bb-reorder.c (reorder_basic_blocks): Don't disable for EH.
3410         * builtins.def (BUILT_IN_EH_RETURN_DATA_REGNO): New.
3411         * builtins.c (expand_builtin): Implement it.
3412         [BUILT_IN_EH_RETURN]: Update for nr arguments change.
3413         * c-common.c (c_common_nodes_and_builtins): Declare it.
3414         * c-decl.c (init_decl_processing): Update __builtin_eh_return.
3415         * calls.c (libfunc_nothrow): Remove.
3416         (emit_library_call_value_1): Don't call it.
3417         * crtstuff.c: Include unwind-dw2-fde.h instead of frame.h.
3418         * dwarf2.h (dwarf_call_frame_info): Add dwarf2.1 elements.
3419         (DW_EH_PE_*): New defines for pointer encoding in .eh_frame.
3420         * dwarf2out.c (struct dw_fde_struct): Add uses_eh_lsda, funcdef_number.
3421         (current_funcdef_number): Globalize.
3422         (output_call_frame_info): Emit frame data if an lsda is needed.
3423         Generate augmentation for personality routine.  Don't play with
3424         difference symbols.
3425         (dwarf2out_begin_prologue): Record funcdef_number.
3426         * dwarf2out.h (current_funcdef_number): Declare.
3427         * expr.c (expand_expr): Update for except.h name changes.
3428         Remove POPDCC_EXPR, POPDHC_EXPR.  Add EXC_PTR_EXPR.
3429         * expr.h (LTI_throw, LTI_rethrow): Remove.
3430         (LTI_sjthrow, LTI_sjpopnthrow, LTI_terminate): Remove.
3431         (LTI_eh_rtime_match): Remove.
3432         (LTI_unwind_resume, LTI_eh_personality): Add.
3433         (LTI_unwind_sjlj_register, LTI_unwind_sjlj_unregister): Add.
3434         * final.c (final): Don't call check_exception_handler_labels,
3435         init_insn_eh_region, or free_insn_eh_region.
3436         (final_scan_insn): Always emit debug labels for
3437         NOTE_INSN_EH_REGION notes.
3438         * flags.h (flag_new_exceptions): Remove.
3439         * flow.c (entry_exit_blocks): Remove eh_beg, eh_end.
3440         (record_active_eh_regions): Remove.
3441         (count_basic_blocks): Check all instructions for REG_EH_REGION.
3442         Use can_throw_internal.
3443         (find_basic_blocks_1): Likewise.
3444         (move_stray_eh_region_notes): Remove.
3445         (find_label_refs): No eh_return_stub_label.
3446         (make_edges): Likewise.  No init/free_eh_nesting_info.  Handle RESX.
3447         (make_eh_edge): No eh_nest_info.  Update for reachable_handlers
3448         changes.
3449         (delete_unreachable_blocks): Don't track deleted handlers.
3450         (flow_delete_block): Use maybe_remove_eh_handler.
3451         (delete_eh_regions): Remove.
3452         (merge_blocks): Don't check for eh region match.
3453         (mark_regs_live_at_end): Handle EH_RETURN_DATA_REGNO,
3454         EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX.
3455         (init_propagate_block_info): Disable dead frame store optimization
3456         when current_function_calls_eh_return.
3457         (dump_bb): Don't print eh_beg, eh_end.
3458         * function.c (fixup_var_refs): No catch_clauses.
3459         (expand_function_end): Likewise.  Call expand_eh_return before
3460         the return register use.  Call sjlj_emit_function_exit_after.
3461         (expand_function_start): Force pseudo DECL_RESULT if sjlj exceptions.
3462         * function.h (struct function): Add calls_eh_return, uses_eh_lsda.
3463         * ifcvt.c (dead_or_predicable): Remove eh region check.
3464         * integrate.c (function_cannot_inline_p): Disallow __builtin_eh_return.
3465         Don't check for EH vs parameters.
3466         (expand_inline_function_eh_labelmap, eif_eh_map): Remove.
3467         (expand_inline_function): Call duplicate_eh_regions.
3468         (copy_insn_list): Don't handle NOTE_INSN_EH_REGION_BEG/END.
3469         (copy_insn_notes): Remap REG_EH_REGION notes.
3470         (copy_rtx_and_substitute): Remove SYMBOL_REF_NEED_ADJUST check.
3471         * integrate.h (struct inline_remap): Add local_return_label.
3472         * jump.c (jump_optimize_1): Don't init/free_insn_eh_region, nor
3473         check_exception_handler_labels, nor exception_optimize.
3474         (find_cross_jump): No EH region check.
3475         * optabs.c (init_optabs): Update for changed eh libfuncs.
3476         * rtl.def (RESX): New.
3477         * rtl.h (SYMBOL_REF_NEED_ADJUST): Remove.
3478         * stmt.c (expand_decl_cleanup): Simplify using_eh_for_cleanups_p
3479         checks.  Update for except.h name changes.
3480         (expand_cleanups): Likewise.
3481         (expand_dcc_cleanup, expand_dhc_cleanup): Remove.
3482         * toplev.c (dump_file_index, dump_file): Add .02.eh dump.
3483         (compile_file): Call init_eh before init_optabs.  Don't
3484         output_exception_table here.
3485         (rest_of_compilation): Call convert_from_eh_region_ranges,
3486         convert_to_eh_region_ranges, output_function_exception_table.
3487         Don't emit_eh_context.
3488         * tree.def (POPDHC_EXPR, POPDCC_EXPR): Remove.
3489         (EXC_PTR_EXPR): New.
3490
3491         * md.texi (eh_epilogue): Remove.
3492         (eh_return): Document.
3493         * tm.texi (EH_RETURN_DATA_REGNO): Document.
3494         (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): Document.
3495
3496         * eh-common.h: Remove file.
3497         * frame-dwarf2.c, frame.c, frame.h: Remove files.
3498         * libgcc2.c (L_eh): Remove.
3499
3500         * unwind-dw2-fde.c: New file, largely copied from frame.c.
3501         * unwind-dw2-fde.h: New file.
3502         * unwind-dw2.c: New file, largely cribbed from frame-dwarf2.c.
3503         * unwind-sjlj.c, unwind.h, unwind.inc: New files.
3504         * libgcc-std.ver: Update for eh symbols.
3505
3506 2001-03-27  Richard Henderson  <rth@redhat.com>
3507
3508         * regmove.c (perhaps_ends_bb_p): Use can_throw_internal to
3509         reduce false positives.
3510         (regmove_optimize): Disable if flag_non_call_exceptions.
3511
3512         * stmt.c (expand_return): Remove always true predicate.
3513         (expand_decl_cleanup_no_eh): Remove dead code.
3514
3515         * sched-deps.c (sched_analyze_insn): Consolidate scheduling
3516         barrier code.  Add a scheduling barrier if a non-call insn
3517         can throw internally.
3518
3519         * rtlanal.c (rtx_addr_can_trap_p): Virtual registers cannot trap.
3520         Auto-inc addresses trap only if their base register does.
3521
3522         * except.c (can_throw_internal): Rename from can_throw.
3523         * except.h, resource.c: Update references.
3524
3525         * integrate.c (copy_insn_list): Use returnjump_p.
3526         (copy_insn_notes): Recurse for CALL_PLACEHOLDER.
3527
3528         * function.h (struct function): Move all boolean valued fields
3529         to single bit fields at the end of the struct.
3530
3531         * bb-reorder.c, dwarf2out.c, except.c, except.h, flow.c,
3532         jump.c, toplev.c:
3533         Rename asynchronous_exceptions to flag_non_call_exceptions.
3534
3535         * gthr-single.h (UNUSED): New.  Distinguish between how C
3536         and C++ mark unused function arguments.  Use throughout.
3537
3538         * Makefile.in (cs-tconfig.h): Copy USING_SJLJ_EXCEPTIONS
3539         value to target configuration header.
3540         * configure.in (CONFIG_SJLJ_EXCEPTIONS): New.
3541         * config.in, configure: Rebuild.
3542         * except.h (USING_SJLJ_EXCEPTIONS): New.  Define based on
3543         configuration and target defines.
3544         (exceptions_via_longjmp): Remove.
3545         * dwarf2out.c, except.c, final.c, toplev.c, config/ia64/ia64.c:
3546         Use USING_SJLJ_EXCEPTIONS instead of exceptions_via_longjmp.
3547
3548         * except.h (flag_non_call_exceptions): Move ...
3549         * flags.h: ... here.
3550
3551         * combine.c (distribute_notes) [REG_EH_REGION]: If non-call
3552         exceptions, put the note on the trapping instruction.
3553
3554         * flags.h (flag_new_exceptions): Remove.
3555         * toplev.c: Don't set it.
3556         * final.c: Don't check it.
3557         * except.c: Provide stub definition.
3558
3559         * flow.c (tidy_fallthru_edges): Don't combine complex edges.
3560         (calculate_global_regs_live): Kill call-clobbered registers
3561         across exception edges.
3562         * reg-stack.c (convert_regs_1): Kill the entire target stack
3563         across non-call exception edges.
3564
3565         * flow.c (cleanup_cfg): Take no argument.
3566         * output.h, sibcall.c, toplev.c: Update all calls.
3567
3568 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3569
3570         * configure.in: Don't check for bcopy.
3571         * configure, config.in: Regenerate.
3572
3573         * system.h: Don't define or prototype bcopy, instead poison it.
3574
3575 2001-03-27  Richard Henderson  <rth@redhat.com>
3576
3577         * function.c (expand_function_start): Set DECL_REGISTER on
3578         a pseudo used for DECL_RESULT.
3579
3580         * rtl.h (LCT_NORETURN): New.
3581         * calls.c (emit_library_call_value_1): Handle it.
3582
3583 2001-03-27  Stan Shebs  <shebs@apple.com>
3584
3585         * objc/objc-act.c (objc_init): Use dump_base_name.
3586         (gen_declaration): Clear the buffer arg.
3587         (gen_declaration_1): New function, body of gen_declaration.
3588         (adorn_decl): Call gen_declaration_1 instead of gen_declaration.
3589         (gen_method_decl): Ditto, plus always clear buffer arg.
3590         (error_with_ivar): Simplify.
3591         (warn_with_method): Ditto.
3592         (build_message_expr): Don't clear buffers.
3593         (dump_interface): Ditto.
3594         (objc_debug): Ditto.
3595         (build_keyword_selector): Clear the buffer by only zeroing
3596         the first element.
3597         (objc_implementation_context): Declare.
3598         (start_class): Warn about missing @end.
3599         (finish_objc): Ditto.
3600
3601 2001-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3602
3603         * reload1.c (eliminate_regs): Don't abort on MEM USEs.
3604
3605 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3606
3607         * Makefile.in (SYSTEM_H): Define.
3608         Depend on $(SYSTEM_H), not system.h.
3609
3610         * objc/Make-lang.in: Depend on $(SYSTEM_H), not system.h.
3611
3612 2001-03-27  Jim Wilson  <wilson@redhat.com>
3613
3614         * final.c (final_scan_insn, case NOTE_INSN_BASIC_BLOCK): Call
3615         IA64_UNWIND_EMIT.
3616         * config/ia64/ia64.c (block_num, need_copy_state): New static vars.
3617         (process_epilogue): New static function.
3618         (process_set): Call process_epilogue instead of emitting .restore
3619         directly.
3620         (process_for_unwind_directive): Handle NOTE_INSN_BASIC_BLOCK.
3621
3622         * flow.c (struct reg_cond_life_info): New fields orig_condition
3623         and stores.
3624         (init_propagate_block_info): Set new fields.
3625         (mark_regno_cond_dead): Set and use new fields.
3626         (flush_reg_cond_reg_1): Likewise.
3627         (and_reg_cond, case AND): Check for redundant AND conditions.
3628         (mark_used_reg): Delete unnecessary clears before freeing splay trees.
3629         Set new fields.
3630
3631 2001-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3632
3633         * cppmacro.c (stringify_arg): Null terminate strings.
3634
3635 2001-03-27  Zack Weinberg  <zackw@stanford.edu>
3636
3637         * config.gcc (m68hc11-*-*, m68hc12-*-*): Convert to new tm.h
3638         inclusion style.  xm-m68hc11.h no longer exists.
3639         * config/m68hc11/xm-m68hc11.h: Delete file.
3640         * config/m68hc11/m68hc12.h: Convert to new tm.h inclusion style.
3641
3642         * config/m68hc11/m68hc11.h: Convert to new tm.h inclusion style.
3643         Don't define GCC_VERSION, N_, or PARAMS; don't include
3644         gansidecl.h or stdio.h.  Define inhibit_libc here.
3645         Make code conditioned on #if GCC_VERSION > 2095 unconditional.
3646         Delete code conditioned on #if GCC_VERSION == 2095.
3647
3648         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
3649         Make code conditioned on #if GCC_VERSION > 2095 unconditional.
3650         Delete code conditioned on #if GCC_VERSION == 2095.
3651
3652 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3653
3654         * system.h: Include symcat.h.
3655         (STRINGIFY): Don't define.
3656
3657         * configure.in: Adjust comment.
3658
3659         * builtins.c: Use STRINGX, not STRINGIFY.
3660         * gencheck.c: Likewise.
3661         * gengenrtl.c: Likewise.
3662         * protoize.c: Likewise.
3663
3664         * cpplex.c: Don't include symcat.h.
3665         * cpplib.c: Likewise.
3666
3667         * gansidecl.h (HAVE_STRINGIZE): Don't define.
3668
3669 2001-03-27  Alan Modra  <alan@linuxcare.com.au>
3670
3671         * c-typeck.c (digest_init): Fold init expression.
3672
3673 2001-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3674
3675         * sbitmap.c (sbitmap_copy): Call memcpy, not bcopy.
3676
3677 2001-03-27  Alan Modra  <alan@linuxcare.com.au>
3678
3679         * except.c (eh_regs): Save results of build_pointer_type to a temp
3680         as FUNCTION_VALUE macro may evaluate its args multiple times.
3681
3682 2001-03-26  Mark Mitchell  <mark@codesourcery.com>
3683
3684         * c-common.h (DECL_NUM_STMTS): New macro.
3685         * c-decl.c (duplicate_decls): Copy DECL_NUM_STMTS, not
3686         DECL_FRAME_SIZE.
3687         (pushdecl): Likewise.
3688         * c-semantics.c (add_stmt): Update DECL_NUM_STMTS.
3689         * integrate.c (expand_inline_function): Don't check
3690         DECL_FRAME_SIZE.
3691         * print-tree.c (print_node): Don't print it.
3692         * toplev.c (rest_of_compilation): Don't try to inline when
3693         flag_no_inline is on.
3694         * tree.h (DECL_FRAME_SIZE): Remove.
3695         (tree_decl): Adjust accordingly.
3696
3697 2001-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3698
3699         * combine.c (try_combine): Use memcpy, not bcopy.
3700
3701         * genattrtab.c (expand_units): Likewise.
3702
3703 Mon Mar 26 15:55:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
3704
3705         * i386.md (push mem DI peep2): New.
3706         (mov 0, mov -1 peep2): Handle 64bit.
3707         (lea to arithmetics peep2): Handle 64bit leas.
3708         (rsp arithmetics to push/pop peep2s): New.
3709
3710         * i386.md (truncdfsf2_3, trunctfsf2_2): Change predicate to memory_operand.
3711
3712 Mon Mar 26 14:35:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
3713
3714         * i386.c (struct machine_function): Add save_varrargs_registers.
3715         (ix86_save_varrargs_registers): New macro.
3716         (ix86_frame_layout): Support 64bit; support red zones and varrargs area.
3717         (ix86_expand_prologue): Likewise.
3718         (ix86_emit_epilogue_esp_adjustement): Likewise.
3719         (ix86_expand_epilogue): Likewise.
3720         * i386.md (pro_epilogue_adjust_stack): Turn to expander; support 64bit.
3721         (pro_epilogue_adjust_stack_1): New insn.
3722         (pro_epilogue_adjust_stack_rex64): Likewise.
3723         * i386.h (MASK_NO_RED_ZONE): New constant.
3724         (TARGET_RED_ZONE): New macro.
3725         (TARGET_OPTIONS): Add "red-zone" and "no-red-zone"
3726         (RED_ZONE_SIZE): New constant.
3727         (RED_ZONE_RESERVE): New constant.
3728
3729 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3730
3731         * toplev.c (set_float_handler): Use memcpy, not bcopy.
3732
3733 2001-03-25  Kazu Hirata  <kazu@hxi.com>
3734
3735         * config/h8300/h8300.md (umodqi3): Output a tab instead of a
3736         space.
3737         (modqi3): Likewise.
3738         (umodhi3): Likewise.
3739         (modhi3): Likewise.
3740
3741 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3742
3743         * mkconfig.sh (DEFINES): Handle entries with '='.
3744
3745         * config.gcc: Don't use i370/xm-mvs.h or ns32k/xm-pc532-min.h.
3746         Set xm_defines to MACRO=value instead.
3747
3748         * i370/xm-mvs.h: Delete.
3749
3750         * ns32k/xm-pc532-min.h: Likewise.
3751
3752 Sun Mar 25 15:01:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
3753
3754         * i386.md (ashldi3, ashrdi3, lshrdi3): Change predicates to
3755         shiftdi_operand;
3756         use ix86_expand_binary_operator
3757         (?sh??i_?): Disable for 64bit.
3758         * i386.h (PREDICATE_CODES): Add shiftdi_operand.
3759         * i386.c (shiftdi_operand): New predicate.
3760
3761         * (ashldi3_1_rex64, ashldi3_cmp_rex64, ashlsi3_1_zext, ashlsi3_cmp_zext,
3762         ashrdi3_63_rex64, ashrdi3_1_one_bit_rex64, ashrdi3_1_rex64,
3763         ashrdi3_one_bit_cmp_rex64, ashrdi3_cmp_rex64, ashrsi3_31_zext,
3764         ashrsi3_1_one_bit_zext, ashrsi3_1_zext, ashrsi3_one_bit_cmp_zext,
3765         ashrsi3_cmp_zext, lshrdi3_1_one_bit_rex64, lshrdi3_1_rex64,
3766         lshrdi3_cmp_one_bit_rex64, lshrdi3_cmp_rex64, lshrsi3_1_one_bit_zext,
3767         lshrsi3_1_zext, lshrsi3_cmp_one_bit_zext, lshrsi3_cmp_zext,
3768         rotlsi3_1_one_bit_rex64, rotldi3_1_rex64,
3769         rotlsi3_1_one_bit_zext, rotlsi3_1_zext, rotrdi3_1_one_bit_rex64,
3770         rotrdi3_1_rex64, rotrsi3_1_one_bit_zext, rotrsi3_1_zext): New patterns.
3771         (rotldi3, rotrdi3): New expanders.
3772
3773 Sun Mar 25 14:25:33 CEST 2001  Jan Hubicka  <jh@suse.cz>
3774
3775         * i386.md (movstrsi): Move offline.
3776         (movstrdi): New.
3777         (strmovdi_rex64): New.
3778         (strmov?i): Accept 64bit.
3779         (strmov?i_rex64): New.
3780         (strmov?i_rex_1): New.
3781         (strmov?i_1): Disable for 64bit.
3782         (rep_mov?i_rex64): New.
3783         (rep_mov?i): Disable for 64bit.
3784         (clrstrsi): Move offline.
3785         (strset?i_rex64): New.
3786         (strset?i: Accept 64bit.
3787         (rep_stos?i): Disable for 64bit.
3788         (rep_stos?i_rex64): New.
3789         (strset?i_rex_1): New.
3790         (strset?i_1): Disable for 64bit.
3791         (cmpstrsi): Accept 64bit.
3792         (cmpstrsi_nz_1): Rename to cmpstrqi_nz_1; Disable for 64bit.
3793         (cmpstrqi_nz_rex_1): New.
3794         (cmpstrsi_1): Rename to cmpstrqi_1; Disable for 64bit.
3795         (strlensi): Move offline.
3796         (strlendi): New.
3797         (strlenqi_1): Disable for 64bit; fix constraints.
3798         (strlenqi_rex_1): New.
3799         * i386.c (ix86_adjust_counter): New static function.
3800         (ix86_zero_extend_to_Pmode): Likewise.
3801         (ix86_expand_aligntest): Likweise.
3802         (ix86_expand_strlensi_unroll_1): Make static; update for 64bit.
3803         (ix86_expand_movstr): New global function.
3804         (ix86_expand_clrstr): New global function.
3805         (ix86_expand_strlen): New global function.
3806         * i386-protos.h (ix86_expand_movstr, ix86_expand_clrstr,
3807         ix86_expand_strlen): Declare.
3808         (ix86_expand_strlensi_unroll_1): Delete.
3809
3810 Sat Mar 24 23:15:19 CET 2001  Jan Hubicka  <jh@suse.cz>
3811
3812         * i386.md (cmpdi): Fix operand predicates.
3813         (cmpdi_ccno_1_rex64, cmpdi_minus_1_rex64, cmpdi_1_rex64,
3814          cmpdi_1_insn_rex64): New patterns.
3815         (adddi3): Turn to expander.
3816         (adddi3_1, adddi3_carry_rex64, adddi3_cc_rex64): New patterns.
3817         (addsi3_carry_zext): New pattern.
3818         (adddi_?_rex64): New patterns and splitters.
3819         (addsi_?_zext): New patterns.
3820         (subsi3_carry_zext): New pattern.
3821         (subdi_?_rex64): New patterns and splitters.
3822         (iorsi_?_zext): New patterns.
3823         (iordi_?_rex64): New patterns and splitters.
3824         (iorsi_?_zext): New patterns.
3825         (iorsi_?_zext_imm): New patterns.
3826         (xorsi_?_zext): New patterns.
3827         (xordi_?_rex64): New patterns and splitters.
3828         (xorsi_?_zext): New patterns.
3829         (negdi*): New patterns.
3830         (one_cmpldi*): Likewise.
3831         (one_cmplsi*_zext, negsi*_zext): Likewise.
3832         (testqi_ext_3_rex64): New pattern.
3833
3834 Sat Mar 24 21:13:28 CET 2001  Jan Hubicka  <jh@suse.cz>
3835
3836         * i386-protos.h (ix86_split_long_move): Return void.
3837         * i386.c (ix86_split_to_parts): Handle 64bit target.
3838         (ix86_split_long_move): Likewise.
3839         * i386.md (all calls to ix86_split_long_move): Update.
3840
3841 2001-03-23  Richard Henderson  <rth@redhat.com>
3842
3843         * config/mips/iris4.h (ASM_OUTPUT_ASCII): Rename local variables
3844         to avoid shadowing arguments.
3845
3846 2001-03-23  Jakub Jelinek  <jakub@redhat.com>
3847
3848         * varasm.c (make_decl_rtl): Don't append var_labelno discriminator
3849         to variable names where DECL_NAME is different from
3850         DECL_ASSEMBLER_NAME.
3851
3852 2001-03-23  Jim Wilson  <wilson@redhat.com>
3853
3854         * varasm.c (make_decl_rtl): Add TREE_PUBLIC check to abort test.
3855         (assemble_alias): Call make_decl_rtl.
3856
3857 Fri Mar 23 16:59:08 2001  J"orn Rennecke <amylaar@redhat.com>
3858
3859         * stor-layout.c (layout_type): Give OFFSET_TYPE a MODE_INT type.
3860
3861 2001-03-23  Bryce McKinlay  <bryce@albatross.co.nz>
3862
3863         * extend.texi: Document the "java_interface" attribute.
3864
3865 2001-03-22  Zack Weinberg  <zackw@stanford.edu>
3866
3867         * mkconfig.sh: Use a subshell with redirected stdout,
3868         instead of closing stdout and confusing commands that run
3869         afterward.  Throw away output of cmp.
3870
3871 2001-03-22  Gordon Sadler  <gbsadler1@lcisp.com>
3872
3873         * Makefile.in (stage1_build): Pass CFLAGS to stage1_build.
3874
3875 Thu Mar 22 22:15:59 CET 2001  Jan Hubicka  <jh@suse.cz>
3876
3877         * i386.md (zero_extendsidi2_32): Break out from ...
3878         (zero_extendsidi2): ... here ; turn to expander.
3879         (zero_extendsidi2_rex64): New.
3880         (extendsidi2_32): Break out from ...
3881         (extendsidi2): ... here ; turn to expander.
3882         (extendsidi2_rex64): New.
3883         (zero_extendhidi2, zero_extendqidi2, extendhidi2, extendqidi2): New.
3884         (trunc?f?f splitters): Add 64bit versions.
3885
3886 Thu Mar 22 21:41:16 CET 2001  Jan Hubicka  <jh@suse.cz>
3887
3888         * i386.md (pushsi, pushsi2_prologue): Disable.
3889         (pushsi2_rex64): New.
3890         (movabs?i_1_rex64, movabs?i_2_rex64): New.
3891         (movqi_ext_1): Disable for 64bit.
3892         (movqi_ext_1_rex64): New.
3893         (pushdi2_rex64): New pattern, peep2s and splitter.
3894         (pushdi2_prologue_rex64): New pattern.
3895         (popdi1_epilogue_rex64, popdi1, movdi_xor_rex64, movdi_or_rex64):
3896         Likewise.
3897         (movdi splitters): Disable for 64bit.
3898         (movdi_1_rex64): New pattern, peep2s and splitters.
3899         (swapdi): New pattern.
3900         (pushsf): Disable for 64bit.
3901         (pushsf_rex64): New pattern and splitter.
3902         (pushdf_nointeger): Disable for 64bit.
3903         (pushdf_integer): Handle the 64bit case.
3904         (pushtf): Likewise; update splitters.
3905
3906 2001-03-22  Richard Henderson  <rth@redhat.com>
3907
3908         * mkconfig.sh: Include insn-flags.h.
3909         * Makefile.in (CONFIG_H): Include insn-flags.h.
3910         (lots of objects): Remove insn-codes.h and insn-flags.h.
3911
3912         * alias.c, bb-reorder.c, calls.c, do-loop.c, flow.c, haifa-sched.c,
3913         integrate.c, jump.c, loop.c, predict.c, profile.c, reg-stack.c,
3914         regmove.c, reorg.c, a29k/a29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c,
3915         avr/avr.c, clipper/clipper.c, convex/convex.c, d30v/d30v.c,
3916         dsp16xx/dsp16xx.c, fr30/fr30.c, h8300/h8300.c, i370/i370.c,
3917         i386/i386.c, i860/i860.c, ia64/ia64.c, m32r/m32r.c, m68hc11/m68hc11.c,
3918         m68k/m68k.c, m88k/m88k.c, mcore/mcore.c, mn10200/mn10200.c,
3919         mn10300/mn10300.c, ns32k/ns32k.c, pa/pa.c, pdp11/pdp11.c,
3920         pj/pj.c, romp/romp.c, rs6000/rs6000.c, sh/sh.c, sparc/sparc.c,
3921         v850/v850.c, vax/vax.c:
3922         Don't include insn-flags.h.
3923
3924         * diagnostic.c, expr.h, reload.c, toplev.c:
3925         Don't include insn-codes.h.
3926
3927         * builtins.c, combine.c, except.c, explow.c, expmed.c, expr.c,
3928         final.c, function.c, optabs.c, recog.c, reload1.c, stmt.c,
3929         c4x/c4x.c, i960/i960.c, mips/mips.c:
3930         Don't include insn-codes.h or insn-flags.h.
3931
3932         * genemit.c, genopinit.c, genoutput.c: Don't include insn-codes.h
3933         or insn-flags.h in the generated code.
3934         * genflags.c (gen_proto): Use "struct rtx_def *" instead of "rtx".
3935         (main): Forward declare struct rtx_def.
3936
3937 2001-03-22  Joseph S. Myers  <jsm28@cam.ac.uk>
3938
3939         * invoke.texi (-ffast-math): Remove duplicate line about
3940         __FAST_MATH__.
3941
3942         * gcc.texi: Remove more obsolete documentation of bugs and
3943         installation problems.
3944
3945 2001-03-21  Kazu Hirata  <kazu@hxi.com>
3946
3947         * config/h8300/h8300.md (movsi_h8300hs): Split the 2nd alternative
3948         into two parts.
3949
3950 2001-03-20  Jason Merrill  <jason@redhat.com>
3951
3952         * collect2.c (is_ctor_dtor): Always use '_' in the file fn names,
3953         not '.' or '$'.
3954         * tree.c (FILE_FUNCTION_FORMAT): Likewise.
3955         * varasm.c (CHKR_PREFIX): Likewise.
3956
3957 Wed Mar 21 14:27:11 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3958
3959         * gcse.c (hash_scan_set): An expression is not anticipatible if it
3960         is part of a multi-SET insn.
3961
3962         * cse.c (find_comparison_args): Remove previous change.
3963         * ifcvt.c (noce_process_if_block): When moving an insn, remove any
3964         REG_EQUAL notes.
3965
3966         * config/i386/i386.md (conditional_trap): Remove warning.
3967
3968         * recog.c (push_operand): Fix error in last change that caused
3969         undefined symbol on many targets.
3970
3971         * sdbout.c: #include ggc.h.
3972         (sdbout_init): Move to end of file.
3973         Call ggc_add_tree_root for anonymous_types.
3974         (sdbout_symbol): Use DECL_NAME for local, not DECL_ASSEMBLER_NAME.
3975         (sdbout_one_type): Use DECL_NAME for field name.
3976         * Makefile.in (sdbout.o): Show includes ggc.h.
3977
3978 Wed Mar 21 20:33:26 CET 2001  Jan Hubicka  <jh@suse.cz>
3979
3980         * i386.c (override_options): Default ix86_regparm to REGPARM_MAX.
3981         (override_options): Use properlimits for preferred_stack_boundary.
3982         (ix86_valid_type_attribute_p): Disable stdcall and cdecl attributes
3983         on x86_64.
3984         (ext_register_operand): Accept DImode.
3985         (load_pic_register): Abort on 64bit.
3986         (gen_push): Use Pmode instead of SImode.
3987         (ix86_save_reg): Pic reg is never used on 64bit.
3988         (ix86_expand_prologue): Likewise.
3989         (ix86_emit_save_regs): Use Pmode instead of SImode.
3990         (legitimate_address_p): Check displacement for 64bit.
3991         (print_operand): Avoid outputting of (%rip) on 64bit.
3992         (print_operand_address): Output (%rip) where possible.
3993         (split_di): Abort on 64bit registers.
3994         (ix86_expand_branch): DImode comparison is simple for x86_64.
3995         (memory_address_length): Recognize memory addresses formed using
3996         PRE/POST modify.
3997         (ix86_data_alignment, ix86_local_alignment): Align arrays to 16 bytes
3998         for x86_64.
3999         * i386.h (TARGET_USE_SAHF): Disable for 64bit.
4000
4001 Wed Mar 21 18:51:19 CET 2001  Jan Hubicka  <jh@suse.cz>
4002
4003         * recog.c (push_operand): Recognize new format of push instructions.
4004
4005 Wed Mar 21 10:53:57 CET 2001  Jan Hubicka  <jh@suse.cz>
4006
4007         * i386.md (pushqi1): New.
4008         * i386-protos.h (x86_64_general_operand, x86_64_szext_general_operand,
4009         x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand,
4010         x86_64_immediate_operand, x86_64_immediate_operand,
4011         x86_64_zext_immediate_operand): Declare.
4012         * i386.c (x86_64_general_operand, x86_64_szext_general_operand,
4013         x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand,
4014         x86_64_immediate_operand, x86_64_immediate_operand,
4015         x86_64_zext_immediate_operand): define.
4016         * i386.h (PREDICATE_CODES): Add new predicates.
4017
4018 Wed Mar 21 10:25:13 CET 2001  Jan Hubicka  <jh@suse.cz>
4019
4020         * i386.md (pophi1, popqi1, pushqi1): Remove.
4021
4022         * expr.c (emit_single_push_insn): New function.
4023         (move_by_pieces): Accept NULL as destination for push instructions.
4024         (gen_push_operand): Kill.
4025         (emit_push_insn): Pass NULL when pushing; avoid updating of
4026         stack_pointer_delta.
4027         *&nb