OSDN Git Service

* defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-02  Jason Merrill  <jason@redhat.com>
2
3         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
4         * c-decl.c (c_init_decl_processing): Use it.
5         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
6         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
7         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
8
9 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
10
11         * regrename.c: Fix formatting.
12         * tree.c: Likewise.
13
14 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
15
16         * i386.md (attribute memory): Handle compares properly.
17
18 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
19
20         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
21         to none.
22
23 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
24
25         * function.c: Fix formatting.
26
27 2002-05-02  Jan Hubicka  <jh@suse.cz>
28
29         * haifa-sched.c (schedule_insn): Print table of instructions and
30         reservations.
31         (sched_block): Do not print ready list at verbosity level 1.
32         * sched-vis.c (print_insn): Make global.
33         * sched-ebb.c (ebb_print_insn): Rename from...
34         (print_insn): ... this one.
35         * sched-int.h (print_insn): Declare
36
37 2002-05-02  Richard Henderson  <rth@redhat.com>
38
39         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
40         emitted by cycle_display.
41
42 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
43
44         * doc/install.texi (*-*-freebsd*): Update to latest status.
45
46 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
47
48         PR target/6540
49         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
50         * config/float-sparc.h: Assume 128-bit long double if
51         __LONG_DOUBLE_128__ is defined.
52
53 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
54
55         * genattrtab.c (write_function_unit_info): Add a dummy element
56         when num_units == 0.
57
58 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
59
60         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
61         TYPE_MODE (double_type_node) instead of DFmode.
62
63 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
64
65         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
66         jumps post reload.
67         * toplev.c (rest_of_compilation): Revert Richard's patch.
68
69 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
70
71         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
72
73 2002-05-02  Catherine Moore  <clm@redhat.com>
74
75         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
76
77 2002-05-02  Kazu Hirata  <kazu@hxi.com>
78
79         * combine.c: Fix comment typos.
80         * expr.c: Likewise.
81         * genautomata.c: Likewise.
82         * stmt.c: Likewise.
83         * tree.h: Likewise.
84
85 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
86
87         * doc/install.texi: State GNAT version requirements.
88
89 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
90
91         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
92         of the frame pointer or arg pointer register which strict register
93         checking is not enabled.
94
95 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
96
97         * gcc.dg/altivec-8.c: New.
98
99         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
100         PRE_INC and PRE_DEC for altivec modes.
101
102 2002-05-01  Bruce Korb  <bkorb@gnu.org>
103
104         * fixinc/check.tpl(set-writable): make sure the function exists first
105         * fixinc/inclhack.def(alpha_assert): fix test_text
106         * fixinc/tests/base/assert.h: add in missing result
107
108 2002-05-01  Jeff Law  <law@redhat.com>
109
110         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
111         'T' constraint.
112
113 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
114
115         * dbxout.c (dbxout_type): Emit size information for range types,
116         as well, but only when using GDB extensions.
117
118 2002-05-01  Richard Henderson  <rth@redhat.com>
119
120         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
121         target-independent gnu binutils date test.
122
123 2002-05-01  Richard Henderson  <rth@redhat.com>
124
125         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
126         info before expunging the block.
127
128 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
129
130         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
131         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
132         -M -or -MM is in effect.
133
134 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
135
136         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
137         A29k configurations.
138         * doc/install.texi: Update to match.
139
140 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
141
142         PR bootstrap/6514
143         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
144         for duplicates. Always loop over whole list.
145
146 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
147
148         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
149
150 2002-05-01      Joel Sherrill <joel@OARcorp.com>
151
152         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
153         support routines.
154
155 2002-05-01      Joel Sherrill <joel@OARcorp.com>
156
157         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
158
159 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
160
161         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
162         (nabs_nopower): Same.
163         (floatdisf2): New pattern.
164         (absdi2): Convert to define_insn_and_split.
165         (nabsdi2): Same.
166         (trunctfsf2): Same.
167         (floatditf2): Same.
168         (floatsitf2): Same.
169         (fix_trunctfdi2): Same.
170         (fix_trunctfsi2): Same.
171
172 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
173
174         * doc/install.texi: Update Texinfo version requirement
175         documentation.
176
177 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
178
179         PR target/6512, PR target/5628
180         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
181         when memory is not aligned.
182         (movdf_insn_v9only_vis): Likewise.
183         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
184         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
185         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
186
187 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
188
189         * gcc.dg/altivec-7.c: New.
190
191         * config/rs6000/altivec.h: Cleanup.
192
193 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
194
195         * doc/invoke.texi (Option Summary): Add -mvrsave=.
196         (RS/6000 and PowerPC Options): Document -mvrsave=.
197
198         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
199         (rs6000_altivec_vrsave_string): Same.
200         (rs6000_override_options): Call rs6000_parse_vrsave_option.
201         (rs6000_parse_vrsave_option): New.
202         (rs6000_stack_info): Only generate vrsave instructions when
203         TARGET_ALTIVEC_VRSAVE.
204
205         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
206         (rs6000_altivec_vrsave_string): Define extern.
207         (rs6000_altivec_vrsave): Same.
208         (TARGET_ALTIVEC_VRSAVE): New.
209
210 2002-04-30  Richard Henderson  <rth@redhat.com>
211
212         PR opt/6516
213         * toplev.c (rest_of_compilation): Don't run cross-jump before
214         bb-reorder.
215
216 2002-04-30  Tom Rix  <trix@redhat.com>
217
218         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
219         check which_alternative.
220
221 2002-04-30  Kazu Hirata  <kazu@hxi.com>
222
223         * cpplex.c: Fix comment formatting.
224         * function.c: Likewise.
225         * integrate.c: Likewise.
226         * regrename.c: Likewise.
227         * sibcall.c: Likewise.
228         * simplify-rtx.c: Likewise.
229         * tree-inline.c: Likewise.
230
231 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
232
233         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
234         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
235         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
236         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
237         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
238         * pa/x-ada: New file.  Define ADA_CFLAGS.
239
240 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
241
242         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
243         from MMIX_LAST_REGISTER_FILE_REGNUM.
244         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
245         (struct machine_function): New member highest_saved_stack_register
246         previously static variable in mmix.c.
247         (MACHINE_DEPENDENT_REORG): Define.
248         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
249         (MMIX_OUTPUT_REGNO): New.
250         (mmix_target_asm_function_prologue): Move calculation of last used
251         saved-stack-register into...
252         (mmix_machine_dependent_reorg): New function.  Update to also handle
253         !TARGET_ABI_GNU.
254         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
255         register names, simplify somewhat by new variable regno.
256         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
257         register.
258         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
259         emitting register names.
260         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
261         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
262         Remove fixed FIXME.
263         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
264         Declare.
265
266         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
267
268 2002-04-30  Richard Henderson  <rth@redhat.com>
269
270         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
271         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
272         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
273         emit_tfmode_cvt): New.
274         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
275         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
276         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
277         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
278         * config/sparc/sparc-protos.h: Update.
279
280 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
281
282         * install.texi (Final install): Add to the list of info to include
283         in a report of a successful bootstrap, and add link to 3.1 list.
284
285 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
286
287         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
288         (mode): Add vector modes
289         (i387): Kill attribute.
290         (unit): New attribute.
291         (length_immediate): Grok new types.
292         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
293         (modrm): Use "unit".
294         (memory): Handle MMX/SSE properly.
295         (scheduling descriptions): Kill uses of fop1.
296         (sse, mmx, fp patterns): Set type and mode properly.
297
298 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
299
300         * pa.c (override_options): Default to PA8000 scheduling.
301         * doc/invoke.texi (HP-PA options): Mention newly added 7300
302         scheduling parameter.
303
304         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
305         handling of double precision multiplies.
306
307         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
308         fpdiv and fpsqrt instructions.
309         (7200 & 7300 scheduling): Fix typo in handling of
310         store-load and store-store penalties.
311
312 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
313
314         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
315         mips.  Add two missing commas.
316
317 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
318
319         * doc/contrib.texi (Contributors): Update Paolo Carlini's
320         and Benjamin Kosnik's entries.
321
322 2002-04-29  David S. Miller  <davem@redhat.com>
323
324         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
325         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
326         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
327         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
328
329 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
330
331         * combine.c (find_split_point): Use gen_int_mode.
332
333 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
334
335         Merging code from dfa-branch:
336
337         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
338
339         * genautomata.c (output_reserv_sets): Fix typo.
340
341         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
342
343         * genautomata.c (output_reserv_sets): Remove
344         next_cycle_output_flag.
345
346         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
347
348         * sched-rgn.c (init_ready_list): Make the DFA code handle
349         USE/CLOBBER insns in the same way as the traditional
350         scheduler.
351         (new_ready): Similarly..
352
353         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
354
355         * haifa-sched.c (schedule_block): Change the DFA state only after
356         issuing insn.
357
358         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
359
360         * pa.c (hppa_use_dfa_pipeline_interface): New function.
361         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
362         (override_options): Add PA7300 scheduling support.
363         (pa_adjust_cost): Update various comments.  Properly
364         handle anti and output dependencies when using the
365         DFA scheduler.
366         (pa_issue_rate): Add PA7300 scheduling support.
367         (pa_can_combine_p): Call extract_insn before calling
368         constrain_operands (taken from mainline tree).
369         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
370         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
371         descriptions using DFA descriptions.  Add PA7300
372         scheduling support.
373
374         2002-03-30  David S. Miller  <davem@redhat.com>
375
376         Add UltraSPARC-III DFA scheduling support.
377         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
378         Update FP conditional move on register insn patterns to use it, as
379         appropriate.
380         (define_attr cpu): Add ultrasparc3.
381         (define_attr us3load_type): New, update integer load patterns to
382         set it, as appropriate.
383         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
384         (rest): Add UltraSPARC3 scheduling description.
385         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
386         (PROCESSOR_ULTRASPARC3): New.
387         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
388         ({ASM,CPP}_CPU_SPEC): Likewise.
389         (REGISTER_MOVE_COST): Likewise.
390         (RTX_COSTS): Likewise.
391         * config/sparc/sparc.c (sparc_override_options,
392         sparc_initialize_trampoline, sparc64_initialize_trampoline,
393         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
394         sparc_issue_rate): Likewise.
395         * config/sparc/sol2.h: Likewise.
396         * config/sparc/sol2-sld-64.h: Likewise.
397         * config/sparc/linux64.h: Likewise.
398
399         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
400
401         * doc/md.texi: Add comments about usage the latency time for the
402         different dependencies and about case when two or more conditions
403         in different define_insn_reservations returns TRUE for an insn.
404
405         * doc/md.texi: Add reference for automaton based pipeline
406         description.
407
408         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
409
410         * doc/passes.texi: Add missed information about genattrtab.
411
412         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
413
414         * genautomata.c (output_automata_list_transition_code): Check
415         automata_list on NULL.
416
417         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
418
419         * genautomata.c (output_insn_code_cases,
420         output_automata_list_min_issue_delay_code,
421         output_automata_list_transition_code,
422         output_automata_list_state_alts_code): Comment the functions.
423
424         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
425
426         * genautomata.c (automata_list_el_t): New typedef.
427         (get_free_automata_list_el,free_automata_list_el,
428         free_automata_list, automata_list_hash, automata_list_eq_p,
429         initiate_automata_lists, automata_list_start, automata_list_add,
430         automata_list_finish, finish_automata_lists,
431         output_insn_code_cases, output_automata_list_min_issue_delay_code,
432         output_automata_list_transition_code,
433         output_automata_list_state_alts_code, add_automaton_state,
434         form_important_insn_automata_lists): New functions and prototypes.
435         (insn_reserv_decl): Add members important_automata_list and
436         processed_p.
437         (ainsn): Add members important_p.
438         (automata_list_el): New structure.
439         (first_free_automata_list_el, current_automata_list,
440         automata_list_table): New global variables.
441         (create_ainsns): Initiate member important_p.
442         (output_internal_min_issue_delay_func): Generate the switch and
443         call output_insn_code_cases.
444         (output_internal_trans_func, output_internal_state_alts_func):
445         Ditto.
446         (generate): Call initiate_automata_lists.
447         (automaton_states): New global variable.
448         (expand_automata): Call form_important_insn_automata_lists.
449         (write_automata): Call finish_automata_lists.
450
451         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
452
453         * genautomata.c (add_excls, add_presence_absence): Check that
454         cpu units in the sets belong the same automaton.
455
456         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
457         about that cpu units in the sets belong the same automaton.
458
459         * doc/md.texi: Ditto.
460
461         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
462                     Nitin Gupta  <niting@noida.hcltech.com>
463
464         * config/sh/sh.c (sh_use_dfa_interface): New function.
465
466         (sh_issue_rate): New Function.
467         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
468         TARGET_SCHED_ISSUE_RATE: define.
469
470         * config/sh/sh.md: Add DFA based pipeline description for SH4.
471
472         (define_attr insn_class): New attribute used for DFA
473          scheduling.
474         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
475         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
476          cmpeqdi_t): Likewise.
477
478         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
479          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
480          ex_group.
481         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
482
483         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
484
485         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
486         break.
487
488         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
489
490         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
491         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
492         necessary.
493         (output_dfa_start_func): Initiate new variable insn_codes_length,
494         (write_automata): Output definition of the new variable.
495
496         2001-10-02  David S. Miller  <davem@redhat.com>
497
498         * haifa-sched.c (advance_one_cycle): New function.
499         (schedule_block): Use it.
500         (queue_to_ready): Use it, and also make sure to advance the DFA
501         state on all stall cycles, not just those where insn_queue links
502         are found.
503
504         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
505
506         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
507         non-zero if the highest-priority instruction could be scheduled.
508         (choose_ready): Remove last argument from max_issue call.
509
510         2001-09-28  David S. Miller  <davem@redhat.com>
511
512         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
513         ultrasparc and 3 for other multi-issue sparcs.
514
515         2001-09-27  David S. Miller  <davem@redhat.com>
516
517         * config/sparc/sparc.md (cycle_display): New pattern.
518         * config/sparc/sparc.c (sparc_cycle_display): New.
519         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
520
521         2001-09-25  David S. Miller  <davem@redhat.com>
522
523         Convert all of Sparc scheduling to DFA
524         * config/sparc/sparc.md: Kill all define_function_unit
525         directives and replace with DFA equivalent.
526         * config/sparc/sparc.c (ultrasparc_adjust_cost,
527         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
528         ultra_fpmode_conflict_exists, ultra_find_type,
529         ultra_build_types_avail, ultra_flush_pipeline,
530         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
531         ultrasparc_variable_issue, ultrasparc_sched_init,
532         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
533         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
534         ultra_cur_hist, ultra_cycles_elapsed): Kill.
535         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
536         ultrasparc_store_bypass_p): New.
537         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
538         Declare.
539
540         2001-09-24  David S. Miller  <davem@redhat.com>
541
542         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
543         ready->vec[foo] not ready[foo].
544
545         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
546
547         * doc/md.texi: Correct examples for define_insn_reservations
548         `mult' and `div'.
549
550         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
551
552         * genautomata.c (create_automata): Print message about creation of
553         each automaton.
554         (generate): Remove printing meease about creation of
555         automata.
556
557         2001-09-05  David S. Miller  <davem@redhat.com>
558
559         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
560         * config/sparc/linux64.h: Likewise.
561
562         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
563
564         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
565         schedule_block, sched_init, sched_finish): Add missed calls of
566         use_dfa_pipeline_interface.
567
568         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
569         Ditto.
570
571         * sched-vis.c (get_visual_tbl_length): Ditto.
572
573         2001-08-27  Richard Henderson  <rth@redhat.com>
574
575         * genattr.c (main): Emit state_t even when not doing scheduling.
576
577         2001-08-27  Richard Henderson  <rth@redhat.com>
578
579         * genautomata.c (expand_automata): Always create a description.
580
581         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
582
583         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
584         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
585         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
586         RTL constructions.
587
588         * genattr.c (main): New variable num_insn_reservations.  Increase
589         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
590         pipeline hazard recognizer interface.
591
592         * genattrtab.h: New file.
593
594         * genattrtab.c: Include genattrtab.h.
595         (attr_printf, check_attr_test, make_internal_attr,
596         make_numeric_value): Move protypes into genattrtab.h.  Define them
597         as external.
598         (num_dfa_decls): New global variable.
599         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
600         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
601         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
602         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
603
604         * genautomata.c: New file.
605
606         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
607
608         * sched-int.h: (curr_state): Add the external definition for
609         automaton pipeline interface.
610         (haifa_insn_data): Add comments for members blockage and units.
611
612         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
613         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
614         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
615         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
616         TARGET_SCHED_DFA_POST_CYCLE_INSN,
617         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
618         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
619         macros.
620         (TARGET_SCHED): Use the new macros.
621
622         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
623         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
624         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
625         dfa_bubble): New members in gcc_target.sched.
626
627         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
628         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
629         (insn_queue): Redefine it as pointer to array.
630         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
631         INSN_QUEUE_SIZE.
632         (max_insn_queue_index_macro_value): New variable.
633         (curr_state, dfa_state_size, ready_try): New varaibles for
634         automaton interface.
635         (ready_element, ready_remove, max_issue): New function prototypes
636         for automaton interface.
637         (choose_ready): New function prototype.
638         (insn_unit, blockage_range): Add comments.
639         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
640         FUNCTION_UNITS_SIZE == 0.
641         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
642         actual_hazard, potential_hazard): Add comments.
643         (insn_cost): Use cost -1 as undefined value.  Remove
644         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
645         pipeline interface.
646         (ready_element, ready_remove): New functions for automaton
647         interface.
648         (schedule_insn): Add new code for automaton pipeline interface.
649         (queue_to_ready): Add new code for automaton pipeline interface.
650         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
651         (debug_ready_list): Print newline when the queue is empty.
652         (max_issue): New function for automaton pipeline interface.
653         (choose_ready): New function.
654         (schedule_block): Add new code for automaton pipeline interface.
655         Print ready list before scheduling each insn.
656         (sched_init): Add new code for automaton pipeline interface.
657         Initiate insn cost by -1.
658         (sched_finish): Free the current automaton state and finalize
659         automaton pipeline interface.
660
661         * sched-rgn.c: Include target.h.
662         (init_ready_list, new_ready, debug_dependencies): Add new code for
663         automaton pipeline interface.
664
665         * sched-vis.c: Include target.h.
666         (get_visual_tbl_length): Add code for automaton interface.
667         (target_units, print_block_visualization):  Add comments.
668
669         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
670         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
671         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
672         (getruntime.o, genautomata.o): New entries.
673         (genattrtab.o): Add new dependency file genattrtab.h.
674         (genattrtab): Add new dependencies.  Link it with `libm.a'.
675         (getruntime.o, hashtab.o): New entries for canadian cross.
676
677         * doc/md.texi: Description of automaton based model.
678
679         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
680         Add comments.
681         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
682         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
683         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
684         TARGET_SCHED_DFA_POST_CYCLE_INSN,
685         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
686         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
687         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
688         hook descriptions.
689         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
690         MAX_DFA_ISSUE_RATE): New macro descriptions.
691
692         * doc/contrib.texi: Add dfa based scheduler contribution.
693
694         * doc/gcc.texi: Add more information about genattrtab.
695
696 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
697
698         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
699         adjust_address_nv call.
700
701 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
702
703         * doc/install.texi (Testing): Provide additional information, and
704         a stronger encouragement, for running the testsuites.
705
706 2002-04-29  DJ Delorie  <dj@redhat.com>
707
708         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
709         given in upper case.
710
711 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
712
713         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
714         Solaris 2 <widec.h> if missing.
715         * fixinc/fixincl.x: Regenerate.
716         * fixinc/tests/base/widec.h: New file.
717
718 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
719
720         * toplev.c (f_options): Add "profile" switch so that
721         -fno-profile can be used to disable -p.
722
723 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
724
725         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
726         UV2DImode.
727         * tree.c (build_common_tree_nodes_2): Likewise.
728         * tree.h (enum tree_index): Likewise.
729         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
730
731         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
732         entries.
733         (init_mmx_sse_builtins): Initialize SSE2 builtins.
734         (ix86_expand_builtin): Add support for SSE2 builtins.
735         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
736         (VALID_SSE_REG_MODE): Use it.
737         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
738         (enum ix86_builtins): Add SSE2 builtins.
739         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
740         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
741         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
742         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
743         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
744         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
745         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
746         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
747         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
748         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
749         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
750         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
751         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
752         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
753         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
754         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
755         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
756         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
757         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
758         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
759         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
760         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
761         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
762         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
763         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
764         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
765         lfence_insn): New patterns.
766         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
767         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
768
769 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
770
771         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
772
773 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
774
775         * doc/contrib.texi (Contributors): Add Paolo Carlini and
776         Janis Johnson.
777         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
778         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
779         and CPU instead of cpu.
780
781 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
782
783         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
784         variables.
785         (lang_independent_options): Add -fif-conversion, -fif-conversion2
786         (rest_of_compilation): Do if conversion only when asked for.
787         (parse_options_and_default_flags): Set new variables to 1 for -O1
788         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
789
790 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
791
792         * i386.c (dbx64_register_map): Fix typo.
793
794 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
795
796         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
797         real_one_half, real_bb_freq_max): New static variables.
798         (debug_profile_bbauxs): Kill.
799         (process_note_predictions): Kill unused variable.
800         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
801         volatile double.
802         (propagate_freq): Use REAL_ARITHMETICS.
803         (estimate_bb_frequencies): Likevise; init new static variables.
804         * Makefile.in (predict.o): Add dependency on real.h
805
806 2002-04-28  David S. Miller  <davem@redhat.com>
807
808         PR target/6500
809         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
810         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
811         several {reads,writes} instead.
812         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
813         Define.
814
815 2002-04-27  David S. Miller  <davem@redhat.com>
816
817         PR target/6494
818         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
819         of the stack bias.
820
821         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
822         including signal.h and sys/ucontext.h, not needed.
823
824 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
825
826         * varasm.c (output_constant_def): Correct test for not calling
827         ENCODE_SECTION_INFO for INTEGER_CST.
828
829 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
830
831         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
832         keep most cases as function eval_token.
833         (eval_token): New function.
834         (_cpp_parse_expr): Read token here for improved diagnostics.
835         Don't use op_as_text.  Detect bad ':' here.
836         (reduce): Don't detect bad ':' here.
837         (op_as_text): Remove.
838         * cpphash.h (_cpp_test_assertion): Change prototype.
839         * cpplib.c (_cpp_test_assertion): Change prototype.
840
841 2002-04-28  Richard Henderson  <rth@redhat.com>
842
843         PR c/5154
844         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
845         (ggc_mark_rtx_children): New.
846
847 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
848
849         PR target/6496
850         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
851         after call peepholes for UltraSPARC.
852         (call + jump 64-bit peepholes): Remove.
853
854 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
855
856         PR c/6497
857         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
858         result as temporary value.
859
860 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
861
862         PR c++/6396
863         * toplev.c (rest_of_compilation): Only run regrename and copy
864         propagation if optimizing.
865
866 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
867
868         PR optimization/6475
869         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
870         register of REGNO_DECL (i).
871         * Makefile.in (reload1.o): Add $(TREE_H).
872
873 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
874
875         * cppexp.c (lex): Update to use state.skip_eval.
876         (struct op): Remove prio and flags members.
877         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
878         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
879         (LEFT_ASSOC): New macro.
880         (optab): New table of operator priorities and flags.
881         (SHIFT): Update.
882         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
883         malloc-ed parser stack.
884         (reduce): New; reduce the operator stack.
885         (_cpp_expand_op_stack): Expand the operator stack as necessary.
886         * cpphash.h (struct op): Predeclare.
887         (struct cpp_reader): New members op_stack, op_limit.
888         (struct lexer_state): New member skip_eval.
889         (_cpp_parse_expr): Update.
890         (_cpp_expand_op_stack): New.
891         * cpplib.c (do_if): Update.
892         * cppinit.c (cpp_create_reader): Create op stack.
893         (cpp_destroy): And destroy it.
894         * cpplib.h (CPP_LAST_CPP_OP): Correct.
895         (TTYPE_TABLE): Correct.
896
897 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
898
899         PR c/6343
900         * c-decl.c (duplicate_decls): Call merge_weak.
901         * c-pragma.c (apply_pragma_weak): Warn about misuse.
902         * output.h (merge_weak): Prototype merge_weak.
903         * varasm.c (merge_weak): New function.
904         (declare_weak): Make sure we don't give an error on VAR_DECLs.
905         Mark RTL with SYMBOL_REF_WEAK.
906
907 2002-04-27  Kurt Garloff <garloff@suse.de>
908
909         * tree-inline.c (inlinable_function_p): Improve heuristics
910         by using a smoother function to cut down allowable inlinable size.
911         * param.def: Add parameters max-inline-insns-single,
912         max-inline-slope, min-inline-insns that determine the exact
913         shape of the above function.
914         * param.h: Likewise.
915
916 2002-04-26  Richard Henderson  <rth@redhat.com>
917
918         * c-parse.in (malloced_yyss, malloced_yyvs): New.
919         (yyoverflow): Re-add.  Set them.
920         (free_parser_stacks): New.
921         * c-common.h: Declare it.
922         * c-lex.c (c_common_parse_file): Call it.
923
924 2002-04-26  Richard Henderson  <rth@redhat.com>
925
926         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
927         for fallthru search.
928
929 2002-04-26  Eric Christopher  <echristo@redhat.com>
930
931         PR optimization/3700
932         * config/mips/mips.c (mips_issue_rate): Define.  New function.
933         (TARGET_SCHED_ISSUE_RATE): Use.
934
935 2002-04-25  David S. Miller  <davem@redhat.com>
936
937         PR target/6422
938         * reorg.c (optimize_skip): Do not allow exception causing
939         instructions to be considered for delay slots.
940         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
941         (relax_delay_slots): Do not try to consider exception causing
942         instructions as redundant.
943
944 2002-04-26  Richard Henderson  <rth@redhat.com>
945
946         PR c/5225
947         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
948
949 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
950
951         PR bootstrap/6445
952         * config/i386/i386.md (untyped_call): Return the value in a float
953         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
954         TARGET_80387.
955
956 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
957
958         * tree.c (tree_int_cst_lt): Compare constants whose types differ
959         in unsigned-ness correctly.
960
961 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
962
963         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
964         portable runtime model.
965
966 2002-04-26  Richard Henderson  <rth@redhat.com>
967
968         * c-parse.in (yyoverflow): Revert.
969
970 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
971             Richard Henderson  <rth@redhat.com>
972
973         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
974         result as temporary value.
975
976 2002-04-26  Richard Henderson  <rth@redhat.com>
977
978         PR c/3581
979         * c-common.c (fix_string_type): Split out of ...
980         (combine_strings): ... here.  Take a varray, not a tree list.
981         (c_expand_builtin_printf): Use fix_string_type.
982         * c-common.h: Update decls.
983         * c-parse.in (string): Remove.  Update all uses to use STRING
984         instead, and not call combine_strings.
985         (yylexstring): New.
986         (_yylex): Use it.
987         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
988         (build_asm_stmt): Likewise.
989         * objc/objc-act.c (my_build_string): Use fix_string_type.
990         (build_objc_string_object): Build varray for combine_strings.
991
992 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
993
994         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
995         x86-64.
996
997 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
998
999         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
1000         (HAVE_NO_R_OPERAND): Remove.
1001         (HAVE_VALUE): Remove.
1002         (op_to_prio): Update.
1003         (UNARY): Don't alter flags.
1004         (_cpp_parse_expr): want_value used to indicate whether
1005         a number or unary operator is expected next.  Distinguish
1006         unary and binary +/-.
1007         (op_as_text): Update for unary operators.
1008
1009 2002-04-25  Richard Henderson  <rth@redhat.com>
1010
1011         PR c/2161
1012         * c-parse.in (yyoverflow): New.
1013
1014 2002-04-25  Richard Henderson  <rth@redhat.com>
1015
1016         PR c/2098
1017         * c-common.c (shorten_compare): Simplfy conditions leading to
1018         the generation of a warning.
1019
1020 2002-04-25  Richard Henderson  <rth@redhat.com>
1021
1022         PR c/2035
1023         * expmed.c (extract_bit_field): Fall through to generic code rather
1024         than aborting on subreg special case.
1025
1026 2002-04-25  David S. Miller  <davem@redhat.com>
1027
1028         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
1029         for DECL being NULL.
1030
1031 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
1032
1033         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
1034
1035 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
1036
1037         * c-decl.c (grokdeclarator): Remove outdated ??? note
1038         on invalid declaration of flexible array members.
1039
1040 2002-04-25  Richard Henderson  <rth@redhat.com>
1041
1042         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
1043
1044 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
1045
1046         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
1047         needed by the compiler, even if they are used as global regs.
1048
1049 2002-04-25  Matt Hiller  <hiller@redhat.com>
1050
1051         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
1052         functions.
1053         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
1054         of the corresponding functions.
1055         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
1056         New prototypes.
1057
1058 2002-04-25  Matt Hiller  <hiller@redhat.com>
1059
1060         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
1061
1062         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
1063         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
1064         registers, adjust comment accordingly.
1065         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
1066         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
1067         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
1068         for coprocessor registers.
1069         (ADDITIONAL_REGISTER_NAMES): Include
1070         ALL_COP_ADDITIONAL_REGISTER_NAMES.
1071
1072         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
1073         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
1074         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
1075         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
1076         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
1077
1078         (mips_char_to_class): Adjust comment to include coprocessor
1079         constraint letters.
1080
1081         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
1082         New functions.
1083         (mips_reg_names, mips_regno_to_class): Include coprocessor
1084         information.
1085         (mips_sw_reg_names): Ditto, make non-static.
1086         (mips_move_1word): Handle moves to and from coprocessor registers.
1087         (mips_move_2words): Handle moves to and from coprocessor
1088         registers.
1089         (mips_class_max_nregs, mips_register_move_cost): Handle
1090         coprocessor register classes.
1091         (override_options): Initialize mips_char_to_class and
1092         mips_hard_regno_mode_ok properly for coprocessor registers.
1093
1094         * config/mips/mips.md (movdi_internal, movdi_internal2,
1095         movsi_internal1, movsi_internal2): Add constraint-sets for
1096         coprocessor registers.
1097         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
1098         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
1099         isn't mips.
1100         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
1101         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
1102         isn't mips.
1103         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
1104         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
1105         isn't mips.
1106         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
1107         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
1108         isn't mips.
1109
1110         * doc/tm.texi: Document feature.
1111
1112 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1113
1114         * integrate.c (function_attribute_inlinable_p): Simplify.
1115         Check the table pointer is not NULL.
1116
1117 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
1118
1119         * doc/c-tree.texi: Fix typo in introduction.
1120
1121 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1122
1123         * c-common.h (c_common_parse_file): Update.
1124         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1125         * c-lex.c (YYDEBUG): Get from c-lex.h.
1126         (c_common_parse_file): Update.
1127         * c-lex.h (YYDEBUG, yydebug): New.
1128         * c-parse.in (YYDEBUG): Get from c-lex.h.
1129         (c_set_yydebug): Remove.
1130         * c-tree.h (c_set_yydebug): Remove.
1131         * langhooks-def.h (lhd_do_nothing_i): New.
1132         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
1133         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
1134         * langhooks.c  (lhd_do_nothing_i): New.
1135         (lhd_set_yydebug): Remove.
1136         * langhooks.h (struct lang_hooks): Update.
1137         * toplev.c (set_yydebug): New.
1138         (compile_file): Update call to parse_file hook.
1139         (decode_d_option): Update.
1140 objc:
1141         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1142
1143 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
1144
1145         * loop.c (load_mems): Don't change the interface of called functions.
1146
1147         * calls.c (expand_call): Take current_function_pretend_args_size
1148         into account when setting argblock for sibcalls.
1149
1150 2002-04-24  Matt Hiller  <hiller@redhat.com>
1151
1152         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
1153         * c-lex.c: Ditto.
1154
1155         * cpplex.c (skip_line_comment): Process comment one multibyte
1156         character at a time rather than one char at a time, if
1157         appropriate.
1158         (parse_string): Process string one multibyte character at a time
1159         rather than one char at a time, if appropriate.
1160         * c-lex.c (lex_string): Lex and copy multibyte strings
1161         appropriately.
1162         * cpplib.h (cppchar_t): Change to unsigned.
1163
1164 2002-04-24  Richard Henderson  <rth@redhat.com>
1165
1166         PR c/3467
1167         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
1168         for c99.
1169
1170 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
1171
1172         * sh.c (sh_va_arg): If argument was passed by reference,
1173         dereference the pointer.
1174
1175         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
1176
1177         * sh.md (divsi3_i4_media): Use match_operand for input values
1178         rather than hard registers.
1179         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
1180         unnecessarily through hard registers.  Keep copies of pseudo
1181         registers outside of the libcall sequence.
1182
1183         * sh.md (casesi_shift_media): Add modes.
1184
1185         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
1186         values in memory.
1187
1188 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1189
1190         * attribs.c (c_common_attribute_table): Move table and handlers
1191         to c-common.c.
1192         (format_attribute_table, lang_attribute_table,
1193         lang_attribute_common): Remove.
1194         (init_attributes): Replace NULL pointers with pointers to the
1195         empty table.
1196         (handle_packed_attribute, handle_nocommon_attribute,
1197         handle_common_attribute, handle_noreturn_attribute,
1198         handle_noinline_attribute, handle_always_inline_attribute,
1199         handle_used_attribute, handle_unused_attribute,
1200         handle_const_attribute, handle_transparent_union_attribute,
1201         handle_constructor_attribute, handle_destructor_attribute,
1202         handle_mode_attribute, handle_section_attribute,
1203         handle_aligned_attribute, handle_weak_attribute,
1204         handle_alias_attribute, handle_visibility_attribute,
1205         handle_no_instrument_function_attribute, handle_malloc_attribute,
1206         handle_no_limit_stack_attribute, handle_pure_attribute,
1207         handle_deprecated_attribute, handle_vector_size_attribute,
1208         vector_size_helper): Move to c-common.c.
1209         * c-common.c (c_common_attribute_table,
1210         handle_packed_attribute, handle_nocommon_attribute,
1211         handle_common_attribute, handle_noreturn_attribute,
1212         handle_noinline_attribute, handle_always_inline_attribute,
1213         handle_used_attribute, handle_unused_attribute,
1214         handle_const_attribute, handle_transparent_union_attribute,
1215         handle_constructor_attribute, handle_destructor_attribute,
1216         handle_mode_attribute, handle_section_attribute,
1217         handle_aligned_attribute, handle_weak_attribute,
1218         handle_alias_attribute, handle_visibility_attribute,
1219         handle_no_instrument_function_attribute, handle_malloc_attribute,
1220         handle_no_limit_stack_attribute, handle_pure_attribute,
1221         handle_deprecated_attribute, handle_vector_size_attribute,
1222         vector_size_helper): Move from attribs.c.
1223         * c-common.h (c_common_attribute_table,
1224         c_common_format_attribute_table): New.
1225         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1226         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
1227         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
1228         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
1229         (LANG_HOOKS_INITIALIZER): Update.
1230         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
1231         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
1232         * target.h: Update comment.
1233         * tree.c (default_target_attribute_table): Remove.
1234         * tree.h (default_target_attribute_table, format_attribute_table,
1235         lang_attribute_table, lang_attribute_common): Remove.
1236 objc:
1237         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1238         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
1239
1240 2002-04-24  Jason Merrill  <jason@redhat.com>
1241
1242         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
1243         * dwarf2out.c (dwarf_attr_name): Support it.
1244         (gen_array_type_die): Emit it.
1245         (lookup_type_die): No special handling for VECTOR_TYPE.
1246         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
1247
1248 2002-04-24  Richard Henderson  <rth@redhat.com>
1249
1250         * config/mips/mips.md (movdi_usd): Renumber.
1251
1252 2002-04-24  David S. Miller  <davem@redhat.com>
1253
1254         PR target/6420
1255         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
1256         32-bit Sparc and current_function_returns_struct is true.
1257
1258 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
1259
1260         * loop.c (canonicalize_condition): Use gen_int_mode.
1261
1262 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
1263
1264         * config/rs6000/altivec.h: Cleanup file.  Add non individual
1265         variants.
1266         (vec_vaddubm): New.
1267         (vec_vadduhm): New.
1268         (vec_vadduwm): New.
1269         (vec_vaddfp): New.
1270         (vec_vaddcuw): New.
1271         (vec_vaddubs): New.
1272         (vec_vaddsbs): New.
1273         (vec_vadduhs): New.
1274         (vec_vadduws): New.
1275         (vec_vaddsws): New.
1276         (vec_vand): New.
1277         (vec_vandc): New.
1278         (vec_vavgub): New.
1279         (vec_vavgsb): New.
1280         (vec_vavguh): New.
1281         (vec_vavgsh): New.
1282         (vec_vavguw): New.
1283         (vec_vavgsw): New.
1284         (vec_vrfip): New.
1285         (vec_vcmpbfp): New.
1286         (vec_vcmpequb): New.
1287         (vec_vcmpequh): New.
1288         (vec_vcmpequw): New.
1289         (vec_vcmpeqfp): New.
1290         (vec_vcmpgefp): New.
1291         (vec_vcmpgtub): New.
1292         (vec_vcmpgtsb): New.
1293         (vec_vcmpgtuh): New.
1294         (vec_vcmpgtsh): New.
1295         (vec_vcmpgtuw): New.
1296         (vec_vcmpgtsw): New.
1297         (vec_vcmpgtfp): New.
1298         (vec_vcmpgefp): New.
1299         (vec_vcfux): New.
1300         (vec_vcfsx): New.
1301         (vec_vctsxs): New.
1302         (vec_vctuxs): New.
1303         (vec_vexptefp): New.
1304         (vec_vrfim): New.
1305         (vec_lvx): New.
1306         (vec_lvebx): New.
1307         (vec_lvehx): New.
1308         (vec_lde): Add vector float variant.
1309         (vec_lvewx): New.
1310         (vec_lvxl): New.
1311         (vec_vlogefp): New.
1312         (vec_vmaddfp): New.
1313         (vec_vmhaddshs): New.
1314         (vec_vmaxub): New.
1315         (vec_vmaxsb): New.
1316         (vec_vmaxuh): New.
1317         (vec_vmaxsh): New.
1318         (vec_vmaxuw): New.
1319         (vec_vmaxsw): New.
1320         (vec_vmaxsw): New.
1321         (vec_vmaxfp): New.
1322         (vec_vmrghb): New.
1323         (vec_vmrghh): New.
1324         (vec_vmrghw): New.
1325         (vec_vmrglb): New.
1326         (vec_vmrglh): New.
1327         (vec_vmrglw): New.
1328         (vec_vminub): New.
1329         (vec_vminsb): New.
1330         (vec_vminuh): New.
1331         (vec_vminsh): New.
1332         (vec_vminuw): New.
1333         (vec_vminsw): New.
1334         (vec_vminfp): New.
1335         (vec_vmladduhm): New.
1336         (vec_vmhraddshs): New.
1337         (vec_msumubm): New.
1338         (vec_vmsummbm): New.
1339         (vec_vmsumuhm): New.
1340         (vec_vmsumshm): New.
1341         (vec_vmsumuhs): New.
1342         (vec_vmsumshs): New.
1343         (vec_vmuleub): New.
1344         (vec_vmulesb): New.
1345         (vec_vmuleuh): New.
1346         (vec_vmulesh): New.
1347         (vec_vmuloub): New.
1348         (vec_mulosb): New.
1349         (vec_vmulouh): New.
1350         (vec_vmulosh): New.
1351         (vec_vnmsubfp): New.
1352         (vec_vnor): New.
1353         (vec_vor): New.
1354         (vec_vpkuhum): New.
1355         (vec_vpkuwum): New.
1356         (vec_vpkpx): New.
1357         (vec_vpkuhus): New.
1358         (vec_vpkshss): New.
1359         (vec_vpkuwus): New.
1360         (vec_vpkswss): New.
1361         (vec_vpkshus): New.
1362         (vec_vpkswus): New.
1363         (vec_vperm): New.
1364         (vec_vrefp): New.
1365         (vec_vrlb): New.
1366         (vec_vrlh): New.
1367         (vec_vrlw): New.
1368         (vec_vrfin): New.
1369         (vec_vrsqrtefp): New.
1370         (vec_vsel): New.
1371         (vec_vslb): New.
1372         (vec_vslh): New.
1373         (vec_vslw): New.
1374         (vec_vsldoi): New.
1375         (vec_vsl): New.
1376         (vec_vslo): New.
1377         (vec_vspltb): New.
1378         (vec_vsplth): New.
1379         (vec_vspltw): New.
1380         (vec_vspltisb): New.
1381         (vec_vspltish): New.
1382         (vec_vspltisw): New.
1383         (vec_vsrb): New.
1384         (vec_vsrh): New.
1385         (vec_vsrw): New.
1386         (vec_vsrab): New.
1387         (vec_vsrah): New.
1388         (vec_vsraw): New.
1389         (vec_vsr): New.
1390         (vec_vsro): New.
1391         (vec_stvx): New.
1392         (vec_stvebx): New.
1393         (vec_stvehx): New.
1394         (vec_stvewx): New.
1395         (vec_stvxl): New.
1396         (vec_vsububm): New.
1397         (vec_vsubuhm): New.
1398         (vec_vsubuwm): New.
1399         (vec_vsubfp): New.
1400         (vec_vsubcuw): New.
1401         (vec_vsububs): New.
1402         (vec_vsubsbs): New.
1403         (vec_vsubuhs): New.
1404         (vec_vsubshs): New.
1405         (vec_vsubuws): New.
1406         (vec_vsubsws): New.
1407         (vec_vsum4ubs): New.
1408         (vec_vsum4sbs): New.
1409         (vec_vsum4shs): New.
1410         (vec_vsum2sws): New.
1411         (vec_vsumsws): New.
1412         (vec_vrfiz): New.
1413         (vec_vupkhsb): New.
1414         (vec_vupkhpx): New.
1415         (vec_vupkhsh): New.
1416         (vec_vupklsb): New.
1417         (vec_vupklpx): New.
1418         (vec_vupklsh): New.
1419         (vec_vxor): New.
1420
1421 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
1422
1423         PR c/5430
1424         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
1425         added literals from substracted literals.
1426         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
1427         (fold) [associate]: Preserve MINUS_EXPR if needed.
1428
1429 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
1430
1431         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
1432         are obsoleted.
1433
1434 2002-04-23  Tom Tromey  <tromey@redhat.com>
1435
1436         * gcc.c: Added --resource.  For PR java/6314.
1437
1438 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
1439
1440         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
1441         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
1442         these libraries.
1443
1444 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
1445
1446         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
1447
1448 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
1449
1450         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
1451         workaround.
1452         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
1453         (ix86_expand_clrstr): Fix typo.
1454         * loop.c (gen_load_of_final_value): New.
1455         (loop_givs_rescan, strength_reduce, check_dbra_loop):
1456         Use it.
1457
1458 2002-04-23  Roger Sayle  <roger@eyesopen.com>
1459
1460         * builtins.c (builtin_memset_gen_str): New function.
1461         (expand_builtin_memset): Optimize the case of constant length, but
1462         unknown value.
1463
1464 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
1465
1466         * config/rs6000/altivec.h (vec_step): Remove extraneous
1467         parentheses.
1468         (vec_ctu): Cast return.
1469
1470 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
1471
1472         PR target/6413
1473         * function.h: (struct function): Add profile_label_no field.
1474         (current_function_profile_label_no): Define.
1475         * function.c: (profile_label_no): New static var.
1476         (expand_function_start): Increment it, and copy to
1477         current_function_profile_label_no.
1478         * output.h (profile_label_no): Delete.
1479         * final.c (profile_label_no): Delete.
1480         (profile_function): Use current_function_profile_label_no.
1481         (final_end_function): Don't increment profile_label_no here.
1482         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
1483         profile_label_no with current_function_profile_label_no.
1484         * config/pa/pa.c (current_function_number): Delete.
1485         (pa_output_function_prologue): Don't output profile label here.
1486         (hppa_profile_hook): Use label_no param rather than
1487         current_function_number.
1488         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
1489         * config/pa/pa.h: .. here.
1490         (FUNCTION_PROFILER): Output profile label here.
1491
1492 2002-04-22  Eric Christopher  <echristo@redhat.com>
1493
1494         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
1495         patch of 2002-04-09 due to binutils issues.
1496         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
1497
1498 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
1499
1500         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
1501         constraint to 'o' for m=r and r=m alternatives.
1502         ("*movv8hi_internal1"): Same.
1503         ("*movv16qi_internal1"): Same.
1504         ("*movv4sf_internal1"): Same.
1505
1506 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
1507
1508         * rtl.h (RTX_FLAG): New macro.
1509         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
1510         * final.c (alter_subreg): Use macro to access rtx flag.
1511         * integrate.c (copy_rtx_and_substitute): Use new access macro.
1512         * print-rtl.c (print_rtx): Use new access macro.
1513
1514         * cse.c (insert): Check rtx code before accessing flag.
1515
1516         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
1517         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
1518         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
1519         convert_const_symbol_ref, make_canonical, make_alternative_compare,
1520         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
1521         simplify_test_exp, optimize_attrs, simplify_by_exploding,
1522         find_and_mark_used_attributes, unmark_used_attributes,
1523         add_values_to_cover, simplify_with_current_value,
1524         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
1525         copy_rtx_unchanging, main): Use new access macros.
1526
1527 2002-04-22  Tom Rix  <trix@redhat.com>
1528
1529         * expmed.c (init_expmed): Generate shifted constant once.
1530
1531 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
1532
1533         * c-lex.c (lex_charconst): Call convert to get constant in
1534         proper type; don't just smash the type field.
1535         Fixes PR c/6300.
1536
1537         * config.gcc: Add list of obsolete configurations.  Disallow
1538         building these without --enable-obsolete.
1539         * doc/install.texi: Document --enable-obsolete and obsoletion
1540         policy.  Mention obsoletion of individual targets in
1541         appropriate places.
1542
1543 2002-04-22  Richard Henderson  <rth@redhat.com>
1544
1545         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
1546
1547 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
1548
1549         PR f/6138.
1550         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
1551         (walk_fixup_memory_subreg): Likewise.
1552         (fixup_var_refs_insn): Adjust accordingly.
1553         (fixup_var_refs_1): Likewise.
1554
1555 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
1556
1557         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
1558         LIBPATH_ARCH64_SPEC): Define.
1559         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
1560         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
1561         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
1562         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
1563
1564 2002-04-22      Joel Sherrill <joel@OARcorp.com>
1565
1566         * gthr-rtems.h: Correct prototypes to remove warnings.
1567
1568 2002-04-22  Richard Henderson  <rth@redhat.com>
1569
1570         PR c/6344
1571         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
1572
1573         * gcse.c (free_insn_expr_list_list): New.
1574         (clear_modify_mem_tables): Use it.  Fix bit set usage.
1575         (canon_list_insert): Use EXPR_LISTs for expressions.
1576         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
1577
1578 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1579
1580         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
1581         file change and include code to _cpp_pop_buffer.
1582         * cpphash.h (struct pending_option): Predeclare.
1583         (struct cpp_reader): New member next_include_file.
1584         (_cpp_pop_file_buffer): Update.
1585         (_cpp_push_next_buffer): Update, rename.
1586         * cppinit.c (cpp_destroy): Free include chain and pending here.
1587         (cpp_finish_options): Simplify.
1588         (_cpp_push_next_buffer): Rename and clean up.
1589         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
1590         Clarify.
1591         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
1592
1593 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
1594
1595         * config/rs6000/altivec.h (vec_xor): Add variant for both args
1596         being vector signed int.
1597         (vec_andc): Same.
1598         (vec_xor): Add variant for both args being vector signed char.
1599         Remove redundant variant.
1600         (vec_andc): Same.
1601
1602 2002-04-21  David S. Miller  <davem@redhat.com>
1603
1604         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
1605         compare mode in output RTL.
1606
1607 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
1608
1609         * config/rs6000/rs6000.c (rs6000_override_options): Correct
1610         style and formatting of previous patch.
1611
1612 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
1613
1614         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
1615         flag_pic for ABI_AIX.
1616
1617 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1618
1619         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
1620         * cppfiles.c (read_include_file): Similarly.
1621         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
1622         uxstrdup ustrchr, ufputs): Similarly.
1623         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
1624         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
1625         cpp_ideq, parse_identifier, parse_number): Similarly.
1626         * cpplib.c (struct directive, dequote_string, D, run_directive,
1627         cpp_push_buffer): Similarly.
1628         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
1629         _cpp_create_definition, check_trad_stringification,
1630         cpp_macro_definition): Similarly.
1631
1632 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1633
1634         * cppmacro.c (funlike_invocation_p): Don't step back
1635         over CPP_EOF.
1636
1637 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
1638
1639         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
1640         labelno.
1641
1642 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
1643
1644         * doc/invoke.texi: Remove Chill references.
1645         * doc/gcc.texi: Update last modified date.
1646
1647 2002-04-20  Kazu Hirata  <kazu@hxi.com>
1648
1649         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
1650         push and pop.  Replace add.l with add.w.
1651
1652 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1653
1654         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
1655         multiply instructions for H8/300H case.
1656
1657 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1658
1659         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
1660         Bum three instructions from each routine.
1661
1662 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1663
1664         * Makefile.in: Update.
1665         * decl.c (push_c_function_context, pop_c_function_context,
1666         mark_c_function_context): Rename for consistency.
1667         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
1668         * c-tree.h (push_c_function_context, pop_c_function_context,
1669         mark_c_function_context): Rename for consistency.
1670         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1671         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
1672         * function.c (init_lang_status, save_lang_status,
1673         restore_lang_status, mark_lang_status, free_lang_status):
1674         Move to langhooks.h.
1675         (push_function_context_to, pop_function_context_from,
1676         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
1677         Update.
1678         * function.h (init_lang_status, save_lang_status,
1679         restore_lang_status, mark_lang_status, free_lang_status):
1680         Move to langhooks.h.
1681         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
1682         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
1683         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
1684         LANG_HOOKS_FUNCTION_INITIALIZER): New.
1685         (LANG_HOOKS_INITIALIZER): Update.
1686         (lhd_do_nothing_f): New.
1687         * langhooks.h (struct lang_hooks_for_functions): New.
1688         (struct lang_hooks): New hooks.
1689         * langhooks.c (lhd_do_nothing_f): New.
1690 objc:
1691         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1692         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
1693
1694 2002-04-19  David S. Miller  <davem@redhat.com>
1695
1696         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
1697         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
1698
1699 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
1700
1701         PR optimization/3756
1702         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
1703         x = ((int) y < 0) ? cst1 : cst2.
1704
1705 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
1706
1707         PR c/6358
1708         * function.c: Reapply patch for c/6358.
1709         (expand_function_end): Copy decl_rtl's mode, not
1710         current_function_return_rtx mode.
1711
1712 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
1713
1714         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
1715         targets.
1716
1717 2002-04-19  Tom Tromey  <tromey@redhat.com>
1718
1719         * doc/install.texi (Specific): Update status of Solaris 2.8.
1720         For PR libgcj/6158.
1721
1722 2002-04-19  Andreas Schwab  <schwab@suse.de>
1723
1724         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
1725         (PUT_REAL): Restore old definition.
1726
1727 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
1728             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1729
1730         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
1731         binutils 2.11.2 and higher generate smaller binaries than Sun's
1732         native tools.
1733
1734 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
1735
1736         PR c++/6352
1737         * toplev.c (rest_of_compilation): Do not defer functions for which
1738         TREE_SYMBOL_REFERENCED has already been set.
1739
1740 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
1741
1742         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
1743         alternative.
1744
1745 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1746
1747         * builtins.c: Include langhooks.h.
1748         (lang_type_promotes_to): Remove.
1749         (expand_builtin_va_arg): Use new hook.
1750         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
1751         (simple_type_promotes_to): Move to c-typeck.c.
1752         * c-common.h (simple_type_promotes_to): Remove.
1753         * c-decl.c (duplicate_decls, grokdeclarator): Update.
1754         * c-format.c: Include langhooks.h.
1755         (check_format_types): Update.
1756         * c-tree.h (c_type_promotes_to): New.
1757         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
1758         (type_lists_compatible_p): Update.
1759         * langhooks-def.h (lhd_type_promotes_to): New.
1760         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
1761         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
1762         * langhooks.c (lhd_type_promotes_to): New.
1763         * langhooks.h (struct lang_hooks_for_types): New hook.
1764         * tree.h (lang_type_promotes_to): Remove.
1765 objc:
1766         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
1767
1768 2002-04-18  Richard Henderson  <rth@redhat.com>
1769
1770         * function.c: Revert patch for c/6358.
1771
1772 2002-04-18  Richard Henderson  <rth@redhat.com>
1773
1774         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
1775         blocks.  Handle multiple references to the TRAP block.  Handle
1776         non-adjacent THEN and OTHER blocks.
1777
1778 2002-04-18  Richard Henderson  <rth@redhat.com>
1779
1780         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
1781         crash with no type for by-mode libcalls.
1782
1783         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
1784
1785 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
1786
1787         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
1788         __xtensa_nonlocal_goto): Use a syscall instructions to flush
1789         the register windows.
1790
1791 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
1792
1793         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
1794         appropriate.  Document need for extended precision even when
1795         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
1796         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
1797         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
1798         instead of relying on later syntax error when REAL_WIDTH > 5.
1799         * real.c: Define NE based only on whether or not we have a
1800         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
1801         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
1802         define GET_REAL and PUT_REAL as simple memcpy operations; no
1803         need to byteswap or round.
1804         Use #error instead of #ifdef-ing out the entire file, for
1805         prompt error detection.
1806
1807         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
1808
1809 2002-04-18  David S. Miller  <davem@redhat.com>
1810
1811         * config/sparc/sparc.h (BRANCH_COST): Define.
1812
1813         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
1814         does it.
1815
1816 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
1817
1818         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
1819         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
1820         propagate_block calls after relaxation loop using new variable
1821         stabilized_prop_flags.
1822
1823 2002-04-18  Richard Henderson  <rth@redhat.com>
1824
1825         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
1826         (ia64_va_arg): Expect variable sized types by reference.
1827         * config/ia64/ia64-protos.h: Update.
1828         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
1829         ia64_function_arg_pass_by_reference.
1830
1831 2002-04-18  Richard Henderson  <rth@redhat.com>
1832
1833         * ifcvt.c: Include except.h.
1834         (block_has_only_trap): Break out from find_cond_trap.
1835         (find_cond_trap): Use it.  Always delete the trap block.
1836         (merge_if_block): Allow then block null.  Be less simplistic about
1837         what insns can end a block.
1838         * Makefile.in (ifcvt.o): Depend on except.h.
1839
1840         * config/ia64/ia64.md (trap, conditional_trap): New.
1841
1842 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
1843
1844         PR c/6358
1845         * function.c (assign_parms): Assign hard current_function_return_rtx
1846         register here...
1847         (expand_function_end): ...not here.
1848
1849 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1850
1851         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
1852         * c-tree.h (c_incomplete_type_error): New.
1853         * c-typeck.c (require_complete_type, build_component_ref): Update.
1854         (incomplete_type_error): Rename.
1855         * langhooks-def.h (lhd_incomplete_type_error): New.
1856         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
1857         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
1858         * langhooks.c (lhd_incomplete_type_error): New.
1859         * langhooks.h (struct lang_hooks_for_types): New hook.
1860         * tree.c (size_in_bytes): Use new hook.
1861         * tree.h (incomplete_type_error): Remove.
1862 objc:
1863         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
1864
1865 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
1866
1867         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
1868         TARGET_FLOAT_FORMAT blocks.
1869
1870 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1871
1872         * doc/install.texi (Downloading the source): Do not mention Chill
1873         any longer, but mention Ada.
1874         (Configuration): Do not mention Chill any longer.
1875
1876 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
1877
1878         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
1879
1880 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
1881
1882         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
1883         in last patch.
1884
1885 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
1886
1887         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
1888         instead of unsigned_type.
1889
1890 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
1891
1892         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
1893         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
1894         later.
1895
1896 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
1897
1898         * attribs.c (vector_type_node_list): New static variable.
1899         (handle_vector_size_attribute): Use it to avoid generating a
1900         new type node each time we are called.
1901
1902         * combine.c (subst): Avoid trying to make a vector mode subreg of
1903         an integer constant.
1904         (gen_lowpart_for_combine): Likewise.
1905
1906 2002-04-18  Roger Sayle  <roger@eyesopen.com>
1907             Jakub Jelinek  <jakub@redhat.com>
1908
1909         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
1910         for integer constant c (if x has unsigned type or sign bit is not
1911         set in c).  This folds the zero/sign extension into the bit-wise and
1912         operation.
1913
1914 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
1915
1916         PR middle-end/6205
1917         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
1918         otherwise xorps.
1919
1920 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
1921
1922         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
1923
1924 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
1925
1926         * gcc.c (read_specs): Detect and fail if an attempt is made to
1927         rename a spec string to an already existing string.
1928
1929 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
1930
1931         * config/s390/s390.c (legitimize_pic_address): Do not generate
1932         illegal address constant without CONST.
1933
1934 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1935
1936         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
1937         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
1938
1939 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
1940
1941         PR optimization/6305
1942         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
1943         to make sure previous reloads are taken into account.  Generate
1944         better code if one operand is an in-range immediate constant.
1945
1946 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
1947
1948         * doc/install.texi (Building): libgcj requires GNU make.
1949
1950 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
1951
1952         PR bootstrap/6315
1953         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
1954         even if hard quad and register is not floating.
1955         (movtf reg<-mem split): Disallow splitting if hard quad and
1956         register is floating.
1957         (movtf mem<-reg split): Likewise.
1958         * config/sparc/sparc.c (fp_register_operand): New predicate.
1959         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
1960
1961 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
1962
1963         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
1964         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
1965         (unprotoize.o): Ditto.  Build from protoize.c.  Define
1966         UNPROTOIZE on command line.
1967         * protoize.c: Include cppdefault.h.  Delete include_defaults.
1968         (in_system_include_dir): Use cpp_include_defaults (defined in
1969         cppdefault.o).
1970         * unprotoize.c: Delete file.
1971
1972 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
1973
1974         * config/rs6000/altivec.h (vec_ld): Add array variants.
1975         (vec_lde): Same.
1976         (vec_ldl): Same.
1977
1978 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
1979             Aldy Hernandez <aldyh@redhat.com>
1980
1981         * config/rs6000/altivec.h: Define __ALTIVEC__.
1982         (bool): New.
1983         (__pixel): New.
1984         (pixel): New.
1985         (vec_cfux): New.
1986         (vec_vmaddfp): New.
1987         (vec_vsldoi): New.
1988         Add parentheses to all macro arguments.
1989
1990 2002-04-16  Richard Henderson  <rth@redhat.com>
1991
1992         PR c++/6320
1993         * except.c (remove_eh_handler): Insert inner regions at beginning
1994         of sibling chain.  Refactor expressions.
1995
1996 2002-04-16  Richard Henderson  <rth@redhat.com>
1997
1998         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
1999         * config/sparc/sol2-gas-bi.h: New file.
2000         * config.gcc (sparc*-solaris): Add it as needed.
2001         * configure.in (AS_SPARC64_FLAG): Remove check.
2002         * config.in, configure: Regenerate.
2003
2004         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
2005
2006 2002-04-16  Richard Henderson  <rth@redhat.com>
2007
2008         * config/mips/mips.c (override_options): Don't override N32 for
2009         a 64-bit ISA.
2010
2011         PR 6202
2012         * config/mips/mips.md (can_delay): Split out of existing define_delays.
2013         (HILO_delay): Set can_delay false.
2014
2015 2002-04-16  Dale Johannesen <dalej@apple.com>
2016
2017         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
2018         instruction addresses.
2019         (rs6000_output_function_epilogue): Likewise.
2020
2021 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
2022
2023         * c-parse.in (poplevel, compstmt_start,
2024         compstmt_primary_start): Add ending ';', in accordance
2025         with POSIX.
2026
2027 2002-04-16  Richard Henderson  <rth@redhat.com>
2028
2029         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
2030         Adjust tm_file order to get TARGET_DEFAULT set properly.
2031         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
2032         * doc/install.texi (sparc-solaris): Update.
2033
2034 2002-04-16  Dale Johannesen <dalej@apple.com>
2035
2036         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
2037         comparison operands do not match each other or if modes of
2038         conditions do not match result.
2039
2040 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
2041
2042         PR target/6305
2043         * config/s390/s390.md (mulsidi3): Set both subregs of the
2044         multiword register.
2045
2046 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
2047
2048         * config/rs6000/altivec.h (vec_addc): Type check.
2049
2050 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
2051
2052         PR middle-end/6279
2053         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
2054
2055         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
2056
2057 2002-04-15  Richard Henderson  <rth@redhat.com>
2058
2059         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
2060         call_really_used_regs too.
2061
2062 2002-04-15  Richard Henderson  <rth@redhat.com>
2063
2064         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
2065
2066 2002-04-15  David S. Miller  <davem@redhat.com>
2067
2068         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
2069         as being CLOBBERed.
2070
2071 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
2072
2073         PR c/6290
2074         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
2075         CONST_VECTOR is { 0, ... 0 }.
2076
2077 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
2078
2079         * doc/install.texi (Installing GCC: Configuration): Clarify
2080         the only supported ways to configure gcc.
2081
2082 2002-04-15  Roland McGrath  <roland@frob.com>
2083
2084         * config.gcc (alpha*-*-gnu*): New target configuration.
2085         * config/alpha/gnu.h: New file for it.
2086         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
2087
2088 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
2089
2090         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
2091         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
2092         * tree.h (expand_start_stmt_expr): Update prototype.
2093         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
2094         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
2095         on the STMT_EXPR created for the inline function.
2096
2097 2002-04-15  Richard Henderson  <rth@redhat.com>
2098
2099         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
2100         config/i386/linux-aout.h, config/i386/linux-oldld.h,
2101         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
2102         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
2103         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
2104         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
2105         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
2106         Define __gnu_linux__, not gnu_linux.
2107         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
2108
2109 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
2110
2111         Remove Chill front end.
2112         * gcc.c (default_compilers): Remove Chill entries.
2113         * ch: Remove directory.
2114         * doc/frontends.texi: Remove information about Chill.
2115         * doc/sourcebuild.texi: Likewise.
2116         * doc/standards.texi: Likewise.
2117
2118 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
2119
2120         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
2121         (LONGLONG_STANDALONE): Define.
2122
2123 2002-04-15  David S. Miller  <davem@redhat.com>
2124
2125         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
2126         Call emit_library_call with LCT_NORMAL.
2127         (sparc_initialize_trampoline): Use LCT_foo instead of
2128         magic constant in emit_library_call invocations.
2129         (sparc64_initialize_trampoline): Likewise.
2130         (sparc_profile_hook): Likewise.
2131         * config/sparc/sparc.md: Likewise.
2132
2133         * config/sparc/sparc.c (sparc_extra_constraint_check):
2134         Fix type of argument 'c'.
2135         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
2136         Likewise.
2137
2138 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
2139
2140         * diagnostic.h (output_buffer_state): Redefine.
2141         (output_format_decoder): New macro.
2142         (output_prefixing_rule): Likewise.
2143         (output_line_cutoff): Likewise.
2144         (diagnostic_format_decoder): Adjust.
2145         (diagnostic_prefixing_rule): Likewise.
2146         (diagnostic_line_cutoff): Likewise.
2147         (diagnostic_state): Likewise.
2148         (diagnostic_kind_count): Likewise.
2149         (diagnostic_buffer): Now a macro.
2150
2151         * diagnostic.c (diagnostic_buffer): Remove definition.
2152         (output_is_line_wrapping): Adjust.
2153         (set_real_maximum_length): Likewise.
2154         (output_set_maximum_length): Likewise.
2155         (init_output_buffer): Likewise.
2156         (lhd_print_error_function): Likewise.
2157         (output_do_verbatim): Likewise.
2158
2159 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2160
2161         * cpperror.c (print_location): Don't print include chain
2162         if line == 0.
2163         (cpp_begin_message): Update to use DL_ macros.
2164         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
2165         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2166         cpp_notice, cpp_notice_from_errno): Remove.
2167         (cpp_error, cpp_error_with_line): Update to take a diagnostic
2168         level.
2169         (cpp_errno): New.
2170         * cppexp.c (CPP_ICE): Remove.
2171         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
2172         lex, integer_overflow, _cpp_parse_expr): Update.
2173         * cppfiles.c (read_include_file, find_include_file,
2174         handle_missing_header, _cpp_read_file, remap_filename): Update.
2175         * cpphash.h (enum error_type): Remove.
2176         (_cpp_begin_message): Update.
2177         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
2178         cpp_handle_option, cpp_post_options): Update.
2179         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
2180         skip_whitespace, parse_identifier, parse_slow, parse_string,
2181         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
2182         cpp_interpret_charconst): Update.
2183         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
2184         lex_macro_node, do_undef, glue_header_name, parse_include,
2185         do_include_common, read_flag, do_line, do_linemarker, do_ident,
2186         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
2187         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
2188         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
2189         _cpp_pop_buffer, do_diagnostic): Update.
2190         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
2191         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
2192         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
2193         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2194         cpp_notice, cpp_notice_from_errno): Remove.
2195         (cpp_error, cpp_error_with_line): Update to take a diagnostic
2196         level.
2197         (cpp_errno): New.
2198         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
2199         collect_args, enter_macro_context, save_parameter, parse_params,
2200         _cpp_create_definition, check_trad_stringification,
2201         cpp_macro_definition): Update.
2202         * cppmain.c (cpp_preprocess_file): Update.
2203         * fix-header.c (read_scan_file): Update.
2204
2205 2002-04-14  Andreas Schwab  <schwab@suse.de>
2206
2207         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
2208
2209 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
2210
2211         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
2212
2213 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
2214
2215         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
2216         not gnu_hurd.
2217
2218 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
2219
2220         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
2221
2222 2002-04-13      Joel Sherrill <joel@OARcorp.com>
2223
2224         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
2225         sparc-elf and sparc-rtems targets.
2226
2227 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
2228
2229         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
2230         defined, and __gnu_hurd__ wherever __GNU__ is defined.
2231         * arm/linux-elf.h: Likewise.
2232         * cris/aout.h: Likewise.
2233         * cris/linux.h: Likewise.
2234         * i370/linux.h: Likewise.
2235         * i386/gnu.h: Likewise.
2236         * i386/linux-aout.h: Likewise.
2237         * i386/linux-oldld.h: Likewise.
2238         * i386/linux.h: Likewise.
2239         * i386/linux64.h: Likewise.
2240         * ia64/linux.h: Likewise.
2241         * m68k/linux-aout.h: Likewise.
2242         * m68k/linux.h: Likewise.
2243         * mips/linux.h: Likewise.
2244         * pa/pa-linux.h: Likewise.
2245         * pj/linux.h: Likewise.
2246         * rs6000/sysv4.h: Likewise.
2247         * s390/linux.h: Likewise.
2248         * sh/linux.h: Likewise.
2249         * sparc/linux-aout.h: Likewise.
2250         * sparc/linux.h: Likewise.
2251         * sparc/linux64.h: Likewise.
2252         * xtensa/linux.h: Likewise.
2253
2254 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
2255
2256         * stmt.c (check_unique_operand_names): Expect operand names to
2257         be strings rather than identifiers.  Use simple_cst_equal to
2258         compare them.
2259         (resolve_operand_name_1): Make same identifier to string change here.
2260         * c-parse.in (asm_operand): Convert a named operand into a string.
2261         * cp/parse.y (asm_operand): Likewise.
2262
2263 2002-04-13  Andreas Schwab  <schwab@suse.de>
2264
2265         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
2266
2267 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
2268
2269         Revert these changes:
2270
2271         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
2272
2273         PR c++/5571
2274         * stor-layout.c (layout_decl): Reset the RTL for the decl.
2275
2276 2002-04-12  Richard Henderson  <rth@redhat.com>
2277
2278         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
2279         (sparc*-*-solaris): Clean up header files.
2280         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
2281         and plan on generating 64-bit code.
2282         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
2283         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
2284         * config/sparc/sol2-sld-64.h: Rename ...
2285         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
2286         for AS_SPARC64_FLAG not defined.
2287         * config/sparc/sol2-gld-bi.h: New.
2288         * config/sparc/sol2-sld.h: Remove.
2289         * config/sparc/sol26-sld.h: New.
2290         * config/sparc/sol2.h: Tidy comments.
2291         * doc/install.texi: Document sparc-solaris configury changes.
2292
2293 2002-04-12  Richard Henderson  <rth@redhat.com>
2294
2295         * recog.c (offsettable_address_p): Match the logic in adjust_address.
2296
2297         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
2298         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
2299
2300 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2301
2302         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
2303
2304 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
2305
2306         * pa.c (pa_can_combine_p): Call extract_insn before calling
2307         constrain_operands.
2308
2309 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
2310
2311         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
2312         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
2313         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
2314         (CPP_PREDEFINES): Handle __declspec.
2315         * config/i386/t-interix (USER_H): Remove.
2316
2317 2002-04-12  DJ Delorie  <dj@redhat.com>
2318
2319         * integrate.c (compare_blocks): Make comparisons safe for when
2320         sizeof(int) < sizeof(char *).
2321         (find_block): Likewise.
2322
2323 2002-04-12  Jan Hubicka  <jh@suse.cz>
2324             David Edelsohn  <edelsohn@gnu.org>
2325
2326         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
2327         registers.
2328         (symbol_ref_operand): New.
2329         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
2330         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
2331
2332 2002-04-12  Andreas Schwab  <schwab@suse.de>
2333
2334         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
2335         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
2336         overrides the definition in config/svr4.h.
2337
2338 2002-04-12      Eric Norum <eric.norum@usask.ca>
2339
2340         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
2341         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
2342         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
2343         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
2344         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
2345         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
2346         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
2347         definitions to config/rtems.h and make the targets more similar.
2348
2349 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2350
2351         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
2352         POINTERS_EXTEND_UNSIGNED.
2353         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
2354         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
2355
2356         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
2357         not specified.
2358
2359 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
2360
2361         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
2362         depends on TARGET_SHMEDIA, not TARGET_SH5.
2363
2364 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
2365
2366         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
2367         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
2368
2369 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
2370
2371         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
2372         no r0 clobber.
2373
2374 2002-04-12  Andreas Schwab  <schwab@suse.de>
2375
2376         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
2377
2378 2002-04-12  Richard Henderson  <rth@redhat.com>
2379
2380         PR bootstrap/4191
2381         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
2382
2383         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
2384         modes spanning multiple hard regs.
2385
2386         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
2387
2388 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2389
2390         * pa.c (pa_output_function_prologue): Don't accumulate the total
2391         number of code bytes when using TARGET_64BIT, or gas, SOM and not
2392         the portable runtime.
2393         (output_deferred_plabels): Handle 64bit plabels.
2394         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
2395         generating pic code using the GAS assembler for object formats that
2396         are not SOM (ie., ELF32 and ELF64).
2397         (output_millicode_call): Check attribute type if attribute length is 28.
2398         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
2399         dbr_sequence_length once.
2400         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
2401         dbr_sequence_length once.
2402         * pa.h (TARGET_SOM): Define if not defined.
2403         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
2404         with GAS and not SOM.
2405         (jump, call_internal_reg, call_value_internal_reg): Likewise.
2406         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
2407
2408 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2409
2410         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
2411         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
2412         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
2413         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
2414         elfos.h and dbxelf.h values are fine now.
2415         * config/i386/freebsd.h, config/alpha/freebsd.h
2416         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
2417
2418 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2419
2420         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
2421         or set Acpu or Amachine.  Reformat.
2422         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2423         define.
2424         (LINK_SPEC): Do not need to undef.
2425         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
2426         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
2427         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2428         define.
2429         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
2430         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
2431         (LINK_SPEC): Do not need to undef.
2432         (DONT_USE_BUILTIN_SETJMP): Do not define.
2433         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
2434         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
2435         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
2436         Remove trailing spaces.
2437         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
2438         __ELF__, or set Acpu or Amachine.  Reformat.
2439         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2440         define.
2441
2442 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2443
2444         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
2445         all other *-*-freebsd* targets.
2446
2447 2002-04-11  Richard Henderson  <rth@redhat.com>
2448
2449         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
2450
2451 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2452
2453         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
2454         Include {cpu}/{cpu}.h thru tm_file.
2455         (alpha*-*-linux*ecoff): Remove target.
2456         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
2457         (LINK_SPEC): Remove, is not OS independent.
2458         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
2459         (LINK_SPEC): Do not need to #undef any longer.
2460         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
2461         any longer.
2462         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
2463         __ELF__.
2464         (LINK_SPEC): Moved here from alpha/elf.h.
2465         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
2466         SUB_CPP_PREDEFINES.
2467         * config/alpha/linux-ecoff.h: Remove.
2468         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
2469         (CPP_SPEC): Define _POSIX_SOURCE as needed.
2470         (CPP_SUBTARGET_SPEC): Do not define.
2471         (LINK_SPEC): Do not need to #undef any longer.
2472         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
2473         * config/alpha/vms.h: Likewise.
2474
2475 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
2476
2477         * doc/extend.texi: Remove old claim that typedefs cannot have
2478         an alignment attribute.
2479
2480 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
2481
2482         PR optimization/6177
2483         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
2484         bitpos is 0 and bitsize CONCAT size.
2485
2486 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
2487
2488         PR c/6223
2489         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
2490
2491 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
2492
2493         * config/alpha/freebsd.h: Minor reformatting.
2494         (CPP_SPEC): Define ELF and add cpp_subtarget.
2495         (ASM_SPEC): No longer needed.
2496
2497 2002-04-11  Richard Henderson  <rth@redhat.com>
2498
2499         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
2500         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
2501         (dimode mem/zero splitter): New.
2502
2503 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
2504
2505         * config/cris/cris.c (cris_override_options): Tweak error message
2506         for PIC not implemented.
2507
2508         * config/cris/cris.h: Tweak comments related to parameter-passing.
2509
2510         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
2511
2512 2002-04-10  Richard Henderson  <rth@redhat.com>
2513
2514         * except.c (add_ehl_entry): Allow duplicates after landing pad
2515         creation.
2516
2517 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
2518
2519         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
2520
2521 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
2522
2523         * c-decl.c (c_init_decl_processing): Move generation of
2524         decls for g77_integer_type_node and friends from here ...
2525         * c-common.c (c_common_nodes_and_builtins): ... to here.
2526
2527 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
2528
2529         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
2530         is only used as frame pointer when frame_pointer_needed is true.
2531
2532 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
2533
2534         PR target/817
2535         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
2536         for the fact that the pool entry uses two words.
2537         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
2538         1k bytes.
2539         (movdf_soft_insn): Similarly.
2540         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
2541         for the fact that the pool entry uses three words.
2542
2543 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
2544
2545         * config/mips/mips.c (mips_va_arg): When using the struct version
2546         of the EABI va_list, allow arguments in the register save area to
2547         take up less room than a stack argument.
2548
2549 2002-04-10  Richard Henderson  <rth@redhat.com>
2550
2551         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
2552         if EXPAND_INITIALIZER.
2553
2554 2002-04-09  Richard Henderson  <rth@redhat.com>
2555
2556         * config/alpha/alpha.md (movdi_er_maybe_g): New.
2557         * config/alpha/alpha.c (alpha_expand_mov): Use it.
2558
2559 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
2560
2561         PR optimization/6233
2562         * rtlanal.c (pure_call_p): New function.
2563         * rtl.h (pure_call_p): Declare.
2564         * loop.c (prescan_loop): Use it to set has_nonconst_call.
2565         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
2566
2567 2002-04-09  Eric Christopher  <echristo@redhat.com>
2568
2569         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
2570         information to .comm directive.
2571
2572 2002-04-09  Richard Henderson  <rth@redhat.com>
2573
2574         PR c/5078
2575         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
2576
2577 2002-04-09  Richard Henderson  <rth@redhat.com>
2578
2579         * basic-block.h (flow_delete_block_noexpunge): Declare.
2580         (expunge_block_nocompact): Declare.
2581         * cfg.c (expunge_block_nocompact): Split out from ...
2582         (expunge_block): ... here.
2583         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
2584         (flow_delete_block_noexpunge): Split out from ...
2585         (flow_delete_block): ... here.
2586         * cfgcleanup.c (delete_unreachable_blocks): Compact while
2587         removing dead blocks.
2588         * except.c (exception_handler_labels): Remove.
2589         (exception_handler_label_map): New.
2590         (struct eh_region): Add aka member.
2591         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
2592         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
2593         (for_each_eh_label, for_each_eh_label_1): New.
2594         (init_eh): Register exception_handler_label_map.
2595         (free_eh_status): Use free_region.
2596         (find_exception_handler_labels): Use the map, not the list.
2597         (remove_exception_handler_label): Likewise.
2598         (maybe_remove_eh_handler): Likewise.
2599         (remove_eh_handler): Use the region aka bitmap.
2600         * except.h (exception_handler_labels): Remove.
2601         (for_each_eh_label): Declare.
2602         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
2603         * loop.c (invalidate_loops_containing_label): New.
2604         (find_and_verify_loops): Use it.  Use for_each_eh_label.
2605         * sched-rgn.c (is_cfg_nonregular): Use
2606         current_function_has_exception_handlers.
2607
2608 2002-04-09  Richard Henderson  <rth@redhat.com>
2609
2610         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
2611         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
2612         Do not return changed status.
2613         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
2614         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
2615         New functions that do return changed status.
2616         * sbitmap.h: Update decls.
2617         * gcse.c, lcm.c: Use _cg functions as needed.
2618
2619 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
2620
2621         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
2622         (sh64-*-elf*, sh-*-rtemself*): Likewise.
2623         * config/sh/embed_bb.c: New file.
2624         * config/sh/embed-elf.h: New file.
2625         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
2626         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
2627         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
2628         __PTRDIFF_TYPE__ .
2629         (SUBTARGET_CPP_PTR_SPEC): Don't define.
2630         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
2631         Add subtarget_asm_endian_spec.
2632         (ASM_SPEC): Use subtarget_asm_endian_spec.
2633         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
2634         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
2635         (WCHAR_UNSIGNED): Define.
2636         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
2637         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
2638         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
2639         Fix value.
2640         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
2641         (sh_adjust_cost): Likewise.
2642         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
2643         __PTRDIFF_TYPE__ .
2644         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
2645         (WCHAR_TYPE_SIZE): Likewise.
2646         (ASM_SPEC): Use subtarget_asm_endian_spec.
2647         (SH_ELF_WCHAR_TYPE): #undef/ #define.
2648         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
2649         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
2650         (MAX_WCHAR_TYPE_SIZE): Don't #define .
2651         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
2652         (USER_LABEL_PREFIX): Don't #undef /#define .
2653         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
2654         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
2655         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
2656         (ASM_SPEC): Likewise.
2657         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
2658         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
2659         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
2660         (LIB2FUNCS_EXTRA): Define.
2661         * t-sh64 (LIB2FUNCS_EXTRA): Define.
2662         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
2663         (LIB1ASMFUNCS_CACHE): Define.
2664         (LIB2FUNCS_EXTRA): Redefine empty.
2665
2666 2002-04-08  Richard Henderson  <rth@redhat.com>
2667
2668         * reorg.c (get_branch_condition): Use reversed_comparison_code.
2669
2670 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2671
2672         * config/m68hc11/larith.asm (__map_data_section): Fix condition
2673         and optimize for size.
2674         (__do_global_ctors): Fix pointer comparison.
2675         (__do_global_dtors): Likewise.
2676
2677 2002-04-09  David S. Miller  <davem@redhat.com>
2678
2679         * config/sparc/sparc.c (sparc_extra_constraint_check): New
2680         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
2681         allow reloading pseudos.
2682         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
2683         * config/sparc/sparc-protos.h: Declare it.
2684
2685         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
2686         unsigned comparison warning.
2687         (output_restore_regs): Mark leaf_function as unused.
2688
2689 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2690
2691         * expr.c (is_aligning_offset): New function.
2692         (expand_expr, case COMPONENT_EXPR): Call it.
2693
2694 2002-04-08  David S. Miller  <davem@redhat.com>
2695
2696         PR target/6082
2697         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
2698
2699         Make init_priority work on Sparc when using GNU ld.
2700         * config/sparc/linux.h, config/sparc/linux64.h,
2701         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
2702         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
2703         * config/sparc/sol2-gld.h: New file to do the same.
2704         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
2705         sparc/sol2-gld.h to tm_file.
2706
2707         PR optimization/4328
2708         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
2709         * doc/md.texi: Document it.
2710         * config/sparc/sparc.md (movdi_insn_sp64_novis,
2711         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
2712         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
2713         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
2714         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
2715
2716 2002-04-08  Andreas Jaeger  <aj@suse.de>
2717
2718         * stmt.c (expand_asm_operands): Revert last patch from Richard
2719         Henderson.
2720
2721 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2722
2723         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
2724         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
2725
2726 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2727
2728         * doc/contrib.texi (Contributors): Add David O'Brien.
2729
2730 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
2731
2732         * configure.in (auto-build.h): Use target_alias and build_alias
2733         when running configure.
2734         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
2735         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
2736         * configure: Regenerate.
2737
2738 2002-04-07  David S. Miller  <davem@redhat.com>
2739
2740         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
2741
2742 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2743
2744         PR 5933
2745         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
2746         generating 32-bit pic code.
2747
2748 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
2749
2750         * cppinit.c (cpp_create_reader): Initialize
2751         discard_comments_in_macro_exp.
2752         (COMMAND_LINE_OPTIONS): Add "-CC" option.
2753         (cpp_handle_option): Handle "-CC" option.
2754         * cpplex.c (save_comment): If saving a C++ comment in
2755         a directive, convert it to a C comment.
2756         (_cpp_lex_direct): Pass second comment start character to
2757         save_comment to indicate comment type.
2758         * cpplib.c (_cpp_handle_directive): If processing
2759         a "#define" directive and discard_comments_in_macro_exp
2760         is false,  re-enable saving of comments.
2761         (lex_macro_node): If discard_comments_in_macro_exp is false,
2762         discard any comments before the macro identifier.
2763         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
2764         member.
2765         * cppmacro.c (cpp_get_token): If expanding a macro while
2766         processing a directive, discard any comments we might encounter.
2767         (parse_params): If discard_comments_in_macro_exp is false,
2768         ignore comments in the macro parameter list.
2769         * gcc.c (cpp_unique_options): Add "-CC" option.
2770         (option_map): Map "--comments-in-macros" to "-CC".
2771         * doc/cppopts.texi: Document "-CC" option.
2772         * f/lang-specs.h: Add "-CC" option.
2773         * testsuite/gcc.dg/cpp/maccom1.c: New test.
2774         * testsuite/gcc.dg/cpp/maccom2.c: New test.
2775         * testsuite/gcc.dg/cpp/maccom3.c: New test.
2776         * testsuite/gcc.dg/cpp/maccom4.c: New test.
2777         * testsuite/gcc.dg/cpp/maccom5.c: New test.
2778         * testsuite/gcc.dg/cpp/maccom6.c: New test.
2779
2780 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2781
2782         PR middle-end/6180
2783         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
2784
2785 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
2786
2787         PR c++/5571
2788         * stor-layout.c (layout_decl): Reset the RTL for the decl.
2789
2790         PR opt/5120
2791         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
2792         RTX_UNCHANGING_P for the functions arguments when a tail call
2793         is made.
2794
2795 2002-04-06  Jason Merrill  <jason@redhat.com>
2796
2797         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
2798         (parse_options_and_default_flags): Set them appropriately.
2799         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
2800
2801 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
2802
2803         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
2804         here.
2805
2806         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
2807         semicolon.
2808
2809         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
2810         types come in by-reference.  Fix typo in comment.
2811
2812 2002-04-05  David S. Miller  <davem@redhat.com>
2813
2814         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
2815         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
2816         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
2817         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
2818
2819 2002-04-05  David S. Miller  <davem@redhat.com>
2820
2821         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
2822         are not going to emit return instructions, emit at least a nop
2823         for the sake of sane backtraces.
2824
2825 2002-04-05  Richard Henderson  <rth@redhat.com>
2826
2827         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
2828
2829 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
2830
2831         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
2832
2833 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
2834
2835         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
2836         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
2837         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
2838
2839 2002-04-05  Andreas Schwab  <schwab@suse.de>
2840
2841         * c-convert.c: Include c-common.h.
2842         * Makefile.in (c-convert.o): Updated.
2843
2844 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
2845
2846         * mklibgcc.in: Use separate libgcc.map for each multilib.
2847         * Makefile.in (distclean): Don't remove libgcc.map here.
2848
2849 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
2850
2851         * Makefile.in (s-mlib): Handle --disable-multilib by separate
2852         genmultilib invocation.
2853
2854 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
2855
2856         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
2857         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
2858         to num_gprs for symmetry.
2859         * config/mips/mips.c: Adjust accordingly.
2860
2861 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2862
2863         * c-common.c (truthvalue_conversion): Rename, update.
2864         * c-common.h (c_common_truthvalue_conversion): New.
2865         * c-convert.c (convert): Update.
2866         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
2867         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
2868         * c-typeck.c (build_binary_op, build_unary_op,
2869         build_conditional_expr): Update.
2870         * fold-const.c (constant_boolean_node, fold): Use langhook.
2871         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
2872         * langhooks.h (struct lang_hooks): New hook.
2873         * stmt.c (expand_decl_cleanup): Use langhook.
2874         * tree.h (truthvalue_conversion): Remove.
2875 objc:
2876         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
2877
2878 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
2879
2880         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
2881         Add rules to make null object file.
2882
2883 2002-04-04  Jim Blandy  <jimb@redhat.com>
2884
2885         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
2886         macro formal parameter names.
2887
2888 2002-04-04  David S. Miller  <davem@redhat.com>
2889
2890         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
2891
2892 2002-04-04  Richard Henderson  <rth@redhat.com>
2893
2894         PR middle-end/5099
2895         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
2896         Support copies into and out of memory.  Don't accept allows_reg
2897         and allows_mem as gospel.
2898
2899 2002-04-04  Richard Henderson  <rth@redhat.com>
2900
2901         PR opt/6165
2902         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
2903         (write_dependence_p): Likewise.
2904
2905 2002-04-04  Richard Henderson  <rth@redhat.com>
2906
2907         * predict.c (estimate_bb_frequencies): Do frequency calculation
2908         with a volatile temporary.
2909
2910 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
2911
2912         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
2913
2914 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2915
2916         PR c++/6119
2917         * final.c (final_start_function): Don't bump profile_label_no here...
2918         (final_end_function): ...but here.
2919
2920 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2921
2922         * config/sparc/sparc.md (pic): New attribute.
2923         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
2924         into stack slots.
2925         (split after do_builtin_setjmp_setup): New.
2926
2927 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2928
2929         PR fortran/6106
2930         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
2931         change.
2932
2933 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2934
2935         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
2936         UNITS_PER_WORD for zero sized aggregates.
2937
2938 2002-04-03  David S. Miller  <davem@redhat.com>
2939
2940         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
2941         one-character spec for this, just use %(link_gcc_c_sequence).
2942
2943 2002-04-03  David S. Miller  <davem@redhat.com>
2944
2945         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
2946         handling.
2947
2948 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2949
2950         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
2951         (DWARF_FRAME_RETURN_COLUMN): Move.
2952         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2953         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
2954         * pa.c (except.h, predict.h): Include.
2955         (FRP): Delete.
2956         (store_reg_modify, set_reg_plus_d): Revise prototypes.
2957         (output_ascii): Add cast.
2958         (store_reg_modify): Revise to add frame notes.
2959         (set_reg_plus_d): Likewise.
2960         (compute_frame_size): Include space for eh data registers in frame if
2961         the current function calls eh_return.
2962         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
2963         function calls eh_return.  Save eh data registers if the current
2964         function calls eh_return.  Fix code to add frame notes.  Emit
2965         blockage to prevent insns with frame notes being scheduled in the
2966         delay slot of calls.
2967         (hppa_expand_epilogue): Restore eh data registers and do final stack
2968         adjustment if the current function calls eh_return.  Don't add frame
2969         notes.
2970         (output_call): Revise for change in length of call insn.  Don't do
2971         return pointer adjustment for an unconditional jump in the delay slot
2972         of a call when using frame notes.
2973         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
2974         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
2975         (ARG_POINTER_CFA_OFFSET): Define.
2976         * pa.md (return_external_pic): New pattern.
2977         (prologue): Correct formatting.  Use return_external_pic if current
2978         function calls eh_return.
2979         (call_internal_symref, call_value_internal_symref,
2980         sibcall_internal_symref, sibcall_value_internal_symref): Change default
2981         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
2982         respectively.
2983         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
2984
2985         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
2986         list of targets to check using "nop" insn.
2987         * configure: Rebuilt.
2988
2989 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
2990
2991         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
2992
2993 2002-04-03  David S. Miller  <davem@redhat.com>
2994
2995         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
2996         library sequence passed to the linker.
2997         (LINK_COMMAND_SPEC): Use it.
2998         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
2999         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
3000         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
3001
3002 2002-04-03  Jason Merrill  <jason@redhat.com>
3003
3004         * except.c (struct eh_status): Remove protect_list.
3005         (begin_protect_partials, end_protect_partials): Remove.
3006         (add_partial_entry): Remove.
3007         * except.h: Remove prototypes.
3008
3009         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
3010         expand_decl_cleanup_eh.
3011
3012         PR c++/5636
3013         * tree.h (CLEANUP_EH_ONLY): New macro.
3014         * stmt.c (expand_decl_cleanup_eh): New fn.
3015         (expand_cleanups): Check CLEANUP_EH_ONLY.
3016         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
3017         Use expand_decl_cleanup_eh.
3018         (expand_stmt): Adjust.
3019         * c-common.h: Adjust prototype.
3020
3021 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
3022
3023         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
3024         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
3025         (cris_target_asm_function_epilogue): Ditto.
3026         (cris_initial_frame_pointer_offset): Ditto.
3027         (cris_simple_epilogue): Ditto.
3028         (cris_expand_builtin_va_arg): Variable-size types come in
3029         by-reference.
3030
3031 2002-04-03  David S. Miller  <davem@redhat.com>
3032
3033         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
3034         little-endian.
3035         (set_fast_math): Correct 'fsr' type.
3036
3037 2002-04-03  Richard Henderson  <rth@redhat.com>
3038
3039         PR opt/3569
3040         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
3041         * toplev.c (check_global_declarations): Use it.
3042         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
3043         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
3044         (LANG_HOOKS_DECLS): Add it.
3045         * langhooks.c (lhd_warn_unused_global_decl): New.
3046         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
3047         * c-objc-common.c (c_warn_unused_global_decl): New.
3048         * c-tree.h (c_warn_unused_global_decl): Declare.
3049         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
3050
3051 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
3052
3053         * langhooks-def.h (lhd_set_decl_assembler_name,
3054         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
3055         (LANG_HOOKS_INITIALIZER): Update.
3056         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
3057         * langhooks.h (struct lang_hooks): New hook.
3058         * tree.c (set_decl_assembler_name): Move to langhooks.c.
3059         (lang_set_decl_assembler_name): Remove.
3060         (init_obstacks): Don't set hook.
3061         (decl_assembler_name): New function.
3062         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
3063         (decl_assembler_name): New.
3064         (lang_set_decl_assembler_name): Remove.
3065
3066 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
3067
3068         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
3069         works properly with .hidden symbols.
3070         * configure: Rebuilt.
3071         * config.in: Rebuilt.
3072         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
3073         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
3074         properly with .hidden symbols.
3075
3076 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
3077
3078         PR middle-end/6102
3079         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
3080         USE argument.
3081
3082 2002-04-03  Richard Henderson  <rth@redhat.com>
3083
3084         PR opt/4120
3085         * sched-rgn.c (sets_likely_spilled): New.
3086         (sets_likely_spilled_1): New.
3087         (add_branch_dependences): Use it.
3088
3089 2002-04-02  Richard Henderson  <rth@redhat.com>
3090
3091         PR opt/4311
3092         * loop.h (LOOP_FIRST_PASS): New.
3093         * loop.c (strength_reduce): Mind it when deciding to unroll.
3094         * toplev.c (rest_of_compilation): Set it.
3095
3096 2002-04-02  David S. Miller  <davem@redhat.com>
3097
3098         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
3099         mems_ok_for_ldd_peep when the order of the loads being examined
3100         is reversed.
3101         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
3102         existing comment to increase comprehension of this situation.
3103
3104 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
3105
3106         * config/sh/sh.md: Don't use union real_extract.
3107
3108 2002-04-02  Richard Henderson  <rth@redhat.com>
3109
3110         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
3111
3112 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
3113
3114         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
3115         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
3116         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
3117         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
3118         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
3119         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
3120         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
3121         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
3122         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
3123         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
3124         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
3125         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
3126         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
3127         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
3128         Include as many configury headers via tm_file as possible.  This
3129         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
3130         * config/openbsd-oldgas.h: New file.
3131         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
3132         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
3133         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
3134         config/i386/i386-coff.h, config/i386/i386-interix.h,
3135         config/i386/iscdbx.h, config/i386/linux-aout.h,
3136         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
3137         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
3138         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
3139         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
3140         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
3141         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
3142         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
3143         config/i386/vxi386.h: Do not directly include configury headers.
3144         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
3145         Directly include configury headers that are no longer automatically
3146         included by the above headers.
3147         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
3148         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
3149         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
3150         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
3151         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
3152         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
3153         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
3154         (TARGET_VERSION): Define.
3155         * config/i386/beos-elf.h, config/i386/freebsd.h,
3156         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
3157         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
3158         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
3159         config/i386/sco5.h, config/i386/sysv4.h
3160         (TARGET_VERSION): Do not need to protect.
3161         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
3162         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
3163         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
3164         config/i386/i386-interix.h, config/i386/linux-aout.h,
3165         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
3166         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
3167         (YES_UNDERSCORES): Do not define - not needed.
3168         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
3169         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
3170         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
3171         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
3172         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
3173         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
3174         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
3175         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
3176
3177 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
3178             Richard Henderson  <rth@redhat.com>
3179
3180         PR c/5484
3181         * function.c (assign_temp): Accept either type or decl argument.
3182         Detect variables whose size is too large to fit into an integer.
3183         * stmt.c (expand_decl): Pass the decl, not the type.
3184
3185 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
3186
3187         * protoize.c: Match include directory usage with cppdefault.c.
3188
3189 2002-04-03  Jeffrey A Law  (law@redhat.com)
3190             Hans-Peter Nilsson  <hp@bitrange.com>
3191
3192         * combine.c (simplify_comparison): Avoid narrowing a comparison
3193         with a paradoxical subreg when doing so would drop signficant bits.
3194
3195 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
3196
3197         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
3198         if POINTERS_EXTEND_UNSIGNED is defined.
3199
3200 2002-04-02  Richard Henderson  <rth@redhat.com>
3201
3202         PR opt/3967
3203         * local-alloc.c (contains_replace_regs): LO_SUM may contain
3204         replace regs.
3205
3206 2002-04-02  Richard Henderson  <rth@redhat.com>
3207
3208         * doc/standards.texi: Document required freestanding libc entry points.
3209
3210 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
3211
3212         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
3213         associated splitter.  Remove MQ constraint.
3214         (ctrdi_internal4): Correct CCmode clobber.
3215
3216 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3217
3218         * milli64.S ($$dyncall): New function.
3219         * t-linux (LIB1ASMFUNCS): Revise module list.
3220         (LIB1ASMSRC): Use pa/milli64.S.
3221
3222 2002-04-02  Richard Henderson  <rth@redhat.com>
3223
3224         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
3225         rename solaris_sys_varargs_h.
3226
3227 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3228
3229         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
3230         the same mode as its component.
3231
3232 2002-04-02  Richard Henderson  <rth@redhat.com>
3233
3234         PR opt/190
3235         * final.c (this_is_asm_operands): Export.
3236         * output.h (this_is_asm_operands): Declare.
3237         * config/i386/i386.c (print_operand): Error odd asm operands.
3238
3239 2002-04-02  Richard Henderson  <rth@redhat.com>
3240
3241         PR opt/420
3242         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
3243
3244 2002-04-01  Richard Henderson  <rth@redhat.com>
3245
3246         PR target/1538
3247         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
3248         * fixinc/fixincl.x: Rebuild.
3249
3250 2002-04-01  Richard Henderson  <rth@redhat.com>
3251
3252         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
3253         (atomic_alloc, atomic_free): New.
3254         (SIZE, MASK_FOR, PTR_IN): New.
3255         (emergency_reg_state, emergency_reg_state_free): New.
3256         (emergency_labeled_state, emergency_labeled_state_free): New.
3257         (reg_state_alloced, labeled_state_alloced): New.
3258         (alloc_reg_state, free_reg_state): New.
3259         (alloc_label_state, free_label_state, free_label_states): New.
3260         (push, pop, dup_state_stack, free_state_stack): Use them.
3261         (desc_label_state): Likewise.
3262         (uw_frame_state_for): Free label states and state stack.
3263         (uw_update_reg_address): Eliminate warnings.
3264
3265 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
3266
3267         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
3268         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
3269
3270 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3271
3272         * c-decl.c (grokdeclarator): Update.
3273         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
3274         * c-tree.h (c_mark_addressable): New.
3275         * c-typeck.c (default_function_array_conversion, build_unary_op,
3276         build_array_ref, convert_for_assignment): Update.
3277         (mark_addressable): Rename.
3278         * calls.c (try_to_integrate, expand_call): Use langhook.
3279         * expr.c (expand_expr): Use langhook.
3280         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
3281         * langhooks.h (struct lang_hooks): New hook.
3282         * stmt.c (expand_asm_operands): Use langhook.
3283         * tree.h (mark_addressable): Remove.
3284 objc:
3285         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
3286
3287 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
3288
3289         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
3290         in previous change.
3291
3292 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
3293
3294         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
3295         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
3296
3297 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3298
3299         * c-common.c (unsigned_conversion_warning, convert_and_check,
3300         unsigned_type, signed_type, shorten_compare,
3301         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
3302         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
3303         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
3304         New.
3305         * c-decl.c (grokdeclarator): Update.
3306         * c-format.c (check_format_types): Update.
3307         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
3308         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
3309         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
3310         * convert.c (convert_to_integer): Use new hooks.
3311         * expmed.c (make_tree): Use new hooks.
3312         * expr.c (store_expr): Use new hooks.
3313         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
3314         all_ones_mask_p, unextend, fold): Use new hooks.
3315         * langhooks.h (struct lang_hooks_for_types): New hooks.
3316         * tree.h (signed_or_unsigned_type, signed_type,
3317         unsigned_type): Remove.
3318 objc:
3319         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
3320         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
3321
3322 2002-03-31  Richard Henderson  <rth@redhat.com>
3323
3324         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
3325         (desc_frgr_mem): Fix reference to f16-f31.
3326
3327 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3328
3329         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
3330         RTVEC_ELT): Const-ify.
3331         * varray.h (VARRAY_CHECK): Const-ify.
3332         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
3333         ggc_mark_rtvec, ggc_mark): Const-ify.
3334
3335 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3336
3337         * diagnostic.c: Include langhooks-def.h.
3338         * Makefile.in (diagnostic.o): Update.
3339
3340 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3341
3342         * c-common.c (c_unsafe_for_reeval): Rename.
3343         * c-common.h (c_unsafe_for_reeval): Rename.
3344         * c-decl.c (finish_incomplete_decl): Rename.
3345         (c_init_decl_processing): Don't set langhook.
3346         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
3347         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
3348         * c-objc-common.c (c_objc_common_init): Don't set langhook.
3349         * c-tree.h (finish_incomplete_decl): Rename.
3350         * langhooks-def.h (lhd_unsafe_for_reeval): New.
3351         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
3352         (LANG_HOOKS_INITIALIZER): Update.
3353         * langhooks.c (lhd_unsafe_For_reeval): New.
3354         * langhooks.h (struct langhooks): New hooks.
3355         * toplev.c (incomplete_decl_finalize_hook): Remove.
3356         (wrapup_global_declarations): Update.
3357         * tree.c (lang_unsafe_for_reeval): Remove.
3358         (unsafe_for_reeval): Update.
3359         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
3360         Remove.
3361 objc:
3362         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
3363         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
3364
3365 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3366
3367         * diagnostic.c (print_error_function): Remove.
3368         (default_print_error_function): Rename.
3369         (report_error_function): Update.
3370         * diagnostic.h (print_error_function): Remove.
3371         (default_print_error_function): Remove.
3372         * langhooks-def.h (struct diagnostic_context): Predeclare.
3373         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
3374         (LANG_HOOKS_INITIALIZER): Update.
3375         * langhooks.h (struct diagnostic context): Predeclare.
3376         (struct lang_hooks): New hook.
3377
3378 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3379
3380         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
3381         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
3382         !flag_pic.
3383         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
3384         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
3385         of PIC_OFFSET_TABLE_REGNUM thruout.
3386         * config/rs6000/rs6000.md: Likewise.
3387         * config/rs6000/darwin.h: Likewise.
3388
3389 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3390
3391         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
3392         unsigned HOST_WIDE_INT, not unsigned int.
3393
3394 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3395
3396         PR middle-end/6096, middle-end/6098, middle-end/6099
3397         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
3398         CODE_LABELs.
3399         (fill_slots_from_thread): Likewise.
3400
3401 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3402
3403         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
3404         floating fields in float regs.
3405         (function_arg_record_value_2): Likewise.
3406
3407 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
3408
3409         * config/mmix/mmix.md (define_constants): Remove misleading
3410         FIXME.  Add MMIX_fp_rO_OFFSET.
3411         ("nonlocal_goto_receiver"): Don't have stack-frame address of
3412         saved rO as part of the pattern.  Remove FIXME.
3413         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
3414         here, at output-time.
3415
3416 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3417
3418         PR middle-end/6100
3419         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
3420         REG_BR_PRED.
3421         (output_v9branch): Likewise.
3422
3423 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
3424
3425         * gcc.c: Revert previous patch for now.
3426         * config/i386/djgpp.h: Likewise.
3427
3428 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
3429
3430         * config/mmix/crti.asm (_init): Register _fini with atexit.
3431         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
3432
3433 2002-03-31  Richard Henderson  <rth@redhat.com>
3434
3435         PR target/3997
3436         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
3437         (ASM_OUTPUT_DEF_FROM_DECLS): New.
3438
3439 2002-03-31  Richard Henderson  <rth@redhat.com>
3440
3441         * libgcc2.c (__bb_exit_func): Make static.
3442
3443         * config/alpha/alpha.md (trap): New.
3444
3445 2002-03-31  Richard Henderson  <rth@redhat.com>
3446
3447         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
3448         promoted argument types; build trap.
3449         (expand_builtin_trap): New.
3450         (expand_builtin): Use it.
3451         * stmt.c (expand_nl_goto_receivers): Likewise.
3452         * expr.h (expand_builtin_trap): Declare.
3453         * libfuncs.h (LTI_abort, abort_libfunc): New.
3454         * optabs.c (init_optabs): Init abort_libfunc.
3455
3456 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
3457
3458         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
3459         (LINK_COMMAND_SPEC): ... from here.
3460         (init_gcc_specs): Duplicate it here too, omitting
3461         shared_name in the second copy.
3462         (init_spec): Test for duplicate
3463         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
3464
3465 2002-03-30  David S. Miller  <davem@redhat.com>
3466
3467         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3468         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
3469
3470 2002-03-30  Roger Sayle <roger@eyesopen.com>
3471             Richard Henderson  <rth@redhat.com>
3472
3473         * regmove.c (combine_stack_adjustments_for_block): Avoid
3474         emitting a stack adjustment of zero bytes.  Let delete_insn
3475         update bb->head.
3476
3477 2002-03-30  Richard Henderson  <rth@redhat.com>
3478
3479         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
3480         (sparc_emitting_epilogue): New.
3481         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
3482         * config/sparc/sparc-protos.h: Update.
3483         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
3484         (TARGET_SWITCHES): Update.
3485         * config/sparc/sparc.md (return): Remove.
3486         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
3487         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
3488         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
3489         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
3490         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
3491         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
3492         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
3493         Remove MASK_EPILOGUE.
3494         * doc/invoke.texi: Update.
3495
3496 2002-03-30  Daniel Berlin  <dan@dberlin.org>
3497
3498         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
3499         CPP will start the file for us.
3500
3501 2002-03-30  Richard Henderson  <rth@redhat.com>
3502
3503         PR target/5446
3504         * config/ia64/ia64.c (group_barrier_needed_p): Special case
3505         prologue_allocate_stack.
3506         (ia64_single_set): Use insn codes for recognition of special
3507         cases, not rtl matching.
3508         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
3509
3510 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
3511
3512         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
3513
3514 2002-03-30  Richard Henderson  <rth@redhat.com>
3515
3516         PR target/6032
3517         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
3518         or -fomit-frame-pointer with profiling.
3519         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
3520         (FUNCTION_PROFILER): Do nothing.
3521         (PROFILE_HOOK): New.
3522         * config/sparc/sparc.c (sparc_override_options): Don't check
3523         code models for profiling.
3524         (sparc_function_profiler): Remove.
3525         (sparc_profile_hook): New.
3526         * config/sparc/sparc-protos.h: Update.
3527
3528 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
3529
3530         PR optimization/6086
3531         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
3532         of SUBREG of volatile MEM or because the MEM was mode dependent,
3533         return CLOBBER instead of unmodified SUBREG.
3534
3535 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
3536
3537         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
3538         when not optimizing.
3539
3540         * toplev.c (rest_of_compilation): Cann mark_constant_function
3541         only when optimizing.
3542
3543         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
3544         are NULL.
3545
3546         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
3547         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
3548         (try_optimize_cfg): clear all AUX fields.
3549
3550         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
3551         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
3552         (ix86_address_cost): Be prepared for SUBREGed registers.
3553         (legitimate_address_p): Accept SUBREGed registers.
3554
3555 2002-03-29  Richard Henderson  <rth@redhat.com>
3556
3557         PR target/5672
3558         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
3559
3560 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3561
3562         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
3563         for aggregate and TFmode types.
3564
3565 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
3566
3567         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
3568
3569 2002-03-29  Richard Henderson  <rth@redhat.com>
3570
3571         PR target/5886
3572         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
3573         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
3574
3575 2002-03-29  Richard Henderson  <rth@redhat.com>
3576
3577         PR target/6041
3578         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
3579         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
3580         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
3581         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
3582         conditional.
3583         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
3584
3585 2002-03-29  Dale Johannesen <dalej@apple.com>
3586
3587         * loop.c (combine_movables): Do allow combination of pseudos.
3588
3589 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
3590
3591         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
3592         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
3593         No functional change except ...
3594         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
3595         * doc/install.texi (*-*-freebsd*): Document port configuration.
3596
3597 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3598
3599         * Makefile.in (convert.o, calls.o, expmed.o): Update.
3600         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
3601         Use new hooks.
3602         * builtin-types.def (BT_PTRMODE): Update.
3603         * c-common.c (type_for_size): Rename c_common_type_for_size.
3604         (type_for_mode): Similarly.
3605         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
3606         Use new hook.
3607         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
3608         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
3609         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
3610         Redefine.
3611         * c-typeck.c (common_type, comptypes, default_conversion):
3612         Use new hooks.
3613         * calls.c: Include langhooks.h.
3614         (emit_library_call_value_1): Use new hooks.  Avoid redundant
3615         calls.
3616         * convert.c: Include langhooks.h
3617         (convert_to_pointer, convert_to_integer): Use new hooks.
3618         * except.c (init_eh): Similarly.
3619         * expmed.c: Include langhooks.h.
3620         (expand_mult_add): Use new hooks.
3621         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
3622         try_casesi): Similarly.
3623         * fold-const.c (optimize_bit_field_compare, make_range,
3624         decode_field_reference, fold_truthop, fold): Similarly.
3625         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
3626         put_var_into_stack): Similarly.
3627         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
3628         LANG_HOOKS_TYPE_FOR_SIZE): New.
3629         (LANG_HOOKS_TYPES_INITIALIZER): Update.
3630         * langhooks.h (lang_hooks_for_types): New hooks.
3631         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
3632         * tree.c (get_unwidened, get_narrower): Similarly.
3633         * tree.h (type_for_mode, type_for_size): Remove.
3634         * varasm.c (force_const_mem): Use new hooks.
3635         * utils2.c (nonbinary_modular_operation): Update.
3636 objc:
3637         * objc-act.c (handle_impent): Update.
3638         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
3639         Redefine.
3640
3641 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
3642
3643         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
3644         * config/ia64/ia64.c (basereg_operand): New.
3645         * config/ia64/ia64-protos.h (basereg_operand): Declare.
3646         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
3647
3648 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
3649
3650         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
3651         unwind information when frame_pointer_needed.
3652         (mmix_assemble_integer): Tweak wording in comment.
3653
3654 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3655
3656         * Makefile.in (except.o): Update.
3657         * except.c: Include langhooks.h.
3658         (init_eh): Use langhook.
3659         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
3660         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
3661         (LANG_HOOKS_INITIALIZER): Update.
3662         * langhooks.h (lang_hooks_for_types): New.
3663         (struct lang_hooks): Add it.
3664         * tree.c (make_lang_type_fn, make_lang_type): Remove.
3665         * tree.h (make_lang_type_fn, make_lang_type): Remove.
3666 config:
3667         * alpha/alpha.c: Include langhooks.h.
3668         (alpha_build_va_list): Use langhook.
3669         * d30v/d30v.c: Include langhooks.h.
3670         (d30v_build_va_list): Use langhook.
3671         * i386/i386.c: Include langhooks.h.
3672         (ix86_build_va_list): Use langhook.
3673         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
3674         * s390/s390.c: Include langhooks.h.
3675         (s390_build_va_list): Use langhook.
3676         * stormy16/stormy16.c: Include langhooks.h.
3677         (stormy16_build_va_list): Use langhook.
3678
3679 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
3680
3681         PR c++/5964
3682         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
3683         attributes.
3684         (length): Compute variable length for branches/calls/jumps here.
3685         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
3686         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
3687         define branch_type attribute.
3688         (divsi3_sp32): Maximum length is 6 not 7.
3689         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
3690         call_address_untyped_struct_value_sp32,
3691         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
3692         * config/sparc/sparc.c (empty_delay_slot): New function.
3693         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
3694         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
3695
3696 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
3697
3698         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
3699         nonzero_bits if not needed.
3700         (nonzero_bits) [XOR]: Likewise.
3701         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
3702         reg_last_set_mode and mode are both MODE_INT, but not equal.
3703         (record_value_for_reg): Compute reg_last_set_nonzero_bits
3704         in nonzero_bits_mode for MODE_INT modes.
3705
3706 2002-03-28  Richard Henderson  <rth@redhat.com>
3707
3708         PR target/5715
3709         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
3710         to GAS.  Correct drift between alternatives.
3711
3712 2002-03-28  Richard Henderson  <rth@redhat.com>
3713
3714         PR target/6087
3715         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
3716
3717 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
3718
3719         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
3720         emulation to the linker.
3721
3722 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
3723
3724         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
3725         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
3726
3727 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
3728
3729         * combine.c (simplify_and_const_int): Make sure to apply mask
3730         when force_to_mode returns a constant integer.  PR3311.
3731
3732 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3733
3734         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
3735
3736 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3737
3738         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
3739         and Objective-C Dialect Options.
3740
3741 2002-03-28  Richard Henderson  <rth@redhat.com>
3742
3743         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
3744         comparison should be done vs !=0 not >0 return code.  Tidy cases.
3745
3746 2002-03-28  Richard Henderson  <rth@redhat.com>
3747
3748         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
3749         on to c_expand_body.
3750         * c-tree.h (finish_function): Update decl.
3751         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
3752
3753 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
3754
3755         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
3756
3757 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
3758
3759         * rtlanal.c: Include flags.h
3760         (may_trap_p): Do not mark FP operations if trapping
3761         if !flag_trapping_math
3762         * Makefile.in (rtlanal.o): Add dependency on flag.h
3763         * ifcvt.c (noce_operand_ok): Avoid the lameness.
3764
3765 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
3766
3767         * mips.md: Use dconst1, not 1.0, as first argument of
3768         REAL_VALUE_LDEXP.  Don't use union real_extract.
3769
3770 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
3771
3772         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
3773         rather than $target.  Heed program_prefix and
3774         program_transform_name.  Search for gas in cross-compiler case too.
3775         "test -x" rather than "test -f".
3776         (gcc_cv_ld): Likewise.
3777         (gcc_cv_nm): Heed program_prefix and program_transform_name.
3778         (gcc_cv_objdump): Likewise.
3779         * configure: Regenerate.
3780
3781 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3782
3783         * Makefile.in (attribs.o): Update.
3784         * attribs.c: Include langhooks.h.
3785         (decl_attributes): Use langhook.
3786         * c-decl.c (insert_default_attributes): Rename.
3787         * c-tree.h (c_insert_default_attributes): New.
3788         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
3789         (LANG_HOOKS_INITIALIZER): Update.
3790         * langhooks.h (struct lang_hooks): New hook.
3791         * tree.h (insert_default_attributes): Remove.
3792 objc:
3793         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
3794
3795 2002-03-27  Andreas Schwab  <schwab@suse.de>
3796
3797         * config/i386/i386.c (classify_argument): Also check for
3798         QUAL_UNION_TYPE.
3799
3800 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3801
3802         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
3803         any more.
3804
3805 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
3806
3807         * i960.md (ret): Set PC.
3808         (nonlocal_goto): Fix expander.
3809         * builtins.c (epxand_builin_longjmp): Check that we've emitted
3810         some jump or call.
3811
3812 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
3813
3814         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
3815         of libcall regions.
3816
3817 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3818
3819         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
3820         assigning to BLOCK_FOR_INSN directly.
3821
3822 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
3823
3824         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
3825
3826 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3827
3828         * c-common.c (c_expand_expr): Fix prototype.
3829         * c-common.h (c_expand_expr): Always declare, update.
3830         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
3831         * c-objc-common.c (c_objc_common_init): No global hook.
3832         * expr.c (expand_expr): Use langhook.
3833         * expr.h (enum expand_modifier): Conditionally declare.
3834         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
3835         (LANG_HOOKS_INITIALIZER): Update.
3836         * langhooks.c (lhd_expand_expr): New.
3837         * langhooks.h (struct lang_hooks): New hook.
3838         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
3839         (lang_independent_init): Don't default hook.
3840 objc:
3841         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
3842
3843 2002-03-27  Richard Henderson  <rth@redhat.com>
3844
3845         PR target/6054
3846         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
3847         TARGET_CONST_GP.  Simplify conditions.
3848
3849 2002-03-27  Richard Henderson  <rth@redhat.com>
3850
3851         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
3852         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
3853         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
3854
3855 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
3856
3857         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
3858         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
3859         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
3860         Remove unnecessary masks.
3861         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
3862         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
3863         -mwindows, -mdll switches and their negations.
3864
3865 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3866
3867         * gcc-common.c (lang_mark_false_label_stack): Remove.
3868         * ggc.h (lang_mark_false_label_stack): Similarly.
3869
3870 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
3871
3872         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
3873
3874         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
3875         or __rtems_ is defined.
3876
3877 2002-03-26  Richard Henderson  <rth@redhat.com>
3878
3879         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
3880         if a non-trivial load was emitted.
3881         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
3882         in high+extra+low case.
3883
3884 2002-03-26  Richard Henderson  <rth@redhat.com>
3885
3886         * config.gcc (sparc*-solaris): Use float_format=sparc.
3887
3888 2002-03-26  Richard Henderson  <rth@redhat.com>
3889
3890         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
3891         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
3892         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
3893         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
3894         (WINT_TYPE_SIZE): Fix at 32.
3895
3896 2002-03-26  Richard Henderson  <rth@redhat.com>
3897
3898         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
3899         until after eh landing pad generation.
3900         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
3901         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
3902
3903 2002-03-26  Richard Henderson  <rth@redhat.com>
3904
3905         * expr.h (ADD_PARM_SIZE): One more convert for INC.
3906
3907 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
3908
3909         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
3910         and warning switches.
3911         (cc1_options):  Likewise.
3912
3913 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
3914
3915         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
3916         Restore more of the signal context.  Set no_reg_stack_frame.
3917         * config/ia64/unwind-ia64.c (unw_state_record):
3918         Add no_reg_stack_frame, comments.
3919         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
3920         (uw_update_context): Adjust bsp when unwinding from leaf,
3921         but not signal frame.
3922
3923 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
3924
3925         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
3926
3927 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
3928
3929         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
3930
3931 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
3932
3933         PR target/5621
3934         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
3935         "Add a pool_range attribute", which was lost during the ARM/Thumb
3936         merge.
3937
3938 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
3939
3940         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
3941         a register into the MAC16 accumulator.
3942
3943 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
3944
3945         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
3946         (Warning Options): Document -Wswitch-enum.
3947         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
3948         -Wswitch.
3949         (warn_switch_enum): Define variables.
3950         * flags.h (warn_switch_enum): Declare variables.
3951         * stmt.c (expand_end_case_type): When warn_switch_enum /
3952         -Wswitch-enum, perform switch checks.
3953         Fix PR c/5044.
3954
3955 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
3956
3957         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
3958         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
3959         (reload_muladdsi_compare0_scratch): Delete.
3960
3961 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
3962
3963         * doc/install.texi (*-*-freebsd*): Update.
3964
3965 2002-03-26  Richard Henderson  <rth@redhat.com>
3966
3967         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
3968         (SUB_PARM_SIZE): Cast DEC to ssizetype.
3969
3970         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
3971         types from the normal argument frame.
3972
3973         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
3974         variable sized objects by reference.
3975         (sparc_va_arg): Receive them by reference too.
3976
3977 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
3978
3979         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
3980         code to not restoring global registers.
3981
3982 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3983
3984         * Makefile.in (ggc-common.o): Update.
3985         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
3986         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
3987         * c-tree.h (c_mark_tree): New.
3988         * ggc-common.c: Include langhooks.h.
3989         (gcc_mark_trees): Use new langhook.
3990         * ggc-callbacks.c: Delete file.
3991         * ggc.h (lang_mark_tree): Remove.
3992         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
3993         (LANG_HOOKS_INITIALIZER): Update.
3994         * langhooks.h (struct lang_hooks): New hook.
3995 objc:
3996         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
3997
3998 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
3999
4000         * doc/cpp.texi: Exclude entire Top node from printed manual.
4001         Move option index after directive index.  Insert page breaks
4002         before GFDL and concept index.  Index environment variables
4003         with command line options.
4004         * doc/cppenv.texi: Use @vtable for environment variable list.
4005         Add paragraph explaining semantics of empty elements in path
4006         variables.  Exclude a cross-reference to Fishkill from the
4007         manpage.  Remove an unnecessary cross-reference of the entry
4008         right above the referer.  Don't use @anchor in text that goes
4009         into manpage.
4010         * doc/cppopts.texi: Cross-reference the environment variables
4011         section, not the specific environment variable, for consistency.
4012
4013 2002-03-25  Richard Henderson  <rth@redhat.com>
4014
4015         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
4016         anywhere in the block.  Don't refer to insns that have been
4017         removed from the chain.  Iterate backward through the new insns.
4018         Don't refer to edges that have been removed.
4019
4020 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
4021
4022         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
4023         test for overflow of constant.
4024
4025 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
4026
4027         PR target/2623
4028         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
4029         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
4030         these patterns on arm_archv4.
4031
4032 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
4033
4034         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
4035         int".
4036
4037 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
4038
4039         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
4040         float_handled, float_handler, float_signal, set_float_handler,
4041         and do_float_handler.  Set handler for SIGFPE to crash_signal.
4042         * toplev.h: Don't prototype do_float_handler.
4043
4044         * c-lex.c: Fold parse_float into lex_number.  Make warning
4045         about portability of hex float constants more informative, and
4046         don't issue it on top of a syntax error.
4047         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
4048         their callers.
4049         * real.h: Define REAL_VALUE_ABS here...
4050         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
4051         simplify_unary_real, simplify_binary_real, and
4052         simplify_binary_is2orm1 into their callers.
4053         * tree.c: Fold build_real_from_int_cst_1 into caller.
4054
4055         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
4056
4057         * tsystem.h: Include float.h here...
4058         * libgcc2.c: ... not here.
4059
4060 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
4061
4062         Fixes for: PR bootstrap/3591, target/5676
4063         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
4064         defined.  Do not disable exceptions or rtti.
4065         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
4066         mcore.h.  Disable exceptions and rtti, since they are not
4067         supported by EPOC.
4068
4069 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4070
4071         * c-decl.c (maybe_build_cleanup): Remove.
4072         * expr.c (expand_expr): Use langhook.
4073         * langhooks-def.h (lhd_return_null_tree,
4074         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
4075         (LANGHOOKS_INITIALIZER): Update.
4076         * langhooks.c (lhd_return_null_tree): New.
4077         * langhooks.h (struct lang_hooks): New hook.
4078         * tree-inline.c (initialize_inlined_parameters): Use langhook.
4079         * tree.h (maybe_build_cleanup): Remove.
4080
4081 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
4082
4083         * regrename.c (build_def_use): Move recog_memoized
4084         before extract_insn.
4085
4086 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
4087
4088         PR target/6043
4089         * expr.c (emit_group_store): Handle storing into CONCAT.
4090
4091 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
4092
4093         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
4094         corresponding MATCH_DUP.
4095
4096 2002-03-24  Richard Henderson  <rth@redhat.com>
4097
4098         * unroll.c (unroll_loop): Zero label_map.
4099
4100         * gcse.c: Include except.h.
4101         * Makefile.in (gcse.o): Update.
4102
4103 2002-03-24  Richard Henderson  <rth@redhat.com>
4104
4105         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
4106         Do resolve_unique_section before shared data clause.
4107
4108 2002-03-24  Richard Henderson  <rth@redhat.com>
4109
4110         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
4111
4112 2002-03-24  Richard Henderson  <rth@redhat.com>
4113
4114         * recog.c (peephole2_optimize): Split blocks when EH insns are
4115         generated in the middle of a block.  Do global life update if
4116         zapped EH edges.
4117
4118 2002-03-24  Richard Henderson  <rth@redhat.com>
4119
4120         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
4121
4122 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4123
4124         preprocessor/3951
4125         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
4126         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
4127         (init_dependency_output): Don't make no_output decision here.
4128
4129 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
4130
4131         * stmt.c (check_for_full_enumeration_handling): Remove tests of
4132         warn_switch.  Update description.
4133         (expand_end_case_type): Call check_for_full_enumeration_handling
4134         when warn_switch.
4135
4136 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4137
4138         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
4139         (m68hc11_split_move): Call it to see if the source and destination
4140         operands use the same direction auto inc/dec mode, otherwise make the
4141         source an offsetable memory operand and generate an add.
4142
4143 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4144
4145         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
4146         register for operand 2.
4147         ("*subsi3_zero_extendqi"): Likewise.
4148         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
4149         bits so that it is compatible with a pop.
4150         ("*andhi3_gen"): Likewise.
4151         ("xorhi3"): Likewise.
4152
4153 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4154
4155         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
4156         -pedantic here...
4157         (cpp_post_options): ... not here.
4158
4159 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4160             Aldy Hernandez  <aldyh@redhat.com>
4161
4162         Removal of separate preprocessor cpp0.
4163
4164         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
4165         cpp0, install-common): Update.
4166         * c-common.c (flag_preprocess_only): New.
4167         (c_common_init): Preprocess for -E.
4168         * c-common.h (flag_preprocess_only): New.
4169         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
4170         * c-objc-common.c (c_init_decl_processing): Exit quickly
4171         for NULL return from c_common_init.
4172         * cpplib.h (cpp_preprocess_file): New.
4173         * cppmain.c (main, general_init, pfile, progname): Remove.
4174         (do_preprocessing): Rename cpp_preprocess_file, don't call
4175         cpp_finish.  Don't close stdout here.
4176         (setup_callbacks): Update prototype.
4177         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
4178         Update.
4179         * tradcpp.c (main): Ignore -quiet.
4180 objc:
4181         * lang-specs.h (default_compilers): Preprocess with cc1obj.
4182
4183 2002-03-24  Richard Henderson  <rth@redhat.com>
4184
4185         PR optimization/5742
4186         * machmode.def: Add inner mode field to complex modes.
4187         * config/mips/mips.c (mips_function_value): Always define.  Add
4188         new argument to handle libcalls.
4189         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
4190         (FUNCTION_VALUE): Likewise.
4191         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
4192         * config/mips/mips-protos.h: Update.
4193
4194 2002-03-23  Richard Henderson  <rth@redhat.com>
4195
4196         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
4197         * config/sparc/sparc-protos.h: Update.
4198         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
4199
4200 2002-03-23  Richard Henderson  <rth@redhat.com>
4201
4202         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
4203         _start or _init begins the text segment.
4204
4205 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
4206
4207         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
4208         not HOST_WIDEST_INT.
4209         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
4210
4211 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
4212
4213         PR java/5489
4214         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
4215         operand argument to output_return_instruction.
4216         * arm.c (arm_print_operand, case 'd'): If the operand is
4217         const_true_rtx then just return.
4218         (arm_print_operand, case 'D'): If the operand is const_true_rtx
4219         then abort.
4220
4221 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
4222
4223         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
4224         (Warning Options): Document -Wswitch-default.
4225         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
4226         -Wswitch.
4227         (warn_switch_default): Define variable.
4228         (warn_switch): Update comment.
4229         * flags.h (warn_switch_default): Declare variable.
4230         (warn_switch): Update comment.
4231         * stmt.c (expand_end_case): Check for and, when
4232         warn_switch_no_default, warn of a missing default case.
4233
4234 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
4235
4236         * real.h (N): Special case 128 bit doubles.
4237
4238         * combine.c (simplify_comparison): When widening modes, ignore
4239         sign extension on CONST_INTs.
4240
4241 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
4242
4243         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
4244         passed to adjust_address.  Fix comment formatting.
4245
4246
4247 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
4248
4249         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
4250         Always make REAL_VALUE_TYPE a struct containing an array of
4251         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
4252         big it is.  Don't declare or use union real_extract.
4253
4254         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
4255         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
4256         (print_operand), config/arm/arm.c (output_move_double),
4257         config/arm/arm.md (consttable_4, consttable_8),
4258         config/romp/romp.c (output_fpops), config/s390/s390.h
4259         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
4260         (xtensa_output_literal): Don't use union real_extract.
4261
4262         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
4263         (sfmode_constant_to_ulong), config/ns32k/merlin.h
4264         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
4265         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
4266         (PRINT_OPERAND): Don't use local version of union
4267         real_extract.
4268
4269         * config/convex/convex.c (check_float_value), config/vax/vax.c
4270         (vax_float_literal), config/m88k/m88k.md (divdf3),
4271         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
4272         config/pdp11/pdp11.c (output_move_quad): Don't do host
4273         arithmetic on target floating point quantities.
4274
4275         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
4276         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
4277
4278         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
4279         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
4280
4281         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
4282         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
4283         INFINITY.
4284         * print-rtl.c (print_rtx): Disable code which needs
4285         floating-point emulator.
4286         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
4287         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
4288         depending on HOST_FLOAT_FORMAT to be defined properly.
4289
4290         * config/1750a/1750a.c (get_double, float_label): Delete.
4291         (print_operand): Delete huge commented-out chunk.  Use
4292         REAL_VALUE_TO_DECIMAL.
4293         * config/1750a/1750a-protos.h: Delete prototypes of deleted
4294         functions.
4295         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
4296         IEEE_FLOAT_FORMAT.
4297         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
4298         Use REAL_VALUE_TO_DECIMAL as ELF version does.
4299         * config/m88k/m88k.c (real_power_of_2_operand,
4300         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
4301         real_extract out of the union; run the input through
4302         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
4303         from that into the union.
4304         * config/pdp11/pdp11.c (output_move_double): Rearrange
4305         parentheses to make automatic indenter happy.
4306
4307         * doc/tm.texi (Cross-compilation): Rename node to "Floating
4308         Point" and rewrite to describe current situation.  Also adjust
4309         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
4310         match code.
4311         * doc/rtl.texi: Adjust cross reference.
4312
4313 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
4314
4315         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
4316         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
4317         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
4318         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
4319         prevent use of sp as a reload register.
4320         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
4321         non_acc_reg_operand.
4322         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
4323         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
4324         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
4325         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
4326
4327 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4328
4329         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
4330         * cpplex.c (unterminated): Delete.
4331         (parse_string): No string literal may extend over multiple
4332         lines.  Suppress the error when preprocessing assembly.
4333         * cppmain.c (scan_translation_unit): Strings are single-line.
4334
4335         * doc/cpp.texi: Update to match.
4336
4337 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
4338
4339         PR optimization/5854
4340         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
4341         Shut up warnings.
4342         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
4343         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
4344         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
4345         const0 if scratch register was not allocated.
4346         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
4347         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
4348         with GEN_INT (...).
4349         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
4350         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
4351         with GEN_INT (...) everywhere.  Remove constraints in define_split
4352         patterns.
4353         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
4354         require scratch register for setting 0 into regs/non-pushable memory.
4355
4356 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
4357
4358         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
4359         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
4360
4361 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
4362
4363         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
4364         * cppinit.c (cpp_create_reader):  On by default.
4365         (cpp_handle_option):  Handle -W[no-]endif-labels.
4366         (cpp_post_options):  Also enable if -pedantic.
4367         * cpplib.c (do_else):  Use it.
4368         (do_endif):  Likewise.
4369         * doc/cppopts.texi:  Document new option.
4370         * doc/invoke.texi:  Document new option.
4371
4372 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
4373
4374         * config/i386/i386.c, config/i386/i386.md: Change all occurences
4375         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
4376
4377 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
4378
4379         * flow.c (calculate_global_regs_live): Clear aux fields of
4380         ENTRY and EXIT.
4381
4382 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
4383
4384         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
4385         REG or MEM subregs, pass rtx * instead of rtx to it.
4386         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
4387         rtx * instead of rtx to alter_subreg.
4388         * config/m32r/m32r.c (gen_split_move_double): Likewise.
4389         * config/pj/pj.c (pj_output_rval): Likewise.
4390
4391 2002-03-22  Richard Henderson  <rth@redhat.com>
4392
4393         PR target/3177
4394         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
4395         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
4396         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
4397         (ia64_expand_prologue): Look at int_regs, not words, for number
4398         of incomming int regs.
4399
4400 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
4401
4402         * expr.c (expand_expr): A RESULT_DECL is part of a call.
4403
4404 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
4405
4406         * toplev.c (flag_loop_optimize, flag_crossjumping):
4407         New static variables.
4408         (rest_of_compilation): Conditionalize crossjumping and
4409         loop optimizer.
4410         (parse_options_and_default_flags): Default loop_optimize and
4411         crossjumping.
4412         (lang_independent_options): Add -fcrossjumping and -floop-optimize
4413         * invoke.texi (crossjumping, loop-optimize): Document.
4414
4415 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4416
4417         * real.c (eiisneg): Move outside #ifdef NANS.
4418
4419 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
4420
4421         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
4422         frequencies match; avoid match on different loop depths.
4423         (try_crossjump_to_bb): Kill tests that no longer brings time
4424         savings.
4425         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
4426         updating code.
4427         (split_edge): Likewise.
4428
4429         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
4430         variable.
4431
4432         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
4433         * cfgrtl.c: Include insn-config.h
4434         (split_block) Dirtify block in presence of conditional execution
4435
4436 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4437
4438         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
4439         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
4440         (function_arg): Constify CUMULATIVE_ARGS.
4441         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
4442         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
4443         (UNITS_PER_DOUBLE): New macro.
4444         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
4445         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
4446         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
4447         fp_regs and stack_words.
4448         (EABI_FLOAT_VARARGS_P): New macro.
4449         * config/mips/mips.c (struct mips_arg_info): New.
4450         (mips_arg_info): New function.
4451         (function_arg_advance): Use it.  Add adjustment instructions here
4452         rather than in function_arg.
4453         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
4454         for VOIDmode at the beginning of the function.
4455         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
4456         (function_arg_pass_by_reference): Likewise.
4457         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
4458         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
4459         (mips_va_start): Likewise.  Use the new stack_words field of
4460         CUMULATIVE_ARGS to set up overflow area.  Reformat.
4461         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
4462         doubles and other types, aligning the overflow pointer for non-doubles
4463         too.  Remove some code duplication.  Replace hard-coded constants.
4464
4465 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4466
4467         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
4468         (CLASS_UNITS): Undefine.
4469         (CLASS_MAX_NREGS): Use FP_INC.
4470         * config/mips/mips.c (compute_frame_size): Likewise.
4471         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
4472
4473 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4474
4475         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
4476         prototype, and handle lexing numbers and identifiers.
4477         (parse_identifier): Update to new form of parse_slow.
4478         (parse_number): Fast path only, use parse_slow otherwise.
4479         (_cpp_lex_direct): Update calls to parse_number.
4480
4481 2002-03-21  DJ Delorie  <dj@redhat.com>
4482
4483         * bb-reorder.c (make_reorder_chain_1): Protect against
4484         when redundant edges are omitted.
4485         * predict.c (dump_prediction): Likewise.
4486
4487 2002-03-21  Richard Henderson  <rth@redhat.com>
4488
4489         PR target/5996
4490         * fixinc/inclhack.def (solaris_stdio_tag): New.
4491         * fixinc/fixincl.x: Regenerate.
4492
4493 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
4494
4495         PR c/5597
4496         * c-typeck.c (process_init_element): Flag non-static
4497         initialization of a flexible array member as illegal.
4498
4499 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
4500
4501         * config/rs6000/t-linux64: New.
4502         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
4503         t-ppccomm.  Use t-rs6000 and t-linux64.
4504         (powerpc64-*-gnu* <tmake_file>): Likewise.
4505         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
4506         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
4507         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
4508
4509 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
4510
4511         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
4512         flag_really_no_inline instead of optimize == 0.
4513
4514         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
4515
4516         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
4517
4518         * flags.h (flag_really_no_inline): New.
4519
4520         * c-common.c (c_common_post_options): Initialize
4521         flag_really_no_inline.
4522
4523         * toplev.c (flag_really_no_inline): New.
4524
4525 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
4526
4527         * config/avr/avr.md (length): Fix length computation for
4528         conditional branches.
4529
4530 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4531
4532         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
4533         sdbout.o, profile.o): Update.
4534         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
4535         langhook.
4536         * c-common.h (gettags): Move here from tree.h.
4537         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
4538         insert_block, getdecls, kept_level_p, global_bindings_p): New.
4539         * dbxout.c (dbxout_init): Use getdecls langhook.
4540         * expr.c (expand_expr): Use insert_block langhook.
4541         * fold-const.c: Include langhooks.h.
4542         (fold_range_test, fold_binary_op_with_conditional_arg,
4543         fold): Use global_bindings_p langhook.
4544         * integrate.c (expand_inline_function): Use insert_block langhook.
4545         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
4546         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
4547         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
4548         LANG_HOOKS_GETDECLS): New.
4549         (LANG_HOOKS_INITIALIZER): Update.
4550         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
4551         langhook.
4552         * langhooks.h (struct lang_hooks_for_decls): New.
4553         (struct lang_hooks): Update.
4554         * profile.c: Include langhooks.h.
4555         (output_func_start_profiler): Use new langhooks.
4556         * sdbout.c: Include langhooks.h.
4557         (sdbout_init, sdbout_finish): Use getdecls langhook.
4558         * stmt.c: Include langhooks.h.
4559         (expand_fixup, fixup_gotos): Use new langhooks.
4560         * stor-layout.c: Include langhooks.h.
4561         (variable_size): Use global_bindings_p langhook.
4562         * toplev.c (compile_file): Use getdecls langhook.
4563         * tree-inline.c (remap_block): Use insert_block langhook.
4564         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
4565         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
4566
4567 2002-03-21  Richard Henderson  <rth@redhat.com>
4568
4569         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
4570         constants in .data when -fpic.
4571
4572 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4573
4574         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
4575         where appropriate.
4576
4577 2002-03-21  Tom Tromey  <tromey@redhat.com>
4578
4579         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
4580
4581 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4582
4583         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
4584
4585         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
4586
4587 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
4588             Richard Henderson  <rth@redhat.com>
4589
4590         PR c/5354
4591         * c-common.c (c_expand_expr): Preserve result of a statement
4592         expression if needed.
4593
4594 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
4595
4596         PR bootstrap/4195
4597         * genrecog.c (maybe_both_true_mode): Remove.
4598         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
4599         * machmode.def (Pmode): Likewise.
4600
4601 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
4602
4603         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
4604         (nonlocal_mentioned_p_1): New function.
4605         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
4606         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
4607         (mark_constant_function): Recognize pure functions.
4608         * rtl.h (global_reg_mentioned_p): New prototype.
4609         * rtlanal.c (global_reg_mentioned_p,
4610         global_reg_mentioned_p_1): New function.
4611
4612 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4613
4614         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
4615         UNIX assert.h.
4616         * fixinc/fixincl.x: Regenerate.
4617
4618 2002-03-20  Jason Merrill  <jason@redhat.com>
4619
4620         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
4621
4622 2002-03-20  Michael Meissner  <meissner@redhat.com>
4623
4624         * doc/invoke.texi (Optimize Options): Document that -O2 sets
4625         -fstrict-aliasing.
4626
4627 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
4628
4629         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
4630         ".literal_position" directive before the constant pool.
4631
4632 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4633
4634         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
4635         Add Craig Rodrigues.
4636         Add Brad Lucier to testers.
4637
4638 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
4639
4640         PR target/4792
4641         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
4642         to if_then_else.
4643         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
4644         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
4645         instead of insn_extract.
4646
4647 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
4648
4649         PR bootstrap/4192
4650         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
4651
4652         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
4653         stmt if some case has been output.
4654
4655 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
4656
4657         PR c/5972
4658         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
4659         movsfcc_1, movdfcc_1): Add %O2.
4660         * config/i386/i386.c (print_operand): Handle %ON.
4661         Print . before float condition codes in Sun as cmov syntax.
4662         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
4663         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
4664         no longer true.
4665
4666 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
4667
4668         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
4669         return instruction if PC was popped.
4670
4671 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
4672
4673         * config/xtensa/xtensa.md: Remove unused type attributes.
4674         (adddi_carry, subddi_carry): Change type attribute to "multi".
4675
4676 2002-03-19  Dale Johannesen  <dalej@apple.com>
4677
4678         PR optimization/5999, middle-end/5731
4679         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
4680         multiplications by reciprocals.
4681
4682 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
4683
4684         * Makefile.in: Update.
4685         * c-common.c: Include langhooks.h.
4686         (inline_forbidden_p): Use new hook.
4687         * diagnostic.c: Include langhooks.h.
4688         (format_with_decl, announce_function,
4689         default_print_error_function): Use new hook.
4690         * dwarf2out.c (dwarf2_name): Use new hook.
4691         * function.c: Include langhooks.h.
4692         (init_function_start): Use new hook.
4693         * langhooks-def.h (lhd_decl_printable_name): New.
4694         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
4695         (LANGHOOKS_INITIALIZER): Update.
4696         * langhooks.c (lhd_decl_printable_name): New.
4697         * langhooks.h (struct lang_hooks): New hook.
4698         * toplev.c (decl_name, decl_printable_name): Remove.
4699         (open_dump_file): Use new hook.
4700         (process_options): Remove old hook.
4701         * tree.h (decl_printable_name): Remove.
4702 objc:
4703         * objc-act.c (objc_init): Remove old hook.
4704         (objc_printable_name): Export.
4705         * objc-act.h (objc_printable_name): New.
4706         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
4707
4708 2002-03-19  Jim Blandy  <jimb@redhat.com>
4709
4710         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
4711         the start_source_file debug hook, not the current line number.
4712
4713 2002-03-19  Richard Henderson  <rth@redhat.com>
4714
4715         * flow.c (EH_USES): Provide default.
4716         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
4717         * doc/tm.texi (EH_USES): New.
4718
4719         * config/ia64/ia64.c (ia64_eh_uses): New.
4720         * config/ia64/ia64-protos.h: Update.
4721         * config/ia64/ia64.h (EH_USES): New.
4722
4723 2002-03-19  Richard Henderson  <rth@redhat.com>
4724
4725         * varasm.c (output_constant_def): Fix stupid typo.
4726
4727 2002-03-19  Richard Henderson  <rth@redhat.com>
4728
4729         PR 5879
4730         * except.c (current_function_has_exception_handlers): New.
4731         * except.h: Declare it.
4732         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
4733         Combine tests that disable all sibcalls for the function.
4734
4735 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
4736
4737         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
4738         for INTEGER_CST.
4739
4740 2002-03-19  Richard Henderson  <rth@redhat.com>
4741
4742         PR 5977, 5991
4743         * config/ia64/ia64.c: Revert 2002-03-01 patch.
4744         * config/ia64/ia64.h (INIT_EXPANDERS): New.
4745
4746 2002-03-19  Jim Blandy  <jimb@redhat.com>
4747
4748         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
4749         name, even if the replacement list contains no tokens, as required
4750         by Dwarf.
4751
4752 2002-03-19  Jason Merrill  <jason@redhat.com>
4753
4754         * varasm.c (globalize_decl): Get the name from the RTL, not
4755         DECL_ASSEMBLER_NAME.
4756
4757         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
4758
4759 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
4760
4761         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
4762         subdi_carry): Define.
4763
4764 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
4765
4766         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
4767         about -fpic/-fPIC if extra_warnings set.
4768
4769 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
4770
4771         * expr.c (expand_expr): Sign-extend CONST_INT generated from
4772         TREE_STRING_POINTER.
4773         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
4774
4775 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4776
4777         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
4778         in favor of SP if FRAME_POINTER_REQUIRED is false.
4779
4780 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
4781
4782         * emit-rtl.c (gen_int_mode): New function.
4783         * rtl.h: Prototype for it.
4784         * combine.c (make_extraction, simplify_comparison), expmed.c
4785         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
4786         (convert_modes, store_field), optabs.c (expand_fix),
4787         simplify-rtx.c (neg_const_int, simplify_unary_real),
4788
4789         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
4790         Use it instead of GEN_INT (trunc_int_for_mode (...)).
4791
4792 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
4793
4794         PR c/5656
4795         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
4796         convert_parm_for_inlining.
4797         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
4798         Define.
4799         * langhooks-def.h: Likewise.
4800         * objc/objc-lang.c: Likewise.
4801         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
4802         function.
4803         * tree-inline.c (initialize_inlined_parameters):
4804         Call convert_parm_for_inlining lang hook if needed.
4805         * c-typeck.c (c_convert_parm_for_inlining): New function.
4806         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
4807
4808 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
4809
4810         * calls.c (precompute_arguments): Do not assume that temporaries
4811         can be destroyed after expanding the argument.
4812         (expand_call): Likewise.
4813
4814 2002-03-15  Eric Christopher  <echristo@redhat.com>
4815
4816         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
4817         Fix register preference on last change.
4818         * config/mips/mips.c (mips_return_in_memory): New function.
4819         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
4820         * config/mips/mips-protos.h: Declare.
4821         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
4822         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
4823
4824 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
4825
4826         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
4827         a register too.
4828         (anddi3, iorsi3): Likewise.
4829
4830         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
4831         use %gprel for symbols that are going to be placed in linkonce
4832         sections.
4833
4834         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
4835         RETURN_ADDRESS_POINTER_REGNUM to $ra.
4836         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
4837         not needed.  Disregard leaf_function_p().
4838         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
4839         mips16 frame pointer.
4840         * config/mips/mips.md (store ra): Only to small SP offsets.
4841         2001-08-22  Graham Stott  <grahams@redhat.com>
4842         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
4843         return a REG rtx for the return address register.
4844
4845 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
4846
4847         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
4848         constant-pool addresses as "mode-dependent".
4849         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
4850
4851 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
4852
4853         PR target/5740
4854         * expr.c (emit_group_load): Use extract_bit_field if
4855         needed for CONCAT arguments.
4856
4857 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
4858
4859         PR target/4863
4860         * arm.md (tablejump): Make this a define_expand.  For PIC add the
4861         offset to the base of the table.
4862         (thumb_tablejump): Matcher for Thumb tablejump insn.
4863         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
4864         as the difference of two labels.
4865         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4866         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
4867         tables in the code.
4868         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
4869         * arm.c (get_jump_table_size): If the table is not in the text
4870         section, return zero.
4871
4872 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
4873
4874         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
4875         of gen_rtx_SUBREG.
4876         (arm_reload_out_hi): Use gen_lowpart instead of
4877         gen_rtx_SUBREG to access QImode components.
4878         * config/arm/arm.md: Disable zero_extend split for QImode
4879         subregs in BIG_ENDIAN mode.
4880         (storehi_bigend): Match use of least significant byte.
4881         (storeinthi): Remove extraneous SUBREG.
4882         Add missing construction of operands[2].
4883         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
4884         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
4885         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
4886
4887 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
4888
4889         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
4890         any_operand.
4891
4892 2002-03-17  Richard Henderson  <rth@redhat.com>
4893
4894         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
4895         explicitly.
4896
4897 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
4898
4899         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
4900         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
4901
4902 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4903
4904         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
4905
4906         * predict.c (estimate_bb_frequencies): Delete unused variables.
4907
4908 2002-03-17  Richard Henderson  <rth@redhat.com>
4909
4910         * config/ia64/ia64.c (ia64_attribute_table): Move before
4911         targetm definition.  Make static.
4912
4913 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4914
4915         * c-common.h (yyparse, c_common_parse_file): New.
4916         * c-lang.c: Include c-common.h.
4917         (LANG_HOOKS_PARSE_FILE): Redefine.
4918         * c-lex.c: Include c-common.h.
4919         (yyparse): Rename c_common_parse_file.  Call yyparse.
4920         * c-parse.in (yyparse): Remove macro.
4921         * c-tree.h (yyparse_1): Remove.
4922         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
4923         (LANG_HOOKS_INITIALIZER): Update.
4924         * langhooks.h (struct lang_hoooks): New hook parse_file.
4925         * toplev.c (compile_file): Use parse_file hook.
4926         * tree.h (yyparse): Remove.
4927         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
4928
4929 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
4930
4931         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
4932         float_truncate, not fix.
4933         ("*truncdfsf2_real"): Ditto.
4934         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
4935
4936         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
4937
4938 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
4939
4940         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
4941         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
4942         where appropriate.  Make the second reference to
4943         leaf_function_p a function call, as intended.  Reindented.
4944
4945         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
4946         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
4947
4948         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
4949         add register to non-constant into sp.
4950
4951         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
4952         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
4953         (mips16_gp_pseudo_rtx): Lose.
4954         (INIT_EXPANDERS): Deleted.
4955         * config/mips/mips.c (mips_init_machine_status): New.
4956         (mips_free_machine_status): New.
4957         (mips_mark_machine_status): New.
4958         (override_options): Set them.
4959         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
4960         (struct machine_function): ... new.  Replaced all references.
4961         (mips_add_gc_roots): Don't mark them.
4962         (embedded_pic_fnaddr_reg): New, extracted from...
4963         (embedded_pic_offset): ... here.
4964         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
4965         (movsi): Likewise.
4966
4967 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4968
4969         * cppinit.c: Revert -MD removal.
4970
4971 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4972
4973         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
4974         soft registers by default for 68HC12.
4975         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
4976         when compiling with -fomit-frame-pointer.
4977         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
4978         (expand_epilogue): Likewise.
4979         (m68hc11_gen_rotate): Use exg when rotating by 8.
4980
4981 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4982
4983         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
4984         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
4985         (splits): Remove unused add splits.
4986         ("*addhi3_68hc12"): Tune constraints.
4987         ("addhi_sp"): Try to use X instead of Y in all cases and if the
4988         constant fits in 8-bits and D is dead use abx/aby instructions.
4989         ("*addhi3"): Remove extern declaration of ix_reg.
4990         ("*subsi3"): Optimize and provide new split.
4991         ("subhi3"): Cleanup.
4992         ("*subhi3_sp"): Avoid saving X if we know it is dead.
4993         (arith splits): For 68hc12 save the address register on the stack
4994         and do the arithmetic operation with a pop.
4995
4996 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4997
4998         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
4999         allocating QImode in address registers.
5000         ("*movqi_m68hc11"): Likewise.
5001
5002 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
5003
5004         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
5005
5006 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5007
5008         * cppinit.c (print_help): Display -MD and -MMD.
5009         Don't display usage string.  Update assertion syntax and
5010         typo.
5011         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
5012         (cpp_handle_option): Update.
5013
5014 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
5015
5016         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
5017         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
5018         and define it so that regardless of target CPU size,
5019         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
5020         of "int" rather than "long."
5021
5022 2002-03-15  Richard Henderson  <rth@redhat.com>
5023
5024         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
5025         size as a tree.
5026
5027 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5028
5029         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
5030         ("tstqi" split): Avoid using memory for tstqi on address register.
5031         (splits): Remove constraints.
5032         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
5033         ("cmpdf", "cmpsf"): Remove since not used.
5034         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
5035         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
5036
5037 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5038
5039         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
5040         ("neghi2"): Tighten constraints.
5041         ("one_cmplsi2"): Optimize and simplify split.
5042         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
5043
5044 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5045
5046         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
5047         and split of AND operation to clear the upper bits.
5048         ("*logicalsi3_zextqi"): Likewise.
5049         ("*logicallhi3_zexthi_ashift8"): Likewise.
5050         ("*logicalsi3_silshr16"): Likewise.
5051         ("logicalsi3_silshl16"): Likewise.
5052         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
5053
5054 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5055
5056         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
5057         (m68hc11_indirect_p): New function.
5058         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
5059         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
5060         TARGET_M6812.
5061         (asm_print_register): Likewise.
5062         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
5063         (m68hc11_indirect_p): Declare.
5064         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
5065         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
5066         (TARGET_SWITCHES): New option -mrelax.
5067         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
5068         destination.
5069         ("iorsi3", "xorsi3"): Likewise.
5070         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
5071         ("*andhi3_mem"): New to handle destination in memory with bclr
5072         and a scratch register.
5073         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
5074         ("*andhi3_const"): New when operand2 is constant.
5075         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
5076         ("*andhi3_gen"): Cleanup of the old "andhi3".
5077         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
5078         ("xorqi3"): Update constraints.
5079
5080 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5081
5082         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
5083         for reg_equiv_memory_loc when the operand is a register that does
5084         not get a hard register (stack location).
5085         (tst_operand): After reload, accept all memory operand.
5086         (symbolic_memory_operand): Fix detection of symbolic references.
5087         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
5088         accept symbols and any constant.
5089
5090 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5091
5092         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
5093         note on the insn that sets the soft frame register.
5094         (must_parenthesize): ix and iy are also reserved names.
5095         (print_operand_address): One more place where parenthesis are required
5096         to avoid confusion with register names.
5097         (m68hc11_gen_movhi): Allow push of stack pointer.
5098         (m68hc11_check_z_replacement): Fix handling of parallel with a
5099         clobber.
5100         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
5101         the replacement register is.
5102         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
5103         and D8_REGS classes.
5104         (MODES_TIEABLE_P): All modes are tieable except QImode.
5105
5106 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5107
5108         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
5109         (___subdi3): Likewise.
5110         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
5111         (__map_data_section): Optimize 68hc11 case.
5112
5113 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5114
5115         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
5116         than a shift to avoid adding a register with itself.
5117         (m68hc11_memory_move_cost): Take into account NO_REGS.
5118         (m68hc11_register_move_cost): Update and use memory move cost
5119         for soft registers.
5120         (m68hc11_address_cost): Make cost of valid offset not 0 so that
5121         it gives more opportunities to cse to optimize.
5122         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
5123         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
5124
5125 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
5126
5127         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
5128         * c-common.def (CLEANUP_STMT): New tree node.
5129         * c-common.h (CLEANUP_DECL): New macro.
5130         (CLEANUP_EXPR): Likewise.
5131         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
5132         * expr.c (expand_expr): Tidy.
5133         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
5134         * tree-inline.c (initialize_inlined_parameters): Clean up
5135         new local variables.
5136
5137 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
5138
5139         PR bootstrap/4128
5140         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
5141         before movrXX only, use reg_overlap_mentioned_p.
5142         Only special case NE if just one insn can be generated.
5143
5144 2002-03-15  Jason Merrill  <jason@redhat.com>
5145
5146         * varasm.c (assemble_variable): Call resolve_unique_section before
5147         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
5148         of error_mark_node.
5149
5150 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
5151
5152         PR target/5170
5153         * arm.md (split pattern for thumb shiftable immediates): Add comment
5154         explaining non-obvious test.
5155
5156 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
5157
5158         PR target/5712
5159         * arm.md (movaddr, movaddr_insn): Delete.
5160
5161 2002-03-15  Jason Merrill  <jason@redhat.com>
5162
5163         * toplev.c (wrapup_global_declarations): Clarify variable handling.
5164         -fkeep-static-consts doesn't apply to comdats.
5165
5166 2002-03-14  Richard Henderson  <rth@redhat.com>
5167
5168         * c-decl.c: Include c-pragma.h.
5169         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
5170         (finish_function): Tidy.
5171         * c-pragma.c: Include c-common.h.
5172         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
5173         (handle_pragma_weak): Use them.
5174         (init_pragma): Register pending_weaks.
5175         * c-pragma.h (maybe_apply_pragma_weak): Declare.
5176         * print-tree.c (print_node): Print DECL_WEAK.
5177         * varasm.c (mark_weak_decls): Remove.
5178         (remove_from_pending_weak_list): Remove.
5179         (add_weak): Remove.
5180         (asm_emit_uninitialised): Call globalize_decl for weak commons.
5181         (weak_decls): Make a tree_list.
5182         (declare_weak): Cons weak_decls directly.
5183         (globalize_decl): Remove weak_decls elements directly.
5184         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
5185         symbols.  Don't pretend to handle aliases.
5186         (init_varasm_once): Update weak_decls registry.
5187         * Makefile.in: Update dependencies.
5188
5189 2002-03-14  Richard Henderson  <rth@redhat.com>
5190
5191         PR target/5312
5192         * config/ia64/ia64.c: Include tm_p.h last.
5193         (gen_nop_type): Remove duplicate definition.
5194         (cycle_end_fill_slots): Set sched_data for second L slot.
5195         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
5196         (nop_cycles_until): Fix typos.
5197
5198 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
5199
5200         PR optimization/5891
5201         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
5202
5203 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
5204
5205         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
5206           descriptors correctly.
5207
5208 2002-03-14  Michael Meissner  <meissner@redhat.com>
5209
5210         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
5211         100, allowing MAX_UNROLLED_INSNS to be overridden.
5212
5213         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
5214         --param.
5215
5216         * unroll.c (params.h): Include.
5217         (MAX_UNROLLED_INSNS): Delete, now in params.h.
5218
5219         * doc/invoke.texi (--param max-unroll-insns): Document.
5220
5221         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
5222
5223 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
5224
5225         * arm.md: Fix warnings about constraints in peepholes and splits.
5226
5227 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
5228
5229         * cpphash.h (struct lexer_state): Remove line_extension member.
5230         * cpplib.c (dequote_string, do_linemarker): New functions.
5231         (linemarker_dir): New data object.
5232         (DIRECTIVE_TABLE): No longer need to interpret #line in
5233         preprocessed source.  Delete obsolete comment about return
5234         values of handlers.
5235         (end_directive, directive_diagnostics, _cpp_handle_directive):
5236         Don't muck with line_extension.
5237         (directive_diagnostics): No need to issue warnings for
5238         linemarkers here.
5239         (_cpp_handle_directive): Issue warnings for linemarkers here,
5240         when appropriate.  Dispatch linemarkers to do_linemarker, not
5241         do_line.
5242         (do_line): Code to handle linemarkers split out to do_linemarker.
5243         Convert escape sequences in filename argument, both places.
5244
5245         * cppmacro.c (quote_string): Rename cpp_quote_string and
5246         export.  All callers changed.
5247         * cpplib.h (cpp_quote_string): Prototype.
5248         * cppmain.c (print_line): Call cpp_quote_string on to_file
5249         before printing it.
5250
5251         * doc/cpp.texi: Document that escapes are now interpreted in
5252         #line and in linemarkers, and that non-printing characters are
5253         converted to octal escapes when linemarkers are generated.
5254
5255 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
5256
5257         * emit-rtl.c (try_split): Use delete_insns.
5258         * recog.c (split_all_insns): Fix terminating condition.
5259
5260 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
5261             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
5262
5263         PR target/5828
5264         * arm.c (arm_output_epilogue): Fix floating-point register save
5265         adjustment when using a frame pointer.
5266
5267 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
5268
5269         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
5270         * config/mips/mips.c (compute_frame_size): Retrofit them here.
5271         (save_restore_insns, mips_expand_epilogue): And here.
5272         (build_mips16_call_stub): And here.
5273         (mips_function_value): Use the new macros to decide whether a single
5274         or complex float can be returned in floating-point registers.  Return
5275         a parallel rtx in the complex case.
5276
5277 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
5278
5279         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
5280         call after liveness analysis.
5281
5282         * recog.c (split_insn): Use delete_insn_and_edges.
5283
5284         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
5285         instructions to have branch prediction notes.
5286         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
5287
5288 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
5289
5290         * configure.in: Don't pass -Wno-long-long to a ADA compiler
5291         that doesn't support it.
5292         * configure: Regenerate.
5293
5294 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5295
5296         PR target/5626
5297         * config/sparc/sparc.md (normal_branch, inverted_branch,
5298         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
5299         inverted_fp_branch): Adjust calls to output_cbranch.
5300         Set length attribute.
5301         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
5302         output_v9branch.  Set length attribute.
5303         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
5304         predicates.
5305         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
5306         (output_cbranch): Likewise.  Handle far branches.
5307         (output_v9branch): Handle far branches.
5308         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
5309         Adjust prototypes.
5310         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
5311         noov_compare64_op predicates.
5312
5313 2002-03-13  Jason Merrill  <jason@redhat.com>
5314
5315         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
5316         into the function and constify it.
5317         * gthr-dce.h, gthr-solaris.h: Likewise.
5318
5319 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
5320
5321         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
5322         * config/rs6000/rs6000.c (rs6000_va_arg): Use
5323         std_expand_builtin_va_arg if not ABI_V4.
5324
5325 2002-03-13  Jason Merrill  <jason@redhat.com>
5326
5327         * varasm.c (globalize_decl): New fn.
5328         (assemble_start_function): Use it.
5329         (asm_emit_uninitialized): Use it.
5330         (assemble_alias): Use it.
5331         (assemble_variable): Use it.
5332
5333 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
5334
5335         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
5336         2002-03-12 internal visibility change.
5337         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
5338         visibility into SYMBOL_REF_FLAG.
5339
5340 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
5341
5342         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
5343         VOIDmode operand.  Add compile-time optimization for constant results.
5344
5345 2002-03-12  Jason Merrill  <jason@redhat.com>
5346
5347         * c-typeck.c (convert_for_assignment): Don't allow conversions
5348         between pointers and references.  Only allow lvalues to convert to
5349         reference.
5350
5351 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
5352
5353         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
5354         before prologue, to avoid scheduling problems.
5355
5356 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5357
5358         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
5359         (ELIMINABLE_REGS): Add sfp->sp.
5360         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
5361
5362 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5363
5364         PR optimization/5892
5365         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
5366
5367 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5368
5369         * loop.c (basic_induction_var): Don't call convert_modes if mode
5370         classes are different.
5371
5372 2002-03-12  Richard Henderson  <rth@redhat.com>
5373
5374         PR optimization/5901
5375         * function.c (reposition_prologue_and_epilogue_notes): Position
5376         the markers after/before the last/first insn not deleted.
5377
5378 2002-03-12  Richard Henderson  <rth@redhat.com>
5379
5380         PR optimization/5878
5381         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
5382         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
5383         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
5384
5385         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
5386         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
5387         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
5388
5389         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
5390         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
5391         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
5392         also.  Don't set it if not flag_pic.
5393         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
5394         to be INVALID_REGNUM when not used.
5395
5396 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
5397
5398         * expmed.c (store_bit_field): Reset alias set for memory.
5399         (extract_bit_field): Same.
5400
5401 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5402
5403         * c-common.c (c_tree_code_type, c_tree_code_length,
5404         c_tree_code_name, add_c_tree_codes): Delete.
5405         * c-common.h (add_c_tree_codes): Delete.
5406         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
5407         Define.
5408         * c-objc-common.c (c_objc_common_init): Don't call
5409         add_c_tree_codes, instead set lang_unsafe_for_reeval.
5410         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
5411         objc_tree_code_name, add_objc_tree_codes): Delete.
5412         (objc_init): Don't call add_objc_tree_codes.
5413         * objc/objc-lang.c (tree_code_type, tree_code_length,
5414         tree_code_name): Define.
5415         * toplev.c (lang_independent_init): Don't set
5416         tree_code_length[IDENTIFIER_NODE].
5417         * tree.c (tree_code_type, tree_code_length, tree_code_name):
5418         Delete definitions, moved to language front-ends.
5419         * tree.def (IDENTIFIER_NODE): Hardwire the length.
5420         * tree.h (tree_code_type, tree_code_length, tree_code_name):
5421         Const-ify.
5422         (tree_code_length): Change type to unsigned char.
5423
5424 2002-03-12  Richard Henderson  <rth@redhat.com>
5425
5426         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
5427         internal visibility change.
5428
5429 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5430
5431         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
5432         validize_mem() instead of change_address to avoid clobbering
5433         memory attributes.
5434
5435 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
5436
5437         * c-lex.h (position_after_whitespace): Remove.
5438
5439 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
5440
5441         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
5442         (lex_string): Use unsigned char pointers.
5443
5444 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
5445
5446         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
5447         is not a valid memory_operand.
5448
5449 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5450
5451         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
5452         * config/xtensa/lib1funcs.asm: Fix copyright to include
5453         special case for libgcc files.
5454         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
5455         (__divsi3): Likewise.
5456         (__umodsi3): Likewise.
5457         (__modsi3): Likewise.
5458         * config/xtensa/lib2funcs.S: Fix copyright to include
5459         special case for libgcc files.
5460
5461 2002-03-12  Tom Rix  <trix@redhat.com>
5462
5463         * collect2.c (resolve_lib_name): Move outside of
5464         OBJECT_FORMAT_COFF ifdef.
5465         (ignore_library): Same.
5466
5467 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5468
5469         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
5470
5471 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5472
5473         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
5474         to function_section before writing out the constant pool.
5475
5476 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
5477
5478         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
5479         zero_constant.
5480         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
5481
5482 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
5483
5484         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
5485         (adddi3): Likewise.
5486         (movdf): Likewise.
5487         (movdi): Likewise.
5488         (cmpsi splitter): Likewise.
5489         (modsi3): Fail if <= 0.
5490         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
5491         redundant test when HOST_BITS_PER_WIDE_INT != 32.
5492         (reg_or_sub_cint64_operand): Likewise.
5493         (num_insns_constant_wide): Optimize sign extension.
5494         (rs6000_legitimize_address): Likewise.
5495
5496 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
5497
5498         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
5499         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
5500
5501 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
5502
5503         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
5504         address calculation.
5505
5506 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
5507
5508         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
5509         scratch register to DImode / TImode.
5510         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
5511         register used does not overlap the target.
5512
5513 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5514
5515         * Makefile.in (debug.o): Depend on debug.h.
5516         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
5517         * debug.c (do_nothing_debug_hooks): Likewise.
5518         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
5519         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
5520         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
5521         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
5522         * dwarfout.c (dwarf_debug_hooks): Likewise.
5523         * integrate.c (output_inline_function): Likewise.
5524         * objc/objc-act.c (synth_module_prologue): Likewise.
5525         * sdbout.c (sdb_debug_hooks): Likewise.
5526         * toplev.c (debug_hooks): Likewise.
5527         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5528
5529 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5530
5531         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
5532         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
5533         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
5534         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
5535         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
5536         * defaults.h (POINTER_SIZE): Define.
5537         * doc/tm.texi (POINTER_SIZE): Document default.
5538
5539 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5540
5541         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
5542
5543 2002-03-11  Richard Henderson  <rth@redhat.com>
5544
5545         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
5546         if rebuild_label_notes_after_reload.
5547
5548 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
5549
5550         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
5551         emit pic register load if "internal" visibility.
5552         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
5553         (cris_expand_builtin_va_arg): Do all computations on trees.
5554
5555 2002-03-11  Richard Henderson  <rth@redhat.com>
5556
5557         * rtlanal.c: Include recog.h.
5558         (keep_with_call_p): Fix thinko.
5559         * Makefile.in (rtlanal.o): Update dependencies.
5560
5561 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
5562
5563         * genflags.c (gen_insn): Use IS_VSPACE.
5564         * genoutput.c (output_insn_data): Likewise.
5565         (process_template): Likewise.
5566
5567 2002-03-11  Richard Henderson  <rth@redhat.com>
5568
5569         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
5570
5571 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5572
5573         * Makefile.in: Update.
5574         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
5575         Update documentation.
5576         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
5577         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
5578
5579 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
5580
5581         * Makefile.in: Give texi2pod its input file as a command line
5582         argument, not on stdin.
5583
5584 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
5585             Daniel Berlin  <dan@dberlin.org>
5586
5587         C++ alias analysis improvement.
5588         * alias.c (record_component_aliases): Record aliases for base
5589         classes too.
5590
5591 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
5592
5593         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
5594
5595 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
5596
5597         * toplev.c (vms_fopen): Remove, not needed.
5598
5599         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
5600
5601         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
5602
5603         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
5604         for FP, already done later.
5605
5606         * toplev.c (debug_args): Add entry for VMS_DEBUG.
5607         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
5608
5609 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
5610
5611         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
5612         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
5613         LARGEST_EXPONENT_IS_NORMAL for the given mode.
5614         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
5615         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
5616         (ediv, emul, eldexp, esqrt): Likewise.
5617         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
5618         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
5619         (saturate): New function.
5620         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
5621         (make_nan): Use a saturation value instead of a NaN if
5622         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
5623         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
5624         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
5625         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
5626         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
5627         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
5628         !ROUND_TOWARDS_ZERO.
5629         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
5630         (ROUND_TOWARDS_ZERO): Document.
5631
5632 2002-03-11  Andreas Jaeger  <aj@suse.de>
5633
5634         * cfg.c (dump_flow_info): Remove unused variable.
5635
5636 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
5637
5638         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
5639         computations on trees.
5640
5641 2002-03-10  Richard Henderson  <rth@redhat.com>
5642
5643         PR 5693:
5644         * reload.c (copy_replacements_1): New.
5645         (copy_replacements): Use it to recurse through the rtx.
5646
5647 2002-03-10  Richard Henderson  <rth@redhat.com>
5648
5649         * loop.c (strength_reduce): Compute number of iterations as
5650         unsigned HOST_WIDE_INT.
5651
5652 2002-03-10  Richard Henderson  <rth@redhat.com>
5653
5654         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
5655         to move away from the end of the block.
5656
5657 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
5658
5659         PR preprocessor/5899
5660         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
5661
5662 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5663
5664         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
5665
5666         * attribs.c (decl_attributes): Fix signed/unsigned warning.
5667
5668 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
5669
5670         * config/mmix/mmix.c: Improve comments.
5671         (mmix_target_asm_function_prologue): Drop variable
5672         empty_stack_frame.  Don't allocate unused slot above fp.
5673         (mmix_target_asm_function_epilogue): Mirror prologue changes.
5674         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
5675         brace in first column.
5676         (enum reg_class): Ditto.
5677         (FIRST_PARM_OFFSET): Now 0.
5678         (USER_LABEL_PREFIX): Remove #if 0:d definition.
5679
5680 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5681
5682         * combine.c (make_extraction): Fix error in last change.
5683
5684 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5685
5686         * c4x.c (c4x_fp_reglist): Const-ify.
5687         * cris.c (cris_print_operand): Likewise.
5688         * i386.c (ix86_va_arg): Likewise.
5689         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
5690         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
5691         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
5692         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
5693         * mcore.h (regno_reg_class): Likewise.
5694         * mips.c (gen_int_relational): Likewise.
5695         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
5696         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
5697         * pdp11.c (move_costs): Likewise.
5698         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
5699         * s390.c (s390_branch_condition_mnemonic, regclass_map):
5700         Likewise.
5701         * s390.h (regclass_map): Likewise.
5702         * sh.c (shift_amounts): Likewise.
5703         * sh.md (rotlsi3): Likewise.
5704
5705 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
5706
5707         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
5708         (ne0+5): Use new clobber to generate proper shift pattern.
5709         Patch by Michael Matz <matz@kde.org>.
5710
5711 2002-03-09  Andreas Schwab  <schwab@suse.de>
5712
5713         * gcc.c (validate_all_switches): Also handle `%W{...}'.
5714
5715 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
5716
5717         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
5718
5719 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
5720
5721         PR middle-end/5877
5722         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
5723         even for non-representable constants.
5724
5725 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5726
5727         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
5728         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
5729         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
5730         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
5731         (pop_function_context): Compute MAY_SHARE parameter for
5732         fixup_var_refs.
5733         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
5734         (gen_mem_addressof): Call fixup_var_refs with new parm.
5735
5736         * combine.c (make_extraction): Don't make extension of CONST_INT.
5737
5738 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
5739
5740         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
5741         in o32 and o64 ABIs.
5742         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
5743         but getting fixed-size structs passed in registers regardless of
5744         padding in o32 and o64 ABIs.
5745
5746         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
5747         offset before loading address of argument passed by transparent
5748         reference.
5749
5750 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5751
5752         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
5753
5754 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
5755
5756         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
5757         marker such that registers after it are saved.
5758
5759 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5760
5761         * sparc.c (arith_4096_operand): Fix error in last change.
5762
5763 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
5764
5765         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
5766         defaults for MEABI.
5767
5768 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
5769
5770         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
5771         vectors.
5772
5773 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
5774
5775         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
5776
5777 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
5778
5779         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
5780         removed; fix return value.
5781         * combine.c (combine_instructions): Dirtify blocks where we failed to
5782         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
5783         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
5784
5785 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5786
5787         * gcse.c (insert_insn_end_bb): Fix typo in last change.
5788
5789 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
5790
5791         * recog.c (peephole2_optimize): Re-distribute EH edges.
5792
5793 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
5794
5795         * expr.c (expand_expr): Use unsave lang hook.
5796         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
5797         (LANG_HOOKS_INITIALIZER): Update.
5798         * langhooks.h (struct lang_hooks): New hook unsave.
5799         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
5800         (unsave_expr_1): Remove unused lang_unsave_expr_now.
5801         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
5802         (unsave_expr_now): Remove.
5803         * tree.h (unsave_expr_now, lang_unsave,
5804         lang_unsave_expr_now): Remove.
5805         (lhd_unsave): New.
5806
5807 2002-03-08  Andreas Jaeger  <aj@suse.de>
5808
5809         * flow.c (propagate_block_delete_insn): Remove unused variable.
5810
5811 2002-03-08  Kazu Hirata  <kazu@hxi.com>
5812
5813         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
5814         insn length for memory load/store.
5815
5816 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5817
5818         * doc/install.texi (--with-libiconv-prefix): Document.
5819
5820 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
5821
5822         * doc/sourcebuild.texi: Fix typo.
5823
5824 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
5825
5826         PR c/3711
5827         * builtins.c (std_expand_builtin_va_arg): Do all computations on
5828         trees.
5829
5830 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5831
5832         * rtl.c (copy_most_rtx): Move from here ...
5833         * emit-rtl.c (copy_most_rtx): ... to here.
5834
5835 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
5836
5837         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
5838         SUBTARGET_CPP_SIZE_SPEC.
5839         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
5840
5841         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
5842
5843 2002-03-07  Matt Hiller  <hiller@redhat.com>
5844
5845         * gensupport.c (first_dir_md_include): Renamed from include;
5846         change all references.
5847         (last_dir_md_include): Renamed from last_include; change all
5848         references.
5849         (init_md_reader): Unconditionally initialize base_dir whether or
5850         not filename is a relative path.
5851
5852 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
5853
5854         * config/fp-bit.c (_unord_f2): Compile it in even if
5855         US_SOFTWARE_GOFAST is enabled.
5856
5857         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
5858         NULL_RTX.  Set all HFmode operations as NULL_RTX.
5859         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
5860         NULL_RTX, try reversing the comparison and the operands.
5861
5862 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
5863
5864         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
5865         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
5866         and MATCH_OP_DUP.
5867
5868 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
5869
5870         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
5871
5872 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
5873
5874         * basic-block.h (fixup_abnormal_edges): Declare.
5875         * reload1.c (fixup_abnormal_edges): New function.
5876         * reg-stack.c (convert_regs): Use it.
5877
5878         * gcse.c (insert_insn_end_bb): Handle trapping insns.
5879
5880         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
5881
5882 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
5883
5884         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
5885         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
5886         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
5887         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
5888         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
5889         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
5890         unless x and y could be infinite.
5891         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
5892         Check that the common type of both arguments is a real, even for
5893         targets without unordered comparisons.  Allow an integer argument
5894         to be compared against a real.
5895         (expand_tree_builtin): Use expand_unordered_cmp.
5896         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
5897         * cse.c (fold_rtx): Likewise.  Fix indentation.
5898         * fold-const.c (fold_real_zero_addition_p): New.
5899         (fold): Use it, and the new HONOR_... macros.
5900         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
5901         * jump.c (reversed_comparison_code_parts): After searching for
5902         the true comparison mode, use HONOR_NANS to decide whether it
5903         can be safely reversed.
5904         (reverse_condition_maybe_unordered): Remove IEEE check.
5905         * simplify-rtx.c (simplify_binary_operation): Use the new macros
5906         to decide which simplifications are valid.  Allow the following
5907         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
5908         and (a - -b) to (a + b).
5909         (simplify_relational_operation): Use HONOR_NANS.
5910         * doc/tm.texi: Document the MODE_HAS_... macros.
5911
5912 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
5913
5914         * combine.c (simplify_comparison): If simplifying a logical shift
5915         right and compare with constant, force the comparison to unsigned.
5916
5917 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
5918
5919         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
5920
5921         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
5922         -mabi=no-altivec
5923         (alt_reg_names): Remove % for vrsave.
5924
5925 2002-03-06  Richard Henderson  <rth@redhat.com>
5926
5927         PR optimization/5844
5928         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
5929         if used indicates we've already emitted one copy of an operand.
5930         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
5931         (gen_split): Supply a non-null used.
5932
5933 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
5934
5935         * reload1.c (reload): Unshare all rtl after reload is done.
5936
5937         * simplify-rtx.c (simplify_plus_minus): Do not abort,
5938         but simply fail if the expression is too complex to simplify.
5939         (simplify_gen_binary): Handle simplify_plus_minus failures.
5940
5941 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
5942
5943         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
5944         consistently call delete_trivially_dead_insns after CSE and GCSE;
5945         fix DFI_life dumping; do jump threading after liveness; do crossjumping
5946         after liveness2; update comment in last crossjumping.
5947         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
5948
5949 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
5950
5951         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
5952         after completing fast dead code elimination.
5953
5954         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
5955         COMPARE operator.
5956
5957 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
5958
5959         * version.c:  Fix misplaced leading blanks on first line.
5960
5961 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
5962
5963         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
5964
5965 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
5966
5967         * cfgcleanup.c (mentions_nonequal_regs): New function.
5968         (thread_jump): Use it.
5969         * toplev.c (rest_of_compilation): Run jump threading after
5970         liveness.
5971
5972 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
5973
5974         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
5975         patch.
5976
5977 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
5978
5979         * predict.c (estimate_bb_frequencies): Do not reload the
5980         frequencies from notes.
5981
5982 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
5983
5984         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
5985         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
5986
5987         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
5988         delete_noop_moves): Return indeger.
5989         * flow.c (ndead): New variable.
5990         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
5991         BB argument; update callers.
5992         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
5993         (life_analysis): Do not call purge_all_dead_edges.
5994         (update_life_info): Return number of deleted insns; print statistics.
5995         (update_life_info_in_dirty_blocks): likewise.
5996         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
5997         return number of insns deleted.
5998
5999         * cse.c: Include timevar.h
6000         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
6001         iterate until stabilizes; print statistics; return number of killed
6002         insns.
6003         * Makefile.in: (cse.o): Add timevar.h dependency
6004         * rtl.h (delete_trivially_dead_insns): New.
6005         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
6006         * toplev.c (rest_of_compilation): Update callers.
6007
6008         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
6009         (try_optimize_cfg): Do not update liveness.
6010         (cleanup-cfg): Loop until try_optimize_cfg and dead code
6011         removal stabilizes; use delete_trivially_dead_insns.
6012
6013         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
6014
6015 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
6016
6017         * cppmain.c (setup_callbacks): Disable #pragma and #ident
6018         callbacks when processing assembly language.
6019
6020 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6021
6022         * pa.h (ASM_FILE_END): Define.
6023         * som.h (ASM_FILE_END): Delete.
6024
6025         * pa.c (function_arg): Don't pass floats in general registers in
6026         indirect calls if TARGET_ELF32.
6027
6028 2002-03-05  Richard Henderson  <rth@redhat.com>
6029
6030         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
6031
6032 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
6033
6034         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
6035
6036 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
6037
6038         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
6039         -r command line.  Don't hide any symbols if not building
6040         shared libgcc.
6041
6042 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
6043
6044         * cfg.c (dump_flow_info): Warn about profile mismatches.
6045         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
6046         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
6047
6048 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
6049
6050         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
6051         wide volatile memory by parts.
6052
6053 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
6054
6055         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
6056         is NULL.
6057
6058 2002-03-05  Richard Henderson  <rth@redhat.com>
6059
6060         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
6061
6062 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
6063
6064         * toplev.c (documented_lang_options): Document more
6065         language-specific options.
6066         * doc/invoke.texi (Warning Options): Correct documentation for
6067         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
6068         * c-decl.c (c_decode_option): Use a table to handle warning options.
6069
6070 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
6071
6072         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
6073         parameter to mmix_encode_section_info.
6074         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
6075         relocatably.  Always produce ELF, not mmo if linking relocatably.
6076         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
6077         first is non-zero, don't add symbol prefix.
6078         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
6079         prototype accordingly.
6080
6081 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
6082
6083         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
6084
6085 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
6086
6087         * configure.in: Increase required makeinfo version to 4.1.
6088         * configure: Regenerate.
6089
6090 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
6091
6092         * .cvsignore: Remove *.info* and genrtl*; these files are generated
6093         elsewhere now.
6094
6095 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
6096
6097         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
6098         * doc/invoke.texi: Fix @math uses.
6099
6100 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
6101
6102         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
6103         removal
6104
6105 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
6106
6107         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
6108         (powerpc-*-eabisimaltivec*): Same.
6109
6110         * config/rs6000/t-ppcendian: New.
6111
6112 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6113
6114         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
6115         nonimmediate_src_operand and nonimmediate_lsrc_operand to
6116         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
6117
6118 2002-03-03  Richard Henderson  <rth@redhat.com>
6119
6120         * toplev.c (rest_of_decl_compilation): Revert last two changes.
6121
6122 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
6123
6124         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
6125         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
6126         tree.c, config/m68k/m68k.c:
6127         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
6128         REAL_ARITHMETIC blocks unconditional.  Delete some further
6129         #ifdef blocks predicated on REAL_ARITHMETIC.
6130         * flags.h, toplev.c: Delete remaining references to
6131         flag_pretend_float.
6132
6133         * doc/invoke.texi: Remove documentation of -fpretend-float.
6134         * doc/tm.texi: Describe the various REAL_* macros as provided by
6135         real.h, not by the target configuration files.
6136
6137         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
6138         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
6139         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
6140         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
6141         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
6142         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
6143         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
6144         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
6145         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
6146         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
6147         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
6148         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
6149         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
6150         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
6151         config/xtensa/xtensa.h:
6152         Do not define, undefine, or mention in comments any of
6153         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
6154         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
6155         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
6156         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
6157         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
6158         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
6159         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
6160         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
6161         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
6162
6163 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6164
6165         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
6166         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
6167         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
6168         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
6169         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
6170         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
6171         Delete.
6172         * defaults.h (BITS_PER_WORD): Define.
6173         * doc/tm.texi (BITS_PER_WORD): Document default value.
6174
6175         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
6176         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
6177         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
6178
6179 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6180
6181         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
6182         lieu of explicit sizeof/sizeof.
6183         * i386.c (override_options, ix86_init_mmx_sse_builtins,
6184         ix86_expand_builtin): Likewise.
6185         * mips.c (mips_add_gc_roots): Likewise.
6186         * mmix.c (mmix_output_condition): Likewise.
6187         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
6188         altivec_init_builtins): Likewise.
6189         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
6190         * cppexp.c (Nsuff, parse_number): Likewise.
6191         * cppinit.c (builtin_array_end): Likewise.
6192         * gcc.c (n_default_compilers, process_command): Likewise.
6193         * genpreds.c (output_predicate_decls): Likewise.
6194         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
6195         * lcm.c (N_ENTITIES): Likewise.
6196         * stor-layout.c (set_sizetype): Likewise.
6197
6198 2002-03-03  Richard Henderson  <rth@redhat.com>
6199
6200         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
6201         for types or labels.
6202
6203 2002-03-03  Richard Henderson  <rth@redhat.com>
6204
6205         * c-decl.c (start_decl): Initialized variables are not common.
6206
6207 2002-03-02  Per Bothner  <per@bothner.com>
6208
6209         * gcc.c (option_map):  Suport new --bootclasspath option.
6210         --CLASSPATH is now just an alias for --classpath.
6211
6212 2002-03-02  Richard Henderson  <rth@redhat.com>
6213
6214         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
6215         load if "internal" visibility.
6216         * doc/extend.texi: Document visibility meanings.
6217
6218 2002-03-02  Richard Henderson  <rth@redhat.com>
6219
6220         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
6221         to functions as well.
6222
6223 2002-03-02  Richard Henderson  <rth@redhat.com>
6224
6225         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
6226         (handle_visibility_attribute): Don't call assemble_visibility.
6227         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
6228         without asmspec.  Invoke assemble_alias when needed.
6229         * varasm.c (maybe_assemble_visibility): New.
6230         (assemble_start_function, assemble_variable, assemble_alias): Use it.
6231
6232 2002-03-02  Richard Henderson  <rth@redhat.com>
6233
6234         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
6235         invoke ENCODE_SECTION_INFO with first call flag.
6236
6237         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
6238         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
6239         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
6240         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
6241         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
6242         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
6243         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
6244         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
6245         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
6246         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
6247         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
6248         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
6249         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
6250         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
6251         config/mcore/mcore-protos.h, config/mcore/mcore.c,
6252         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
6253         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
6254         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
6255         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
6256         config/sh/sh.h, config/sparc/sparc.h,
6257         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
6258         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
6259         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
6260         FIRST argument.  As needed, examine it and do nothing.
6261
6262         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
6263         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
6264         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
6265
6266         * config/arm/t-pe (pe.o): Add dependencies.
6267
6268 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6269
6270         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
6271         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
6272         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
6273         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
6274         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
6275         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
6276         * defaults.h (BITS_PER_UNIT): Define.
6277         * doc/tm.texi (BITS_PER_UNIT): Document default value.
6278
6279 2002-03-02  Kazu Hirata  <kazu@hxi.com>
6280
6281         * config/h8300/h8300-protos.h: Add a prototype for
6282         compute_a_shift_length.
6283         * config/h8300/h8300.c (h8300_asm_insn_count): New.
6284         (compute_a_shift_length): Likewise.
6285         (h8300_adjust_insn_length): Do not adjust insn length of shift
6286         insns.
6287         * config/h8300/h8300.md (anonymous shift patterns): Use
6288         compute_a_shift_length.
6289
6290 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6291
6292         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
6293         trunc_int_for_mode.
6294
6295         * emit-rtl.c (offset_address): Call update_temp_slot_address.
6296
6297 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6298
6299         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
6300         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
6301         * flags.h (flag_zero_initialized_in_bss): Declare.
6302         * toplev.c (flag_zero_initialized_in_bss): New flag.
6303         (lang_independent_options): Add flag_zero_initialized_in_bss.
6304         * tree.c (initializer_zerop): New function.
6305         * tree.h (initializer_zerop): Declare.
6306         * varasm.c (assemble_variable): If we can emit bss, put zero
6307         initializers in the bss section.
6308
6309 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
6310
6311         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
6312         like more than one symbol per .weak directive.
6313
6314 2002-03-01  Richard Henderson  <rth@redhat.com>
6315
6316         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
6317         adjust argument_pointer by pretend_args_size.
6318         (ia64_va_start): Adjust va_start address by -pretend_args_size.
6319
6320 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6321
6322         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
6323
6324 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
6325
6326         * toplev.c (rest_of_compilation): Delete dead jumptables before
6327         loop.
6328         * flow.c (delete_dead_jumptables): Make global.
6329         * rtl.h (delete_dead_jumptables): Declare.
6330
6331 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
6332
6333         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
6334         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
6335         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
6336
6337 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6338
6339         * config/h8300/h8300-protos.h: Fix formatting.
6340         * config/h8300/h8300.c: Likewise.
6341         * config/h8300/h8300.h: Likewise.
6342
6343 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6344
6345         * config/h8300/h8300.c (print_operand): Support 16-bit
6346         constant addresses.
6347         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
6348
6349 2002-02-28  Richard Henderson  <rth@redhat.com>
6350
6351         * expmed.c (store_bit_field): Prevent generation of CONCATs;
6352         pun complex values as integers; use gen_lowpart instead of
6353         gen_rtx_SUBREG.
6354         (extract_bit_field): Likewise.
6355
6356 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
6357             David Edelsohn  <edelsohn@gnu.org>
6358
6359         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
6360         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
6361         (SUPPORTS_WEAK): Likewise.
6362         * output.h (add_weak): Add tree param.
6363         * varasm.c (add_weak): Likewise.  Save decl.
6364         (struct weak_syms): Add decl field.
6365         (mark_weak_decls): New function.
6366         (init_varasm_once): ggc_add_root mark_weak_decls.
6367         (assemble_start_function): Use ASM_WEAKEN_DECL.
6368         (assemble_variable): Likewise.
6369         (assemble_alias): Likewise.
6370         (declare_weak): Pass decl to add_weak.
6371         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
6372         (remove_from_pending_weak_list): Declare and define for
6373         ASM_WEAKEN_DECL.
6374         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
6375         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
6376         * defaults.h (SUPPORTS_WEAK): Likewise.
6377         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
6378         .weak for code sym.  Do emit .size for descriptor sym.
6379         (ASM_DECLARE_FUNCTION_SIZE): Define.
6380         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
6381         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
6382         .lglobl unless TARGET_XCOFF.  Formatting fixes.
6383         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
6384         .weak for code sym.
6385         (HANDLE_PRAGMA_WEAK): Remove.
6386         (ASM_WEAKEN_LABEL): Remove.
6387         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
6388
6389 2002-03-01  Jason Merrill  <jason@redhat.com>
6390
6391         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
6392         (TARGET_EXPR_CLEANUP): New macro.
6393
6394 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
6395
6396         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
6397         to take ptr_extend into account as third type of extension.
6398         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
6399         fields used by SUBREG_PROMOTED_UNSIGNED_P.
6400         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
6401         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
6402         * calls.c (precompute_arguments): Use new macro.
6403         (expand_call): Ditto.
6404         * combine.c (nonzero_bits): Ditto.
6405         (record_promoted_value): Ditto.
6406         * expr.c (store_expr): Ditto.
6407         (expand_expr): Ditto.
6408         * function.c (assign_parms): Ditto.
6409
6410 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
6411
6412         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
6413         override -shared and -shared-libgcc.
6414
6415 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
6416
6417         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
6418         of "ultrasparc".
6419         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
6420         to be broken.
6421
6422 2002-02-28  Richard Henderson  <rth@redhat.com>
6423
6424         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
6425         4 cycle latency from MM producers.
6426         (ia64_internal_sched_reorder): Likewise with pipeline flush.
6427
6428 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
6429
6430         * mklibgcc.in: Don't use GNU make extension.
6431
6432 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
6433
6434         * c-parse.in (STATIC): New terminal.
6435         (scspec): New non-terminal.  Update productions accordingly.
6436         (program): Remove bogus ifc / end ifc.
6437         (array_declarator): Simplify production using STATIC.
6438
6439 2002-02-28  Jim Meyering  <meyering@lucent.com>
6440
6441         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
6442         \a still means TARGET_BELL.
6443
6444 2002-02-28  Richard Henderson  <rth@redhat.com>
6445
6446         * haifa-sched.c (sched_emit_insn): New.
6447         (schedule_block): Use last_scheduled_insn to track last insn.
6448         * sched-int.h (sched_emit_insn): Prototype.
6449         * config/ia64/ia64.c (last_issued): Remove.
6450         (ia64_variable_issue): Don't set it.
6451         (nop_cycles_until): Use sched_emit_insn.
6452
6453 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
6454
6455         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
6456         extended constants.
6457
6458 2002-02-28  Kazu Hirata  <kazu@hxi.com>
6459
6460         * config/h8300/h8300.c: Fix formatting.
6461         * config/h8300/h8300.h: Likewise.
6462
6463 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6464
6465         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
6466         which may overwrite the high byte of the frame pointer.
6467
6468 2002-02-28  Bo Thorsen  <bo@suse.de>
6469
6470         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
6471         (STARTFILE_SPEC): Add 64 bit files.
6472         (ENDFILE_SPEC): Likewise.
6473
6474 2002-02-28  Jason Merrill  <jason@redhat.com>
6475
6476         * c-decl.c (finish_function): Only warn about missing return
6477         statement with -Wreturn-type.
6478
6479 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
6480
6481         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
6482
6483         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
6484         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
6485
6486 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
6487
6488         * basic-block.h (BB_REACHABLE): Renumber.
6489         (BB_DIRTY, BB_NEW): New flags.
6490         (clear_bb_flags): Declare.
6491         (update_life_info_in_dirty_blocks): Declare.
6492         * cfg.c (clear_bb_flags): New function.
6493         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
6494         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
6495         reorder_insns, emit_insn_after): Mark block as dirty.
6496         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
6497         (update_life_info_in_dirty_blocks): New function.
6498         * recog.c (apply_change_group): Dirtify block.
6499
6500         * cse.c (cse_insn): Reorder emitting of jump insn to keep
6501         cfg consistent.
6502         * gcse.c (delete_null_pointer_checks): Likewise.
6503
6504         * toplev.c (dump_file_index): Move cse2 after bp,
6505         add DFI_null
6506         (dump_file_info): Similary.
6507         (rest_of_compilation): Avoid most of CFG rebuilds;
6508         do first if converision after null pointer checks, do cse2
6509         after branch prediction; avoid full liveness rebuild after
6510         initializing subregs.
6511         * invoke.texi (-d options): Document -du, renumber.
6512
6513         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
6514         (notice_new_block): Do not set BB_UPDATE_LIFE.
6515         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
6516          merge_blocks_move_successor_nojumps, merge_blocks,
6517          try_crossjump_to_edge): Likewise.
6518         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
6519         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
6520         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
6521         (merge_of_block): Do not use life_data_ok.
6522         (find_if_case_1): Do not use SET_UPDATE_LIFE.
6523         (if_convert): Use BB_DIRTY mechanizm to update life.
6524         * lcm.c (optimize_mode_switching): Update
6525         update_life_info_in_dirty_blocks
6526
6527 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
6528
6529         * Makefile.in (integrate.o): Update.
6530         * c-decl.c (copy_lang_decl): Rename.
6531         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
6532         * integrate.c: Include langhooks.h.
6533         (copy_decl_for_inlining): Update to use langhook.
6534         * langhooks-def.h (lhd_do_nothing_t,
6535         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
6536         (LANG_HOOKS_INITIALIZER): Update.
6537         * langhooks.c (lhd_do_nothing_t): New.
6538         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
6539         * tree.h (copy_lang_decl): Remove.
6540 objc:
6541         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
6542
6543 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
6544
6545         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
6546         POST_DEC, and POST_MODIFY.
6547
6548 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
6549
6550         * c-typeck.c (digest_init): Remove unused parameter; all
6551         callers changed.
6552
6553 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
6554
6555         * expmed.c (expand_shift): Correctly test for low part of a
6556         subreg.
6557
6558 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
6559
6560         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
6561         insn UIDs with insn addresses.
6562
6563 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
6564
6565         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
6566         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
6567         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
6568         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
6569         gcc.c, toplev.c: Delete code implementing -traditional mode.
6570
6571         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
6572         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
6573         Document removal of -traditional mode for compilation, and
6574         remove documentation only relevant to that mode.
6575
6576         * config/nextstep.h, config/ptx4.h, config/svr4.h,
6577         config/convex/convex.h, config/d30v/d30v.h,
6578         config/i386/dgux.h, config/i386/osf1elf.h,
6579         config/i386/osfelf.h, config/i386/osfrose.h,
6580         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
6581         config/m68k/hp310.h, config/m88k/dgux.h,
6582         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
6583         config/m88k/m88k.h, config/m88k/openbsd.h,
6584         config/mips/abi64.h, config/mips/osfrose.h,
6585         config/mips/svr4-5.h, config/mips/svr4-t.h,
6586         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
6587         config/stormy16/stormy16.h: Remove all references to
6588         -traditional from target specs.  Delete all mention of the
6589         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
6590         delete a couple of commented-out definitions of
6591         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
6592         to -traditional.
6593
6594         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
6595         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
6596
6597 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
6598
6599         * mklibgcc.in: Don't use \n in a line subject to
6600         interpretation by echo.
6601
6602 2002-02-27  Graham Stott  <grahams@redhat.com>
6603
6604         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
6605         Constify NAME.
6606
6607         * loop.c (prescan_loop): Handle PARALLEL.
6608
6609         * unroll.c (loop_iterations): Return 0 if the add_val for
6610         a BIV is REG.
6611
6612         * final.c (output_operand_lossage): Constify PFX_STR.
6613
6614         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
6615
6616 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
6617
6618         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
6619         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
6620
6621 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
6622
6623         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
6624
6625 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6626
6627         * cpplex.c (_cpp_lex_token): Handle directives in macro
6628         arguments.
6629         * cpplib.c (_cpp_handle_directive): Save and restore state
6630         if parsing macro args when entering a directive.
6631         * cppmacro.c (collect_args): No need to handle directives
6632         in macro arguments.
6633         (enter_macro_context, replace_args): Use the original macro
6634         definition in case it was redefined whilst collecting arguments.
6635 doc:
6636         * cpp.texi: Update.
6637
6638 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
6639
6640         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
6641         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
6642         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
6643         method on AIX.
6644         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
6645         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
6646         (load_toc_v4_PIC_2): Same.
6647
6648 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
6649
6650         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
6651
6652 2002-02-26  Richard Henderson  <rth@redhat.com>
6653
6654         * config/alpha/alpha.md (ashldi_se): Re-enable.
6655
6656 2002-02-26  Richard Henderson  <rth@redhat.com>
6657
6658         * config/alpha/alpha.c (alpha_encode_section_info): Examine
6659         MODULE_LOCAL_P; improve commentary.
6660
6661 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
6662
6663         * doc/cpp.texi: Clarify documentation of relationship between
6664         #line and #include.
6665
6666 2002-02-26  Kazu Hirata  <kazu@hxi.com>
6667
6668         * config/h8300/h8300-protos.h: Update the prototype for
6669         compute_logical_op_length.  Add the prototype for
6670         compute_logical_op_cc.
6671         * config/h8300/h8300.c (compute_logical_op_length): Figure out
6672         code from operands.
6673         (compute_logical_op_cc): New.
6674         * config/h8300/h8300.md: Combine all the logical op patterns
6675         in HImode and SImode.  Use compute_logical_op_cc.
6676
6677 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
6678
6679         * config/i386/i386.c (print_operand): Don't append ATT-style
6680         length suffixs to x87 opcodes when in Intel mode.
6681
6682 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
6683
6684         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
6685         (init_emit_once): Update calls.
6686         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
6687         (init_syntax_once): Prototype.
6688
6689 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6690
6691         * pa-linux.h (LIB_SPEC): Update definition.
6692         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
6693
6694 2002-02-26  Richard Henderson  <rth@redhat.com>
6695
6696         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
6697         if we emitted a stop bit.
6698
6699 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
6700
6701         * configure.in (libgcc_visibility): Substitute.
6702         * configure: Rebuilt.
6703         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
6704         defined symbols .hidden.
6705
6706 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
6707
6708         * attribs.c (c_common_attribute_table): Add visibility.
6709         (handle_visibility_attribute): New function.
6710         * varasm.c (assemble_visibility): New function.
6711         * output.h (assemble_visibility): Add prototype.
6712         * tree.h (MODULE_LOCAL_P): Define.
6713         * crtstuff.c (__dso_handle): Use visibility attribute.
6714         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
6715         for MODULE_LOCAL_P symbols too.
6716         * config/ia64/ia64.c (ia64_encode_section_info): Handle
6717         MODULE_LOCAL_P symbols the same way as local symbols.
6718         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
6719         into .sdata/.sbss by the user.
6720         * doc/extend.texi (Function Attributes): Document visibility
6721         attribute.
6722
6723 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
6724
6725         PR debug/5770
6726         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
6727         STRING_CST initializer spanning the whole variable without
6728         embedded zeros.
6729         If expand_expr returned MEM, don't use it.
6730
6731 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
6732
6733         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
6734         generate a die for the lexical block.
6735
6736 2002-02-26  Kazu Hirata  <kazu@hxi.com>
6737
6738         * config/h8300/h8300-protos.h: Add a prototype for
6739         compute_logical_op_length.
6740         * config/h8300/h8300.c (compute_logical_op_length): New.
6741         * config/h8300/h8300.md (anonymous logical patterns): Use
6742         compute_logical_op_length for length.
6743
6744 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
6745
6746         * dwarf2out.c (modified_type_die): Do not call type_main_variant
6747         for vectors.
6748         (gen_type_die): Same.
6749
6750         * attribs.c (handle_vector_size_attribute): Set debug information.
6751
6752 2002-02-26  Daniel Egger  <degger@fhm.edu>
6753
6754         * config/rs6000/rs6000.md: Swap define_insn attributes to
6755         fix incorrect generation of merge high instructions instead
6756         of merge low.
6757
6758 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
6759
6760         * c-typeck.c (really_start_incremental_init): Use
6761         bitsize_zero_node for vectors.
6762
6763 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
6764
6765         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
6766         ("*set_vrsave_internal"): Same.
6767
6768 2002-02-25  Richard Henderson  <rth@redhat.com>
6769
6770         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
6771         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
6772
6773 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
6774
6775         PR target/5755
6776         * config/i386/i386.c (ix86_return_pops_args): Only pop
6777         fake structure return argument if it was passed on the stack.
6778
6779 2002-02-25  Jason Merrill  <jason@redhat.com>
6780
6781         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
6782         RESULT_DECL.
6783
6784 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
6785
6786         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
6787         link with shared_name only.
6788         * doc/invoke.texi (Link Options): Document new behavior.
6789
6790 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
6791
6792         * c-typeck.c (push_init_level): Handle vectors.
6793
6794 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
6795
6796         * config/sparc/sparc.c (const64_high_operand): Zero-extend
6797         operands of SPARC_SETHI_P.
6798         (input_operand): Likewise.
6799         (sparc_emit_set_const32): Likewise.
6800         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
6801         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
6802         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
6803         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
6804         (movdi_insn_sp64_vis): Likewise.
6805         (movdi split, movdf split): Use SETHI32.
6806         * doc/md.texi: Document SPARC constraints L, M and N.
6807
6808 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
6809
6810         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
6811         ("*set_vrsave_internal"): use mfspr for Darwin.
6812
6813         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
6814         gen_get_vrsave_internal.
6815
6816 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6817
6818         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
6819
6820 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
6821
6822         * cpplex.c (cpp_interpret_charconst): Get signedness or
6823         otherwise of wide character constants correct.
6824         * cppexp.c (lex): Get signedness of wide charconsts correct.
6825
6826 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6827
6828         * optabs.c (widen_operand): Only call convert_modes for
6829         promoted SUBREG if signedness matches.
6830         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
6831
6832 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
6833
6834         * cpplib.c (glue_header_name): Use local buffer to build up
6835         header name.
6836
6837 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
6838
6839         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
6840
6841 2002-02-23  Kazu Hirata  <kazu@hxi.com>
6842
6843         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
6844         H8/300[HS] separately.
6845         * config/h8300/h8300.md: Remove the early clobber constraint
6846         from bit field patterns.
6847
6848 2002-02-23  Kazu Hirata  <kazu@hxi.com>
6849
6850         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
6851         register_operand.
6852         (mulhisi3): Likewise.
6853         (umulqisi3): Likewise.
6854         (umulhisi3): Likewise.
6855
6856 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
6857
6858         * cppinit.c (output_deps): Correct test for stdout output.
6859         (init_dependency_output): Cure warning.
6860
6861 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6862
6863         * expr.c (store_expr): When converting expression to promoted
6864         equivalent type, allow using SUBREG_REG of TARGET as the target
6865         of the expansion of EXP.
6866         * loop.c (basic_induction_var, case SUBREG): Always look inside.
6867         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
6868         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
6869         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
6870         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
6871
6872 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
6873
6874         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
6875         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
6876         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
6877
6878 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
6879
6880         PR optimization/5747
6881         * loop.c (scan_loop): Update reg info if move_movables created new
6882         pseudos.
6883
6884 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
6885
6886         * gcc.c (init_gcc_spec): Revert last change.
6887
6888 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
6889
6890         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
6891         gpc_reg_operand constraint.
6892
6893 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
6894
6895         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
6896         Simplify comparison of `low'.
6897         (add_operand): Fix formatting.
6898         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
6899         (mask_operand): Disallow mask to wrap in 64-bit mode.
6900         (rs6000_stack_info): Remove redundant test setting push_p.
6901         (output_toc): Fix formatting.
6902         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
6903         cc_reg_not_cr0_operand constraint.
6904         (booldi3, boolcdi3 splitters): Same.
6905
6906 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
6907
6908         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
6909
6910 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
6911
6912         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
6913         gcc invoked with -shared-libgcc.
6914
6915 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
6916
6917         PR c++/5748
6918         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
6919         decl if any of elements was TREE_USED.
6920
6921 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
6922
6923         * config/sparc/sol2.h: Don't include sys/mman.h.
6924         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
6925         (arith_4096_operand): Don't throw high bits away.
6926         (const64_operand): Take sign extension of CONST_INTs into account.
6927         (const64_high_operand, sparc_emit_set_const32): Likewise.
6928         (GEN_HIGHINT64): Likewise.
6929         (sparc_emit_set_const64_quick1): Likewise.
6930         (const64_is_2insns): Likewise.
6931         (print_operand): Use trunc_int_for_mode for sign extension.
6932         * config/sparc/sparc.h (SMALL_INT32): Likewise.
6933         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
6934         chars.  Assume CONST_INT is already properly sign-extended.
6935         (movdi split): Sign-extend each SImode part.
6936         (andsi3 split): Don't mask high bits off, so that result
6937         remains properly sign-extend.
6938         (iorsi3 split): Likewise.
6939         (xorsi3 split): Likewise.
6940
6941 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
6942
6943         * fold-const.c (fold): Fix typo in comments.
6944
6945 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
6946
6947         * Makefile.in (langhooks.o): Update dependencies.
6948
6949 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
6950
6951         * langhooks.c: Include flags.h.
6952
6953 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
6954
6955         * testsuite/gcc.dg/attr-alwaysinline.c: New.
6956
6957         * c-common.c (c_common_post_options): Set inline trees by
6958         default.
6959
6960         * doc/extend.texi (Function Attributes): Document always_inline
6961         attribute.
6962         Update documentation about inlining when not optimizing.
6963
6964         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
6965
6966         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
6967         unless DECL_ALWAYS_INLINE.
6968
6969         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
6970         unless DECL_ALWAYS_INLINE.
6971         (c_disregard_inline_limits): Disregard if always_inline set.
6972
6973         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
6974         Disregard if always_inline set.
6975         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
6976         unless DECL_ALWAYS_INLINE.
6977
6978         * attribs.c (handle_always_inline_attribute): New.
6979         (c_common_attribute_table): Add always_inline.
6980
6981         * config/rs6000/altivec.h: Add prototypes for builtins
6982         requiring the always_inline attribute.
6983
6984 2002-02-21  Eric Christopher  <echristo@redhat.com>
6985
6986         * expmed.c (store_bit_field): Try to simplify the subreg
6987         before generating a new one when when the mode size of
6988         value is less than maxmode.
6989
6990 2002-02-21  Richard Henderson  <rth@redhat.com>
6991
6992         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
6993         than gen_rtx_PLUS to form the sum.
6994         * explow.c (force_reg): Rearrange to not allocate new pseudo
6995         when force_operand returns a register.
6996         * expr.c (expand_assignment): Allow offset_rtx expansion to
6997         return a sum.  Do not force addresses into registers.
6998         (expand_expr): Likewise.
6999         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
7000         to canonicalize arithmetic that didn't simpify.
7001         (simplify_plus_minus): New argument force; update
7002         all callers.  Don't split CONST unless we can do something with it,
7003         and wouldn't lose the constness of the operands.
7004
7005         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
7006         that we generated earlier.
7007
7008 2002-02-21  Tom Tromey  <tromey@redhat.com>
7009
7010         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7011         (output_line_info): Use constant `1', with a long explanatory
7012         comment.
7013         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
7014
7015 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
7016
7017         * jump.c (redirect_jump): If old label has no UID, don't try to
7018         delete it.
7019
7020 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
7021
7022         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
7023         If input is constant, do shifts at compile time.
7024
7025 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
7026
7027         * doc/extend.texi: Fix some more overfull hboxes.
7028
7029 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
7030
7031         PR optimization/4994
7032         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
7033         register moves.
7034
7035 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
7036
7037         PR c++/4574
7038         * expr.h (expand_and): Add mode argument.
7039         * expmed.c (expand_and): Add mode argument.
7040         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
7041         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
7042         * except.c (expand_builtin_extract_return_addr): Likewise.
7043         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
7044         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
7045         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
7046         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
7047         * config/c4x/c4x.md: Use GEN_INT (x) instead of
7048         gen_rtx (CONST_INT, VOIDmode, x).
7049
7050 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
7051
7052         PR c/4697:
7053         * stmt.c (warn_if_unused_value): Move side effects test once more.
7054
7055 2002-02-20  Torbjorn Granlund  <tege@swox.com>
7056
7057         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
7058         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
7059
7060 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
7061
7062         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
7063         SUBREG or ZERO_EXTEND.
7064
7065 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
7066
7067         * sh.h (current_function_anonymous_args): Remove.
7068         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
7069         of current_function_varargs and current_function_stdarg is set.
7070         * sh.c (sh_expand_prologue): Check current_function_varargs /
7071         current_function_stdarg / TARGET_SH5 instead of
7072         current_function_anonymous_args.
7073
7074         * sh64.h (TARGET_VERSION): Define.
7075
7076 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
7077
7078         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
7079         VRSAVE_REGNO on TARGET_ALTIVEC.
7080
7081 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
7082
7083         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
7084         bits of SImode const_int.
7085         (includes_rshift_p): Likewise.
7086         (print_operand): Call mask_operand and mask64_operand with correct
7087         mode.
7088         (rs6000_output_function_epilogue): Pad traceback table to word.
7089         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
7090         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
7091         mask64_operand with correct mode.
7092         (FUNCTION_ARG_REGNO_P): Correct parentheses.
7093
7094 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
7095
7096         PR debug/4461
7097         * varasm.c (get_pool_constant_mark): New.
7098         * rtl.h (get_pool_constant_mark): Add prototype.
7099         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
7100         be represented if it has not been output.
7101
7102 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
7103
7104         * combine.c (do_SUBST): Sanity check substitutions of
7105         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
7106         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
7107         CONST_INT into its operand.
7108         (known_cond): Likewise, for ZERO_EXTEND.
7109         * simplify-rtx.c (simplify_unary_operation): Fix condition to
7110         allow for simplification of wide modes.  Reject CONST_INTs in
7111         ZERO_EXTEND when their actual mode is not given.
7112
7113 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
7114
7115         * c-decl.c (pushdecl): If no global declaration is found for an
7116         extern declaration in block scope, try a limbo one.
7117
7118 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
7119
7120         PR c++/4401
7121         * c-common.c (pointer_int_sum): Moved from...
7122         * c-typeck.c (pointer_int_sum): ...here.
7123         * c-common.h (pointer_int_sum): Add prototype.
7124
7125 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
7126
7127         PR c++/5713
7128         * c-decl.c (duplicate_decls): Return 0 if issued error about
7129         redeclaration.
7130
7131 2002-02-20  Roger Sayle  <roger@eyesopen.com>
7132             Jakub Jelinek  <jakub@redhat.com>
7133
7134         PR c/4389
7135         * tree.c (host_integerp): Ensure that the constant integer is
7136         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
7137         when pos is zero or non-zero respectively.  Clarify comment.
7138         * c-format.c (check_format_info_recurse): Fix host_integerp
7139         usage; the pos argument should be zero when assigning to a
7140         signed HOST_WIDE_INT.
7141
7142 2002-02-20  Richard Henderson  <rth@redhat.com>
7143
7144         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
7145         of the operand, rather than assuming TImode.
7146         (ix86_expand_binop_builtin): Cope with commutative patterns
7147         using nonimmediate_operand for both operands.
7148         (ix86_expand_timode_binop_builtin): Likewise.
7149         (ix86_expand_store_builtin): Validate operand 1.
7150         (ix86_expand_unop1_builtin): Likewise.
7151
7152 2002-02-20  Philip Blundell  <philb@gnu.org>
7153
7154         PR 5705
7155         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
7156
7157 2002-02-20  Richard Henderson  <rth@redhat.com>
7158
7159         PR c/5615
7160         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
7161
7162 2002-02-20  Tom Tromey  <tromey@redhat.com>
7163
7164         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7165         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7166         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7167         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7168         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
7169         unconditionally.
7170
7171 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
7172
7173         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
7174           for (const_int 0) in X not just INTVAL.
7175
7176 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
7177
7178         * doc/extend.texi: Avoid or reduce overfull hboxes.
7179
7180 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
7181
7182         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
7183         operations if the field does not start at a mode boundary.
7184
7185 2001-02-20      Joel Sherrill <joel@OARcorp.com>
7186
7187         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
7188         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
7189         Also done for -Acpu and -Amachine.
7190
7191 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7192
7193         * cppinit.c (init_dependency_output): Take deps output file
7194         from -o if none given with -MF.  Suppress normal output.
7195         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
7196         * doc/cpp.texi, doc/invoke.texi: Update.
7197
7198 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
7199
7200         * toplev.c (output_quoted_string): Write unprintable
7201         characters with octal escapes.
7202
7203 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
7204
7205         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
7206         really_call_used[VRSAVE_REGNO] if not Altivec.
7207
7208 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
7209
7210         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
7211         MODE_MASK.
7212         (constant_pool_expr_1): Fix formatting.
7213         (rs6000_legitimize_reload_address): Likewise.
7214
7215 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7216
7217         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
7218         now that we have one.
7219
7220 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
7221
7222         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
7223         end of first block of bitfields (which was only seven bits);
7224         rename dummy to unused_1; remove comment which is no longer true.
7225
7226 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
7227
7228         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
7229
7230 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
7231
7232         PR 5399
7233         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
7234         if generating PIC.
7235
7236         PR 5054
7237         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
7238         arm_is_longcall_p rather than inspecting call-type cookie
7239         directly.
7240         (call_value_insn) [TARGET_THUMB]: Likewise.
7241
7242 2002-02-19  Graham Stott  <grahams@redhat.com>
7243
7244         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
7245
7246 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
7247
7248         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
7249         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
7250         (FP_SAVE_INLINE): Delete.
7251
7252         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
7253         * config/rs6000/eabi.asm: Remove ABI save restore routines.
7254         * config/rs6000/t-ppccomm: Build crtsavres.o.
7255         * config/rs6000/crtsavres.asm: New file.
7256
7257 2002-02-19  Philip Blundell  <philb@gnu.org>
7258
7259         * config/arm/arm.c (use_return_insn): Don't reject interrupt
7260         functions.
7261         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
7262         (output_return_instruction): Allow interrupt functions to return with
7263         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
7264         (arm_expand_prologue): Subtract 4 before stacking LR in an
7265         interrupt function.
7266
7267 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
7268
7269         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
7270         decl, not just FUNCTION_DECL.
7271         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
7272         (arm_assemble_integer): Likewise.
7273         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
7274         marked local.
7275
7276 2002-02-19  matthew green  <mrg@eterna.com.au>
7277
7278         * config.gcc (sparc-*-netbsdelf*): Enable target.
7279         (sparc64-*-netbsd*): New target.
7280         * config/sparc/netbsd-elf.h: New file.
7281         * config/sparc/t-netbsd64: New file.
7282
7283 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
7284
7285         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
7286
7287 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
7288
7289         * doc/invoke.texi: explicitly list the style guidelines that
7290         -Weffc++ checks for.
7291
7292 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
7293
7294         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
7295
7296 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7297
7298         PR other/5718
7299         * gcc.c (cpp_unique_options): Treat -o as indicating object file
7300         only if not -E.  If -E, pass -o through to the preprocessor.
7301
7302 2002-02-19  Kazu Hirata  <kazu@hxi.com>
7303
7304         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
7305         register number with an appropriate macro.
7306
7307 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
7308
7309         * doc/rtl.texi (Constants): Close @code tag.
7310
7311 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
7312
7313         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
7314         ("mmx_uavgv4hi3"): Same.
7315         ("pmulhrwv4hi3"): Same.
7316
7317         * tree-inline.c (walk_tree): Handle vectors.
7318
7319         * c-common.c (constant_expression_warning): Handle vectors.
7320         (overflow_warning): Same.
7321
7322         * sched-deps.c (sched_analyze_2): Handle vectors.
7323
7324         * rtlanal.c (rtx_unstable_p): Handle vectors.
7325         (rtx_varies_p): Same.
7326         (count_occurrences): Same.
7327         (regs_set_between_p): Same.
7328         (modified_between_p): Same.
7329         (modified_in_p): Same.
7330         (volatile_insn_p): Same.
7331         (volatile_refs_p): Same.
7332         (side_effects_p): Same.
7333         (may_trap_p): Same.
7334         (inequality_comparisons_p): Same.
7335         (replace_regs): Same.
7336         (computed_jump_p_1): Same.
7337
7338         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
7339         argument.
7340         (inner_mode_array): New.
7341         (copy_rtx): Handle vectors.
7342         (copy_most_rtx): Same.
7343         (rtx_equal_p): Same.
7344         (get_mode_alignment): Adjust for vectors.
7345
7346         * resource.c (mark_referenced_resources): Handle vectors.
7347         (mark_set_resources): Same.
7348
7349         * reload1.c (eliminate_regs): Handle vectors.
7350         (elimination_effects): Same.
7351         (scan_paradoxical_subregs): Same.
7352
7353         * reload.c (subst_reg_equivs): Handle vectors.
7354
7355         * regrename.c (scan_rtx): Handle vectors.
7356
7357         * regclass.c (reg_scan_mark_refs): Handle vectors.
7358
7359         * recog.c (find_single_use_1): Handle vectors.
7360
7361         * local-alloc.c (equiv_init_varies_p): Handle vectors.
7362         (contains_replace_regs): Same.
7363         (memref_referenced_p): Same.
7364
7365         * integrate.c (copy_rtx_and_substitute): Handle vectors.
7366         (subst_constants): Same.
7367
7368         * genattrtab.c (attr_copy_rtx): Handle vectors.
7369         (encode_units_mask): Same.
7370         (clear_struct_flag): Same.
7371         (count_sub_rtxs): Same.
7372
7373         * gcse.c (want_to_gcse_p): Handle vectors.
7374         (oprs_unchanged_p): Same.
7375         (hash_expr_1): Same.
7376         (oprs_not_set_p): Same.
7377         (expr_killed_p): Same.
7378         (compute_transp): Same.
7379         (store_ops_ok): Same.
7380
7381         * function.c (purge_addressof_1): Do not allow paradoxical subregs
7382         of vectors.
7383         (fixup_var_refs_1): Same.
7384         (instantiate_virtual_regs_1): Same.
7385
7386         * fold-const.c (operand_equal_p): Handle vectors.
7387         (fold): Same.
7388         (rtl_expr_nonnegative_p): Same.
7389
7390         * flow.c (mark_used_regs): Handle vectors.
7391
7392         * df.c (df_uses_record): Handle vectors.
7393
7394         * cselib.c (cselib_subst_to_values): Handle vectors.
7395         (cselib_mem_conflict_p): Same.
7396         (hash_rtx): Same.
7397
7398         * cse.c (canon_reg): Handle vectors.
7399         (fold_rt): Same.
7400         (cse_process_notes): Same.
7401         (count_reg_usage): Same.
7402         (canon_hash): Same.
7403
7404         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
7405
7406         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
7407
7408         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
7409         (gen_rtx): Handle CONST_VECTOR.
7410         (gen_const_vector_0): New.
7411         (copy_rtx_if_shared): CONST_VECTORs can be shared.
7412         (reset_used_flags): Same.
7413         (copy_insn_1): Same.
7414         (initializer_constant_valid_p): Handle VECTOR_CST.
7415
7416         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
7417
7418         * doc/rtl.texi (Constants): Document const_vector.
7419         (CONST0_RTX): Update for vectors.
7420         (RTL sharing): Same.
7421
7422         * print-tree.c (print_node): Add case for VECTOR_CST.
7423
7424         * tree.h (TREE_VECTOR_CST_ELTS): New.
7425         (struct tree_vector): New.
7426         (union tree_node): Add vector node.
7427         (build_vector): Add prototype.
7428
7429         * tree.def (VECTOR_CST): New.
7430
7431         * tree.c (build_vector): New.
7432
7433         * expmed.c (make_tree): Handle CONST_VECTOR.
7434
7435         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
7436         (CONST_VECTOR_ELT): New.
7437         (CONST_VECTOR_NUNITS): New.
7438
7439         * machmode.h (GET_MODE_INNER): New.
7440         (DEF_MACHMODE): Accept 8th arg.
7441
7442         * machmode.def: Add 8th argument for vector inner mode.
7443         Add inner vector modes for vectors.
7444
7445         * rtl.def (VEC_CONST): Remove.
7446         (CONST_VECTOR): New.
7447
7448         * expr.c (clear_storage): Allow vectors.
7449         (is_zeros_p): Handle VECTOR_CST.
7450
7451         * varasm.c (output_constant_pool): Handle vectors.
7452         (rtx_const): Add veclo and vechi fields.
7453         (kind): Add RTX_VECTOR.
7454         (decode_rtx_const): Add case for vector.
7455
7456         * config/rs6000/rs6000-protos.h: Add zero_constant.
7457
7458         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
7459         constants.  Force easy vector constants into memory.
7460         (easy_vector_constant): New.
7461         (emit_easy_vector_constant): New.
7462         (rs6000_legitimize_reload_address): Do not generate bad reloads on
7463         darwin.
7464
7465         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
7466         instruction does.
7467         ("altivec_lvxl"): Same.
7468         (altivec_lvebx): Same.
7469         (altivec_lvehx): Same.
7470         (altivec_lvewx): Same.
7471         ("*movv4si_const0"): New.
7472         ("*movv4sf_const0"): New.
7473         ("*movv8hi_const0"): New.
7474         ("*movv16qi_const0"): New.
7475
7476 2002-02-18  Kazu Hirata  <kazu@hxi.com>
7477
7478         * config/h8300/h8300.c (notice_update_cc): Use
7479         cc_status.value2.
7480
7481 2002-02-18  Kazu Hirata  <kazu@hxi.com>
7482
7483         * config/h8300/h8300.md (divmod patterns): Change the
7484         constraints for operands[1] to register_operand.
7485
7486 2002-02-18  Kazu Hirata  <kazu@hxi.com>
7487
7488         * config/h8300/h8300-protos.h: Remove the prototype for
7489         p_operand.
7490         * config/h8300/h8300.c (p_operand): Remove.
7491         * config/h8300/h8300.md: Replace p_operand with
7492         const_int_operand.
7493
7494 2002-02-18 Philip Blundell <pb@nexus.co.uk>
7495
7496         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
7497         comment.
7498         (output_return_instruction): Allow use of LDR to unstack
7499         return addresss even for interrupt handlers or when
7500         interworking.  If compiling for ARMv5, use interworking-safe
7501         return instructions by default.  Remove duplicated code and
7502         lengthy "strcat" sequences.
7503
7504 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7505
7506         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
7507         (LINK_EH_SPEC): Define.
7508         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
7509
7510 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
7511
7512         * config/s390/s390.c (s390_emit_prologue): Do not set the
7513         frame_related flag for call-clobbered registers.
7514
7515 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
7516
7517         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
7518         (construct_container): Fix handling of SSE operands.
7519         (ix86_expand_builtin): Fix handling of 64bit pointers.
7520         (mmx_maskmovq_rex): New pattern.
7521
7522 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
7523
7524         * regrename.c (kill_set_value): Handle subregs properly.
7525
7526 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
7527
7528         * objc/objc-act.c (handle_impent): Remove leading '*'
7529         from objc_class_name.
7530
7531 2002-02-17  Richard Henderson  <rth@redhat.com>
7532
7533         * config/alpha/alpha.c (some_small_symbolic_operand,
7534         some_small_symbolic_operand_1, split_small_symbolic_operand,
7535         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
7536         Handle small SYMBOL_REFs anywhere, not just inside memories.
7537         * config/alpha/alpha-protos.h: Update.
7538         * config/alpha/alpha.h (PREDICATE_CODES): Update.
7539         * config/alpha/alpha.md (small symbolic operand splitter): Update.
7540
7541 2002-02-17  Roland McGrath  <roland@frob.com>
7542
7543         * config.gcc (powerpc-*-gnu-gnualtivec*,
7544         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
7545         * config/rs6000/gnu.h: New file.
7546         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
7547         Grok "gnu" in rs6000_abi_name.
7548         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
7549         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
7550         Grok -mcall-gnu analogous to -mcall-linux et al.
7551         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
7552         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
7553         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
7554
7555 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
7556
7557         PR c/3444:
7558         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
7559         shortening.
7560
7561 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7562
7563         * config/cris/cris.h: Undefine STARTFILE_SPEC and
7564         ENDFILE_SPEC before (re)defining them.
7565
7566 2002-02-17  Kazu Hirata  <kazu@hxi.com>
7567
7568         * config/h8300/h8300.c: Fix formatting.
7569         * config/h8300/h8300.h: Likewise.
7570
7571 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7572
7573         * doc/tm.texi: Explain why empty strings should not be
7574         marked for translation.
7575
7576 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7577
7578         * final.c (output_operand_lossage): Changed to accept
7579         printf style arguments. Change calls where necessary.
7580         * output.h (output_operand_lossage): Change declaration
7581         accordingly. Update copyright.
7582         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
7583         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
7584         Update copyright date where necessary.
7585
7586         * config/i386/i386.c (print_operand): Likewise. Remove use of
7587         sprintf.
7588
7589         * config/cris/cris.c (cris_operand_lossage): Likewise.
7590         Rename parameter so that exgettext recognizes it as
7591         translatable message.
7592         (LOSE_AND_RETURN): Rename parameter to msgid.
7593
7594 2002-02-17  Kazu Hirata  <kazu@hxi.com>
7595
7596         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
7597         hard coded register number with an appropriate macro.
7598         (HARD_REGNO_MODE_OK): Likewise.
7599         (ARG_POINTER_REGNUM): Likewise.
7600         (STATIC_CHAIN_REGNUM): Likewise.
7601         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
7602         * config/h8300/h8300.md (define_constants): Define more
7603         register numbers.
7604
7605 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7606
7607         * config/i386/i386.h: Don't mark empty strings for translation.
7608
7609 2002-02-16  H.J. Lu <hjl@gnu.org>
7610
7611         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
7612
7613 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
7614
7615         * cppinit.c (merge_include_chains): Check for brack being
7616         NULL before attempting to merge it with qtail.
7617
7618 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
7619
7620         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
7621         DBX_DEBUG.
7622
7623 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7624
7625         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
7626
7627 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7628
7629         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
7630         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
7631         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
7632
7633 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7634
7635         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
7636         now only if !TARGET_FIX.
7637         (*movsi_nt_vms_fix): New pattern.
7638
7639 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
7640
7641         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
7642         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
7643         (alpha_sa_mask, alpha_sa_size): Reflect above change.
7644         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
7645         (alpha_start_function, alpha_expand_epilogue): Likewise.
7646         (unicosmk_gen_dsib): Likewise.
7647
7648 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7649
7650         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
7651
7652 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
7653
7654         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
7655         check_and_change_labels, s390_final_chunkify): Delete.
7656         (s390_split_branches, s390_chunkify_pool): New functions.
7657         (s390_function_prologue): Call them.
7658
7659         * config/s390/s390.h (S390_REL_MAX): Delete.
7660         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
7661
7662         * config/s390/s390.md (cjump, icjump, jump): Fix length
7663         attribute calculation.
7664
7665
7666 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
7667
7668         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
7669         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
7670
7671 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7672
7673         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
7674         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
7675         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
7676
7677 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
7678
7679         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
7680
7681 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
7682
7683         * reload.c (find_dummy_reload): Check that an output register
7684         is valid for its mode.
7685
7686 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
7687
7688         * combine.c (known_cond): After replacing the REG of a SUBREG, try
7689         to simplify it.
7690
7691         * function.c (assign_parms): Demote promoted argument passed by
7692         transparent reference.
7693
7694 2001-02-14      Joel Sherrill <joel@OARcorp.com>
7695
7696         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
7697         -Acpu() and -Amachine() to eliminate warnings.
7698
7699 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
7700
7701         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
7702
7703 2002-02-14  Kazu Hirata  <kazu@hxi.com>
7704
7705         * config/h8300/h8300-protos.h: Update the prototype for
7706         const_costs.
7707         * config/h8300/h8300.c (const_costs): Treat SET as a little
7708         more expensive operation.
7709         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
7710         reference to const_costs.
7711
7712 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
7713
7714         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
7715
7716 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
7717
7718         PR c/5503:
7719         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
7720         use arguments from newtype.
7721
7722 2002-02-13  Eric Christopher  <echristo@redhat.com>
7723
7724         * config/mips/mips.c (override_options): Add check for march/mipsX
7725         on the same command line. Fix error message in cpu processing.
7726         Remove architecture and ISA checks.
7727
7728 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
7729
7730         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
7731
7732         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
7733
7734 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
7735
7736         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
7737         alternatives.
7738         ("*movv8hi_internal1"): Same.
7739         ("*movv16qi_internal1"): Same.
7740         ("*movv4sf_internal1"): Same.
7741
7742         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
7743         not push_reload for altivec modes.
7744
7745 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
7746
7747         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
7748         all RTEMS targets including removal of #includes from config/*/rtems*.h
7749         file and adding them to tm_file setting. Added xm_defines=POSIX to
7750         many targets.
7751         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
7752         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
7753         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
7754         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
7755         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
7756         config/m68k/rtemself.h: Ditto.
7757         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
7758         config/mips/rtems64.h: Ditto.
7759         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
7760         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
7761         Ditto.
7762         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
7763         config/sparc/rtemself.h: Ditto.
7764         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
7765         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
7766         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
7767         more like arm-elf.
7768         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
7769         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
7770         target made more similar to i386-elf.
7771         * config/i386/t-rtems-i386: Added soft float support and multilibs.
7772         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
7773         be similar to config/m68k/t-m68kelf.
7774         * gthr-rtems.h: Encapsulate with extern "C" for C++.
7775
7776 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
7777
7778         * regmove.c (kill_value): Handle subregs.
7779
7780 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
7781
7782         * i386.md (mul patterns): Allow memory operand to be first;
7783         add expanders where needed; fix constraints.
7784         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
7785         Allow memory operand to be the first.
7786
7787         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
7788         operands.
7789
7790 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
7791
7792         PR c/5681:
7793         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
7794         GET_MODE (x).
7795
7796 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
7797
7798         PR optimization/5547:
7799         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
7800         all valid IA-32 address modes involving non-scaled %ebx and
7801         GOT/GOTOFF as displacement.
7802
7803 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
7804
7805         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
7806         after emitting ltorg insns.
7807
7808         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
7809         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
7810         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
7811         *abssf2): Fix "op_type" attribute.
7812
7813 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
7814
7815         * mkconfig.sh: Avoid using a subshell redirect.
7816         ($output.T): Change to $(output)T.
7817         (ENABLE_NLS): Remove unneeded undef.
7818
7819         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
7820         * config/alpha/x-vms (libsubdir): Define.
7821
7822         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
7823         register frame procedures. Optimize retrieving context.
7824
7825         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
7826         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
7827         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
7828
7829 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7830
7831         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
7832         Make same change as for find_base_value.
7833
7834 2002-02-13  Kazu Hirata  <kazu@hxi.com>
7835
7836         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
7837         of QImode and SImode.
7838
7839 2002-02-13  Kazu Hirata  <kazu@hxi.com>
7840
7841         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
7842         length computation of movsi.
7843         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
7844
7845 2002-02-13  Kazu Hirata  <kazu@hxi.com>
7846
7847         * config/h8300/h8300.md (subqi3): Tighten the predicate for
7848         operands[2] to register_operand.
7849
7850 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
7851
7852         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
7853
7854 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
7855
7856         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
7857         for altivec_lvx* and altivec_stvx*.
7858         ("*movv4si_internal"): Add constraint for loading from GPRs.
7859         ("*movv8hi_internal1"): Same.
7860         ("*movv16qi_internal1"): Same.
7861         ("*movv4sf_internal1"): Same.
7862
7863         * config/rs6000/rs6000.c (altivec_register_operand): New.
7864
7865         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
7866         altivec_register_operand.
7867
7868 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
7869
7870         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
7871         handle SYMBOL_REF.
7872
7873 2002-02-13  Stan Shebs  <shebs@apple.com>
7874
7875         * c-typeck.c (digest_init): Handle vectors.
7876         (really_start_incremental_init): Same.
7877         (pop_init_level): Same.
7878         (process_init_element): Same.
7879
7880         * varasm.c (output_constant): Same.
7881
7882         * expr.c (clear_storage): Same.
7883         (store_constructor): Same.
7884
7885 2002-02-12  Eric Christopher  <echristo@redhat.com>
7886
7887         * explow.c (hard_function_value): Add comment explaining
7888         signed/unsigned comparison.
7889
7890 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
7891
7892         * jump.c (never_reached_warning): Add finish argument.
7893         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
7894         real insn after end.
7895         * rtl.h (never_reached_warning): Adjust prototype.
7896         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
7897         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
7898         never_reached_warning.
7899
7900 2002-02-12  Graham Stott  <grahams@redhat.com>
7901
7902         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
7903
7904 2002-02-12  Kazu Hirata  <kazu@hxi.com>
7905
7906         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
7907         logical shifts on H8/300.
7908         (shift_alg_si): Improve several shifts on H8/300.
7909         (get_shift_alg): Likewise.
7910
7911 2002-02-12  Graham Stott  <grahams@redhat.com>
7912
7913         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
7914
7915 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7916
7917         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
7918         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
7919
7920 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
7921
7922         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
7923         non-CONST_INT through default_assemble_integer.
7924         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
7925         <case 8>: Abort for CONST_DOUBLE.
7926
7927 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7928
7929         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
7930         is specified.
7931         * config/pa/pa-linux.h (LIB_SPEC): Delete.
7932         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
7933
7934 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
7935
7936         * config/stormy16/stormy16.md (zero_extendqihi2): New.
7937
7938 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
7939
7940         * regrename.c (regrename_optimize): Don't accept a
7941         part-clobbered register if the replaced register is not part
7942         clobbered.
7943
7944         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
7945         take padding into account when computing the argument value.
7946
7947         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
7948
7949         * combine.c (try_combine): Apply substitutions in
7950         CALL_INSN_FUNCTION_USAGE too.
7951
7952 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
7953
7954         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
7955         __builtin_altivec_abs*.
7956         (bdesc_abs): New.
7957
7958         * config/rs6000/rs6000.h (rs6000_builtins): Add
7959         ALTIVEC_BUILTIN_ABS*.
7960
7961         * config/rs6000/altivec.h: Use const char for builtins expecting
7962         literals.
7963         (vec_abs): New versions for C and C++.
7964         (vec_abss): Same.
7965
7966 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7967
7968         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
7969         using Pmode.
7970
7971 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7972
7973         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
7974         constant definition from h8300.md.
7975         (FRAME_POINTER_REGNUM): Likewise.
7976         * config/h8300/h8300.md (define_constants): Add FP_REG.
7977
7978 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7979
7980         * config/h8300/h8300.c (print_operand): Remove redundant code.
7981
7982 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7983
7984         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
7985         * config/h8300/h8300.c (byte_reg): Make it static.
7986
7987 2002-02-10  Richard Henderson  <rth@redhat.com>
7988
7989         PR c/5623
7990         * c-typeck.c (incomplete_type_error): Handle flexible array members.
7991
7992 2002-02-10  Richard Henderson  <rth@redhat.com>
7993
7994         PR c++/5624
7995         * tree.c (append_random_chars): Don't abort if main_input_filename
7996         does not exist.
7997
7998 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
7999
8000         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
8001
8002 2002-02-10  Kazu Hirata  <kazu@hxi.com>
8003
8004         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
8005         (pushhi1): Likewise.
8006
8007 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8008
8009         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
8010         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
8011
8012 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
8013
8014         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
8015         remove MASK_VIS.
8016         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
8017
8018 2002-02-09  Kazu Hirata  <kazu@hxi.com>
8019
8020         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
8021         a half of an SImode register on H8/300.
8022
8023 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
8024
8025         * i386.md (movdi_2): Add missing '!'.
8026
8027 2002-02-09  Kazu Hirata  <kazu@hxi.com>
8028
8029         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
8030         definitions.
8031
8032 2002-02-09  Kazu Hirata  <kazu@hxi.com>
8033
8034         * config/h8300/h8300.md (length): Correct the distance valid
8035         for the short branch.
8036
8037 2002-02-09  Kazu Hirata  <kazu@hxi.com>
8038
8039         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
8040
8041 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
8042
8043         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
8044         registers in SImode.
8045         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
8046         part-clobbered.
8047
8048         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
8049         patch.
8050
8051         Contribute sh64-elf.
8052         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
8053         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
8054         (sh_cannot_modify_jumps_p): New function.
8055         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
8056         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
8057         (sh_ms_bitfield_layout_p): New function.
8058         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
8059                     Zack Weinberg  <zack@codesourcery.com>
8060         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
8061         expand_simple_binop instead of expand_binop.
8062         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
8063         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
8064         use of .quad and .uaquad.
8065         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
8066         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
8067         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8068         * config/sh/sh.md (movdi_const, movdi_const_32bit,
8069         movdi_const_16bit): Make sure all CONSTs have modes.
8070         (sym2PIC): Ditto, but by adjusting all callers.
8071         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
8072         if the prologue calls the SHmedia argument decoder or register
8073         saver.
8074         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8075         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
8076         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
8077         (sh_expand_epilogue): Don't emit USE of return target register.
8078         (prepare_move_operands): Legitimize DImode PIC addresses.
8079         (sh_media_register_for_return): Skip tr0, used to initialize the
8080         PIC register.
8081         (sh_expand_prologue): Remove explicit USE of return register.
8082         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
8083         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
8084         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
8085         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
8086         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
8087         EXTRA_CONSTRAINT_T.
8088         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
8089         (MOVI_SHORI_BASE_OPERAND_P): New.
8090         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
8091         (EXTRA_CONSTRAINT_T): Define in terms of them.
8092         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
8093         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
8094         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
8095         alternatives supporting TARGET_REGS.
8096         (UNSPEC_GOTPLT): New constant.
8097         (movdi split): Move incrementing of LABEL_NUSES...
8098         (movdi_const, movdi_const_32bit): Here.  Use
8099         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
8100         (movdi_const_16bit): New.
8101         (call, call_value) [flag_pic]: Use GOTPLT.
8102         (call_pop, call_value_pop): New expands.
8103         (call_pop_compact, call_pop_rettramp): New insns.
8104         (call_value_pop_compact, call_value_pop_rettramp): New insns.
8105         (sibcall) [flag_pic]: Use GOT.
8106         (builtint_setjmp_receiver): Remove bogus, unused expand.
8107         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
8108         (*pt, *ptb, ptrel): New insns.
8109         (sym2GOT): Handle DImode GOT.
8110         (sym2GOTPLT, symGOTPLT2reg): New expands.
8111         (sym2PIC): New expand.
8112         (shcompact_return_tramp): Use GOTPLT to return trampoline.
8113         (shcompact_return_tramp_i): Use return register explicitly.
8114         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
8115         disable flag_reorder_blocks.
8116         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
8117         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
8118         clobbers, for clarity.
8119         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
8120         restoring of r0 in macl as MAYBE_DEAD.
8121         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
8122         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
8123         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
8124         alter_subreg all over.
8125         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
8126         reload, instead of emitting instructions that would require
8127         reloading.
8128         (casesi_load_media): Add missing modes.
8129         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
8130         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
8131         as used if the argument decoder is called.
8132         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
8133         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
8134         Pmode, then extend it to DImode if necessary.
8135         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
8136         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
8137         constants in FPU-enabled SHmedia, let them be loaded from memory.
8138         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
8139         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
8140         Adjust whitespace in assembly output templates.
8141         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
8142         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
8143         mode of if_then_else.
8144         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
8145         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
8146         sh.h.
8147         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
8148                     Joern Rennecke <amylaar@redhat.com>
8149         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
8150         (SUBTARGET_CPP_PTR_SPEC): New.
8151         (SUBTARGET_CPP_SPEC): Remove.
8152         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
8153         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
8154         Fix typo in previous checkin.
8155         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
8156         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
8157         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
8158                     Alexandre Oliva  <aoliva@redhat.com>
8159         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
8160         what single FP register can hold for SHmedia target.
8161         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
8162                     Alexandre Oliva  <aoliva@redhat.com>
8163         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
8164         Do not split into SUBREG.
8165         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
8166         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
8167         and added new functions as specified in SH5 ABI r9.
8168         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
8169         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
8170         8-byte boundary.
8171         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
8172         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
8173         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
8174         and consttable_window_ends.
8175         2001-06-03  Graham Stott  <grahams@redhat,com>
8176         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
8177         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
8178         * config/sh/sh.c (print_operand): Handle floating-point pair,
8179         vector and matrix registers.
8180         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
8181         vector modes into account.
8182         * config/sh/sh.md (movv2sf): Split move between registers into
8183         movdf.
8184         (movv4sf, movv16sf): Introduce insns that get split only after
8185         reload.
8186         * config/sh/shmedia.h: Fix Copyright dates.
8187         * config/sh/ushmedia.h: Likewise.  Move loop counter
8188         declarations into conditionals that uses them.
8189         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
8190         loop boundary.
8191         * config/sh/sshmedia.h: Fix Copyright dates.
8192         (sh_media_PUTCFG): Fix constraints.
8193         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
8194         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
8195         ptrmemfunc_vbit_in_delta for SH5.
8196         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
8197         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
8198         * invoke.texi: Likewise.
8199         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
8200         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
8201         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
8202         GCC_pop_shmedia_regs_nofpu): New global symbols.
8203         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
8204         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
8205         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
8206         compact function with nonlocal labels.
8207         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
8208         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
8209         (initial_elimination_offset): Account for their stack space.
8210         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
8211         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
8212         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
8213         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
8214         least one of the operands to be a register.
8215         (movv2sf): Likewise.  Renamed to movv2sf_i.
8216         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
8217         prepare_move_operands() before emitting SHmedia insns.
8218         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
8219         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
8220         Don't save nor initialize r12.  Don't mis-align the stack.
8221         Pad the code with a nop.
8222         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
8223         stack.
8224         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
8225         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
8226         [__SHMEDIA__]: Implement.
8227         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
8228         * config/sh/sh.md: Set latency of `pt' closer to reality.
8229         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
8230         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
8231         Set move, load and store type attributes.
8232         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
8233         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
8234         profiling.
8235         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
8236         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
8237         * config/sh/sh.c (sh_media_register_for_return): New function.
8238         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
8239         branch-target register.
8240         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
8241         * config/sh/sh.md (return_media_i): Use any call-clobbered
8242         branch-target register.
8243         (return_media): If r18 wasn't copied in the prologue, copy it
8244         here.
8245         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
8246         Clear class FP0_REGS.
8247         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
8248         from elf.h.
8249         2001-03-08  DJ Delorie  <dj@redhat.com>
8250         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
8251         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
8252         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
8253         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
8254         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
8255         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
8256         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
8257         return value correctly for call_cookie.
8258         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
8259         * config/sh/crt1.asm (start): Modified so as to call
8260         ___setup_argv_and_call_main.
8261         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
8262         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
8263         SHmedia mode.
8264         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
8265         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
8266         (STRIP_NAME_ENCODING): Use it.
8267         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
8268         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
8269         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
8270         prepare_scc_operands().
8271         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
8272         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
8273         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
8274         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
8275         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
8276         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
8277         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
8278         used in shcompact_incoming_args.
8279         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
8280         change.
8281         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
8282         mode.
8283         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
8284         Adjust accordingly.
8285         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
8286         Simplify.  Adjust.  Add sanity check.
8287         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
8288         FPU_SINGLE_BIT.
8289         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
8290         TARGET_SHCOMPACT.
8291         (udivsi3, divsi3): Use them.
8292         (force_mode_for_call): New insn.
8293         (call, call_value, sibcall_value): Emit it before SHcompact
8294         calls.
8295         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
8296         * config/sh/sh.md (call, call_value, sibcall): Make sure the
8297         call cookie is non-NULL before taking its value.
8298         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
8299         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
8300         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
8301         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
8302         block.
8303         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
8304         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
8305         temporary for stack adjusts.  Use MACL and MACH to pass
8306         arguments to shcompact_incoming_args.
8307         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
8308         clobber r1.
8309         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
8310         (nested_trampoline): Load static chain address into r1.
8311         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
8312         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
8313         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
8314         fp_arith_reg_operand().
8315         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
8316         * config/sh/sh.md (casesi): Sign-extend the first two operands,
8317         and use signed compares for them.
8318         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
8319         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
8320         ones properly aligned.
8321         (find_barrier): Account for extra alignment needed for 8-byte wide
8322         constants.
8323         (machine_dependent_reorg): Require a label for the second 4-byte
8324         constant after an 8-byte one.
8325         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
8326         change.
8327         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
8328         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
8329         last_float when switching float modes.
8330         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
8331         auto-increment for general-purpose registers.
8332         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
8333         result.
8334         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
8335         for stack adjust.
8336         * config/sh/sh.c (sh_builtin_saveregs): Support using all
8337         registers for varargs.
8338         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
8339         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
8340         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
8341         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
8342         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
8343         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
8344         call_cookie accordingly.
8345         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
8346         (SHCOMPACT_BYREF): Likewise.
8347         (SHCOMPACT_FORCE_ON_STACK): New macro.
8348         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
8349         (sh_builtin_saveregs): Likewise.
8350         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8351         shcompact_incoming_args): Use new shift values.  Support
8352         sequences of consecutive and non-consecutive pushes/pops.
8353         * config/sh/sh.md (return): Don't explicitly use PR_REG.
8354         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
8355         * config/sh/sh.h (TEXT_SECTION): Define.
8356         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
8357         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
8358         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
8359         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
8360         return values on FPU-enabled SHmedia.
8361         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
8362         FPU-enabled SHmedia.
8363         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
8364         value is returned in a non-FP reg and is not returned by
8365         reference.
8366         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
8367         jump_ind.
8368         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
8369         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
8370         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
8371         quad-aligned to be passed by callee-copy reference.
8372         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
8373         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
8374         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
8375         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
8376         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
8377         copying low-numbered FP regs to r7 and r8.
8378         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
8379         FP regs to general-purpose regs only if the copy was passed on the
8380         stack.
8381         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
8382         copying FP reg to r9.
8383         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
8384         copy FP regs to general-purpose regs only in outgoing calls.
8385         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
8386         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
8387         HOST_WIDE_INT.
8388         * config/sh/sh.h (struct sh_args): Document all fields.
8389         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
8390         passed partially on the stack should not consider making
8391         sibcalls.
8392         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
8393         stack_regs only for incoming calls.  When passing FP args,
8394         make sure there are FP regs available before modifying
8395         call_cookie.
8396         (SHCOMPACT_BYREF): Pass double args in general-purpose
8397         registers by reference.
8398         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
8399         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
8400         attempt to generate sibcalls if the caller got any arguments
8401         by reference.
8402         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
8403         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
8404         to 8-byte boundaries.
8405         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
8406         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
8407         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
8408         stored in the stack.
8409         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
8410         for the offsets to have the ISA bit set.
8411         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
8412         invocation.  Use beq instead of bgt to mark end of sequence of
8413         loads.
8414         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
8415         bgt to mark end of sequence of stores.
8416         * config/sh/sh.c (arith_operand): Don't check whether
8417         CONST_OK_FOR_J for now.
8418         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
8419         instead of long for conversion.
8420         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
8421         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
8422         before passing it to fprintf.
8423         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
8424         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
8425         Call set_fpscr before reading/writing SR.
8426         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
8427         Call set_fpscr.
8428         * config/sh/lib1funcs.asm: Add `.align 2' directives before
8429         SHmedia code.
8430         (FMOVD_WORKS): Define on SH5 with FPU.
8431         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
8432         setting.
8433         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
8434         _fpscr_values.
8435         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
8436         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
8437         address.
8438         (ia_main_table): Ditto.
8439         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
8440         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
8441         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
8442         the definitions from sh.h.
8443         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
8444         TARGET_SH5.
8445         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
8446         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
8447         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
8448         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
8449         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
8450         Increment LABEL_NUSES.
8451
8452         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
8453         TARGET_SH5.
8454         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
8455         defined.
8456         * config/sh/elf.h (SIZE_TYPE): Likewise.
8457         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
8458         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8459         shcompact_incoming_args): Load switch table addresses using
8460         datalabel.
8461         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
8462         (NO_BUILTIN_SIZE_TYPE): Define.
8463         (SIZE_TYPE): Don't define.
8464         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
8465         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
8466         definition of __SH5__=32 for -m5-compact-nofpu.
8467         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
8468         ADDR_DIFF_VEC.
8469         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
8470         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
8471         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
8472         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
8473         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
8474         (INSN_LENGTH_ALIGNMENT): Likewise.
8475         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
8476         * config/sh/sh.md (call, call_value, sibcall): Simplify
8477         copying of non-branch-target register.
8478         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
8479         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
8480         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
8481         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
8482         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
8483         floating-point values as structs.
8484         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
8485         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
8486         general-purpose register.
8487         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
8488         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
8489         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
8490         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
8491         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
8492         (ENCODE_SECTION_INFO): Enclose variables and constants in
8493         DATALABEL unspecs.
8494         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
8495         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
8496         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
8497         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
8498         only for LABEL_REFs.  For SYMBOL_REFs, prepend
8499         SH_DATALABEL_ENCODING to the symbol name.
8500         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
8501         convert_mode().
8502         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
8503         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
8504         UNSPEC_DATALABEL.
8505         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
8506         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
8507         (DATALABEL_REF_P): Don't require CONST.
8508         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
8509         REL label.
8510         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
8511         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
8512         right.
8513         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
8514         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
8515         Use shallow_copy_rtx and PUT_MODE to change the mode of
8516         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
8517         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
8518         on SHmedia using GENERAL_REGs.
8519         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
8520         bltu_media_i): Fix reversion of conditions.
8521         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
8522         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
8523         * config/sh/sh.c (output_far_jump): Save r13 in macl.
8524         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
8525         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
8526         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
8527         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
8528         (GCC_nested_trampoline): Likewise.
8529         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
8530         * config/sh/sh.c (gen_datalabel_ref): Define.
8531         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
8532         (INITIALIZE_TRAMPOLINE): Likewise.
8533         (TRAMPOLINE_ADJUST_ADDRESS): Define.
8534         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
8535         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
8536         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
8537         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
8538         (ic_invalidate): Adjust for SH5.
8539         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
8540         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
8541         _nested_trampoline.
8542         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
8543         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
8544         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
8545         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
8546         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
8547         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
8548         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
8549         * config/sh/sh.c (target_reg_operand): Match only target-branch
8550         registers and pseudos that aren't virtual registers.
8551         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
8552         Copy operands that don't match target_reg_operand to pseudos.
8553         (call_media, call_value_media, sibcall_media): Use
8554         target_reg_operand instead of target_operand.
8555         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
8556         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
8557         * config/sh/sh.c (target_reg_operand): Match hardware registers
8558         other than branch-target registers.
8559         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
8560         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
8561         (fpscr_values) [SH5 == 32]: Define.
8562         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
8563         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
8564         Handle function addresses coming in SUBREGs.
8565         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
8566         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8567         shcompact_return_trampoline): Use datalabel where appropriate.
8568         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
8569         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
8570         general-purpose register to copy one branch-target register to
8571         another.
8572         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
8573         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
8574         SYMBOL_REFs with VOIDmode.
8575         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
8576         bltu_media_i): New insns.
8577         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
8578         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
8579         (INIT_CUMULATIVE_ARGS): Likewise.
8580         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
8581         * machmode.def (V16SFmode): New mode.
8582         * c-common.c (type_for_mode): Support V2SF and V16SF.
8583         * tree.c (build_common_tree_nodes_2): Likewise.
8584         * tree.h (tree_index): Likewise.
8585         * calls.c (emit_call_1): Take args_so_far.  Adjust all
8586         callers.  Introduce CALL_POPS_ARGS.
8587         * tm.texi (CALL_POPS_ARGS): Document.
8588         * config/sh/crt1.asm: Implement in SHmedia mode.
8589         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
8590         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
8591         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
8592         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
8593         Implement divsi and udivsi in SHmedia mode.  Introduce
8594         SHcompact trampolines.
8595         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
8596         only in SHmedia64.
8597         (regno_reg_class): Rewrite.
8598         (fp_reg_names): Remove.
8599         (sh_register_names, sh_additional_register_names): New.
8600         (print_operand): Added `u'.  Support SUBREGs in addresses.
8601         Add parentheses around shifted CONSTs.
8602         (output_file_start): Output .mode and .abi directives.
8603         (shiftcosts, addsubcosts, multcosts): Adjust.
8604         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
8605         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
8606         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
8607         bytes, not registers.  Take into account the need for the
8608         SHcompact incoming args trampoline.  Adjust all callers.
8609         (sh_expand_prologue): Take stack_regs into account.  Call
8610         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
8611         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
8612         stack aligned as per SH5 ABI.
8613         (sh_builtin_saveregs): Support SH5 ABI.
8614         (sh_build_va_list, sh_va_start): Likewise.
8615         (initial_elimination_offset): Take alignment into account.
8616         Compute location of PR according to the SH5 stack frame.
8617         (arith_reg_operand): Reject branch-target registers.
8618         (shmedia_6bit_operand): New.
8619         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
8620         (target_reg_operand): Match DImode only.  Accept SUBREGs.
8621         (target_operand): New.
8622         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
8623         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
8624         SIBCALL_REGS for SHmedia.
8625         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
8626         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
8627         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
8628         (TARGET_SWITCHES): New SH5 flags.
8629         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
8630         VALID_REGISTER_P to disable unsupported registers.
8631         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
8632         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
8633         (FUNCTION_ARG_PADDING): Define.
8634         (FASTEST_ALIGNMENT): Adjust.
8635         (SH_REGISTER_NAMES_INITIALIZER): New.
8636         (sh_register_names): Declare.
8637         (DEBUG_REGISTER_NAMES): Define.
8638         (REGISTER_NAMES): Define based on sh_register_names.
8639         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
8640         (sh_additional_register_names): Declare.
8641         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
8642         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
8643         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
8644         (REGISTER_NATURAL_MODE): Define.
8645         (FIRST_PSEUDO_REGISTER): Adjust.
8646         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
8647         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
8648         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
8649         (VECTOR_MODE_SUPPORTED_P): Define.
8650         (REG_CLASS_CONTENTS): Adjust.
8651         (SMALL_REGISTER_CLASSES): Adjust.
8652         (REG_ALLOC_ORDER): Adjust.
8653         (INDEX_REG_CLASS): Adjust.
8654         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
8655         (CONST_OK_FOR_LETTER_P): Adjust.
8656         (PREFERRED_RELOAD_CLASS): Adjust.
8657         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
8658         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
8659         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
8660         (FIRST_FP_PARM_REG): Adjust.
8661         (CALL_POPS_ARGS): Define.
8662         (FUNCTION_ARG_REGNO_P): Adjust.
8663         (struct sh_args): New fields.
8664         (GET_SH_ARG_CLASS): Adjust.
8665         (INIT_CUMULATIVE_ARGS): Adjust.
8666         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
8667         (FUNCTION_ARG_ADVANCE): Adjust.
8668         (FUNCTION_ARG): Adjust.
8669         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
8670         (FUNCTION_ARG_CALLEE_COPIES): Define.
8671         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
8672         (STRICT_ARGUMENT_NAMING): Define.
8673         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
8674         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
8675         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
8676         (SETUP_INCOMING_VARARGS): Adjust.
8677         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
8678         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
8679         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
8680         (SUBREG_OK_FOR_INDEX_P): Adjust.
8681         (EXTRA_CONSTRAINT_S): Update.
8682         (EXTRA_CONSTRAINT_T): New.
8683         (EXTRA_CONSTRAINT): Adjust.
8684         (GO_IF_LEGITIMATE_INDEX): Adjust.
8685         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
8686         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
8687         (MOVE_MAX): Adjust.
8688         (MAX_MOVE_MAX): Define.
8689         (Pmode): Adjust.
8690         (CONST_COSTS): Adjust.
8691         (REGISTER_MOVE_COST): Adjust.
8692         (BRANCH_COST): Adjust.
8693         (TEXT_SECTION_ASM_OP): Adjust.
8694         (DBX_REGISTER_NUMBER): Adjust.
8695         (ASM_OUTPUT_DOUBLE_INT): New.
8696         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
8697         (PREDICATE_CODES): Adjust.
8698         (PROMOTE_MODE): Adjust.
8699         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
8700         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
8701         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
8702         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
8703         (DR0_REG, DR2_REG, DR4_REG): Renumber.
8704         (TR0_REG, TR1_REG, TR2_REG): New.
8705         (XD0_REG): Renumber.
8706         (UNSPEC_COMPACT_ARGS): New.
8707         (type): Added pt and ptabs.
8708         (length): Default to 4 on SHmedia.  Default pt length to 12
8709         and     20 on SHmedia32 and SHmedia64, respectively.
8710         (pt): New function unit.
8711         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
8712         Add whitespace between operands of SHmedia instructions.
8713         (movdicc): Fix.
8714         (adddi3_media, addsi3_media): Adjust constraints.
8715         (subsi3) [SHmedia]: Force operand 1 into a register.
8716         (udivsi3_i1_media, udivsi3_i4_media): New.
8717         (udivsi3): Support SHmedia.
8718         (divsi3_i1_media, divsi3_i4_media): New.
8719         (divsi3): Support SHmedia.
8720         (anddi3, iordi3, xordi3): Adjust constraints.
8721         (zero_extendhidi2, zero_extendqidi2): New.
8722         (extendsidi2, extendhidi2, extendqidi2): New.
8723         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
8724         (pop_e, pop_fpul, pop_4): Likewise.
8725         (movsi_media): Support FP and BT registers.
8726         (movsi_media_nofpu): New.  Adjust splits to DImode.
8727         (lduw, ldub): Renamed to zero_extend* above.
8728         (movqi_media): Fix typo.
8729         (movdi_media): Support FP and BT registers.
8730         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
8731         (movdi_const_32bit): New.
8732         (shori_media): Require immediate operand.  Use `u' for output.
8733         (movdf_media, movsf_media): Simplified.
8734         (movdf_media_nofpu, movsf_media_nofpu): New.
8735         (movdf, movsf): Adjust
8736         (movv2sf, movv2sf, movv16sf): New.
8737         (beq_media, beq_media_i): Adjust constraints.  Don't use
8738         scratch BT register.
8739         (bne_media, bne_media_i): Likewise.
8740         (bgt_media, bgt_media_i): Likewise.
8741         (bge_media, bge_media_i): Likewise.
8742         (bgtu_media, bgtu_media_i): Likewise.
8743         (bgeu_media, bgeu_media_i): Likewise.
8744         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
8745         bunordered): Emit jump insn.  Force operands to registers when
8746         needed.
8747         (jump_media, jump): Simplify.
8748         (call_compact, call_compact_rettramp): New.
8749         (call_value_compact, call_value_compact_rettramp): New.
8750         (call_media, call_value_media): Simplify.
8751         (sibcall_compact, sibcall_media): New.
8752         (call, call_value): Adjust for SHmedia and SHcompact.
8753         (sibcall, sibcall_value, untyped_call): Likewise.
8754         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
8755         (indirect_jump): Adjust for SHmedia.
8756         (casesi_jump_media): New.
8757         (nop): Re-enable for SHmedia.
8758         (call_site): Restrict to SH1.
8759         (casesi): Adjust for SHmedia.
8760         (casesi_shift_media, casesi_load_media): New.
8761         (return): Explicitly use PR register.  Call return trampoline
8762         on SHcompact.
8763         (return_i): Explicitly use PR register.
8764         (shcompact_return_tramp, shcompact_return_tramp_i): New.
8765         (return_media): Adjust.
8766         (shcompact_incoming_args): New.
8767         (epilogue): Adjust.
8768         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
8769         (movstrsi): Disable on SH5.
8770         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
8771         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
8772         (subsf3, subsf3_media): Likewise.
8773         (mulsf3, mulsf3_media, mac_media): Likewise.
8774         (divsf3, divsf3_media): Likewise.
8775         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
8776         (floatsisf2, fux_truncsfsi2): Likewise.
8777         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
8778         constraints.
8779         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
8780         (cmpunsf_media, cmpsf): Likewise.
8781         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
8782         (abssf2, abssf2_media): Likewise.
8783         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
8784         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
8785         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
8786         (floatsidf2, fix_truncdfsi2): Likewise.
8787         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
8788         constraints.
8789         (cmpeqdf_media, cmpgtdf_media): Likewise.
8790         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
8791         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
8792         (absdf2, absdf2_media): Likewise.
8793         (extendsfdf2, extendsfdf2_media): Likewise.
8794         (truncsfdf2, truncsfdf2_media): Likewise.
8795         * config/sh/sh64.h: New file.
8796         * config/sh/t-sh64: New file.
8797         * config/sh/shmedia.h: New file.
8798         * config/sh/ushmedia.h: New file.
8799         * config/sh/sshmedia.h: New file.
8800         * configure.in: Added sh64-*-elf.
8801         * configure: Rebuilt.
8802         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
8803         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
8804         (reg_class_from_letter): Use `b' for TARGET_REGS.
8805         (print_operand): Support `%M', `%m', `AND' and
8806         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
8807         (andcosts): Adjust for SHmedia.
8808         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
8809         Likewise.
8810         (target_reg_operand): New function.
8811         * config/sh/sh-protos.h (target_reg_operand): Declare.
8812         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
8813         FP registers on SH5.
8814         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
8815         on SH4.
8816         (TARGET_REGISTER_P): New macro.
8817         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
8818         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
8819         (EXTRA_CONSTRAINT_S): New macro.
8820         (EXTRA_CONSTRAINT): Adjust.
8821         (FLOAT_TYPE_SIZE): Define to 32.
8822         (Pmode): DImode on SHmedia.
8823         (CONST_COSTS): Adjust for SHmedia literals.
8824         (PREDICATE_CODES): Added target_reg_operand.
8825         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
8826         * config/sh/sh.md: Remove all attrs from SHmedia insns.
8827         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
8828         (cmpdi): Accept SHmedia.
8829         (movdicc_false, movdicc_true): New insns.
8830         (movdicc): New expand.
8831         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
8832         no_new_pseudos.
8833         (addsi3_media): Match `S' constraint.
8834         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
8835         (negdi2): Expand for SHmedia.
8836         (one_cmpldi2): New expand.
8837         (zero_extendsidi2): Change from expand to insn.
8838         (extendsidi2): Add constraints.
8839         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
8840         LD/ST address.  Fix SI immediate loading split.
8841         (movhi_media, movqi_media, lduw, ldub): New insns.
8842         (movhi, movqi): Accept SHmedia.
8843         (shori_media, movdi_media): Relax input constraints.  Split
8844         symbolic constants.
8845         (movdf_media, movsf_media): New insn.  New split to movdi.
8846         (movdf, movsf): Match on SHmedia.
8847         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
8848         bgeu_media): New insns and splits.  New insns with `_i' suffix.
8849         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
8850         (bunordered): New expand.
8851         (jump_compact): Renamed from `jump'.
8852         (jump_media): New insn.
8853         (jump): New expand.
8854         (call_media, call_value_media): New insns.
8855         (call, call_value): Adjust.
8856         (indirect_jump_compact): Renamed from `indirect_jump'.
8857         (indirect_jump_media): New insn.
8858         (indirect_jump): New expand.
8859         (untyped_call, return): Accept SHmedia.
8860         (return_media): New insn.
8861         (prologue, epilogue, blockage): Accept SHmedia.
8862         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
8863         (sunordered): New expand.
8864         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
8865         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
8866         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
8867         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
8868         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
8869         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
8870         abssf2_media): New insns.
8871         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
8872         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
8873         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
8874         floatdidf2, floatsidf2_media, fix_truncdfdi2,
8875         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
8876         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
8877         absdf2_media): New insns.
8878         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
8879         (extendsfdf2_media, truncdfsf2_media): New insns.
8880         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
8881         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
8882         * config/sh/sh.h (CONST_OK_FOR_J): Document.
8883         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
8884         * config/sh/sh.md (adddi3): New expand.
8885         (adddi3_media, adddi3z_media): New insns.
8886         (adddi3_compact): Renamed from adddi3.
8887         (addsi3_media): Use add.l r63 to add constant zero.
8888         (subdi3): New expand.
8889         (subdi3_media): New insn.
8890         (subdi3_compact): Renamed from subdi3.
8891         (mulsidi3): New expand.
8892         (mulsidi3_media): New insn.
8893         (mulsidi3_compact): Renamed from mulsidi3.
8894         (umulsidi3): New expand.
8895         (umulsidi3_media): New insn.
8896         (umulsidi3_compact): Renamed from umulsidi3.
8897         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
8898         (ashlsi3, ashrsi3, lshrsi3): Use them.
8899         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
8900         (ashldi3, ashrdi3, lshrdi3): Use them.
8901         (zero_extendsidi2): New expand.
8902         (extendsidi2): New insn.
8903         (movsi_media): New insn.  Split to movdi to load constants.
8904         (movsi): Enable for shmedia.
8905         (movdi_media): New insn.  Use shori_media to load wide constants.
8906         (short_media): New insn.
8907         (movdi): Enable for shmedia.
8908         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
8909         * config/sh/sh.h (CPP_SPEC): Added `m5'.
8910         (SUBTARGET_CPP_SPEC): Added `!m5'.
8911         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
8912         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
8913         to all other SH variants.
8914         (TARGET_DEFAULT): Set to SH1_BIT.
8915         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
8916         (BITS_PER_WORD): Raise to 64 on shmedia.
8917         (MAX_BITS_PER_WORD): Change to 64.
8918         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
8919         (INT_TYPE_SIZE): Keep as 32.
8920         (UNITS_PER_WORD): Raise to 8 on shmedia.
8921         (MIN_UNITS_PER_WORD): Keep as 4.
8922         (POINTER_SIZE): Raise to 64 on shmedia.
8923         (CONST_OK_FOR_J): New macro.
8924         (CONST_OK_FOR_LETTER_P): Use it.
8925         (processor_type): Add PROCESSOR_SH5.
8926         * config/sh/sh.md: Conditionalize all expands, insns and
8927         splits to TARGET_SH1.
8928         (cpu): Added sh5.
8929         (addsi3_compact): Renamed from...
8930         (addsi3): Now an expand.
8931         (addsi3_media, subsi3_media): New insns.
8932         (subsi3): Don't negate constants with SHmedia.
8933
8934         * hooks.c: New file.
8935         * hooks.h: New file.
8936         * Makefile.in (HOOKS_H): New.
8937         (TARGET_DEF_H): Added $(HOOKS_H).
8938         (OBJS): Added hooks.o.
8939         (cfgcleanup.o, bb-reorder.o): Added target.h.
8940         (hooks.o): Added dependencies.
8941         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
8942         (TARGET_INITIALIZER): this.
8943         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
8944         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
8945         * bb-reorder.c: Include target.h.
8946         (reorder_basic_blocks): Skip if cannot modify jumps.
8947         * cfgcleanup.c: Include target.h.
8948         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
8949
8950 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
8951
8952         * config/mips/mips.md (casesi_internal, casesi_internal_di):
8953         Protect jump delay slot instructions with .set noreorder and
8954         .set nomacro.
8955
8956 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
8957
8958         * config/mips/mips.md (casesi_internal_di): Calculate
8959         the index into the target offset table correctly.
8960
8961 2002-02-08  Richard Henderson  <rth@redhat.com>
8962
8963         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
8964         * final.c (output_addr_const): Accept and discard SUBREG.
8965         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
8966         mark them unknown instead.
8967         (simplify_subtraction): Handle RTX_UNKNOWN.
8968         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
8969
8970 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
8971
8972         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
8973
8974 2002-02-08  Richard Henderson  <rth@redhat.com>
8975
8976         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
8977
8978 2002-02-08  Andreas Jaeger  <aj@suse.de>
8979
8980         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
8981         * config/i386/t-linux64: New file.
8982
8983 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
8984
8985         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
8986         * c-parse.in (compstmt): Clear last_expr_type.
8987
8988 2002-02-07  Richard Henderson  <rth@redhat.com>
8989
8990         * loop.c (strength_reduce): Sink final_value when not
8991         eliminating a biv.
8992
8993 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
8994
8995         * config/sparc/freebsd.h: Fix mismatched spec {.
8996
8997 2002-02-07  Richard Henderson  <rth@redhat.com>
8998
8999         * cfgrtl.c: Include recog.h and insn-config.h.
9000         (keep_with_call_p): Fix general_operand invocation.
9001         * Makefile.in (cfgrtl.o): Update dependencies.
9002
9003 2002-02-07  Kazu Hirata  <kazu@hxi.com>
9004
9005         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
9006         comment.  Accept HImode only if TARGET_H8300.
9007
9008 2002-02-07  Eric Christopher  <echristo@redhat.com>
9009
9010         * config/mips/crtn.asm: Cleanup #ifdefs.
9011
9012 2002-02-07  Eric Christopher  <echristo@redhat.com>
9013
9014         * config/mips/crti.asm: Add changes for mips16. mips16 uses
9015         register 7 as RA instead of $31.
9016         * config/mips/crtn.asm: Ditto.
9017         * config/mips/mips.c (mips_move_2words): Add case for
9018         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
9019         (compute_frame_size): Fix typo.
9020         (save_restore_insns): Ditto.  Make documentation about using
9021         register $7 as return register more precise.
9022         (mips_expand_epilogue): Fix comment. Add code to work around not
9023         being able to add to the stack pointer directly.
9024         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
9025         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
9026         epilogue.
9027
9028 2002-02-07  Tom Rix  <trix@redhat.com>
9029
9030         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
9031         immediates in ldu and stdu DS opcode field.
9032         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
9033         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
9034         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
9035
9036 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
9037
9038         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
9039         offset for stack bias.
9040
9041 2002-02-07  H.J. Lu <hjl@gnu.org>
9042
9043         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
9044
9045 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
9046
9047         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
9048
9049 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
9050
9051         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
9052         * i386.c (x86_order_regs_for_local_alloc): New global function.
9053         * i386.h (REG_ALLOC_ORDER): CLeanup.
9054         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
9055
9056 2002-02-07  Richard Henderson  <rth@redhat.com>
9057
9058         PR optimization/2463
9059         * alias.c (find_base_value): Recall base values for fixed hard regs.
9060         * loop.c (loop_regs_update): Don't use single_set on non-insns.
9061
9062 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
9063
9064         * config/mips/mips.md (define_delay) [mips16]: Adjust required
9065         length.
9066
9067 2002-02-06  Richard Henderson  <rth@redhat.com>
9068
9069         PR c/5609
9070         * stmt.c (resolve_operand_name_1): Take more care with mixed
9071         named and unnamed operands.
9072
9073 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
9074             Jan Hubicka  <jh@suse.cz>
9075
9076         * loop.c (remove_constant_addition): Avoid clobbering a shared
9077         CONST expression.
9078
9079 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9080
9081         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
9082         * config/s390/t-linux64: New file.
9083         * config/s390/libgcc-glibc.ver: New file.
9084
9085 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9086
9087         * config/s390/linux64.h: Delete file.
9088         * config/s390/s390x.h: New file.
9089         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
9090         as target header file.
9091         * config/s390/linux.h (TARGET_VERSION): Define depending on
9092         DEFAULT_TARGET_64BIT.
9093         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
9094         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
9095         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
9096         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
9097         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
9098         (EXTRA_SPEC): New define.
9099         * config/s390/s390.h (TARGET_VERSION): Define depending on
9100         DEFAULT_TARGET_64BIT.
9101         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
9102
9103 2002-02-06  Jason Merrill  <jason@redhat.com>
9104
9105         * c-decl.c (finish_function): Warn about a non-void function with
9106         no return statement and no abnormal exit.
9107         (current_function_returns_abnormally): New variable.
9108         (start_function): Clear it.
9109         (struct c_language_function): Add returns_abnormally.
9110         (push_c_function_context): Save it.
9111         (pop_c_function_context): Restore it.
9112         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
9113         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
9114         an explicit return type.
9115         * c-tree.h: Declare current_function_returns_abnormally.
9116         (C_FUNCTION_IMPLICIT_INT): New macro.
9117         * c-typeck.c (build_function_call): Set it.
9118         (c_expand_return): Set current_function_returns_value even if the
9119         value is erroneous.
9120
9121 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
9122
9123         PR c/5420:
9124         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
9125         unsafe for reevaluation.
9126
9127 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
9128
9129         PR c/5482:
9130         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
9131         EXPR_STMT, but COMPOUND_STMT, recurse into it.
9132
9133 2002-02-06  Richard Henderson  <rth@redhat.com>
9134
9135         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
9136         be a general_operand.  Dest for function value must be a pseudo.
9137
9138 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
9139
9140         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
9141         as SYMBOL_REFs from the constant pool.
9142
9143 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
9144
9145         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
9146         passed by invisible reference.
9147
9148 2002-02-05  Richard Henderson  <rth@redhat.com>
9149
9150         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
9151
9152 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
9153
9154         Implement using "base addresses" in insn operands as default.
9155         * config/mmix/mmix.c (mmix_conditional_register_usage): if
9156         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
9157         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
9158         used to read the rtx value.
9159         (mmix_target_asm_function_epilogue): Fix spacing.
9160         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
9161         (mmix_legitimate_address): Ditto.
9162         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
9163         should be loaded with a GETA insn.  Don't allocate needless extra
9164         char for nul termination and fix misleading comment.
9165         (mmix_print_operand_address): Handle constants if
9166         TARGET_BASE_ADDRESSES.
9167         (mmix_output_register_setting): Use base addressing if
9168         TARGET_BASE_ADDRESSES and the number of insns is 3.
9169         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
9170         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
9171         to use R as constraint, add LDA to match s.
9172         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
9173         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
9174         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
9175         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
9176         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
9177         order with other fixed registers.
9178         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
9179         other parameter/call-clobbered registers.
9180         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
9181         -mbase-addresses, -mno-base-addresses.
9182         (MMIX Options): Ditto.
9183
9184 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9185
9186         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
9187
9188 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
9189
9190         * config/rs6000/altivec.h: Change elem to _S_elem.
9191
9192 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
9193
9194         * config/netbsd.h (WCHAR_TYPE): Define.
9195         (WCHAR_TYPE_SIZE): Ditto.
9196         (WINT_TYPE): Ditto.
9197         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
9198         (WCHAR_UNSIGNED): Ditto.
9199         (WCHAR_TYPE_SIZE): Ditto.
9200         (WINT_TYPE): Ditto.
9201         * config/arm/netbsd.h: Likewise.
9202         * config/i386/netbsd-elf.h: Likewise.
9203         * config/i386/netbsd.h: Likewise.
9204         * config/m68k/netbsd-elf.h: Likewise.
9205         * config/m68k/netbsd.h: Likewise.
9206         * config/ns32k/netbsd.h: Likewise.
9207         * config/sparc/netbsd.h: Likewise.
9208         * config/vax/netbsd.: Likewise.
9209
9210 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
9211
9212         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
9213         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
9214         (TARGET_INITIALIZER): this.
9215         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
9216         (BITFIELD_NBYTES_LIMITED): Markup fix.
9217         * tree.h (default_ms_bitfield_layout_p): Declare.
9218         (record_layout_info): Added prev_field.
9219         * tree.c (default_ms_bitfield_layout_p): New fn.
9220         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
9221         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
9222         * stor-layout.c: Include target.h.
9223         (start_record_layout): Initialize prev_field.
9224         (place_field): Handle MS bit-field layout, and disregard
9225         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
9226         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
9227         * Makefile.in (stor-layout.o): Adjust dependencies.
9228
9229 2002-02-05  Jason Merrill  <jason@redhat.com>
9230
9231         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
9232
9233 2002-02-05  Andreas Jaeger  <aj@suse.de>
9234
9235         * crtstuff.c: Fix comments.
9236
9237 2002-02-05  Richard Henderson  <rth@redhat.com>
9238
9239         PR fortran/3393
9240         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
9241         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
9242
9243         PR fortran/3392
9244         * config/mips/mips.c (function_arg): Handle TImode.
9245         (function_arg_advance): Likewise.
9246
9247 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9248
9249         * config/rs6000/altivec.h (vec_step_help): Rename to
9250         __vec_step_help.
9251
9252 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9253
9254         * config/rs6000/altivec.h: Fix typos.
9255
9256 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
9257
9258         * config/arm/netbsd.h: Correct a comment.
9259
9260 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9261
9262         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
9263         building void typed builtins.
9264
9265         * config/rs6000/altivec.h (vec_ld*): Fix typos.
9266         (vec_step): Implement for C++.
9267
9268 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9269
9270         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
9271
9272 2002-02-04  Richard Henderson  <rth@redhat.com>
9273
9274         * combine.c (nonzero_bits): Re-introduce special case for
9275         sp/fp/ap wrt REGNO_POINTER_ALIGN.
9276
9277 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9278
9279         * doc/extend.texi: Warn about unsupported usage of altivec
9280         builtins.
9281
9282         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
9283         (altivec_predicate_*): New.
9284
9285         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
9286         Add C++ version of vec_*() functions.
9287
9288         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
9289         (bdesc_2arg): Remove altivec predicates.
9290         (altivec_expand_builtin): Handle predicates.
9291         (altivec_init_builtins): Handle predicates.
9292         (altivec_expand_predicate_builtin): New.
9293
9294 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9295
9296         * pa.c (DO_FRAME_NOTES): Move forward.
9297         (store_reg): Revise handling of frame notes.
9298         (load_reg): Likewise.
9299         (set_reg_plus_d): Likewise.
9300         (hppa_expand_prologue): Likewise.
9301         (hppa_expand_epilogue): Likewise.
9302
9303 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9304
9305         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
9306
9307 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9308
9309         PR c/4475, c++/3780:
9310         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
9311         * c-common.h (SWITCH_TYPE): Define.
9312         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
9313         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
9314         Rename spareness variable to sparseness.
9315         (expand_end_case_type): Renamed from expand_end_case, use orig_type
9316         if non-NULL instead of TREE_TYPE (orig_index).
9317         * tree.h (expand_end_case_type): Renamed from expand_end_case.
9318         (expand_end_case): Define using expand_end_case_type.
9319         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
9320         to expand_end_case_type.
9321         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
9322
9323 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9324
9325         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
9326         (BIGGEST_ALIGNMENT): Change to 128.
9327
9328 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9329
9330         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
9331
9332 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9333
9334         * pa.md (call_internal_reg_64bit): Remove unused variable.
9335
9336 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
9337
9338         * config/arm/arm.h (machine_function): Add uses_anonymous_args
9339         field.
9340         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
9341         * config/arm/arm.c (current_function_anonymous_args): Delete,
9342         replace uses with cfun->machine->uses_anonymous_args.
9343         (arm_reorg): Do not reset uses_anonymous_args.
9344
9345         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
9346         any geenral register.
9347
9348 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
9349
9350         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
9351         the entry block.
9352
9353 2002-02-04  Richard Henderson  <rth@redhat.com>
9354
9355         * combine.c (force_to_mode): Remove STACK_BIAS code.
9356         (nonzero_bits): Likewise.  Replace sp/fp special case with
9357         REGNO_POINTER_ALIGN.
9358
9359         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
9360         (HARD_FRAME_POINTER_REGNUM): New.
9361         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
9362         (FIXED_REGS, CALL_USED_REGS): Update.
9363         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
9364         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
9365         (HARD_REGNO_NREGS): Update for SFP.
9366         (STACK_POINTER_OFFSET): Include bias here ...
9367         (FIRST_PARM_OFFSET): ... not here.
9368         (STACK_BIAS): Remove.
9369         (INIT_EXPANDERS): New.
9370         (STARTING_FRAME_OFFSET): Do not include bias.
9371         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
9372         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
9373         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
9374         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
9375         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
9376         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
9377         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
9378         (MUST_SAVE_REGISTER): Likewise.
9379         (sparc_flat_function_prologue): Likewise.
9380         (sparc_flat_function_epilogue): Likewise.
9381         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
9382         (sparc_init_modes): SFP is GENERAL_REGS.
9383         (sparc_builtin_saveregs): SFP does not have bias applied.
9384
9385 2002-02-04  Richard Henderson  <rth@redhat.com>
9386
9387         * config/alpha/alpha.c (current_function_is_thunk): Don't check
9388         current_function_is_thunk.
9389         (alpha_sa_mask): Distinguish between current_function_is_thunk
9390         called from ASM_OUTPUT_MI_THUNK and not.
9391         (alpha_does_function_need_gp): Thunks always need gp.
9392         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9393         (alpha_output_mi_thunk_osf): New.
9394         * config/alpha/alpha-protos.h: Update.
9395         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
9396
9397 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
9398
9399         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
9400         function types, not when they're taken away.
9401
9402 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
9403
9404         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
9405         CODE_LABEL and jump table when replacing a table jump with a
9406         simple jump.
9407
9408 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
9409
9410         * config/s390/s390-protos.h (legitimize_la_operand,
9411         s390_secondary_input_reload_class, s390_plus_operand,
9412         s390_expand_plus_operand): Add prototypes.
9413
9414         config/s390/s390.c (s390_secondary_input_reload_class,
9415         s390_plus_operand, s390_expand_plus_operand): New functions.
9416
9417         (struct s390_address): New member 'pointer'.
9418         (s390_decompose_address): Compute it.
9419         (legitimate_la_operand_p): Use it.
9420         (legitimize_la_operand): New function.
9421         (movti, movdi, movdf splitters): Call it.
9422
9423         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
9424         (PREDICATE_CODES): Add s390_plus_operand.
9425
9426         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
9427         (la_ccclobber): Allow GENERAL_REGS as output operand.
9428
9429         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
9430         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
9431         (*la_64, *la_31, reload_indi, reload_insi): ... these.
9432
9433 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
9434
9435         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
9436         register names for regular asm () construct.
9437
9438 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9439
9440         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
9441         registers.
9442
9443 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9444
9445         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
9446         pat for recog.
9447
9448 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
9449
9450         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
9451         constant pool to be identical by string address and index.
9452
9453 2002-02-04  Anthony Green  <green@redhat.com>
9454
9455         * output.h (SECTION_OVERRIDE): Define.
9456         * varasm.c (named_section): Obey SECTION_OVERRIDE.
9457
9458 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
9459
9460         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
9461         by existing arm*-*-netbsd* (a.out) target.
9462         (ns32k-*-netbsdelf*): Likewise.
9463         (sparc-*-netbsdelf*): Likewise.
9464         (vax-*-netbsdelf*): Likewise.
9465
9466 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
9467
9468         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
9469         headers and libobjc headers.
9470
9471 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
9472
9473         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
9474         (_mingw.h): Remove duplicate include.
9475
9476 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
9477
9478         * config.gcc: Set cpu_type to m68k for 68010, as well.
9479         (m68010-*-netbsdelf*): New...
9480         (m68k*-*-netbsdelf*): ...targets.
9481         * config/m68k/netbsd-elf.h: New file.
9482
9483 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9484
9485         * config/h8300/h8300.c (hand_list): Move inside function_arg.
9486
9487 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9488
9489         * config/h8300/h8300.c (h8_push_ops): Move inside
9490         h8300_init_once.
9491         (h8_pop_ops): Likewise.
9492         (h8_move_ops): Likewise.
9493
9494 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9495
9496         * config/h8300/h8300.c (os_task): Make it static.
9497         (monitor): Likewise.
9498         (pragma_saveall): Likewise.
9499
9500 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
9501
9502         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
9503         constant is a valid sign-extension for Pmode.
9504
9505 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9506
9507         * config/h8300/h8300.c: Fix formatting.
9508
9509 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9510
9511         * config/h8300/h8300.md: Fix formatting.
9512
9513 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9514
9515         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
9516         predicates of operands[1].  Split the patterns for each
9517         processor variant.
9518
9519 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9520
9521         * config/h8300/h8300.md (xor patterns): Tighten the predicates
9522         of operands[1] to register_operand.
9523
9524 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9525
9526         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
9527         * cpphash.c (_cpp_init_hashtable): Similarly.
9528         * cppinit.c (cpp_create_reader): Default the signed_char flag.
9529         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
9530         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
9531         (cpp_handle_option): Handle the new options.
9532         * cpplex.c (cpp_interpret_charconst): Use new flag.
9533         * cpplib.h (struct cpp_options): New member signed_char.
9534         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
9535         (cpp_options): Handle -fsigned-char and -funsigned-char.
9536         (static_specs): Remove signed_char_spec.
9537         (do_spec1): Don't handle %c.
9538         * system.h: Poison SIGNED_CHAR_SPEC.
9539         * tradcif.y (yylex): Use flag_signed_char.
9540         * tradcpp.h (flag_signed_char): New.
9541         * tradcpp.c (flag_signed_char): New.
9542         (main): Handle new command-line options.
9543         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
9544 config:
9545         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
9546         * avr/avr.h: Remove old comments.
9547         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
9548         (CC1_SPEC): Pass -fsigned-char if -mic*.
9549         (SIGNED_CHAR_SPEC): Remove.
9550 doc:
9551         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
9552
9553 2002-02-01  Eric Christopher  <echristo@redhat.com>
9554
9555         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
9556         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
9557         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
9558         (ASM_OUTPUT_REG_POP): Ditto.
9559
9560 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9561
9562         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
9563         patch.
9564
9565 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
9566
9567         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
9568
9569 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
9570
9571         PR c/5304:
9572         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
9573         unconditionally.
9574
9575 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
9576
9577         * cfganal.c: Include tm_p.h.
9578         (keep_with_call_p): Fix the test that determines if a register holds
9579         the return value of a call.
9580
9581 2002-02-01  DJ Delorie  <dj@redhat.com>
9582
9583         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
9584         we are given conflicting registers, switch to the other one we
9585         had allocated for us.
9586         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
9587         as TImode so we know when the "other" register is available.
9588
9589 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
9590
9591         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
9592         sparc/sparc_bi.h.
9593
9594 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
9595
9596         * cfganal.c (keep_with_call_p): New function.
9597         (flow_call_edges_add): Prevent splitting a block between a call and
9598         a single-set instruction that should be kept in the same block.
9599
9600 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9601
9602         * doc/install.texi (avr): Update outdated URL.
9603
9604 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
9605
9606         * config/stormy16/stormy16.md (pushqi): New.
9607         (popqi): New.
9608         (pushhi): New.
9609         (pophi): New.
9610         (movhi): Remove stack operands.
9611         (movqi): Likewise.
9612         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
9613         nonimmediate_nonstack_operand.
9614         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
9615         New.
9616         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
9617         New.
9618
9619 2002-01-31  Jason Merrill  <jason@redhat.com>
9620
9621         * Makefile.in (c-parse.c): Handle .output file.
9622         * objc/Make-lang.in (objc-parse.c): Likewise.
9623
9624 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
9625
9626         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
9627         the -me[lb] option is given.  Don't output the default flag
9628         twice.
9629
9630 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
9631
9632         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
9633         the primary source file; this has not been done yet.
9634         * c-decl.c (c_expand_body): Reset input_filename from
9635         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
9636
9637 2002-01-31  Kazu Hirata  <kazu@hxi.com>
9638
9639         * rtlanal.c (subreg_regno_offset): Do not use
9640         SUBREG_REGNO_OFFSET.
9641         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
9642         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
9643
9644 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
9645
9646         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
9647         version rather than GNATS version in --version output.
9648
9649 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
9650
9651         * ifcvt.c (noce_process_if_block): Make a copy of the destination
9652         when copying back from a temporary.
9653
9654 2002-01-30  Richard Henderson  <rth@redhat.com>
9655
9656         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
9657         and new_dest are the same.
9658
9659 2002-01-30  Richard Henderson  <rth@redhat.com>
9660
9661         PR opt/5076
9662         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
9663         * rtl.c (note_insn_name): Update.
9664         * emit-rtl.c (remove_unnecessary_notes): Kill it.
9665         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
9666         to perform loop rotation.
9667         (expand_exit_loop_top_cond): New.
9668         * tree.h (expand_exit_loop_top_cond): Declare it.
9669         * c-semantics.c (genrtl_while_stmt): Use it.
9670         (genrtl_for_stmt): Likewise.
9671
9672 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
9673
9674         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
9675         arguments to 64-bit boundaries on 64-bit ABIs.
9676
9677 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
9678
9679         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
9680
9681 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
9682
9683         * c-decl.c (grokdeclarator): Handle type being a typedef for an
9684         invalid type.
9685
9686 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
9687
9688         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
9689         * config/sparc/sparc_bi.h: Remove file.
9690         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
9691
9692 2002-01-30  Richard Henderson  <rth@redhat.com>
9693
9694         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
9695
9696 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
9697
9698         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
9699
9700 2002-01-30  Jason Merrill  <jason@redhat.com>
9701
9702         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
9703         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
9704         (reg_save): Use DW_CFA_offset_extended_sf instead.
9705
9706         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
9707
9708 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
9709
9710         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
9711         in cselib_lookup.
9712
9713 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
9714
9715         * rs6000.md ("*call_value_local32"): Remove constraints.
9716         ("*call_value_local64"): Same.
9717         ("*call_value_indirect_nonlocal_aix32"): Same.
9718         ("*call_value_nonlocal_aix32"): Same.
9719         ("*call_value_indirect_nonlocal_aix64"): Same.
9720         ("*call_value_nonlocal_aix64"): Same.
9721         ("*call_value_nonlocal_sysv"): Same.
9722
9723 2002-01-29  Richard Henderson  <rth@redhat.com>
9724
9725         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
9726
9727 2002-01-29  Richard Henderson  <rth@redhat.com>
9728
9729         * expr.c (force_operand): Ignore flag_pic for detecting pic
9730         address loads.
9731         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
9732         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
9733         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
9734         instead of open-coded loop.
9735         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
9736         be fixed when in use.
9737
9738 2002-01-29  Richard Henderson  <rth@redhat.com>
9739
9740         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
9741         * sched-rgn.c (propagate_deps): Update them.
9742         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
9743         clobbers list when either gets too long.
9744
9745 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
9746
9747         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
9748         and INDEX_REGS the same as GENERAL_REGS.
9749         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
9750
9751 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9752
9753         * tree.c (build_nonstandard_integer_type): Correct prototype.
9754
9755 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
9756
9757         * config/s390/s390.md (movstrsico, movstrdix_64,
9758         movstrsix_31): Remove, replace by ...
9759         (movstrdi_short, movstrsi_short, movstrdi_long,
9760         movstrsi_long): ... these.  New.
9761         (movstrdi, movstrsi): Adapt.
9762
9763         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
9764         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
9765         Remove unnecessary CC clobber.
9766         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
9767         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
9768
9769         (divmoddi4): Don't partially initialize TImode register.
9770
9771 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
9772
9773         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
9774
9775 2002-01-29  Richard Henderson  <rth@redhat.com>
9776
9777         * flow.c (print_rtl_and_abort): Remove.
9778         (print_rtl_and_abort_fcn): Remove.
9779         (verify_local_live_at_start): Use dump_bb instead.
9780         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
9781         (verify_wide_reg_1): Return 2 on mode test failure.
9782
9783 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9784
9785         PR c/3325, c/3326, c/2511, c/3347
9786         * c-decl.c (enum_decl_context): Remove BITFIELD.
9787         (grokdeclarator): Take bitfield width as an input.
9788         Ensure bitfields are given the correct type.  Perform
9789         bitfield width validation with build_bitfield_integer_type
9790         rather than waiting for finish_struct.
9791         (grok_typename, grok_typename_in_parm_context, start_decl,
9792         push_parmdecl, grokfield, start_function): Update calls to
9793         grokdeclarator.
9794         (build_bitfield_integer_type): New function.
9795         (finish_struct): Move bitfield validation to grokdeclarator
9796         and build_bitfield_integer_type.
9797         * tree.c (build_nonstandard_integer_type): New function.
9798         * tree.h (build_nonstandard_integer_type): New prototype.
9799 objc:
9800         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
9801
9802 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
9803
9804         PR other/1502:
9805         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
9806         don't ignore unrecognized -W* options.
9807         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
9808         * cpplib.h (cpp_handle_option): Adjust prototype.
9809         * c-decl.c (c_decode_options): Pass 0 as last argument to
9810         cpp_handle_option.
9811
9812         PR c/2896:
9813         * gcc.c (cpp_unique_options): Split from cpp_options.
9814         (cpp_options): Source cpp_unique_options.
9815         (default_compilers): Use cpp_unique_options instead of cpp_options
9816         when used together with cc1_options.
9817         (static_specs): Add cpp_unique_options.
9818         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
9819         when used together with cc1_options.
9820
9821 2002-01-29  Kazu Hirata  <kazu@hxi.com>
9822
9823         * config/h8300/h8300-protos.h: Update the prototype of
9824         output_a_shift.
9825         * config/h8300/h8300.c (output_a_shift): Remove an unused
9826         argument 'insn'.  Remove redundant code.
9827         * config/h8300/h8300.md: Adust to the new prototype of
9828         output_a_shift.
9829
9830 2002-01-29  Kazu Hirata  <kazu@hxi.com>
9831
9832         * config/h8300/h8300-protos.h: Update the prototypes of
9833         emit_a_rotate and expand_a_rotate.
9834         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
9835         first argument to 'enum rtx_code'.
9836         (expand_a_rotate): Likewise.
9837
9838 2002-01-28  Kazu Hirata  <kazu@hxi.com>
9839
9840         * config/h8300/h8300-protos.h: Update the prototype of
9841         output_simode_bld.
9842         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
9843         'log2'.
9844         * config/h8300/h8300.md: Adjust to the new prototype.
9845
9846 2002-01-28  Kazu Hirata  <kazu@hxi.com>
9847
9848         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
9849         redundant code.
9850
9851 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9852
9853         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
9854         is a fixed register before returning pic_offset_table_rtx.
9855         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
9856         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
9857
9858 2002-01-28  Jason Merrill  <jason@redhat.com>
9859
9860         * dwarf2.h: Sync with src version.
9861
9862 2002-01-28  Paul Koning  <pkoning@equallogic.com>
9863
9864         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
9865         BT_FN_VOID_PTR_VAR.
9866         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
9867         * doc/extend.texi (__builtin_prefetch): Update documentation:
9868         first argument is now const void ptr.
9869
9870 2002-01-28  Kazu Hirata  <kazu@hxi.com>
9871
9872         * config/h8300/h8300-protos.h: Remove an unused prototype.
9873
9874 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
9875
9876         * toplev.c (lang_independent_init): Round up identifier size.
9877
9878 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
9879
9880         * config.gcc: Revert previous change.
9881
9882 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
9883
9884         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
9885
9886 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
9887
9888         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
9889         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
9890         other non-elf netbsd config frags.
9891         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
9892         collect2 will does that.
9893         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
9894         shared-lib frobbing will work.
9895
9896 2002-01-28  Kazu Hirata  <kazu@hxi.com>
9897
9898         * config/h8300/h8300.h: Fix formatting.
9899         * config/h8300/h8300.md: Likewise.
9900
9901 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
9902
9903         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
9904         the old, removed AAA_standards fix.
9905         * fixinc/fixincl.x: Rebuilt.
9906
9907 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
9908
9909         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
9910         atexit call in crtbegin, hooked in after call to frame_dummy;
9911         register EH before registering __fini__start.
9912
9913 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
9914
9915         * config/rs6000/altivec.h: Remove spurious semicolons.
9916
9917 2002-01-27  Kazu Hirata  <kazu@hxi.com>
9918
9919         * config/h8300/h8300.md: Replace dead bit extraction patterns
9920         with ones that work.
9921
9922 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9923
9924         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
9925         if not STRICT_ALIGNMENT.
9926         * rtl.h (MEM_ALIGN): Likewise.
9927
9928 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9929
9930         * doc/invoke.texi (-fdump-translation-unit): Revert this
9931         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9932
9933 2002-01-27  Kazu Hirata  <kazu@hxi.com>
9934
9935         * config/h8300/h8300.md (define_constants): New.
9936         (anonymous patterns) Use defined constants appropriately.
9937
9938 2002-01-27  Kazu Hirata  <kazu@hxi.com>
9939
9940         * config/h8300/h8300.c (function_arg): Remove redundant code.
9941
9942 2002-01-26  Richard Henderson  <rth@redhat.com>
9943
9944         * sched-deps.c (reg_pending_uses_head): New.
9945         (reg_pending_barrier): Rename from reg_pending_sets_all.
9946         (find_insn_list): Don't mark inline.
9947         (find_insn_mem_list): Remove.
9948         (add_dependence_list, add_dependence_list_and_free): New.
9949         (flush_pending_lists): Replace only_write param with separate
9950         for_read and for_write parameters.  Update all callers.  Use
9951         add_dependence_list_and_free.
9952         (sched_analyze_1): Do not add reg dependencies here; just set
9953         the pending bits.  Use add_dependence_list.
9954         (sched_analyze_2): Likewise.
9955         (sched_analyze_insn): Replace schedule_barrier_found with
9956         reg_pending_barrier.  Add all dependencies for pending reg
9957         uses, sets, and clobbers.
9958         (sched_analyze): Don't add reg dependencies for calls, just
9959         set pending bits.  Use regs_invalidated_by_call.  Treat
9960         sched_before_next_call as a normal list, not a fake insn.
9961         (init_deps): No funny init for sched_before_next_call.
9962         (free_deps): Free pending mems lists.  Don't zero reg_last.
9963         (init_deps_global): Init reg_pending_uses.
9964         (finish_deps_global): Free it.
9965         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
9966         (find_insn_mem_list): Remove.
9967         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
9968         (propagate_deps): Use them.  Zero temp mem lists.
9969
9970 2002-01-26  Richard Henderson  <rth@redhat.com>
9971
9972         * Makefile.in (CRTSTUFF_CFLAGS): New.
9973         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
9974         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
9975         crtstuff.c instead of alpha assembly version.
9976         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
9977         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
9978         not FORCE_{INIT,FINI}_SECTION_ALIGN.
9979         (__do_global_dtors_aux): Mark used.
9980         (frame_dummy, __do_global_ctors_aux): Mark used.
9981         (fini_dummy, init_dummy): Remove.
9982
9983         * config/alpha/crtbegin.asm: Remove file.
9984         * config/alpha/crtend.asm: Remove file.
9985         * config/alpha/t-crtbe: Remove file.
9986         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
9987         (LINK_EH_SPEC): New.
9988
9989         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
9990         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
9991         calling constructors.
9992         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
9993
9994         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
9995         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
9996         CRT_END_INIT_DUMMY hack.
9997         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
9998         FORCE_{INIT,FINI}_SECTION_ALIGN.
9999
10000         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
10001         FORCE_{INIT,FINI}_SECTION_ALIGN.
10002
10003         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
10004         invocation sequence.
10005         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
10006
10007         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
10008         (FORCE_CODE_SECTION_ALIGN): New.
10009
10010 2002-01-26  Richard Henderson  <rth@redhat.com>
10011
10012         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
10013
10014 2002-01-26  Richard Henderson  <rth@redhat.com>
10015
10016         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
10017         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
10018
10019 2002-01-26  Kazu Hirata  <kazu@hxi.com>
10020
10021         * config/h8300/h8300.md: Remove bit extraction patterns that
10022         cannot be triggered.
10023         Restrict each bit extraction pattern to a variant on which the
10024         pattern is tested.
10025
10026 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
10027
10028         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
10029
10030 2002-01-26  Kazu Hirata  <kazu@hxi.com>
10031
10032         * config/h8300/h8300.md: Remove bit test patterns that cannot
10033         be triggered.
10034         Restrict each bit test pattern to a variant on which the
10035         pattern is tested.
10036
10037 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10038
10039         * builtins.c (expand_builtin_strncat): Remove redundant check for
10040         INTEGER_CST.
10041
10042 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
10043
10044         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
10045         default setting.
10046         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
10047         existing setting.
10048
10049 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
10050
10051         * dbxout.c (dbxout_init): Use assemble_name rather than just
10052         stripping off the first character.
10053         (dbxout_source_file): Likewise.
10054
10055 2002-01-25  DJ Delorie  <dj@redhat.com>
10056
10057         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
10058         using rtx_equal_p, not by comparing pointers.
10059
10060 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
10061
10062         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
10063         for PIC_OFFSET_TABLE_REGNUM.
10064         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
10065
10066 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
10067
10068         * config.gcc (x86_64-*-freebsd*): New target.
10069         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
10070         value.
10071         (i[34567]86-*-freebsd*): Don't include svr4.h.
10072         * config/i386/freebsd64.h: New file.
10073
10074 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
10075
10076         * config/alpha/x-vms (version): Make static.
10077
10078         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
10079         in previous checkin.
10080
10081         * Makefile.in (install-headers-cp): New target.
10082         * config.gcc (alpha-dec-*vms*): Install headers with
10083         install-headers-cp
10084
10085 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
10086
10087         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
10088         avoid it's copies.
10089
10090 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10091
10092         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
10093         of compare_tree_int.
10094         (expand_builtin_strncat): Likewise.
10095         * c-decl.c (finish_struct): Use tree_low_cst.
10096         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
10097         * tree.c (compare_tree_int): Likewise.
10098
10099 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
10100
10101         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
10102         adjustments even if they are implemented by more than two insns.
10103
10104 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
10105
10106         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
10107         * df.h (struct ref): Kill B.
10108         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
10109
10110         * basic-block.h (PROP_EQUAL_NOTES): New flag.
10111         * flow.c (propagate_one_insn): Use it.
10112         (mark_used_regs): Handle NIL.
10113
10114 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
10115
10116         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
10117         to help folding.
10118
10119 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
10120
10121         * rs6000.md (prefetch): Make address V4SI mode so that the address
10122         is restricted to legitimate form for instruction.
10123
10124 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
10125
10126         * doc/install.texi (xtensa-*-elf): New target.
10127         (xtensa-*-linux*): New target.
10128         * doc/contrib.texi: Add myself.
10129
10130 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
10131
10132         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
10133         purpose register to hold an SImode (or smaller) value.
10134
10135 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
10136
10137         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
10138         registry only.
10139         * crtstuff.c: Likewise.
10140
10141 2002-01-25  Kazu Hirata  <kazu@hxi.com>
10142
10143         * config/h8300/h8300.md (negation patterns): Tighten
10144         predicates to register_operand.
10145
10146 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
10147
10148         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
10149         mode, not Pmode.
10150
10151         * builtins.c (expand_builtin_prefetch): Same.
10152
10153 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10154
10155         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
10156         modes.
10157
10158 2002-01-24  Kazu Hirata  <kazu@hxi.com>
10159
10160         * config/h8300/h8300.c (print_operand): Remove support for
10161         operand character 'A'.
10162         * config/h8300/h8300.md (three anonymous patterns): Replace
10163         operand character 'A' with either 'T' or 'S'.
10164
10165 2002-01-24  Kazu Hirata  <kazu@hxi.com>
10166
10167         * config/h8300/h8300.c (print_operand): Remove support for
10168         operand character 'U'.
10169
10170 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
10171
10172         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
10173
10174 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
10175
10176         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
10177         values to be assigned to the stack pointer.
10178
10179 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
10180
10181         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
10182         to const_double needs to be done right for big-endian systems.
10183
10184 2002-01-24  Jason Merrill  <jason@redhat.com>
10185
10186         PR c++/2432
10187         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
10188         to can_throw_internal.
10189
10190 2002-01-23  Richard Henderson  <rth@redhat.com>
10191
10192         * fold-const.c (fold): Change UINT_MAX test to check vs precision
10193         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
10194
10195 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10196
10197         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
10198         (symGOT2reg): Use them, then set as GOT value as unchanging.
10199         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
10200         as a temporary, if possible.
10201         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
10202         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
10203
10204 2002-01-23  Kazu Hirata  <kazu@hxi.com>
10205
10206         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
10207         accept to accept 0x80 as operands[2].
10208
10209 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10210
10211         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
10212
10213 2002-01-23  Richard Henderson  <rth@redhat.com>
10214
10215         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
10216
10217 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
10218
10219         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
10220         (parmlist_or_identifiers_1): Verify that only a parmlist follows
10221         an attribute.
10222
10223 2002-01-23  Richard Henderson  <rth@redhat.com>
10224
10225         * expr.c (move_by_pieces_1): Extend size before negation.
10226
10227         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
10228         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
10229         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
10230         * config/m68k/t-m68kelf: Likewise.
10231
10232 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
10233
10234         * config/xtensa/elf.h: New file.
10235         * config/xtensa/lib1funcs.asm: New file.
10236         * config/xtensa/lib2funcs.S: New file.
10237         * config/xtensa/linux.h: New file.
10238         * config/xtensa/t-xtensa: New file.
10239         * config/xtensa/xtensa-config.h: New file.
10240         * config/xtensa/xtensa-protos.h: New file.
10241         * config/xtensa/xtensa.c: New file.
10242         * config/xtensa/xtensa.h: New file.
10243         * config/xtensa/xtensa.md: New file.
10244         * config.gcc (xtensa-*-elf*): New target.
10245         (xtensa-*-linux*): New target.
10246         * cse.c (canon_hash): Compare rtx pointers instead of register
10247         numbers.  This is required for the Xtensa port.
10248         * integrate.c (copy_insn_list): Handle case where the static
10249         chain is in memory and the memory address has to be copied to
10250         a register.
10251         * doc/invoke.texi (Option Summary): Add Xtensa options.
10252         (Xtensa Options): New node.
10253         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
10254
10255 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
10256
10257         * diagnostic.c (internal_error): Do ICE suppression only
10258         when ENABLE_CHECKING is not defined.
10259
10260         * c-typeck.c (require_complete_type): Return error_mark_node
10261         if type is error_mark_node.
10262
10263 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
10264
10265         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
10266         -Os and issue a warning.
10267
10268 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
10269
10270         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
10271         current (lack of) need for host configuration by hand.
10272
10273         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
10274         references.  Documentation of some target macros moved from
10275         hostconfig.texi to tm.texi.
10276
10277 2002-01-23  Will Cohen  <wcohen@redhat.com>
10278
10279         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
10280         defined.
10281
10282 2002-01-23  Kazu Hirata  <kazu@hxi.com>
10283
10284         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
10285         operand[3].
10286
10287 2002-01-23  Jason Merrill  <jason@redhat.com>
10288
10289         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
10290
10291         * function.c (assign_parms): Don't put args of inline functions
10292         into registers when not optimizing.
10293
10294 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
10295
10296         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
10297         (prologue_use): New pattern.
10298         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
10299         preference to gen_rtx_USE.
10300         (thumb_expand_prologue): Use gen_prologue_use in preference to
10301         gen_rtx_USE.
10302         (thumb_expand_epilogue): Use gen_prologue_use in preference to
10303         gen_rtx_USE.
10304
10305 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
10306
10307         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
10308
10309 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10310
10311         PR c/3504
10312         * doc/extend.texi: Correct documentation of __alignof__.
10313
10314 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
10315
10316         * params.h: Rename arguments of DEFPARAM so that it will be
10317         recognized as a translation keyword.
10318
10319 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10320
10321         * extend.texi: Document altivec functions.
10322         Fix N-bit adjectives in X86 builtin documentation.
10323
10324 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
10325
10326         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
10327         auto_inc_dec values.
10328
10329 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
10330
10331         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
10332         after backslash.
10333         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
10334
10335 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
10336
10337         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
10338
10339 2002-01-22  Richard Henderson  <rth@redhat.com>
10340
10341         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
10342         copy_insn not copy_rtx.
10343
10344 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
10345
10346         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
10347         "nonzero" as that might add "1" bits.  Ensure "constop" is
10348         properly sign extened.
10349         (force_to_mode): Tweak for sign extended constop.
10350
10351 2002-01-22  Richard Henderson  <rth@redhat.com>
10352
10353         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
10354         for_each_rtx instead of assuming we're already looking at the MEM.
10355         (split_small_symbolic_mem_operand): Likewise.
10356         * config/alpha/alpha.h (PREDICATE_CODES): Update.
10357         * config/alpha/alpha.md (small symbolic memory splitters): Update.
10358
10359 2002-01-22  Richard Henderson  <rth@redhat.com>
10360
10361         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
10362         sequence number for the literal.
10363         (divmoddi_internal_er): Likewise.
10364
10365 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10366
10367         PR java/4972
10368         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
10369         in LIBICONV variable.
10370         * configure: Regenerated.
10371
10372 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
10373
10374         * dependence.c (build_def_use): Remove array_idx.
10375
10376         * dwarfout.c (last_filename): Remove.
10377         (output_compile_unit_die): Remove last_filename.
10378
10379 2002-01-22  Roger Sayle  <roger@eyesopen.com>
10380             Richard Henderson  <rth@redhat.com>
10381
10382         PR opt/3640
10383         * fold-const.c (fold): Optimize unsigned comparisons against
10384         UINT_MAX (and similar unsigned constants).
10385
10386 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
10387
10388         * Makefile.in (loop.o): Depend on OPTABS_H.
10389         * loop.c (emit_prefetch_instructions): Check the prefetch operand
10390         against the predicate.
10391
10392         PR target/5379
10393         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
10394         for the address operand.
10395
10396 2002-01-22  Richard Henderson  <rth@redhat.com>
10397
10398         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
10399
10400 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10401
10402         PR other/5450
10403         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
10404         preprocessor flags.
10405
10406 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
10407
10408         * config.gcc (x86_64-*-netbsd*): New target.
10409         * config/i386/netbsd64.h: New file.
10410
10411 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10412
10413         * regrename.c (kill_value): Fix typo.
10414
10415 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10416
10417         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
10418
10419         * config/rs6000/rs6000.h: Same.
10420
10421         * function.c (instantiate_virtual_regs): Remove
10422         STARTING_FRAME_PHASE.
10423         (assign_stack_local_1): Same.
10424         Calculate frame phase.
10425
10426 2002-01-22  Nick Clifton  <nickc@redhat.com>
10427
10428         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
10429         variable declaration to outer scope in order to simplify
10430         future extensions.
10431         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
10432         arm_hard_regno_mode_ok.
10433         * config/arm/arm-protos.h: Add a prototype for
10434         arm_hard_regno_mode_ok.
10435         * config/arm/arm.c (soft_df_operand): Remove now redundant
10436         check for DImode values using IP_REGNUM.
10437         (nonimmediate_soft_df_operand): Remove now redundant check for
10438         DImode values using IP_REGNUM.
10439         (arm_hard_regno_mode_ok): New function. New check: make sure
10440         that DImode values are not stored in IP_REGNUM.
10441
10442         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
10443         note with a USE.
10444         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
10445
10446 2002-01-22  Jason Merrill  <jason@redhat.com>
10447
10448         * c-semantics.c (genrtl_compound_stmt): Only check nesting
10449         consistency if this COMPOUND_STMT is scoped.
10450
10451 2002-01-22  Kazu Hirata  <kazu@hxi.com>
10452
10453         * predict.c: Fix formatting.
10454         * print-tree.c: Likewise.
10455         * protoize.c: Likewise.
10456         * real.h: Likewise.
10457         * rtl.h: Likewise.
10458         * sbitmap.h: Likewise.
10459         * scan.c: Likewise.
10460         * sched-deps.c: Likewise.
10461         * sched-vis.c: Likewise.
10462         * sdbout.c: Likewise.
10463         * sibcall.c: Likewise.
10464         * ssa.c: Likewise.
10465         * ssa-ccp.c: Likewise.
10466         * ssa-dce.c: Likewise.
10467         * stmt.c: Likewise.
10468         * stor-layout.c: Likewise.
10469         * system.h: Likewise.
10470
10471 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10472
10473         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
10474         if fits in bounds of base type.
10475
10476         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
10477         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
10478         (add_bound_info, default): If can't find a context, make a
10479         SAVE_EXPR.
10480         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
10481
10482 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
10483
10484         * c-typeck.c (parser_build_binary_op): If result from
10485         build_binary_op is ERROR_MARK just return error_mark_node without
10486         further processing.
10487
10488 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
10489
10490         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
10491         Split a.out-specific bits into...
10492         * config/netbsd-aout.h: ...this.
10493         * config/netbsd-elf.h: New file.
10494         * config/alpha/netbsd-elf.h: Remove.
10495         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
10496         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
10497         (STARTFILE_SPEC): Remove redundant definition.
10498         (ENDFILE_SPEC): Likewise.
10499         (LINK_SPEC): Likewise.
10500         (CPP_SPEC): Likewise.
10501         (ASM_SPEC): Likewise.
10502         (LIB_SPEC): Likewise.
10503         (SWITCH_TAKES_ARG): Likewise.
10504         (TARGET_MEM_FUNCTIONS): Likewise.
10505         (CPP_PREDEFINES): Redefine.
10506         (ASM_FINAL_SPEC): Remove redefinition.
10507         (ASM_COMMENT_START): Redefine.
10508         (FUNCTION_PROFILER): Define.
10509         (TARGET_VERSION): Redefine.
10510         Comment and formatting cleanup.
10511         * config/i386/netbsd.h: Include <netbsd-aout.h>.
10512         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
10513         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
10514         big- or little-endian.
10515         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
10516         * config.gcc (*-*-netbsd*): Add definitions common to all
10517         NetBSD configs.
10518         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
10519         gnu_ld definitions.  Add netbsd-elf.h to and remove
10520         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
10521         tmake_file, and don't lose previous tmake_file contents.
10522         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
10523         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
10524         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
10525         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
10526         (mipsel-*-netbsd*): Rename this to...
10527         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
10528         mips/little.h to tm_file for mips*el-*.
10529         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
10530         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
10531         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
10532
10533 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10534
10535         * pa-protos.h (reg_before_reload_operand): New function prototype.
10536         * pa.c (reg_before_reload_operand): New function implementation.
10537         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
10538         contraints to "*m".
10539
10540 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10541
10542         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
10543
10544 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10545
10546         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
10547         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
10548         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
10549         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
10550         (ENDFILE_SPEC): Undefine.
10551         (STARTFILE_SPEC): Redefine for PA.
10552
10553 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10554
10555         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
10556
10557 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
10558
10559         * config.gcc: Add entries to supported PowerPC --with-cpu
10560         types.
10561
10562 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
10563
10564         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
10565         true for 64-bit mode only SSE registers in 32-bit mode.
10566
10567 2002-01-21  Kazu Hirata  <kazu@hxi.com>
10568
10569         * unwind-dw2.c: Fix formatting.
10570         * unwind-dw2-fde.c: Likewise.
10571         * unwind-dw2-fde.h: Likewise.
10572         * unwind-pe.h: Likewise.
10573         * varasm.c: Likewise.
10574         * varray.h: Likewise.
10575
10576 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
10577
10578         Remove workaround for register stack overwrite bug in mmix.
10579         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
10580         support for TARGET_REG_STACK_FILL_BUG.
10581         * config/mmix/mmix.h: Remove member has_call_without_parameters.
10582         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
10583         Delete.
10584         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
10585         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
10586         -mno-reg-stack-fill-bug-workaround.
10587         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
10588         machine member has_call_without_parameters.
10589         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
10590         -mreg-stack-fill-bug-workaround and
10591         -mno-reg-stack-fill-bug-workaround.
10592         (MMIX Options): Ditto.
10593
10594 2002-01-21  Kazu Hirata  <kazu@hxi.com>
10595
10596         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
10597         as appropriate.
10598         Remove redundant code.
10599
10600 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10601
10602         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
10603         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
10604         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
10605         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
10606         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
10607         out target macro definitions and non-target-specific comments
10608         mostly taken from old versions of the manual.
10609
10610 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10611
10612         * config/h8300/h8300.h: Fix comment formatting.
10613         * config/ia64/aix.h: Likewise.
10614         * config/ia64/ia64-protos.h: Likewise.
10615         * config/ia64/ia64.c: Likewise.
10616         * config/ia64/ia64.h: Likewise.
10617         * config/ia64/ia64intrin.h: Likewise.
10618         * config/ia64/linux.h: Likewise.
10619         * config/ia64/unwind-aix.c: Likewise.
10620         * config/ia64/unwind-ia64.c: Likewise.
10621
10622 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10623
10624         * config/h8300/h8300.c: Revise comments about shift code.
10625
10626 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10627
10628         * config/h8300/h8300.c (function_arg): Update a comment.
10629
10630 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10631
10632         * config/h8300/h8300.md: Update the comments at the beginning
10633         of the file.
10634
10635 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10636
10637         * config/i370/i370.c: Fix comment formatting.
10638         * config/i370/i370.h: Likewise.
10639         * config/i370/i370.md: Likewise.
10640         * config/i370/linux.h: Likewise.
10641
10642 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10643
10644         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
10645
10646         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
10647         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
10648         in incomplete case.
10649
10650 2002-01-20  Graham Stott  <grahams@redhat.com>
10651
10652         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
10653
10654 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10655
10656         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
10657
10658 2002-01-19  Tom Rix  <trix@redhat.com>
10659
10660         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
10661
10662 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
10663
10664         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
10665
10666         * function.c (assign_stack_local_1): Adjust x_frame_offset with
10667         STARTING_FRAME_PHASE.
10668         (STARTING_FRAME_PHASE): New.
10669         (instantiate_virtual_regs): Check saneness of
10670         STARTING_FRAME_PHASE.
10671
10672         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
10673
10674 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
10675
10676         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
10677
10678 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10679
10680         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
10681         be used for bootstrapping GCC 3.0.
10682
10683 2002-01-18  Kazu Hirata  <kazu@hxi.com>
10684
10685         * config/h8300/h8300.md: Fix an insn length.
10686
10687 2002-01-18  Kazu Hirata  <kazu@hxi.com>
10688
10689         * bitmap.h: Fix comment formatting.
10690         * combine.c: Likewise.
10691         * cppfiles.c: Likewise.
10692         * c-pragma.h: Likewise.
10693         * c-typeck.c: Likewise.
10694         * df.c: Likewise.
10695         * dwarf2out.c: Likewise.
10696         * function.c: Likewise.
10697         * gcc.c: Likewise.
10698         * genattrtab.c: Likewise.
10699         * gthr-win32.h: Likewise.
10700         * haifa-sched.c: Likewise.
10701         * predict.c: Likewise.
10702         * rtlanal.c: Likewise.
10703         * rtl.h: Likewise.
10704         * unwind-dw2-fde.h: Likewise.
10705         * unwind-pe.h: Likewise.
10706         * vmsdbgout.c: Likewise.
10707
10708 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10709
10710         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
10711         if type_required and passed decl.
10712
10713 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
10714
10715         * config.gcc (cpu_type): Include altivec.h in powerpc
10716         extra_headers.
10717         Same for darwin.
10718
10719         * config/rs6000/altivec.h: New.
10720
10721 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
10722
10723         * doc/install.texi (*-ibm-aix*): Update assembler and exception
10724         handling information.
10725         * doc/trouble.texi (Interoperation): Add libstdc++ information
10726         for AIX.
10727         (Misunderstandings): Add template instantiation and static template
10728         member information for AIX.
10729
10730 2002-01-17  Jason Merrill  <jason@redhat.com>
10731
10732         * dbxout.c (dbxout_type): Support const and volatile.
10733
10734         * except.c (add_partial_entry): Remove backwards compatibility code.
10735         (end_protect_partials): Likewise.
10736
10737 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
10738
10739         * config/ia64/ia64.md (prologue_use): New.
10740         * config/ia64/ia64.c (ia64_expand_prologue): Use
10741         gen_prologue_use instead of gen_rtx_USE.
10742         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
10743         as CODE_FOR_pred_rel_mutex.
10744         (ia64_sched_reorder2): Likewise.
10745
10746 2002-01-16  Eric Christopher  <echristo@redhat.com>
10747
10748         * config/mips/r3900.h: Reformat.
10749         (SUBTARGET_CPP_SIZE_SPEC): Remove.
10750         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
10751         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
10752         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
10753         * config/mips/t-elf: Remove mips3 multilib.
10754
10755 2002-01-16  H.J. Lu <hjl@gnu.org>
10756
10757         * config/mips/linux.h: Include "mips/abi64.h".
10758
10759 2002-01-16  H.J. Lu <hjl@gnu.org>
10760
10761         * config/mips/t-linux: New.
10762
10763         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
10764
10765         * config/mips/linux.h: Don't include "gofast.h".
10766         (INIT_SUBTARGET_OPTABS): Removed.
10767
10768 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10769
10770         * config/h8300/h8300-protos.h: Replace emit_a_shift with
10771         output_a_shift.
10772         * config/h8300/h8300.c: Likewise.
10773         * config/h8300/h8300.md: Likewise.
10774
10775 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10776
10777         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
10778         spaces after an opcode name.
10779         (pushqi1_h8300hs): Likewise.
10780         (pushhi1_h8300hs): Likewise.
10781
10782 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10783
10784         * doc/extend.texi: Replace "option" with "attribute"
10785         appropriately.
10786
10787 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
10788
10789         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
10790         (and:DI () (const_int -8)).
10791         (split_small_symbolic_mem_operand): Split
10792         (mem (and:DI () (const_int -8)).
10793
10794 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
10795
10796         PR target/5309:
10797         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
10798         same way as TYPE_IMUL.
10799         (ultrasparc_sched_reorder): Likewise.
10800         * config/sparc/sparc.md (type): Add comment to update
10801         ultrasparc_sched_reorder when making changes.
10802
10803 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10804
10805         * doc/invoke.texi: Change the dump file name of block
10806         reordering pass from 28.bbro to 29.bbro.
10807         Mention -dk option.
10808
10809 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
10810
10811         * i386.md (minsf splitter): Fix pasto.
10812
10813 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
10814
10815         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
10816         to frame pointer initialisation instruction.
10817         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
10818         initialisation instruction.
10819         (soft_df_operand): Do not accept the IP register.
10820         (nonimmediate_soft_df_operand): Do not accept the IP register.
10821
10822 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
10823
10824         PR target/5357:
10825         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
10826         MASK_V8 being both set.
10827
10828 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
10829
10830         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
10831         insn for GOT register; add REG_MAYBE_DEAD notes instead.
10832         config/s390/s390.md (call, call_value): Add GOT register to
10833         CALL_INSN_FUNCTION_USAGE where needed.
10834         (call_exp, call_value_exp): New.
10835
10836 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
10837
10838         * config/arm/arm.c: General formatting tidy up.
10839
10840 2002-01-16  Graham Stott  <grahams@redhat.com>
10841
10842         * calls.c (try_to_integrate): Use "(size_t)" intermediate
10843         cast and when casting an integer literal to "rtx" pointer.
10844         (expand_call): Likewise.
10845         * flow.c (try_pre_increment): Likewise.
10846         (find_use_as_address): Likewise.
10847         * integrate.c (expand_iline_function): Likewise.
10848         * regmove.c (try_auto_increment): Likewise.
10849
10850 2002-01-16  Graham Stott  <grahams@redhat.com>
10851
10852         * sched-rgn.c (passed): Use sbitmap_free.
10853         (header): Likewise.
10854         (inner): Likewise.
10855         (in_queue): Likewise.
10856         (in_stack): Likewise.
10857
10858 2002-01-15  Eric Christopher  <echristo@redhat.com>
10859
10860         * flow.c (propagate_one_insn): Change to use fatal_insn.
10861
10862 2002-01-15  Kazu Hirata  <kazu@hxi.com>
10863
10864         * expmed.c (extract_fixed_bit_field): Remove unused code.
10865         * system.h: Poison SLOW_ZERO_EXTEND.
10866         * doc/tm.texi: Remove.
10867         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
10868         * config/arm/arm.h: Likewise.
10869         * config/avr/avr.h: Likewise.
10870         * config/clipper/clipper.h: Likewise.
10871         * config/convex/convex.h: Likewise.
10872         * config/d30v/d30v.h: Likewise.
10873         * config/dsp16xx/dsp16xx.h: Likewise.
10874         * config/elxsi/elxsi.h: Likewise.
10875         * config/fr30/fr30.h: Likewise.
10876         * config/h8300/h8300.h: Likewise.
10877         * config/i370/i370.h: Likewise.
10878         * config/i386/i386.h: Likewise.
10879         * config/m68k/m68k.h: Likewise.
10880         * config/mips/mips.h: Likewise.
10881         * config/ns32k/ns32k.h: Likewise.
10882         * config/pdp11/pdp11.h: Likewise.
10883         * config/pj/pj.h: Likewise.
10884         * config/s390/s390.h: Likewise.
10885         * config/sh/sh.h: Likewise.
10886         * config/stormy16/stormy16.h: Likewise.
10887         * config/v850/v850.h: Likewise.
10888         * config/vax/vax.h: Likewise.
10889         * config/we32k/we32k.h: Likewise.
10890
10891 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
10892
10893         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
10894         (altivec_lvsl): Change constraint to b.
10895         (altivec_lvsr): Same.
10896         (altivec_lvebx): Same.
10897         (altivec_lvehx): Same.
10898         (altivec_lvewx): Same.
10899         (altivec_lvxl): Same.
10900         (altivec_lvx): Same.
10901         (altivec_stvx): Add parallel.
10902         (altivec_stvxl): Same.
10903         (altivec_stvehx): Same.
10904         (altivec_stvebx): Same.
10905         (altivec_stvebx): Same.
10906
10907 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
10908
10909         * config.gcc: Change altivec.h to altivec-defs.h.
10910
10911         * config/rs6000/altivec.h: Delete.
10912
10913         * config/rs6000/altivec-defs.h: Add.
10914
10915 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10916
10917         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
10918         and UMOD modes.
10919
10920         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
10921         less than or equal to eight bytes.
10922
10923         * vax.md (andsi3): Remove constraints and change SET destination
10924         operand type to nonimmediate_operand.
10925         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
10926         when it is a CONST_INT.
10927
10928 2002-01-15  Jason Merrill  <jason@redhat.com>
10929
10930         * c-common.def (FILE_STMT): New code.
10931         * c-common.c (statement_code_p): It's a statement.
10932         * c-common.h (stmt_tree_s): Add x_last_filename.
10933         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
10934         (last_expr_filename): New macro.
10935         * c-semantics.c (begin_stmt_tree): Initialize it.
10936         (add_stmt): If the filename changed, also insert a
10937         FILE_STMT.
10938         (expand_stmt): Handle seeing one.
10939
10940 2002-01-15  Eric Christopher  <echristo@redhat.com>
10941
10942         * flow.c (propagate_one_insn): Add error message and print out
10943         insn for debugging.
10944
10945 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
10946
10947         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
10948         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
10949         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
10950         TRAMPOLINE_ALIGNMENT.
10951         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
10952         to be in bits.
10953         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
10954         PCC_BITFIELD_TYPE_MATTERS.
10955         * config/interix.h (STDC_VALUE): Remove.  Use
10956         STDC_0_IN_SYSTEM_HEADERS.
10957         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
10958         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
10959         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
10960
10961 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10962
10963         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
10964         not work on this platform currently.
10965
10966 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
10967
10968         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
10969         readonly_warning in _().
10970
10971 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
10972
10973         * gcc.c (delete_if_ordinary): Backout previous change.
10974
10975 2002-01-15  Kazu Hirata  <kazu@hxi.com>
10976
10977         * config/h8300/h8300.c (print_operand): Remove support for
10978         unused operand characters.
10979
10980         * read-rtl.c: Fix formatting.
10981         * real.c: Likewise.
10982         * recog.c: Likewise.
10983         * regclass.c: Likewise.
10984         * regmove.c: Likewise.
10985         * reg-stack.c: Likewise.
10986         * reload1.c: Likewise.
10987         * rtlanal.c: Likewise.
10988
10989 2002-01-15  Kazu Hirata  <kazu@hxi.com>
10990
10991         * config/i386/i386.c: Fix formatting.
10992
10993 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
10994
10995         * c-typeck.c (process_init_element): Don't save_expr
10996         COMPOUND_LITERAL_EXPR if just its initializer will be used.
10997
10998 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
10999
11000         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
11001         emit optional traceback table if optimize_size or TARGET_ELF.
11002         * config/rs6000/rs6000.md (prefetch): New.
11003
11004 2002-01-15  Andreas Jaeger  <aj@suse.de>
11005
11006         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
11007
11008 2002-01-15  Kazu Hirata  <kazu@hxi.com>
11009
11010         * mips-tfile.c: Fix formatting.
11011
11012 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
11013
11014         * unroll.c (final_reg_note_copy): Fix previous commit.
11015
11016 2002-01-14  Kazu Hirata  <kazu@hxi.com>
11017
11018         * config/h8300/h8300-protos.h: Remove the prototype for
11019         eq_operator.
11020         * config/h8300/h8300.c (eq_operator): Remove.
11021
11022 2002-01-14  Richard Henderson  <rth@redhat.com>
11023
11024         * config/i386/i386.md (prefetch): Tidy.
11025         (prefetch_3dnow): Fix locality operand.
11026
11027 2002-01-14  Richard Henderson  <rth@redhat.com>
11028
11029         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
11030         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
11031
11032 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
11033
11034         * reload1.c (reload_combine): Pass reg_sum replacement through
11035         copy_rtx in loop performing multiple changes.
11036
11037 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
11038
11039         * except.c (remove_unreachable_regions): New.
11040         (free_eh_status): Clear exception_handler_labels.
11041         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
11042         (find_exception_handler_labels): Don't add the same label more than
11043         once.
11044         (remove_exception_handler_label): Don't die if
11045         find_exception_handler_labels hasn't been called for the current
11046         function yet.
11047
11048 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
11049
11050         * toplev.c (rest_of_compilation): Rebuild jump labels after
11051         gcse.
11052
11053 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
11054
11055         * doc/extend.texi: Move documentation of X86 built-in functions
11056         here.
11057         * doc/invoke.texi: From here.
11058         * doc/sourcebuild.texi: Document location of documentation for
11059         machine built-in functions.
11060
11061 2002-01-13  Christopher Faylor  <cgf@redhat.com>
11062
11063         * cppfiles.c (TEST_THRESHOLD): New macro.
11064         (SHOULD_MMAP): Ditto.
11065         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
11066         be used.
11067
11068 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
11069
11070         * unroll.c (final_reg_note_copy): Properly handle
11071         REG_LABEL
11072         (unroll_loops): Fix LOOP_CONDITION heuristics.
11073
11074 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
11075
11076         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
11077         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
11078
11079 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
11080
11081         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
11082         threaded loop.
11083
11084 2002-01-14  Tom Rix  <trix@redhat.com>
11085
11086         * config/rs6000/rs6000.md: Fix typo with sradi.
11087
11088 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
11089
11090         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
11091         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
11092         (clrstrdi, clrstrsi): Adapt callers.
11093
11094         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
11095
11096         (movti splitter): Never use register 0 as base register.
11097
11098 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
11099
11100         * combine.c (simplify_shift_const): Always generate new rtx
11101         for shift expression instead of reusing given expression.
11102
11103 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11104
11105         * config/alpha/alpha.c (alpha_expand_mov): Don't call
11106         alpha_legitimize_address unless mode is Pmode.
11107
11108 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
11109
11110         * doc/md.texi (Modifiers): Document the '*' constraint for the
11111         user.
11112
11113         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
11114         * doc/extend.texi (Function Attributes): 'interrupt' is valid
11115         for xstormy16 too.
11116
11117 2002-01-13  Richard Henderson  <rth@redhat.com>
11118
11119         * reload.c (find_reloads): Use a hard reg destination as reload reg
11120         for an input reload of the source.
11121
11122 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11123
11124         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
11125         more generic.
11126
11127 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
11128
11129         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
11130         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
11131
11132         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
11133
11134 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11135
11136         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
11137
11138 2002-01-12  Tom Rix  <trix@redhat.com>
11139
11140         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
11141         TARGET_POWERPC64.
11142
11143 2002-01-12  Richard Henderson  <rth@redhat.com>
11144
11145         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
11146
11147         * doc/invoke.texi: Update Alpha options.
11148
11149         * doc/invoke.texi: Update i386 built-in function lists.
11150
11151 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
11152
11153         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
11154         referencing outside.
11155
11156 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11157
11158         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
11159         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
11160         offsets, and change line folding.
11161         * optabs.c (expand_binop): Remove warnings.
11162         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
11163
11164 2002-01-12  Graham Stott <grahams@redhat.com>
11165
11166         * attribs.c (handle_deprecated_attribute): constify WHAT.
11167         * diagnostic.c (warn_deprecated_use): Add braces, fixes
11168         dangling else warning and constify WHAT.
11169         * except.h (struct function, struct inline_remap): Move
11170         struct tag forward defs before all prototypes.
11171         (duplicate_eh_regions): Whitespace.
11172
11173 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
11174
11175         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
11176         MODE_BASE_REG_CLASS.
11177         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
11178
11179 2002-01-12  Richard Henderson  <rth@redhat.com>
11180
11181         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
11182         (ix86_expand_vector_move): New.
11183         (bdesc_2arg): Remove andps, andnps, orps, xorps.
11184         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
11185         Remove old prefetch builtins.  Special case the logicals removed above.
11186         (ix86_expand_builtin): Likewise.
11187         (safe_vector_operand): Use V4SFmode, not TImode.
11188         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
11189         (ix86_expand_timode_binop_builtin): New.
11190         * config/i386/i386-protos.h: Update.
11191         * config/i386/i386.h (enum ix86_builtins): Update.
11192         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
11193         Use ix86_expand_vector_move in vector move expanders.
11194         (movti_internal, movti_rex64): Add xorps alternative.
11195         (sse_clrv4sf): Rename and adjust from sse_clrti.
11196         (prefetch): Don't work so hard.
11197         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
11198         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
11199         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
11200
11201 2002-01-11  Richard Henderson  <rth@redhat.com>
11202
11203         * config/i386/mmintrin.h: New file.
11204         * config/i386/xmmintrin.h: New file.
11205         * config.gcc (i?86-*-*): Add extra_headers.
11206         * simplify-rtx.c (simplify_unary_operation): Handle saturating
11207         truncation codes.
11208         (simplify_binary_operation): Handle saturating arithmetic codes.
11209         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
11210         not the lowpart subreg.
11211         (ix86_expand_builtin): Return a TImode dummy register instead of 0
11212         on error.
11213         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
11214
11215 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11216
11217         * conflict.c (conflict_graph_compute): Free regsets when finished.
11218         * ssa.c (compute_coalesced_reg_partition): Likewise.
11219
11220 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11221
11222         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
11223         every where we allocate a register.
11224
11225 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11226
11227         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
11228         * lcm.c (compute_earliest, compute_farthest): Likewise.
11229
11230 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
11231
11232         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
11233
11234 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
11235
11236         * doc/rtl.texi (Insns): Fix 2 typos.
11237
11238 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
11239
11240         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
11241         options.  Use @table @gcctabopt for MMIX options.  Add index
11242         entries for MMIX options.  Start new paragraph with first
11243         heading of the machine-dependent options.
11244
11245 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11246
11247         PR other/5299
11248         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
11249         * combine.c (force_to_mode): Same.
11250         * reload1.c (clear_reload_reg_in_use): Same.
11251
11252 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
11253
11254         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
11255         and 'subtargets'.
11256
11257 2002-01-11  Andreas Jaeger  <aj@suse.de>,
11258             Brad Lucier <lucier@math.purdue.edu>
11259
11260         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
11261         mcpu.
11262
11263 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
11264
11265         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
11266         Protect with IN_LIBGCC.
11267         (LINK_EH_SPEC): Add required trailing space.
11268
11269 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
11270
11271         * c-tree.h: Move function declarations so that they are listed
11272         under the filename which contains them.
11273         (check_identifier, finish_decl_top_level,
11274         lookup_name_current_level_global, shadow_record_fields): Remove.
11275
11276 2002-01-11  Andreas Jaeger  <aj@suse.de>
11277
11278         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
11279         march.
11280
11281 2002-01-10  Richard Henderson  <rth@redhat.com>
11282
11283         * config/alpha/alpha.c (print_operand): Add 'J'.
11284         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
11285         new operand with the sequence number for the lituse.  When splitting
11286         the insns, use gen_movdi_er_high_g and generate a sequence number.
11287         (gen_movdi_er_high_g): Print the sequence number if non-zero.
11288
11289 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
11290
11291         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
11292         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
11293         stvxl.
11294         (altivec_expand_builtin): Same.
11295         (altivec_expand_stv_builtin): New.
11296
11297         * config/rs6000/rs6000.h (rs6000_builtins): Same.
11298
11299         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
11300         ("altivec_lvehx"): New.
11301         ("altivec_lvewx"): New.
11302         ("altivec_lvxl"): New.
11303         ("altivec_lvx"): New.
11304         ("altivec_stvx"): New.
11305         ("altivec_stvebx"): New.
11306         ("altivec_stvehx"): New.
11307         ("altivec_stvewx"): New.
11308         ("altivec_stvxl"): New.
11309
11310 2002-01-10  Richard Henderson  <rth@redhat.com>
11311
11312         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
11313         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
11314         care not to delete instructions twice.
11315
11316 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
11317
11318         * toplev.c: Don't declare environ (it's not used anywhere).
11319         * configure.in: Don't check for declaration of environ.
11320         * config/i386/xm-mingw32.h: Don't #define environ.
11321         * config.in, configure: Regenerate.
11322
11323 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
11324
11325         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
11326         * configure: Regenerate.
11327
11328         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
11329         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
11330         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
11331         alpha/xm-vms.h.
11332         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
11333         LIMITS_H_TEST here, not in m68k/x-next.
11334         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
11335         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
11336
11337         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
11338         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
11339         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
11340
11341         * config/i386/x-djgpp: Renamed i386/t-djgpp.
11342         * config/m88k/x-dolph: Renamed m88k/t-dolph.
11343         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
11344         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
11345         replacement of quadlib.asm with quadlib.c.
11346
11347         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
11348         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
11349         config/rs6000/xm-beos.h: Delete file.
11350
11351         * config.gcc: Update to match above changes.
11352
11353 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11354
11355         * config/h8300/h8300.h: Fix comment typos.
11356         * config/h8300/h8300.md: Likewise.
11357         * config/h8300/lib1funcs.asm: Likewise.
11358
11359 2002-01-10  Dale Johannesen  <dalej@apple.com>
11360
11361         PR optimization/5269
11362         * unroll.c (precondition_loop_p): Make *increment be the correct
11363         sign when n_iterations known, to avoid confusing caller.
11364
11365 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11366
11367         * doc/extend.texi (deprecated): Fix a typo.
11368
11369 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
11370
11371         * basic-block.h (update_br_prob_note): Declare.
11372         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
11373         (try_forward_edges): Care negative frequencies and update note.
11374         (outgoing_edges_match): Tweek conditional merging heuristics.
11375         (try_crossjump_to_edge): use update_br_prob_note.
11376         * cfglayout.c (fixup_reorder_chain): Likewise.
11377         * cfrtl.c (update_br_prob_note): New.
11378         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
11379
11380         * i386.c (ix86_decompose_address): Return -1 if address contains
11381         shift.
11382         (legitimate_address_p): Require ix86_decompose_address to return 1.
11383
11384         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
11385         (cprop_insn): Likewise.
11386
11387 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11388
11389         * toplev.c: Fix formatting.
11390         * tree.c: Likewise.
11391         * tree-dump.c: Likewise.
11392         * unroll.c: Likewise.
11393         * unwind-dw2.c: Likewise.
11394         * unwind-dw2-fde.c: Likewise.
11395         * unwind-dw2-fde-glibc.c: Likewise.
11396         * unwind-sjlj.c: Likewise.
11397
11398 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
11399
11400         * doc/invoke.texi: Document PDP-11 options.
11401
11402 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11403
11404         * config/h8300/h8300.h: Fix formatting.
11405
11406 2002-01-10  Ira Ruben   <ira@apple.com>
11407
11408         Add __attribute__ ((deprecated)).
11409         * extend.texi: Document __attribute__ ((deprecated)).
11410         * invoke.texi: Document -Wno-deprecated-declarations.
11411         * testsuite/g++.dg/other/deprecated.C: New C++ test.
11412         * testsuite/gcc.dg/deprecated.c: New C test.
11413         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
11414         (c_common_attribute_table): Add "deprecated" entry.
11415         (handle_deprecated_attribute): New function.
11416         * c-decl.c (deprecated_states): New enum.
11417         deprecated_state: State of "deprecated" handling.
11418         (start_decl): Set deprecated_state based on attributes.
11419         (grokdeclarator): Test for deprecated uses, propagate attribute.
11420         * c-typeck.c (build_component_ref): Test for deprecated fields.
11421         (build_external_ref): Test for deprecated primaries.
11422         * diagnostic.c (warn_deprecated_use) New function to issue
11423         warnings about __attribute__ ((depricated)) references.
11424         * flags.h (warn_deprecated_decl): Extern declared for
11425         -W[no-]deprecated-declarations option.
11426         * print-tree.c (print_node): Show deprecated flag status.
11427         * toplev.c (warn_deprecated_decl): Defined.
11428         (W_options): Added "deprecated-declaration".
11429         * toplev.h (warn_deprecated_use): Extern declared.
11430         * tree.h (struct tree_common): Define deprecated_flag.
11431         (TREE_DEPRECATED): New macro to access flag.
11432         * cp/call.c (build_call): Test for deprecated calls.
11433         * cp/class.c (add_implicitly_declared_members): Set global
11434         flag to tell grokdeclarator to not issue deprecated warnings.
11435         * cp/cp-tree.h: Add extern for adding_implicit_members.
11436         * cp/decl.c (deprecated_states): New enum.
11437         (start_decl): Set deprecated_state based on attributes.
11438         (grokdeclarator): Test for deprecated uses, propagate attribute.
11439         * cp/lex.c (do_identifier): Test for deprecated primaries.
11440         * cp/typeck.c (build_component_ref): Test for deprecated fields.
11441
11442 2002-01-10  Ira Ruben   <ira@apple.com>
11443
11444         Fix to assign attributes to inline member functions.
11445         * cp/decl.c (start_method): Handle attrlist.
11446
11447 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11448
11449         * combine.c (expand_field_assignment): Use subreg_lsb().
11450
11451 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
11452
11453         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
11454         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
11455         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
11456         Recurse for any operand of AND as long as constant is non-zero.
11457
11458 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11459
11460         * config/h8300/h8300.md: Remove constraints from expanders.
11461
11462 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11463
11464         * varasm.c: Fix formatting.
11465         * varray.c: Likewise.
11466         * vmsdbgout.c: Likewise.
11467         * xcoffout.c: Likewise.
11468
11469 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
11470
11471         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
11472         update edge probabilities to match.
11473
11474 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
11475
11476         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
11477         dependencies.
11478         * doc/languages.texi, doc/sourcebuild.texi: New files.
11479         * doc/configfiles.texi: Make a subsubsection.  Update.
11480         * doc/configterms.texi: Add @node.  Remove warning that this isn't
11481         instructions for building GCC.
11482         * doc/makefile.texi: Make a subsection.
11483         * doc/gccint.texi: Update.
11484
11485 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
11486
11487         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
11488
11489 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
11490
11491         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
11492
11493 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
11494
11495         * optabs.c (expand_fix): Look for wider integer modes first.
11496
11497         * i386.md (mov?f): Avoid the fake const double trick for medium
11498         memory model.
11499         (min?f*/max?f*): Prohibit memory operands for i387 variant.
11500         (fop_df_4): Disable for SSE compilation.
11501
11502 2002-01-10  Graham Stott  <grahams@redhat.com>
11503
11504         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
11505         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
11506
11507 2002-01-10  Richard Henderson  <rth@redhat.com>
11508
11509         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
11510
11511 2002-01-10  Richard Henderson  <rth@redhat.com>
11512
11513         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
11514         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
11515
11516 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11517
11518         * combine.c (can_combine_p): Fix a comment typo.
11519
11520 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
11521
11522         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
11523         empty list correctly.  Change loop index $t to $f for
11524         consistency with rest of Makefile.
11525
11526 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
11527
11528         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
11529         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
11530
11531         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
11532         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
11533         (altivec_init_builtins): Same.
11534         (altivec_expand_unop_builtin): Return NULL_RTX on error.
11535         (altivec_expand_binop_builtin): Same.
11536         (altivec_expand_ternop_builtin): Same.
11537         (bdesc_dst): New.
11538
11539         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
11540         ("altivec_vctuxs"): Fix typo.
11541         ("altivec_vnmsubfp"): Same.
11542         ("altivec_dssall"): New.
11543         ("altivec_mfvscr"): New.
11544         ("altivec_dss"): New.
11545         ("altivec_lvsl"): New.
11546         ("altivec_lvsr"): New.
11547         ("altivec_dstt"): New.
11548         ("altivec_dstst"): New.
11549         ("altivec_dststt"): New.
11550         ("altivec_dst"): New.
11551
11552         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
11553         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
11554
11555 2002-01-09  Richard Henderson  <rth@redhat.com>
11556
11557         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
11558
11559 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
11560
11561         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
11562         function.
11563         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
11564         prototype.
11565         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
11566
11567 2002-01-09  Kazu Hirata  <kazu@hxi.com>
11568
11569         * read-rtl.c: Fix formatting.
11570         * real.c: Likewise.
11571         * regclass.c: Likewise.
11572         * regrename.c: Likewise.
11573         * reg-stack.c: Likewise.
11574         * reload1.c: Likewise.
11575         * reload.c: Likewise.
11576         * rtl.c: Likewise.
11577
11578 2002-01-09  Kazu Hirata  <kazu@hxi.com>
11579
11580         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
11581         to extract items in the expr_list chain.
11582
11583 2002-01-09  Richard Henderson  <rth@redhat.com>
11584
11585         * config/vax/vax.c (vax_rtx_cost): Never abort.
11586
11587         * config/vax/vax.h (REAL_ARITHMETIC): Define.
11588
11589 2002-01-09  Jan Hubicka  <jh@suse.cz>
11590
11591         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
11592
11593 2002-01-09  Richard Henderson  <rth@redhat.com>
11594
11595         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
11596         Unify code from various alternatives.
11597
11598 2002-01-09  Richard Henderson  <rth@redhat.com>
11599
11600         * regrename.c (copy_value): Ignore the copy if the source register
11601         is present in the value chain with a narrower mode.
11602
11603 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
11604
11605         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
11606         for the c4x target. Also improve layout.
11607
11608 2002-01-09  Richard Henderson  <rth@redhat.com>
11609
11610         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
11611         * config/m32r/m32r.md (and ior xor splitters): Swap operands
11612         to match insn patterns.
11613
11614 2002-01-09  Richard Henderson  <rth@redhat.com>
11615
11616         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
11617         (copyprop_hardreg_forward_1): Likewise.
11618
11619 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11620
11621         * pa.md (decrement_and_branch_until_zero): Change predicate for
11622         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
11623
11624 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
11625
11626         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
11627         gets undefined. For Darwin.
11628
11629 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11630
11631         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
11632
11633 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11634
11635         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
11636
11637 2002-01-08  Richard Henderson  <rth@redhat.com>
11638
11639         * regrename.c (copy_value): Ignore overlapping copies.
11640
11641 2002-01-08  Richard Henderson  <rth@redhat.com>
11642
11643         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
11644         as needed to avoid shared structure.
11645
11646 2002-01-08  Kazu Hirata  <kazu@hxi.com>
11647
11648         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
11649         H8/300H and H8/S.
11650
11651 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11652
11653         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
11654         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
11655         documentation of obsolete macros.
11656         * system.h: Poison these macros.
11657         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
11658         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
11659         config/c4x/c4x.h, config/clipper/clipper.h,
11660         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
11661         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
11662         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
11663         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
11664         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
11665         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
11666         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
11667         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
11668         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
11669         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
11670         config/sparc/sparc.h, config/stormy16/stormy16.h,
11671         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
11672         definitions and commented out definitions of obsolete macros.
11673         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
11674         of MAX_INT_TYPE_SIZE.
11675
11676 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
11677
11678         * config/s390/s390.c (s390_preferred_reload_class): Never
11679         return ADDR_REGS if it isn't a subset of the given class.
11680         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
11681         FP_REGS, but all superclasses as well.
11682
11683         * config/s390/s390.c (s390_function_profiler): Fix thinko.
11684
11685         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
11686         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
11687         must not be a const_int.
11688
11689 2002-01-08  Richard Henderson  <rth@redhat.com>
11690
11691         * Makefile.in (toplev.o): Depend on options.h.
11692         (gcc.o): Depend on specs.h.
11693
11694 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
11695
11696         * expr.c (store_expr): Convert VOIDmode constants back to target's
11697         mode.
11698
11699 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11700
11701         * doc/invoke.texi: Markup gcc as @command.  Refer to
11702         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
11703         of http://gcc.gnu.org/thanks.html.
11704
11705 2002-01-08  Dale Johannesen  <dalej@apple.com>
11706
11707         * config/rs6000/rs6000.md: Add missing int register
11708         target case to movdf_low.
11709
11710 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
11711
11712         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
11713         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
11714         (cppinit.o): Depend on except.h.
11715         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
11716         s-specs): New rules.
11717
11718         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
11719         Don't create specs.h/options.h/gencheck.h here.  Remove
11720         unnecessary variable settings from last argument of AC_OUTPUT.
11721         * config.in, configure: Regenerate.
11722         * intl.c: Hardcode package name as "gcc".
11723
11724         * cppinit.c: Include except.h.
11725         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
11726         appropriate.
11727         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
11728         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
11729         (!)USING_SJLJ_EXCEPTIONS.
11730         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
11731
11732 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11733
11734         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
11735         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
11736         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
11737         documentation of obsolete macros.
11738         * system.h: Poison these macros.
11739         * config/d30v/d30v.h, config/ns32k/encore.h,
11740         config/stormy16/stormy16.h: Remove definitions and commented out
11741         definitions of obsolete macros.
11742
11743 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
11744
11745         * objc/objc-act.c (handle_class_ref): Mark the declaration of
11746         %sobjc_class_ref_%s as used - to prevent unwanted compiler
11747         warnings.
11748
11749 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
11750
11751         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
11752         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
11753         to insn adjusting stack/frame pointer.
11754         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
11755         accept operands that cause the insn to be non-splittable.
11756
11757 2002-01-08  Graham Stott  <grahams@redhat.com>
11758
11759         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
11760         (C_TYPE_FIELDS_VOLATILE): Likewise.
11761         (C_TYPE_BEING_DEFINED): Likewise.
11762         (C_IS_RESERVED_WORD): Likewise.
11763         (C_TYPE_VARIABLE_SIZE): Likewise.
11764         (C_DECL_VARIABLE_SIZE): Likewise.
11765         (C_MISSING_PROTOTYPE_WARNED): Likewise.
11766         (C_SET_EXP_ORIGINAL_CODE): Likewise.
11767         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
11768         parenthesis.
11769         (C_DECL_ANTICIPATED): Likewise.
11770         (c_build_type_variant): Add parenthesis.
11771
11772 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11773
11774         * gcc.c (option_map): Remove --version.
11775         (process_command): Handle -fversion following the GNU Coding
11776         Standards.  Partially addresses PR other/704.
11777
11778 2002-01-08  Graham Stott  <grahams@redhat.com>
11779
11780         * combine.c (combine_instructions): Fix typo.
11781
11782 2002-01-08  Graham Stott  <grahams@redhat.com>
11783
11784         * debug.h: Use "tree" and "rtx" throughout.
11785
11786         * debug.c: Likewise.
11787
11788 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
11789
11790         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
11791         constant pool, use the pool's version of the symbol instead.
11792
11793 2002-01-07  Richard Henderson  <rth@redhat.com>
11794
11795         * regrename.c (find_oldest_value_reg): Ignore the value chain if
11796         the original register was copied in a mode with a fewer number of
11797         hard registers than the desired mode.
11798         (copyprop_hardreg_forward_1): Likewise.
11799         (debug_value_data): Fix loop test.
11800         * toplev.c (parse_options_and_default_flags): Reenable
11801         -fcprop-registers at -O1.
11802
11803 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
11804
11805         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
11806         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
11807
11808         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
11809         predicates.
11810
11811         * config/rs6000/rs6000.md: Add altivec predicate patterns.
11812
11813 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11814
11815         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
11816         (pa_output_function_prologue): Output local label at the beginning of
11817         the prologue when profiling.
11818         (hppa_profile_hook): Use the local label rather than the function label.
11819         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
11820
11821 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
11822
11823         * config/rs6000/rs6000.c (print_operand): Remove extra space.
11824         (altivec_expand_unop_builtin): Fix thinko.
11825         (altivec_expand_binop_builtin): Same.
11826         (altivec_expand_ternop_builtin): Same.
11827         (altivec_expand_builtin): Same.
11828
11829 2002-01-07  Richard Henderson  <rth@redhat.com>
11830
11831         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
11832
11833 2002-01-07  Jason Merrill  <jason@redhat.com>
11834
11835         * unwind-dw2.c (execute_cfa_program): Use < again.
11836
11837 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
11838
11839         * predict.c (combine_predictions_for_insn): Avoid division by zero.
11840
11841 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
11842
11843         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
11844         Don't allow -1 - x -> ~x simplifications in the first pass.
11845
11846 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
11847
11848         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
11849         arguments.
11850         (altivec_expand_binop_builtin): Same.
11851         (altivec_expand_unop_builtin): Same.
11852         (print_operand): Fix typo.
11853         (bdesc_1arg): Add vupk* variants.
11854
11855         * rs6000.h (rs6000_builtins): Add vupk* enums.
11856
11857         * rs6000.md: Add altivec_vupk* variants.
11858
11859 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
11860
11861         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
11862         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
11863         and last update dates.
11864
11865 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
11866
11867         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
11868
11869 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
11870
11871         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
11872         * config/avr/avr.h (CPP_SPEC): Likewise.
11873         (LINK_SPEC): Likewise.
11874         (CRT_BINUTILS_SPECS): Likewise.
11875         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
11876         * doc/invoke.texi (AVR Options): Document them.
11877
11878 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
11879
11880         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
11881         LABEL_NUSES.
11882
11883 2002-01-07  Graham Stott  <grahams@redhat.com>
11884
11885         * config/i386/i386.h: Update copyright date.
11886         (HALF_PIC_PTR): Add parenthesis.
11887         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
11888         (CONSTANT_ALIGNMENT): Add parenthesis.
11889         (DATA_ALIGNMENT): Likewise.
11890         (LOCAL_ALIGNMENT): Likewise.
11891         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
11892         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
11893         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
11894         (HARD_REGNO_NREGS): Add paranethesis.
11895         (VALID_SSE_REG_MODE): Whitespace.
11896         (VALID_MMX_REG_MODE): Whitespace.
11897         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
11898         (ix86_hard_regno_mode_ok): Add parenthesis.
11899         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
11900         (RETURN_IN_MEMORY): Whitespace.
11901         (N_REG_CLASSES): Add parenthesis.
11902         (INTEGER_CLASS_P): Add parenthesis and wrap.
11903         (FLOAT_CLASS_P): Likewise.
11904         (SSE_CLASS_P): Likewise.
11905         (MMX_CLASS_P): Likewise.
11906         (MAYBE_INTEGER_CLASS_P): Likewise.
11907         (MAYBE_FLOAT_CLASS_P): Likewise.
11908         (MAYBE_SSE_CLASS_P): Likewise.
11909         (MAYBE_MMX_CLASS_P): Likewise.
11910         (Q_CLASS_P): Likewise.
11911         (GENERAL_REGNO_P): Uppercase macro parameter.
11912         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
11913         (FP_REGNO_P): Likewise.
11914         (ANY_FP_REGNO_P): Uppercase macro parameter.
11915         (SSE_REGNO_P): Likewise.
11916         (SSE_REGNO): Likewise.
11917         (SSE_REG_P): Likewise.
11918         (SSE_FLOAT_MODE_P): Likewise.
11919         (MMX_REGNO_P): Likewise.
11920         (MMX_REG_P):Likewise.
11921         (STACK_REG_P): Likewise.
11922         (NON_STACK_REG_P): Likewise.
11923         (STACK_TOP_P): Likewise.
11924         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
11925         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
11926         (SECONDARY_MEMORY_NEEDED): Likewise.
11927         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
11928         (MD_ASM_CLOBBERS): Whitespace and wrap.
11929         (MUST_PASS_IN_STACK): Whitespace and wrap.
11930         (RETURN_POPS_ARGS): Add parenthesis.
11931         (INIT_CUMULATIVE_ARGS): Likewise.
11932         (FUNCTION_ARG): Likewise.
11933         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
11934         (SETUP_INCOMING_VARARGS): Likewise.
11935         (BUILD_VA_LIST_TYPE):  Add parenthesis.
11936         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
11937         parenthsis.
11938         (EXPAND_BUILTIN_VA_ARG): Likewise.
11939         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
11940         (INITIALIZE_TRAMPOLINE): Add parenthesis.
11941         (INITIAL_ELIMINATION_OFFSET): Likewise.
11942         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
11943         (REGNO_OK_FOR_BASE_P): Likewise.
11944         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
11945         (REGNO_OK_FOR_DIREG_P): Likewise.
11946         (REG_OK_FOR_INDEX_P): Whitespace.
11947         (REG_OK_FOR_BASE_P): Whitespace.
11948         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
11949         parenthesis.
11950         (FIND_BASE_TERM): Fix typo.
11951         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
11952         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
11953         (SYMBOLIC_CONST; Whitespace.
11954         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
11955         (ENCODE_SECTION_INFO): Whitespace.
11956         (FINALIZE_PIC): Remove do { ... } while (0).
11957         (PROMOTE_MODE): Wrap in do { ... } while (0).
11958         (CONST_COSTS): Whitespace.
11959         (RTX_COSTS): Add paramethesis, whitespace and wrap.
11960         (REGISTER_MOVE_COST): Add parenthesis.
11961         (MEMORY_MOVE_COST): Likewise.
11962         (EXTRA_CC_MODES): Whitespace.
11963         (SELECT_CC_MODE): Add parenthesis and whitespace.
11964         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
11965         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
11966         (ASM_OUTPUT_LABEL): Add paramethesis.
11967         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
11968         (ASM_OUTPUT_REG_POP): Likewise.
11969         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
11970         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
11971
11972         * config/i386/i386.c: Update copyright.
11973         (CHECK_STACK_LIMIT): Add parenthesis.
11974         (AT_BP): Uppercase macro parameter.
11975         (x86_64_int_parameter_registers): Constify.
11976         (x86_64_int_return_registers): Likewise.
11977         (ix86_compare_op0): Use rtx.
11978         (construct_container): Constify INTREG parameter.
11979         (function_arg): Use rtx.
11980
11981         * diagnostic.h: Update copyright date.
11982         (output_buffer_state): Add parenthesis.
11983         (output_buffer_format_args): Likewise.
11984
11985         * combine.c (combine_instructions): Replace XEXP (links, 0)
11986         with link.
11987
11988 2002-01-06  H.J. Lu <hjl@gnu.org>
11989
11990         * cfgcleanup.c (thread_jump): Fix 2 typos.
11991
11992 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
11993
11994         * config.gcc: Add support for --enable-altivec.
11995
11996 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11997
11998         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
11999
12000 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
12001
12002         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
12003         __objc_class_name_*.
12004
12005 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12006
12007         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
12008
12009 2002-01-06  Richard Henderson  <rth@redhat.com>
12010
12011         * reorg.c (emit_delay_sequence): Remove death notes, not merely
12012         nop them out.  Increment label reference count for REG_LABEL.
12013         (fill_slots_from_thread): Frob label reference count around
12014         delete_related_insns.
12015
12016 2002-01-05  Richard Henderson  <rth@redhat.com>
12017
12018         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
12019         jump threading.
12020
12021 2002-01-05  Richard Henderson  <rth@redhat.com>
12022
12023         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
12024         * integrate.c (output_inline_function): Likewise.
12025         * toplev.c (rest_of_compilation): Do it here instead.  Move call
12026         to remove_unnecessary_notes after emitting abstract instance.
12027         Force an emitted nested function to have its parent emited as well.
12028         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
12029         for null.
12030         (rtl_for_decl_location): Do not look at reload data structures
12031         before reload has run.
12032
12033 2002-01-05  Kazu Hirata  <kazu@hxi.com>
12034
12035         * cse.c: Fix formatting.
12036         * dwarf2asm.c: Likewise.
12037         * dwarf2out.c: Likewise.
12038         * explow.c: Likewise.
12039         * expmed.c: Likewise.
12040         * function.c: Likewise.
12041         * gcov.c: Likewise.
12042         * gencheck.c: Likewise.
12043         * genrecog.c: Likewise.
12044         * ggc-common.c: Likewise.
12045         * ggc-page.c: Likewise.
12046         * global.c: Likewise.
12047
12048 2002-01-05  Kazu Hirata  <kazu@hxi.com>
12049
12050         * combine.c: Fix formatting.
12051
12052 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
12053
12054         PR middle-end/1557
12055         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
12056
12057 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
12058
12059         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
12060         as 1 for __powerpc64__ as well.
12061
12062         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
12063
12064         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
12065         return it.
12066
12067 2002-01-05  Daniel Berlin  <dan@dberlin.org>
12068
12069         * lcm.c: Revert change, due to performance regression it causes on
12070         SPEC because it's slightly more conservative (sigh, I hate
12071         edge-based LCM).
12072
12073 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
12074
12075         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
12076
12077 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
12078
12079         * doc/cppinternals.texi: Update.
12080
12081 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
12082
12083         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
12084         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
12085         negatives.
12086         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
12087         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
12088         kludge for pre-october-14th mmix versions to handle new-found bug
12089         with PUSHJ/PUSHGO and the register stack.
12090         * config/mmix/mmix.h (struct machine_function): Rename member
12091         has_call_value_without_parameters to has_call_without_parameters.
12092         All referers changed.
12093         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
12094         TARGET_MASK_BRANCH_PREDICT): New macros.
12095         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
12096         -mno-reg-stack-fill-bug-workaround.
12097         * config/mmix/mmix.md ("call"): Set struct machine member
12098         has_call_without_parameters.
12099
12100 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
12101
12102         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
12103
12104 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
12105
12106         * cfgcleanup.c: Include tm_p.h
12107         (mark_effect): Fix handling of hard register; fix handling of SET
12108
12109 2002-01-04  Kazu Hirata  <kazu@hxi.com>
12110
12111         * config/h8300/h8300.md (anonymous patterns): Check that
12112         operands are registers before using REGNO on them.
12113
12114 2002-01-03  Roland McGrath  <roland@frob.com>
12115
12116         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
12117
12118 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
12119
12120         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
12121         * c-common.h (genrtl_expr_stmt_value): Likewise.
12122         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
12123         (expand_expr_stmt_value): Add maybe_last argument.
12124         Don't warn about statement with no effect if it is the last statement
12125         in expression statement.
12126         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
12127         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
12128         expand_expr_stmt_value.
12129         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
12130         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
12131         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
12132         as maybe_last to expand_expr_stmt_value.
12133
12134 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
12135
12136         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
12137         be passed in, do not build it.
12138         (c_begin_if_stmt): New function.
12139         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
12140         * c-common.h (c_expand_start_cond): Update prototype.
12141         (c_begin_if_stmt): Prototype new function.
12142         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
12143         * c-parse.in (if_prefix): Use c_begin_if_stmt,
12144         c_begin_while_stmt and c_finish_while_stmt_cond.
12145
12146 2002-01-04  William Cohen  <wcohen@redhat.com>
12147
12148         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
12149         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
12150         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
12151         * config/pa/som.h (ASM_FILE_START): Likewise.
12152
12153 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
12154
12155         * lcm.c: Include df.h.
12156         Add available_transfer_function prototype.
12157         (compute_available): Rework to use iterative dataflow framework.
12158         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
12159         with bb_info in df.h
12160         (available_transfer_function): New function.
12161
12162         * Makefile.in (lcm.o): add df.h to dependencies.
12163
12164 2002-01-04  Richard Henderson  <rth@redhat.com>
12165
12166         * config/alpha/alpha.c (some_operand): Accept HIGH.
12167         (input_operand): Likewise; accept simple references to globals.
12168         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
12169         (alpha_const_double_ok_for_letter_p): Likewise.
12170         (alpha_extra_constraint): Likewise.
12171         (alpha_preferred_reload_class): Likewise.  Do not force
12172         symbolic constants to memory.
12173         (alpha_legitimate_address_p): Accept simple references
12174         to small_symbolic_operand.
12175         (alpha_legitimize_address): New arg scratch.  Be prepared to be
12176         called when no_new_pseudos.  Emit simple symbolic references.
12177         Split integers into low, high, and rest.
12178         (alpha_expand_mov): Use alpha_legitimize_address.
12179         (some_small_symbolic_mem_operand): New.
12180         (split_small_symbolic_mem_operand): New.
12181         * config/alpha/alpha-protos.h: Update.
12182         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
12183         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
12184         (EXTRA_CONSTRAINT): Likewise.
12185         (PREFERRED_RELOAD_CLASS): Likewise.
12186         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
12187         (PREDICATE_CODES): Update.
12188         * config/alpha/alpha.md: New post-reload splitters to convert
12189         simplfied symbolic operands to the form that references $29.
12190         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
12191         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
12192
12193 2002-01-03  Richard Henderson  <rth@redhat.com>
12194
12195         * local-alloc.c (function_invariant_p): Update commentary.
12196
12197 2002-01-04  H.J. Lu <hjl@gnu.org>
12198
12199         * toplev.c (rest_of_compilation): Fix a typo when calling
12200         cleanup_cfg.
12201
12202 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12203
12204         * c-common.c: Fix formatting.
12205         * diagnostic.c: Likewise.
12206         * doloop.c: Likewise.
12207         * dwarf2out.c: Likewise.
12208
12209 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12210
12211         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
12212         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
12213
12214 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12215
12216         * cpperror.c: Update comments and copyright.
12217         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
12218         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
12219
12220 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12221
12222         * collect2.c (main): Use strcmp when testing for "-shared".
12223
12224 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12225
12226         * cppmacro.c: Don't include intl.h.  Update comments.
12227         (new_number_token): Allocate enough buffer for 64-bit unsigned
12228         integers; update prototype.
12229         * cppmain.c: Update comments.
12230
12231 2002-01-03  William Cohen  <wcohen@redhat.com>
12232
12233         * function.h (struct function): Add profile.
12234         (current_function_profile): New.
12235         doc/extend.texi: Update documentation.
12236         * final.c (final_start_function): Use current_function_profile
12237         instead of profile_flag.
12238         (profile_after_prologue): Likewise.
12239         * function.c (expand_function_start): Likewise.
12240         (expand_function_start): Likewise.
12241         * config/alpha/alpha.c (direct_call_operand):
12242         (alpha_does_function_need_gp): Likewise.
12243         (alpha_expand_prologue): Likewise.
12244         * config/arm/arm.c (arm_expand_prologue): Likewise.
12245         thumb_expand_prologue: Likewise.
12246         * config/d30v/d30v.c (d30v_stack_info): Likewise.
12247         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
12248         (fr30_expand_prologue): Likewise.
12249         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
12250         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
12251         * config/i386/i386.h (FINALIZE_PIC): Likewise.
12252         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
12253         * config/i960/i960.c (i960_output_function_prologue): Likewise.
12254         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
12255         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
12256         (m32r_expand_prologue): Likewise.
12257         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
12258         (m88k_expand_prologue): Likewise.
12259         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
12260         * config/mips/mips.c (compute_frame_size): Likewise.
12261         (mips_expand_prologue): Likewise.
12262         (mips_can_use_return_insn): Likewise.
12263         * config/pa/elf.h (ASM_FILE_START): Likewise.
12264         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
12265         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
12266         * config/pa/som.h (ASM_FILE_START): Likewise.
12267         * config/romp/romp.c (romp_using_r14): Likewise.
12268         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
12269         (rs6000_stack_info): Likewise.
12270         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
12271         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
12272         * config/v850/v850.c (compute_register_save_size): Likewise.
12273
12274 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
12275
12276         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
12277         gen_lowpart_common fails, use gen_lowpart_SUBREG.
12278
12279 2002-01-03  Turly O'Connor  <turly@apple.com>
12280
12281         * darwin.c (machopic_output_possible_stub_label): Don't generate
12282         stub routines for pseudo-stubs which we've just defined.
12283
12284 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12285
12286         * builtins.c: Fix formatting.
12287         * c-typeck.c: Likewise.
12288         * combine.c: Likewise.
12289         * expr.c: Likewise.
12290         * loop.c: Likewise.
12291
12292 2002-01-03  Andreas Schwab  <schwab@suse.de>
12293
12294         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
12295         and return true if _cpp_push_next_buffer pushed a new include
12296         file.
12297         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
12298         _cpp_pop_file_buffer did not push a new file.
12299         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
12300
12301 2002-01-02  Eric Christopher  <echristo@redhat.com>
12302
12303         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
12304         FIND_REG_INC_NOTE call. Update copyright.
12305         * loop.c (canonicalize_condition): Ditto.
12306         * reorg.c (delete_scheduled_jump): Ditto.
12307
12308 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12309
12310         * gcse.c: Fix formatting.
12311
12312 2002-01-03  Graham Stott  <grahams@redhat.com>
12313
12314         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
12315         forward defs for struct tags rtx_def, union_tree, rtvec_def
12316         also output corresponding typedefs for rtx, tree, and rtvec.
12317
12318         * system.h: Move forward defs for struct tags rtx_def, union_tree,
12319         rtvec_def along with corresponding typedefs for rtx, tree, and
12320         rtvec to config.h, hconfig.h, tconfig.h.
12321
12322 2002-01-03  Graham Stott  <grahams@redhat.com>
12323
12324         * tree.h: Update copyright date.
12325         (IS_EXPR_CODE_CLASS): Add parenthesis.
12326         (TREE_SET_CODE): Add whitespace.
12327         (TREE_CHECK): Add parenthesis.
12328         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
12329         (CST_OR_CONSTRUCTOR_CHECK):
12330         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
12331         (TREE_SYMBOL_REFERENCED): Whitespace.
12332         (INT_CST_LT): Likewise.
12333         (INT_CST_LT_UNSIGNED): Likewise.
12334         (tree_real_cst): Unwrap comment.
12335         (tree_string): Likewise.
12336         (tree_complex): Likewise.
12337         (IDENTIFIER_POINTER): correct cast.
12338         (SAVE_EXPR_CONTEXT): Whitespace.
12339         (EXPR_WFL_FILENAME_NODE): Likewise.
12340         (EXPR_WFL_FILENAME): Remove parenthesis.
12341         (DECL_ORIGIN): Add parenthesis.
12342         (DECL_FROM_INLINE): Use NULL_TREE.
12343         (build_int_2): Whitespace.
12344         (build_type_variant): Add parenthesis.
12345
12346         * gcc/jcf-parse.c: Update copyright date.
12347         (yyparse): Constify resource_filename.
12348
12349 2002-01-03  Graham Stott  <grahams@redhat.com>
12350
12351         * rtl.h: Update copyright date.
12352         (RTL_CHECK1): Wrap long line.
12353         (RTL_CHECK2): Likewise.
12354         (RTL_CHECKC1): Wrap long line and whitespace.
12355         (RTL_CHECKC2): Likewise.
12356         (XWINT): Whitespace.
12357         (XINT): Likewise.
12358         (XSTR): Likewise.
12359         (XEXP): Likewise.
12360         (XVEC): Likewise.
12361         (XMODE): Likewise.
12362         (XBITMAP): Likewise.
12363         (XTREE): Likewise.
12364         (XBBDEF): Likewise.
12365         (XTMPL): Likewise.
12366         (X0WINT): Likewise.
12367         (X0INT):Likewise.
12368         (X0UINT): Likewise.
12369         (X0STR): Likewise.
12370         (X0EXP): Likewise.
12371         (X0VEC): Likewise.
12372         (X0MODE): Likewise.
12373         (X0BITMAP): Likewise.
12374         (X0TREE): Likewise.
12375         (X0BBDEF): Likewise.
12376         (X0ADVFLAGS): Likewise.
12377         (X0CSELIB): Likewise.
12378         (X0MEMATTR): Likewise.
12379         (XCWINT): Likewise.
12380         (XCINT): Likewise.
12381         (XCUINT): Likewise.
12382         (XCSTR): Likewise.
12383         (XCEXP): Likewise.
12384         (XCVEC): Likewise.
12385         (XCMODE): Likewise.
12386         (XCBITMAP): Likewise.
12387         (XCTREE): Likewise.
12388         (XCBBDEF): Likewise.
12389         (XCADVFLAGS): Likewise.
12390         (XCCSELIB): Likewise.
12391         (XC2EXP): Likewise.
12392         (INSN_UID): Likewise.
12393         (PREV_INSN): Likewise.
12394         (PATTERN): Likewise.
12395         (INSN_CODE): Likewise.
12396         (PUT_REG_NOTE_KIND): Likewise.
12397         (CODE_LABEL_NUMBER): Likewise.
12398         (NOTE_SOURCE_FILE): Likewise.
12399         (NOTE_BLOCK): Likewise.
12400         (NOTE_EH_HANDLER): Likewise.
12401         (NOTE_RANGE_INFO): Likewise.
12402         (NOTE_LIVE_INFO): Likewise.
12403         (NOTE_BASIC_BLOCK): Likewise.
12404         (NOTE_EXPECTED_VALUE): Likewise.
12405         (NOTE_LINE_NUMBER): Likewise.
12406         (LABEL_NAME): Likewise.
12407         (LABEL_NUSES): Likewise.
12408         (LABEL_ALTERNATE_NAME): Likewise.
12409         (ADDRESSOF_DECL): Likewise.
12410         (JUMP_LABEL): Likewise.
12411         (LABEL_NEXTREF): Likewise.
12412         (REGNO): Likewise.
12413         (ORIGINAL_REGNO: Likewise.
12414         (HARD_REGISTER_NUM_P): Add parenthesis.
12415         (SUBREG_REG): Whitespace.
12416         (SUBREG_BYTE): Likewise.
12417         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
12418         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
12419         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
12420         (ASM_OPERANDS_INPUT_VEC): Likewise.
12421         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
12422         (ASM_OPERANDS_INPUT): Likewise.
12423         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
12424         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
12425         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
12426         (ASM_OPERANDS_INPUT_MODE): Likewise.
12427         (ASM_OPERANDS_SOURCE_FILE): Likewise.
12428         (ASM_OPERANDS_SOURCE_LINE): Likewise.
12429         (MEM_SET_IN_STRUCT_P): Minor reformat.
12430         (TRAP_CONDITION): Whitespace.
12431         (TRAP_CODE): Likewise.
12432         (COND_EXEC_TEST): Likewise.
12433         (COND_EXEC_CODE): Likewise.
12434         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
12435         (PHI_NODE_P): Add parenthesis.
12436         (plus_constant): Whitespace and add parenthesis.
12437
12438 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12439
12440         * config/avr/avr.c: Fix comment typos.
12441         * config/c4x/c4x.md: Likewise.
12442         * config/dsp16xx/dsp16xx.h: Likewise.
12443         * config/dsp16xx/dsp16xx.md: Likewise.
12444         * config/i386/i386.md: Likewise.
12445         * config/ia64/ia64.c: Likewise.
12446         * config/m32r/m32r.h: Likewise.
12447         * config/m68hc11/m68hc11.md: Likewise.
12448         * config/mmix/mmix.c: Likewise.
12449         * config/mn10200/mn10200.c: Likewise.
12450         * config/romp/romp.c: Likewise.
12451         * config/sh/sh.c: Likewise.
12452         * config/stormy16/stormy16.c: Likewise.
12453         * config/stormy16/stormy16.h: Likewise.
12454         * config/stormy16/stormy16.md: Likewise.
12455
12456 2002-01-03  Graham Stott  <grahams@redhat.com>
12457
12458         * loop.h: Update copyright date.
12459         (LOOP_MOVABLES): Fix typo.
12460         (LOOP_REGS): Likewise.
12461         (LOOP_IVS): Likewise.
12462
12463 2002-01-03  Graham Stott  <grahams@redhat.com>
12464
12465         * cppinit.c: Update copyright date.
12466         Don't include output.h
12467         * Makefile.in: Update copyright date.
12468         Update dependency.
12469
12470 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12471
12472         PR c/5226
12473         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
12474         (-pthread) Add to RS/6000 options.
12475
12476 2002-01-02  Kazu Hirata  <kazu@hxi.com>
12477
12478         * except.c: Fix comment typos.
12479         * loop.c: Likewise.
12480         * varasm.c: Likewise.
12481         * doc/tm.texi: Fix a typo.
12482
12483 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
12484
12485         * c-typeck.c (output_init_element): Allow initializing static storage
12486         duration objects with compound literals.
12487
12488 2002-01-02  Richard Henderson  <rth@redhat.com>
12489
12490         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
12491         after abusing it.
12492
12493 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12494
12495         * gcc.c (default_compilers): Const-ify.
12496         * mips-tdump.c (stab_names): Likewise.
12497         * mips-tfile.c (map_coff_types, map_coff_storage,
12498         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
12499         pseudo_ops_t, pseudo_ops): Likewise.
12500         * protoize.c (default_include): Likewise
12501
12502         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
12503         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
12504         Add array size in declaration.
12505         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
12506         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
12507         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
12508         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
12509         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
12510         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
12511         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
12512         emtens, make_nan): Const-ify.
12513         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
12514         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
12515
12516 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
12517
12518         * config.gcc (ia64-*-*): Set extra_headers.
12519         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
12520         * config/alpha/t-osf: Remove.
12521         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
12522
12523 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
12524
12525         * config/rs6000/t-aix43: Revert previous change.
12526
12527 2002-01-02  Jason Merrill  <jason@redhat.com>
12528
12529         * c-decl.c (c_expand_body): Call outlining_inline_function when
12530         emitting an inline function out of line.
12531
12532 2002-01-02  Richard Henderson  <rth@redhat.com>
12533
12534         * dwarf2out.c (limbo_die_node): Add created_for member.
12535         (new_die): New argument created_for.  Update all callers.
12536         (mark_limbo_die_list): New.
12537         (dwarf2out_init): Register limbo_die_list as a root.
12538         (dwarf2out_finish): Force insert limbo dies into their function
12539         context.
12540
12541 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
12542
12543         PR c++/5089
12544         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
12545
12546 2002-01-02  Kazu Hirata  <kazu@hxi.com>
12547
12548         * config/h8300/fixunssfsi.c: Update copyright.
12549         Fix comment typos.
12550         Fix formatting.
12551         * config/h8300/h8300.c: Update copyright.
12552         Eliminate warnings.
12553
12554 2002-01-02  Kazu Hirata  <kazu@hxi.com>
12555
12556         * config/romp/romp.c: Fix comment formatting.
12557         * config/romp/romp.h: Likewise.
12558         * config/romp/romp.md: Likewise.
12559         * config/s390/s390.c: Likewise.
12560         * config/stormy16/stormy16.c: Likewise.
12561         * config/stormy16/stormy16.h: Likewise.
12562
12563 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
12564
12565         * c-common.h (genrtl_expr_stmt_value): Declare.
12566         * c-semantics.c (genrtl_goto_stmt): Redirect to...
12567         (genrtl_goto_stmt_value): ... this new function.  Pass new
12568         argument down to expand_expr_stmt_value, taking
12569         TREE_ADDRESSABLE into account.
12570         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
12571         STMT_EXPR as addressable, i.e., one whose result we want.
12572         * expr.c (expand_expr): Don't save expression statement value
12573         of labeled_blocks or loop_exprs.
12574         * stmt.c (expand_expr_stmt): Redirect to...
12575         (expand_expr_stmt_value): ... this new function.  Use new
12576         argument to tell whether to save expression value.
12577         (expand_end_stmt_expr): Reset last_expr_type and
12578         last_expr_value if we don't have either.
12579         * tree-inline.c (declare_return_variable): Mark its use
12580         statement as addressable.
12581         * tree.h: Document new use of TREE_ADDRESSABLE.
12582         (expand_expr_stmt_value): Declare.
12583
12584 2002-01-01  Tom Rix  <trix@redhat.com>
12585
12586         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
12587         rs6000_emit_allocate_stack.
12588
12589 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
12590
12591         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
12592         ${srcdir}/ginclude/ to every entry in extra_headers.
12593         * configure: Regenerate.
12594         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
12595         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
12596         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
12597         * ginclude/proto.h: Rename to config/convex/proto.h.
12598
12599 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12600
12601         * attribs.c (handle_vector_size_attribute): Use host_integerp
12602         and tree_int_cst; remove warnings.
12603         * caller-save.c (insert_restore): Add cast to get rid of warning.
12604         (insert_save): Likewise.
12605         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
12606         * regmove.c (find_matches): Add temporary var to kill a warning.
12607
12608 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
12609
12610         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
12611         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
12612         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
12613         (vms-dwarf2eh.o): Add Makefile rule.
12614         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
12615         * config/alpha/vms-dwarf2eh.asm: New file.
12616
12617         * gcc.c (delete_if_ordinary): Delete all versions.
12618
12619 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
12620
12621         * config/mmix/mmix.md: Update FIXME to not mention
12622         define_constants.
12623         (MMIX_rJ_REGNUM): New define_constants constant.
12624         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
12625         "*movdicc_real"): Adjust contraints formatting.
12626         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
12627         for branch prediction.
12628         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
12629         output template.
12630         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
12631         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
12632         number.  Delete related FIXMEs.
12633         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
12634         from number to MMIX_rJ_REGNUM.
12635         (TARGET_MASK_BRANCH_PREDICT): New.
12636         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
12637         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
12638         value.  Add -mbranch-predict and -mno-branch-predict.
12639         (TARGET_VERSION): Drop date.
12640         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
12641         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
12642         for finding out global symbols.
12643         (mmix_asm_output_labelref): Revert condition for global symbol.
12644         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
12645         (mmix_print_operand_punct_valid_p): A '+' is valid.
12646
12647 See ChangeLog.6 for earlier changes.