OSDN Git Service

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