OSDN Git Service

* config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movesi_nt_vms;
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2
3         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movesi_nt_vms;
4         now only if !TARGET_FIX.
5         (*movsi_nt_vms_fix): New pattern.
6
7 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
8
9         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
10         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
11         (alpha_sa_mask, alpha_sa_size): Reflect above change.
12         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
13         (alpha_start_function, alpha_expand_epilogue): Likewise.
14         (unicosmk_gen_dsib): Likewise.
15
16 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17
18         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
19
20 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
21
22         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away, 
23         check_and_change_labels, s390_final_chunkify): Delete.
24         (s390_split_branches, s390_chunkify_pool): New functions.
25         (s390_function_prologue): Call them.
26         
27         * config/s390/s390.h (S390_REL_MAX): Delete.
28         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
29
30         * config/s390/s390.md (cjump, icjump, jump): Fix length 
31         attribute calculation.
32
33
34 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
35
36         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
37         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
38
39 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
40
41         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
42         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
43         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
44
45 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
46
47         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
48
49 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
50
51         * reload.c (find_dummy_reload): Check that an output register
52         is valid for its mode.
53
54 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
55
56         * combine.c (known_cond): After replacing the REG of a SUBREG, try
57         to simplify it.
58
59         * function.c (assign_parms): Demote promoted argument passed by
60         transparent reference.
61
62 2001-02-14      Joel Sherrill <joel@OARcorp.com>
63
64         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
65         -Acpu() and -Amachine() to eliminate warnings.
66
67 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
68
69         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
70
71 2002-02-14  Kazu Hirata  <kazu@hxi.com>
72
73         * config/h8300/h8300-protos.h: Update the prototype for
74         const_costs.
75         * config/h8300/h8300.c (const_costs): Treat SET as a little
76         more expensive operation.
77         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
78         reference to const_costs.
79
80 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
81
82         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
83
84 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
85
86         PR c/5503:
87         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
88         use arguments from newtype.
89
90 2002-02-13  Eric Christopher  <echristo@redhat.com>
91
92         * config/mips/mips.c (override_options): Add check for march/mipsX
93         on the same command line. Fix error message in cpu processing.
94         Remove architecture and ISA checks.
95
96 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
97
98         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
99
100         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
101
102 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
103
104         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
105         alternatives.
106         ("*movv8hi_internal1"): Same.
107         ("*movv16qi_internal1"): Same.
108         ("*movv4sf_internal1"): Same.
109
110         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
111         not push_reload for altivec modes.
112
113 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
114
115         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
116         all RTEMS targets including removal of #includes from config/*/rtems*.h
117         file and adding them to tm_file setting. Added xm_defines=POSIX to
118         many targets.
119         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
120         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
121         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
122         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
123         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
124         config/m68k/rtemself.h: Ditto.
125         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
126         config/mips/rtems64.h: Ditto.
127         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
128         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
129         Ditto.
130         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
131         config/sparc/rtemself.h: Ditto.
132         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
133         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
134         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
135         more like arm-elf.
136         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
137         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
138         target made more similar to i386-elf.
139         * config/i386/t-rtems-i386: Added soft float support and multilibs.
140         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
141         be similar to config/m68k/t-m68kelf.
142         * gthr-rtems.h: Encapsulate with extern "C" for C++.
143
144 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
145
146         * regmove.c (kill_value): Handle subregs.
147
148 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
149
150         * i386.md (mul patterns): Allow memory operand to be first;
151         add expanders where needed; fix constraints.
152         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
153         Allow memory operand to be the first.
154
155         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
156         operands.
157
158 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
159
160         PR c/5681:
161         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
162         GET_MODE (x).
163
164 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
165
166         PR optimization/5547:
167         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
168         all valid IA-32 address modes involving non-scaled %ebx and
169         GOT/GOTOFF as displacement.
170
171 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
172
173         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
174         after emitting ltorg insns.
175
176         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
177         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
178         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
179         *abssf2): Fix "op_type" attribute.
180
181 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
182
183         * mkconfig.sh: Avoid using a subshell redirect.
184         ($output.T): Change to $(output)T.
185         (ENABLE_NLS): Remove unneeded undef.
186
187         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
188         * config/alpha/x-vms (libsubdir): Define.
189
190         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
191         register frame procedures. Optimize retrieving context.
192
193         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
194         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
195         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
196
197 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
198
199         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
200         Make same change as for find_base_value.
201
202 2002-02-13  Kazu Hirata  <kazu@hxi.com>
203
204         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
205         of QImode and SImode.
206
207 2002-02-13  Kazu Hirata  <kazu@hxi.com>
208
209         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
210         length computation of movsi.
211         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
212
213 2002-02-13  Kazu Hirata  <kazu@hxi.com>
214
215         * config/h8300/h8300.md (subqi3): Tighten the predicate for
216         operands[2] to register_operand.
217
218 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
219
220         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
221
222 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
223
224         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
225         for altivec_lvx* and altivec_stvx*.
226         ("*movv4si_internal"): Add constraint for loading from GPRs.
227         ("*movv8hi_internal1"): Same.
228         ("*movv16qi_internal1"): Same.
229         ("*movv4sf_internal1"): Same.
230
231         * config/rs6000/rs6000.c (altivec_register_operand): New.
232
233         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
234         altivec_register_operand.
235
236 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
237
238         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
239         handle SYMBOL_REF.
240
241 2002-02-13  Stan Shebs  <shebs@apple.com>
242
243         * c-typeck.c (digest_init): Handle vectors.
244         (really_start_incremental_init): Same.
245         (pop_init_level): Same.
246         (process_init_element): Same.
247
248         * varasm.c (output_constant): Same.
249
250         * expr.c (clear_storage): Same.
251         (store_constructor): Same.
252
253 2002-02-12  Eric Christopher  <echristo@redhat.com>
254
255         * explow.c (hard_function_value): Add comment explaining
256         signed/unsigned comparison.
257
258 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
259
260         * jump.c (never_reached_warning): Add finish argument.
261         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
262         real insn after end.
263         * rtl.h (never_reached_warning): Adjust prototype.
264         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
265         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
266         never_reached_warning.
267
268 2002-02-12  Graham Stott  <grahams@redhat.com>
269
270         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
271
272 2002-02-12  Kazu Hirata  <kazu@hxi.com>
273
274         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
275         logical shifts on H8/300.
276         (shift_alg_si): Improve several shifts on H8/300.
277         (get_shift_alg): Likewise.
278
279 2002-02-12  Graham Stott  <grahams@redhat.com>
280
281         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
282
283 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
284
285         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
286         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
287
288 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
289
290         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
291         non-CONST_INT through default_assemble_integer.
292         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
293         <case 8>: Abort for CONST_DOUBLE.
294
295 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
296
297         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
298         is specified.
299         * config/pa/pa-linux.h (LIB_SPEC): Delete.
300         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
301
302 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
303
304         * config/stormy16/stormy16.md (zero_extendqihi2): New.
305
306 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
307
308         * regrename.c (regrename_optimize): Don't accept a
309         part-clobbered register if the replaced register is not part
310         clobbered.
311
312         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
313         take padding into account when computing the argument value.
314
315         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
316
317         * combine.c (try_combine): Apply substitutions in
318         CALL_INSN_FUNCTION_USAGE too.
319
320 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
321
322         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
323         __builtin_altivec_abs*.
324         (bdesc_abs): New.
325
326         * config/rs6000/rs6000.h (rs6000_builtins): Add
327         ALTIVEC_BUILTIN_ABS*.
328
329         * config/rs6000/altivec.h: Use const char for builtins expecting
330         literals.
331         (vec_abs): New versions for C and C++.
332         (vec_abss): Same.
333
334 2002-02-10  Kazu Hirata  <kazu@hxi.com>
335
336         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
337         using Pmode.
338
339 2002-02-10  Kazu Hirata  <kazu@hxi.com>
340
341         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
342         constant definition from h8300.md.
343         (FRAME_POINTER_REGNUM): Likewise.
344         * config/h8300/h8300.md (define_constants): Add FP_REG.
345
346 2002-02-10  Kazu Hirata  <kazu@hxi.com>
347
348         * config/h8300/h8300.c (print_operand): Remove redundant code.
349
350 2002-02-10  Kazu Hirata  <kazu@hxi.com>
351
352         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
353         * config/h8300/h8300.c (byte_reg): Make it static.
354
355 2002-02-10  Richard Henderson  <rth@redhat.com>
356
357         PR c/5623
358         * c-typeck.c (incomplete_type_error): Handle flexible array members.
359
360 2002-02-10  Richard Henderson  <rth@redhat.com>
361
362         PR c++/5624
363         * tree.c (append_random_chars): Don't abort if main_input_filename
364         does not exist.
365
366 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
367
368         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
369
370 2002-02-10  Kazu Hirata  <kazu@hxi.com>
371
372         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
373         (pushhi1): Likewise.
374
375 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
376
377         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
378         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
379
380 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
381
382         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
383         remove MASK_VIS.
384         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
385
386 2002-02-09  Kazu Hirata  <kazu@hxi.com>
387
388         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
389         a half of an SImode register on H8/300.
390
391 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
392
393         * i386.md (movdi_2): Add missing '!'.
394
395 2002-02-09  Kazu Hirata  <kazu@hxi.com>
396
397         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
398         definitions.
399
400 2002-02-09  Kazu Hirata  <kazu@hxi.com>
401
402         * config/h8300/h8300.md (length): Correct the distance valid
403         for the short branch.
404
405 2002-02-09  Kazu Hirata  <kazu@hxi.com>
406
407         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
408
409 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
410
411         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
412         registers in SImode.
413         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
414         part-clobbered.
415
416         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
417         patch.
418
419         Contribute sh64-elf.
420         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
421         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
422         (sh_cannot_modify_jumps_p): New function.
423         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
424         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
425         (sh_ms_bitfield_layout_p): New function.
426         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
427                     Zack Weinberg  <zack@codesourcery.com>
428         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
429         expand_simple_binop instead of expand_binop.
430         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
431         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
432         use of .quad and .uaquad.
433         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
434         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
435         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
436         * config/sh/sh.md (movdi_const, movdi_const_32bit,
437         movdi_const_16bit): Make sure all CONSTs have modes.
438         (sym2PIC): Ditto, but by adjusting all callers.
439         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
440         if the prologue calls the SHmedia argument decoder or register
441         saver.
442         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
443         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
444         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
445         (sh_expand_epilogue): Don't emit USE of return target register.
446         (prepare_move_operands): Legitimize DImode PIC addresses.
447         (sh_media_register_for_return): Skip tr0, used to initialize the
448         PIC register.
449         (sh_expand_prologue): Remove explicit USE of return register.
450         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
451         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
452         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
453         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
454         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
455         EXTRA_CONSTRAINT_T.
456         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
457         (MOVI_SHORI_BASE_OPERAND_P): New.
458         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
459         (EXTRA_CONSTRAINT_T): Define in terms of them.
460         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
461         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
462         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
463         alternatives supporting TARGET_REGS.
464         (UNSPEC_GOTPLT): New constant.
465         (movdi split): Move incrementing of LABEL_NUSES...
466         (movdi_const, movdi_const_32bit): Here.  Use
467         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
468         (movdi_const_16bit): New.
469         (call, call_value) [flag_pic]: Use GOTPLT.
470         (call_pop, call_value_pop): New expands.
471         (call_pop_compact, call_pop_rettramp): New insns.
472         (call_value_pop_compact, call_value_pop_rettramp): New insns.
473         (sibcall) [flag_pic]: Use GOT.
474         (builtint_setjmp_receiver): Remove bogus, unused expand.
475         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
476         (*pt, *ptb, ptrel): New insns.
477         (sym2GOT): Handle DImode GOT.
478         (sym2GOTPLT, symGOTPLT2reg): New expands.
479         (sym2PIC): New expand.
480         (shcompact_return_tramp): Use GOTPLT to return trampoline.
481         (shcompact_return_tramp_i): Use return register explicitly.
482         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
483         disable flag_reorder_blocks.
484         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
485         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
486         clobbers, for clarity.
487         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
488         restoring of r0 in macl as MAYBE_DEAD.
489         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
490         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
491         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
492         alter_subreg all over.
493         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
494         reload, instead of emitting instructions that would require
495         reloading.
496         (casesi_load_media): Add missing modes.
497         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
498         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
499         as used if the argument decoder is called.
500         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
501         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
502         Pmode, then extend it to DImode if necessary.
503         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
504         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
505         constants in FPU-enabled SHmedia, let them be loaded from memory.
506         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
507         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
508         Adjust whitespace in assembly output templates.
509         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
510         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
511         mode of if_then_else.
512         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
513         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
514         sh.h.
515         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
516                     Joern Rennecke <amylaar@redhat.com>
517         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
518         (SUBTARGET_CPP_PTR_SPEC): New.
519         (SUBTARGET_CPP_SPEC): Remove.
520         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
521         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
522         Fix typo in previous checkin.
523         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
524         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
525         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
526                     Alexandre Oliva  <aoliva@redhat.com>
527         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
528         what single FP register can hold for SHmedia target.
529         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
530                     Alexandre Oliva  <aoliva@redhat.com>
531         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
532         Do not split into SUBREG.
533         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
534         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
535         and added new functions as specified in SH5 ABI r9.
536         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
537         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
538         8-byte boundary.
539         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
540         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
541         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
542         and consttable_window_ends.
543         2001-06-03  Graham Stott  <grahams@redhat,com>
544         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
545         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
546         * config/sh/sh.c (print_operand): Handle floating-point pair,
547         vector and matrix registers.
548         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
549         vector modes into account.
550         * config/sh/sh.md (movv2sf): Split move between registers into
551         movdf.
552         (movv4sf, movv16sf): Introduce insns that get split only after
553         reload.
554         * config/sh/shmedia.h: Fix Copyright dates.
555         * config/sh/ushmedia.h: Likewise.  Move loop counter
556         declarations into conditionals that uses them.
557         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
558         loop boundary.
559         * config/sh/sshmedia.h: Fix Copyright dates.
560         (sh_media_PUTCFG): Fix constraints.
561         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
562         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
563         ptrmemfunc_vbit_in_delta for SH5.
564         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
565         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
566         * invoke.texi: Likewise.
567         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
568         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
569         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
570         GCC_pop_shmedia_regs_nofpu): New global symbols.
571         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
572         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
573         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
574         compact function with nonlocal labels.
575         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
576         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
577         (initial_elimination_offset): Account for their stack space.
578         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
579         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
580         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
581         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
582         least one of the operands to be a register.
583         (movv2sf): Likewise.  Renamed to movv2sf_i.
584         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
585         prepare_move_operands() before emitting SHmedia insns.
586         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
587         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
588         Don't save nor initialize r12.  Don't mis-align the stack.
589         Pad the code with a nop.
590         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
591         stack.
592         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
593         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
594         [__SHMEDIA__]: Implement.
595         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
596         * config/sh/sh.md: Set latency of `pt' closer to reality.
597         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
598         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
599         Set move, load and store type attributes.
600         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
601         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
602         profiling.
603         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
604         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
605         * config/sh/sh.c (sh_media_register_for_return): New function.
606         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
607         branch-target register.
608         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
609         * config/sh/sh.md (return_media_i): Use any call-clobbered
610         branch-target register.
611         (return_media): If r18 wasn't copied in the prologue, copy it
612         here.
613         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
614         Clear class FP0_REGS.
615         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
616         from elf.h.
617         2001-03-08  DJ Delorie  <dj@redhat.com>
618         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
619         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
620         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
621         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
622         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
623         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
624         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
625         return value correctly for call_cookie.
626         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
627         * config/sh/crt1.asm (start): Modified so as to call
628         ___setup_argv_and_call_main.
629         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
630         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
631         SHmedia mode.
632         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
633         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
634         (STRIP_NAME_ENCODING): Use it.
635         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
636         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
637         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
638         prepare_scc_operands().
639         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
640         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
641         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
642         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
643         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
644         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
645         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
646         used in shcompact_incoming_args.
647         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
648         change.
649         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
650         mode.
651         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
652         Adjust accordingly.
653         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
654         Simplify.  Adjust.  Add sanity check.
655         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
656         FPU_SINGLE_BIT.
657         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
658         TARGET_SHCOMPACT.
659         (udivsi3, divsi3): Use them.
660         (force_mode_for_call): New insn.
661         (call, call_value, sibcall_value): Emit it before SHcompact
662         calls.
663         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
664         * config/sh/sh.md (call, call_value, sibcall): Make sure the
665         call cookie is non-NULL before taking its value.
666         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
667         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
668         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
669         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
670         block.
671         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
672         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
673         temporary for stack adjusts.  Use MACL and MACH to pass
674         arguments to shcompact_incoming_args.
675         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
676         clobber r1.
677         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
678         (nested_trampoline): Load static chain address into r1.
679         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
680         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
681         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
682         fp_arith_reg_operand().
683         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
684         * config/sh/sh.md (casesi): Sign-extend the first two operands,
685         and use signed compares for them.
686         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
687         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
688         ones properly aligned.
689         (find_barrier): Account for extra alignment needed for 8-byte wide
690         constants.
691         (machine_dependent_reorg): Require a label for the second 4-byte
692         constant after an 8-byte one.
693         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
694         change.
695         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
696         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
697         last_float when switching float modes.
698         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
699         auto-increment for general-purpose registers.
700         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
701         result.
702         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
703         for stack adjust.
704         * config/sh/sh.c (sh_builtin_saveregs): Support using all
705         registers for varargs.
706         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
707         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
708         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
709         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
710         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
711         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
712         call_cookie accordingly.
713         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
714         (SHCOMPACT_BYREF): Likewise.
715         (SHCOMPACT_FORCE_ON_STACK): New macro.
716         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
717         (sh_builtin_saveregs): Likewise.
718         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
719         shcompact_incoming_args): Use new shift values.  Support
720         sequences of consecutive and non-consecutive pushes/pops.
721         * config/sh/sh.md (return): Don't explicitly use PR_REG.
722         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
723         * config/sh/sh.h (TEXT_SECTION): Define.
724         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
725         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
726         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
727         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
728         return values on FPU-enabled SHmedia.
729         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
730         FPU-enabled SHmedia.
731         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
732         value is returned in a non-FP reg and is not returned by
733         reference.
734         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
735         jump_ind.
736         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
737         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
738         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
739         quad-aligned to be passed by callee-copy reference.
740         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
741         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
742         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
743         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
744         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
745         copying low-numbered FP regs to r7 and r8.
746         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
747         FP regs to general-purpose regs only if the copy was passed on the
748         stack.
749         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
750         copying FP reg to r9.
751         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
752         copy FP regs to general-purpose regs only in outgoing calls.
753         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
754         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
755         HOST_WIDE_INT.
756         * config/sh/sh.h (struct sh_args): Document all fields.
757         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
758         passed partially on the stack should not consider making
759         sibcalls.
760         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
761         stack_regs only for incoming calls.  When passing FP args,
762         make sure there are FP regs available before modifying
763         call_cookie.
764         (SHCOMPACT_BYREF): Pass double args in general-purpose
765         registers by reference.
766         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
767         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
768         attempt to generate sibcalls if the caller got any arguments
769         by reference.
770         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
771         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
772         to 8-byte boundaries.
773         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
774         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
775         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
776         stored in the stack.
777         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
778         for the offsets to have the ISA bit set.
779         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
780         invocation.  Use beq instead of bgt to mark end of sequence of
781         loads.
782         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
783         bgt to mark end of sequence of stores.
784         * config/sh/sh.c (arith_operand): Don't check whether
785         CONST_OK_FOR_J for now.
786         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
787         instead of long for conversion.
788         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
789         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
790         before passing it to fprintf.
791         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
792         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
793         Call set_fpscr before reading/writing SR.
794         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
795         Call set_fpscr.
796         * config/sh/lib1funcs.asm: Add `.align 2' directives before
797         SHmedia code.
798         (FMOVD_WORKS): Define on SH5 with FPU.
799         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
800         setting.
801         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
802         _fpscr_values.
803         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
804         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
805         address.
806         (ia_main_table): Ditto.
807         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
808         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
809         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
810         the definitions from sh.h.
811         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
812         TARGET_SH5.
813         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
814         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
815         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
816         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
817         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
818         Increment LABEL_NUSES.
819
820         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
821         TARGET_SH5.
822         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
823         defined.
824         * config/sh/elf.h (SIZE_TYPE): Likewise.
825         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
826         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
827         shcompact_incoming_args): Load switch table addresses using
828         datalabel.
829         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
830         (NO_BUILTIN_SIZE_TYPE): Define.
831         (SIZE_TYPE): Don't define.
832         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
833         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
834         definition of __SH5__=32 for -m5-compact-nofpu.
835         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
836         ADDR_DIFF_VEC.
837         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
838         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
839         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
840         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
841         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
842         (INSN_LENGTH_ALIGNMENT): Likewise.
843         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
844         * config/sh/sh.md (call, call_value, sibcall): Simplify
845         copying of non-branch-target register.
846         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
847         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
848         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
849         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
850         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
851         floating-point values as structs.
852         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
853         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
854         general-purpose register.
855         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
856         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
857         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
858         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
859         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
860         (ENCODE_SECTION_INFO): Enclose variables and constants in
861         DATALABEL unspecs.
862         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
863         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
864         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
865         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
866         only for LABEL_REFs.  For SYMBOL_REFs, prepend
867         SH_DATALABEL_ENCODING to the symbol name.
868         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
869         convert_mode().
870         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
871         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
872         UNSPEC_DATALABEL.
873         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
874         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
875         (DATALABEL_REF_P): Don't require CONST.
876         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
877         REL label.
878         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
879         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
880         right.
881         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
882         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
883         Use shallow_copy_rtx and PUT_MODE to change the mode of
884         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
885         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
886         on SHmedia using GENERAL_REGs.
887         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
888         bltu_media_i): Fix reversion of conditions.
889         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
890         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
891         * config/sh/sh.c (output_far_jump): Save r13 in macl.
892         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
893         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
894         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
895         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
896         (GCC_nested_trampoline): Likewise.
897         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
898         * config/sh/sh.c (gen_datalabel_ref): Define.
899         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
900         (INITIALIZE_TRAMPOLINE): Likewise.
901         (TRAMPOLINE_ADJUST_ADDRESS): Define.
902         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
903         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
904         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
905         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
906         (ic_invalidate): Adjust for SH5.
907         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
908         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
909         _nested_trampoline.
910         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
911         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
912         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
913         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
914         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
915         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
916         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
917         * config/sh/sh.c (target_reg_operand): Match only target-branch
918         registers and pseudos that aren't virtual registers.
919         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
920         Copy operands that don't match target_reg_operand to pseudos.
921         (call_media, call_value_media, sibcall_media): Use
922         target_reg_operand instead of target_operand.
923         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
924         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
925         * config/sh/sh.c (target_reg_operand): Match hardware registers
926         other than branch-target registers.
927         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
928         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
929         (fpscr_values) [SH5 == 32]: Define.
930         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
931         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
932         Handle function addresses coming in SUBREGs.
933         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
934         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
935         shcompact_return_trampoline): Use datalabel where appropriate.
936         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
937         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
938         general-purpose register to copy one branch-target register to
939         another.
940         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
941         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
942         SYMBOL_REFs with VOIDmode.
943         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
944         bltu_media_i): New insns.
945         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
946         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
947         (INIT_CUMULATIVE_ARGS): Likewise.
948         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
949         * machmode.def (V16SFmode): New mode.
950         * c-common.c (type_for_mode): Support V2SF and V16SF.
951         * tree.c (build_common_tree_nodes_2): Likewise.
952         * tree.h (tree_index): Likewise.
953         * calls.c (emit_call_1): Take args_so_far.  Adjust all
954         callers.  Introduce CALL_POPS_ARGS.
955         * tm.texi (CALL_POPS_ARGS): Document.
956         * config/sh/crt1.asm: Implement in SHmedia mode.
957         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
958         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
959         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
960         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
961         Implement divsi and udivsi in SHmedia mode.  Introduce
962         SHcompact trampolines.
963         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
964         only in SHmedia64.
965         (regno_reg_class): Rewrite.
966         (fp_reg_names): Remove.
967         (sh_register_names, sh_additional_register_names): New.
968         (print_operand): Added `u'.  Support SUBREGs in addresses.
969         Add parentheses around shifted CONSTs.
970         (output_file_start): Output .mode and .abi directives.
971         (shiftcosts, addsubcosts, multcosts): Adjust.
972         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
973         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
974         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
975         bytes, not registers.  Take into account the need for the
976         SHcompact incoming args trampoline.  Adjust all callers.
977         (sh_expand_prologue): Take stack_regs into account.  Call
978         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
979         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
980         stack aligned as per SH5 ABI.
981         (sh_builtin_saveregs): Support SH5 ABI.
982         (sh_build_va_list, sh_va_start): Likewise.
983         (initial_elimination_offset): Take alignment into account.
984         Compute location of PR according to the SH5 stack frame.
985         (arith_reg_operand): Reject branch-target registers.
986         (shmedia_6bit_operand): New.
987         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
988         (target_reg_operand): Match DImode only.  Accept SUBREGs.
989         (target_operand): New.
990         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
991         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
992         SIBCALL_REGS for SHmedia.
993         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
994         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
995         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
996         (TARGET_SWITCHES): New SH5 flags.
997         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
998         VALID_REGISTER_P to disable unsupported registers.
999         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
1000         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
1001         (FUNCTION_ARG_PADDING): Define.
1002         (FASTEST_ALIGNMENT): Adjust.
1003         (SH_REGISTER_NAMES_INITIALIZER): New.
1004         (sh_register_names): Declare.
1005         (DEBUG_REGISTER_NAMES): Define.
1006         (REGISTER_NAMES): Define based on sh_register_names.
1007         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
1008         (sh_additional_register_names): Declare.
1009         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
1010         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
1011         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
1012         (REGISTER_NATURAL_MODE): Define.
1013         (FIRST_PSEUDO_REGISTER): Adjust.
1014         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
1015         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
1016         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
1017         (VECTOR_MODE_SUPPORTED_P): Define.
1018         (REG_CLASS_CONTENTS): Adjust.
1019         (SMALL_REGISTER_CLASSES): Adjust.
1020         (REG_ALLOC_ORDER): Adjust.
1021         (INDEX_REG_CLASS): Adjust.
1022         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
1023         (CONST_OK_FOR_LETTER_P): Adjust.
1024         (PREFERRED_RELOAD_CLASS): Adjust.
1025         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
1026         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
1027         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
1028         (FIRST_FP_PARM_REG): Adjust.
1029         (CALL_POPS_ARGS): Define.
1030         (FUNCTION_ARG_REGNO_P): Adjust.
1031         (struct sh_args): New fields.
1032         (GET_SH_ARG_CLASS): Adjust.
1033         (INIT_CUMULATIVE_ARGS): Adjust.
1034         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
1035         (FUNCTION_ARG_ADVANCE): Adjust.
1036         (FUNCTION_ARG): Adjust.
1037         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
1038         (FUNCTION_ARG_CALLEE_COPIES): Define.
1039         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
1040         (STRICT_ARGUMENT_NAMING): Define.
1041         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
1042         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
1043         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
1044         (SETUP_INCOMING_VARARGS): Adjust.
1045         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
1046         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
1047         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
1048         (SUBREG_OK_FOR_INDEX_P): Adjust.
1049         (EXTRA_CONSTRAINT_S): Update.
1050         (EXTRA_CONSTRAINT_T): New.
1051         (EXTRA_CONSTRAINT): Adjust.
1052         (GO_IF_LEGITIMATE_INDEX): Adjust.
1053         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
1054         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
1055         (MOVE_MAX): Adjust.
1056         (MAX_MOVE_MAX): Define.
1057         (Pmode): Adjust.
1058         (CONST_COSTS): Adjust.
1059         (REGISTER_MOVE_COST): Adjust.
1060         (BRANCH_COST): Adjust.
1061         (TEXT_SECTION_ASM_OP): Adjust.
1062         (DBX_REGISTER_NUMBER): Adjust.
1063         (ASM_OUTPUT_DOUBLE_INT): New.
1064         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
1065         (PREDICATE_CODES): Adjust.
1066         (PROMOTE_MODE): Adjust.
1067         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
1068         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
1069         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
1070         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
1071         (DR0_REG, DR2_REG, DR4_REG): Renumber.
1072         (TR0_REG, TR1_REG, TR2_REG): New.
1073         (XD0_REG): Renumber.
1074         (UNSPEC_COMPACT_ARGS): New.
1075         (type): Added pt and ptabs.
1076         (length): Default to 4 on SHmedia.  Default pt length to 12
1077         and     20 on SHmedia32 and SHmedia64, respectively.
1078         (pt): New function unit.
1079         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
1080         Add whitespace between operands of SHmedia instructions.
1081         (movdicc): Fix.
1082         (adddi3_media, addsi3_media): Adjust constraints.
1083         (subsi3) [SHmedia]: Force operand 1 into a register.
1084         (udivsi3_i1_media, udivsi3_i4_media): New.
1085         (udivsi3): Support SHmedia.
1086         (divsi3_i1_media, divsi3_i4_media): New.
1087         (divsi3): Support SHmedia.
1088         (anddi3, iordi3, xordi3): Adjust constraints.
1089         (zero_extendhidi2, zero_extendqidi2): New.
1090         (extendsidi2, extendhidi2, extendqidi2): New.
1091         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
1092         (pop_e, pop_fpul, pop_4): Likewise.
1093         (movsi_media): Support FP and BT registers.
1094         (movsi_media_nofpu): New.  Adjust splits to DImode.
1095         (lduw, ldub): Renamed to zero_extend* above.
1096         (movqi_media): Fix typo.
1097         (movdi_media): Support FP and BT registers.
1098         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
1099         (movdi_const_32bit): New.
1100         (shori_media): Require immediate operand.  Use `u' for output.
1101         (movdf_media, movsf_media): Simplified.
1102         (movdf_media_nofpu, movsf_media_nofpu): New.
1103         (movdf, movsf): Adjust
1104         (movv2sf, movv2sf, movv16sf): New.
1105         (beq_media, beq_media_i): Adjust constraints.  Don't use
1106         scratch BT register.
1107         (bne_media, bne_media_i): Likewise.
1108         (bgt_media, bgt_media_i): Likewise.
1109         (bge_media, bge_media_i): Likewise.
1110         (bgtu_media, bgtu_media_i): Likewise.
1111         (bgeu_media, bgeu_media_i): Likewise.
1112         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
1113         bunordered): Emit jump insn.  Force operands to registers when
1114         needed.
1115         (jump_media, jump): Simplify.
1116         (call_compact, call_compact_rettramp): New.
1117         (call_value_compact, call_value_compact_rettramp): New.
1118         (call_media, call_value_media): Simplify.
1119         (sibcall_compact, sibcall_media): New.
1120         (call, call_value): Adjust for SHmedia and SHcompact.
1121         (sibcall, sibcall_value, untyped_call): Likewise.
1122         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
1123         (indirect_jump): Adjust for SHmedia.
1124         (casesi_jump_media): New.
1125         (nop): Re-enable for SHmedia.
1126         (call_site): Restrict to SH1.
1127         (casesi): Adjust for SHmedia.
1128         (casesi_shift_media, casesi_load_media): New.
1129         (return): Explicitly use PR register.  Call return trampoline
1130         on SHcompact.
1131         (return_i): Explicitly use PR register.
1132         (shcompact_return_tramp, shcompact_return_tramp_i): New.
1133         (return_media): Adjust.
1134         (shcompact_incoming_args): New.
1135         (epilogue): Adjust.
1136         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
1137         (movstrsi): Disable on SH5.
1138         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
1139         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
1140         (subsf3, subsf3_media): Likewise.
1141         (mulsf3, mulsf3_media, mac_media): Likewise.
1142         (divsf3, divsf3_media): Likewise.
1143         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
1144         (floatsisf2, fux_truncsfsi2): Likewise.
1145         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
1146         constraints.
1147         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
1148         (cmpunsf_media, cmpsf): Likewise.
1149         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
1150         (abssf2, abssf2_media): Likewise.
1151         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
1152         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
1153         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
1154         (floatsidf2, fix_truncdfsi2): Likewise.
1155         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
1156         constraints.
1157         (cmpeqdf_media, cmpgtdf_media): Likewise.
1158         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
1159         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
1160         (absdf2, absdf2_media): Likewise.
1161         (extendsfdf2, extendsfdf2_media): Likewise.
1162         (truncsfdf2, truncsfdf2_media): Likewise.
1163         * config/sh/sh64.h: New file.
1164         * config/sh/t-sh64: New file.
1165         * config/sh/shmedia.h: New file.
1166         * config/sh/ushmedia.h: New file.
1167         * config/sh/sshmedia.h: New file.
1168         * configure.in: Added sh64-*-elf.
1169         * configure: Rebuilt.
1170         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
1171         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
1172         (reg_class_from_letter): Use `b' for TARGET_REGS.
1173         (print_operand): Support `%M', `%m', `AND' and
1174         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
1175         (andcosts): Adjust for SHmedia.
1176         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
1177         Likewise.
1178         (target_reg_operand): New function.
1179         * config/sh/sh-protos.h (target_reg_operand): Declare.
1180         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
1181         FP registers on SH5.
1182         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
1183         on SH4.
1184         (TARGET_REGISTER_P): New macro.
1185         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
1186         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
1187         (EXTRA_CONSTRAINT_S): New macro.
1188         (EXTRA_CONSTRAINT): Adjust.
1189         (FLOAT_TYPE_SIZE): Define to 32.
1190         (Pmode): DImode on SHmedia.
1191         (CONST_COSTS): Adjust for SHmedia literals.
1192         (PREDICATE_CODES): Added target_reg_operand.
1193         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
1194         * config/sh/sh.md: Remove all attrs from SHmedia insns.
1195         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
1196         (cmpdi): Accept SHmedia.
1197         (movdicc_false, movdicc_true): New insns.
1198         (movdicc): New expand.
1199         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
1200         no_new_pseudos.
1201         (addsi3_media): Match `S' constraint.
1202         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
1203         (negdi2): Expand for SHmedia.
1204         (one_cmpldi2): New expand.
1205         (zero_extendsidi2): Change from expand to insn.
1206         (extendsidi2): Add constraints.
1207         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
1208         LD/ST address.  Fix SI immediate loading split.
1209         (movhi_media, movqi_media, lduw, ldub): New insns.
1210         (movhi, movqi): Accept SHmedia.
1211         (shori_media, movdi_media): Relax input constraints.  Split
1212         symbolic constants.
1213         (movdf_media, movsf_media): New insn.  New split to movdi.
1214         (movdf, movsf): Match on SHmedia.
1215         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
1216         bgeu_media): New insns and splits.  New insns with `_i' suffix.
1217         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
1218         (bunordered): New expand.
1219         (jump_compact): Renamed from `jump'.
1220         (jump_media): New insn.
1221         (jump): New expand.
1222         (call_media, call_value_media): New insns.
1223         (call, call_value): Adjust.
1224         (indirect_jump_compact): Renamed from `indirect_jump'.
1225         (indirect_jump_media): New insn.
1226         (indirect_jump): New expand.
1227         (untyped_call, return): Accept SHmedia.
1228         (return_media): New insn.
1229         (prologue, epilogue, blockage): Accept SHmedia.
1230         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
1231         (sunordered): New expand.
1232         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
1233         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
1234         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
1235         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
1236         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
1237         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
1238         abssf2_media): New insns.
1239         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
1240         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
1241         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
1242         floatdidf2, floatsidf2_media, fix_truncdfdi2,
1243         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
1244         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
1245         absdf2_media): New insns.
1246         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
1247         (extendsfdf2_media, truncdfsf2_media): New insns.
1248         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
1249         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
1250         * config/sh/sh.h (CONST_OK_FOR_J): Document.
1251         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
1252         * config/sh/sh.md (adddi3): New expand.
1253         (adddi3_media, adddi3z_media): New insns.
1254         (adddi3_compact): Renamed from adddi3.
1255         (addsi3_media): Use add.l r63 to add constant zero.
1256         (subdi3): New expand.
1257         (subdi3_media): New insn.
1258         (subdi3_compact): Renamed from subdi3.
1259         (mulsidi3): New expand.
1260         (mulsidi3_media): New insn.
1261         (mulsidi3_compact): Renamed from mulsidi3.
1262         (umulsidi3): New expand.
1263         (umulsidi3_media): New insn.
1264         (umulsidi3_compact): Renamed from umulsidi3.
1265         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
1266         (ashlsi3, ashrsi3, lshrsi3): Use them.
1267         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
1268         (ashldi3, ashrdi3, lshrdi3): Use them.
1269         (zero_extendsidi2): New expand.
1270         (extendsidi2): New insn.
1271         (movsi_media): New insn.  Split to movdi to load constants.
1272         (movsi): Enable for shmedia.
1273         (movdi_media): New insn.  Use shori_media to load wide constants.
1274         (short_media): New insn.
1275         (movdi): Enable for shmedia.
1276         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
1277         * config/sh/sh.h (CPP_SPEC): Added `m5'.
1278         (SUBTARGET_CPP_SPEC): Added `!m5'.
1279         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
1280         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
1281         to all other SH variants.
1282         (TARGET_DEFAULT): Set to SH1_BIT.
1283         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
1284         (BITS_PER_WORD): Raise to 64 on shmedia.
1285         (MAX_BITS_PER_WORD): Change to 64.
1286         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
1287         (INT_TYPE_SIZE): Keep as 32.
1288         (UNITS_PER_WORD): Raise to 8 on shmedia.
1289         (MIN_UNITS_PER_WORD): Keep as 4.
1290         (POINTER_SIZE): Raise to 64 on shmedia.
1291         (CONST_OK_FOR_J): New macro.
1292         (CONST_OK_FOR_LETTER_P): Use it.
1293         (processor_type): Add PROCESSOR_SH5.
1294         * config/sh/sh.md: Conditionalize all expands, insns and
1295         splits to TARGET_SH1.
1296         (cpu): Added sh5.
1297         (addsi3_compact): Renamed from...
1298         (addsi3): Now an expand.
1299         (addsi3_media, subsi3_media): New insns.
1300         (subsi3): Don't negate constants with SHmedia.
1301
1302         * hooks.c: New file.
1303         * hooks.h: New file.
1304         * Makefile.in (HOOKS_H): New.
1305         (TARGET_DEF_H): Added $(HOOKS_H).
1306         (OBJS): Added hooks.o.
1307         (cfgcleanup.o, bb-reorder.o): Added target.h.
1308         (hooks.o): Added dependencies.
1309         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
1310         (TARGET_INITIALIZER): this.
1311         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
1312         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
1313         * bb-reorder.c: Include target.h.
1314         (reorder_basic_blocks): Skip if cannot modify jumps.
1315         * cfgcleanup.c: Include target.h.
1316         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
1317
1318 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
1319
1320         * config/mips/mips.md (casesi_internal, casesi_internal_di):
1321         Protect jump delay slot instructions with .set noreorder and
1322         .set nomacro.
1323
1324 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
1325
1326         * config/mips/mips.md (casesi_internal_di): Calculate
1327         the index into the target offset table correctly.
1328
1329 2002-02-08  Richard Henderson  <rth@redhat.com>
1330
1331         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
1332         * final.c (output_addr_const): Accept and discard SUBREG.
1333         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
1334         mark them unknown instead.
1335         (simplify_subtraction): Handle RTX_UNKNOWN.
1336         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
1337
1338 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
1339
1340         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
1341
1342 2002-02-08  Richard Henderson  <rth@redhat.com>
1343
1344         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
1345
1346 2002-02-08  Andreas Jaeger  <aj@suse.de>
1347
1348         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
1349         * config/i386/t-linux64: New file.
1350
1351 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
1352
1353         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
1354         * c-parse.in (compstmt): Clear last_expr_type.
1355
1356 2002-02-07  Richard Henderson  <rth@redhat.com>
1357
1358         * loop.c (strength_reduce): Sink final_value when not
1359         eliminating a biv.
1360
1361 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
1362
1363         * config/sparc/freebsd.h: Fix mismatched spec {.
1364
1365 2002-02-07  Richard Henderson  <rth@redhat.com>
1366
1367         * cfgrtl.c: Include recog.h and insn-config.h.
1368         (keep_with_call_p): Fix general_operand invocation.
1369         * Makefile.in (cfgrtl.o): Update dependencies.
1370
1371 2002-02-07  Kazu Hirata  <kazu@hxi.com>
1372
1373         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
1374         comment.  Accept HImode only if TARGET_H8300.
1375
1376 2002-02-07  Eric Christopher  <echristo@redhat.com>
1377
1378         * config/mips/crtn.asm: Cleanup #ifdefs.
1379
1380 2002-02-07  Eric Christopher  <echristo@redhat.com>
1381
1382         * config/mips/crti.asm: Add changes for mips16. mips16 uses
1383         register 7 as RA instead of $31.
1384         * config/mips/crtn.asm: Ditto.
1385         * config/mips/mips.c (mips_move_2words): Add case for
1386         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
1387         (compute_frame_size): Fix typo.
1388         (save_restore_insns): Ditto.  Make documentation about using
1389         register $7 as return register more precise.
1390         (mips_expand_epilogue): Fix comment. Add code to work around not
1391         being able to add to the stack pointer directly.
1392         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
1393         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
1394         epilogue.
1395
1396 2002-02-07  Tom Rix  <trix@redhat.com>
1397
1398         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
1399         immediates in ldu and stdu DS opcode field.
1400         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
1401         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
1402         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
1403
1404 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
1405
1406         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
1407         offset for stack bias.
1408
1409 2002-02-07  H.J. Lu <hjl@gnu.org>
1410
1411         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
1412
1413 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
1414
1415         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
1416
1417 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
1418
1419         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
1420         * i386.c (x86_order_regs_for_local_alloc): New global function.
1421         * i386.h (REG_ALLOC_ORDER): CLeanup.
1422         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
1423
1424 2002-02-07  Richard Henderson  <rth@redhat.com>
1425
1426         PR optimization/2463
1427         * alias.c (find_base_value): Recall base values for fixed hard regs.
1428         * loop.c (loop_regs_update): Don't use single_set on non-insns.
1429
1430 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
1431
1432         * config/mips/mips.md (define_delay) [mips16]: Adjust required
1433         length.
1434
1435 2002-02-06  Richard Henderson  <rth@redhat.com>
1436
1437         PR c/5609
1438         * stmt.c (resolve_operand_name_1): Take more care with mixed
1439         named and unnamed operands.
1440
1441 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
1442             Jan Hubicka  <jh@suse.cz>
1443
1444         * loop.c (remove_constant_addition): Avoid clobbering a shared
1445         CONST expression.
1446
1447 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
1448
1449         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
1450         * config/s390/t-linux64: New file.
1451         * config/s390/libgcc-glibc.ver: New file.
1452
1453 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
1454
1455         * config/s390/linux64.h: Delete file.
1456         * config/s390/s390x.h: New file.
1457         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
1458         as target header file.
1459         * config/s390/linux.h (TARGET_VERSION): Define depending on
1460         DEFAULT_TARGET_64BIT.
1461         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
1462         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
1463         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
1464         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
1465         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
1466         (EXTRA_SPEC): New define.
1467         * config/s390/s390.h (TARGET_VERSION): Define depending on
1468         DEFAULT_TARGET_64BIT.
1469         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
1470
1471 2002-02-06  Jason Merrill  <jason@redhat.com>
1472
1473         * c-decl.c (finish_function): Warn about a non-void function with
1474         no return statement and no abnormal exit.
1475         (current_function_returns_abnormally): New variable.
1476         (start_function): Clear it.
1477         (struct c_language_function): Add returns_abnormally.
1478         (push_c_function_context): Save it.
1479         (pop_c_function_context): Restore it.
1480         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
1481         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
1482         an explicit return type.
1483         * c-tree.h: Declare current_function_returns_abnormally.
1484         (C_FUNCTION_IMPLICIT_INT): New macro.
1485         * c-typeck.c (build_function_call): Set it.
1486         (c_expand_return): Set current_function_returns_value even if the
1487         value is erroneous.
1488
1489 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
1490
1491         PR c/5420:
1492         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
1493         unsafe for reevaluation.
1494
1495 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
1496
1497         PR c/5482:
1498         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
1499         EXPR_STMT, but COMPOUND_STMT, recurse into it.
1500
1501 2002-02-06  Richard Henderson  <rth@redhat.com>
1502
1503         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
1504         be a general_operand.  Dest for function value must be a pseudo.
1505
1506 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
1507
1508         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
1509         as SYMBOL_REFs from the constant pool.
1510
1511 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
1512
1513         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
1514         passed by invisible reference.
1515
1516 2002-02-05  Richard Henderson  <rth@redhat.com>
1517
1518         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
1519
1520 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
1521
1522         Implement using "base addresses" in insn operands as default.
1523         * config/mmix/mmix.c (mmix_conditional_register_usage): if
1524         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
1525         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
1526         used to read the rtx value.
1527         (mmix_target_asm_function_epilogue): Fix spacing.
1528         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
1529         (mmix_legitimate_address): Ditto.
1530         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
1531         should be loaded with a GETA insn.  Don't allocate needless extra
1532         char for nul termination and fix misleading comment.
1533         (mmix_print_operand_address): Handle constants if
1534         TARGET_BASE_ADDRESSES.
1535         (mmix_output_register_setting): Use base addressing if
1536         TARGET_BASE_ADDRESSES and the number of insns is 3.
1537         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
1538         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
1539         to use R as constraint, add LDA to match s.
1540         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
1541         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
1542         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
1543         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
1544         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
1545         order with other fixed registers.
1546         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
1547         other parameter/call-clobbered registers.
1548         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
1549         -mbase-addresses, -mno-base-addresses.
1550         (MMIX Options): Ditto.
1551
1552 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1553
1554         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
1555
1556 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
1557
1558         * config/rs6000/altivec.h: Change elem to _S_elem.
1559
1560 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
1561
1562         * config/netbsd.h (WCHAR_TYPE): Define.
1563         (WCHAR_TYPE_SIZE): Ditto.
1564         (WINT_TYPE): Ditto.
1565         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
1566         (WCHAR_UNSIGNED): Ditto.
1567         (WCHAR_TYPE_SIZE): Ditto.
1568         (WINT_TYPE): Ditto.
1569         * config/arm/netbsd.h: Likewise.
1570         * config/i386/netbsd-elf.h: Likewise.
1571         * config/i386/netbsd.h: Likewise.
1572         * config/m68k/netbsd-elf.h: Likewise.
1573         * config/m68k/netbsd.h: Likewise.
1574         * config/ns32k/netbsd.h: Likewise.
1575         * config/sparc/netbsd.h: Likewise.
1576         * config/vax/netbsd.: Likewise.
1577
1578 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
1579
1580         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
1581         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
1582         (TARGET_INITIALIZER): this.
1583         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
1584         (BITFIELD_NBYTES_LIMITED): Markup fix.
1585         * tree.h (default_ms_bitfield_layout_p): Declare.
1586         (record_layout_info): Added prev_field.
1587         * tree.c (default_ms_bitfield_layout_p): New fn.
1588         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
1589         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
1590         * stor-layout.c: Include target.h.
1591         (start_record_layout): Initialize prev_field.
1592         (place_field): Handle MS bit-field layout, and disregard
1593         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
1594         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
1595         * Makefile.in (stor-layout.o): Adjust dependencies.
1596
1597 2002-02-05  Jason Merrill  <jason@redhat.com>
1598
1599         * c-typeck.c (convert_for_assignment): Don't allow conversions
1600         between pointers and references.  Only allow lvalues to convert to
1601         reference.
1602
1603         * c-decl.c (finish_function): Warn about a non-void function with
1604         no return statement and no abnormal exit.
1605         (current_function_returns_abnormally): New variable.
1606         (start_function): Clear it.
1607         (struct c_language_function): Add returns_abnormally.
1608         (push_c_function_context): Save it.
1609         (pop_c_function_context): Restore it.
1610         * c-tree.h: Declare current_function_returns_abnormally.
1611         * c-typeck.c (build_function_call): Set it.
1612
1613         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
1614
1615 2002-02-05  Andreas Jaeger  <aj@suse.de>
1616
1617         * crtstuff.c: Fix comments.
1618
1619 2002-02-05  Richard Henderson  <rth@redhat.com>
1620
1621         PR fortran/3393
1622         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
1623         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
1624
1625         PR fortran/3392
1626         * config/mips/mips.c (function_arg): Handle TImode.
1627         (function_arg_advance): Likewise.
1628
1629 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
1630
1631         * config/rs6000/altivec.h (vec_step_help): Rename to
1632         __vec_step_help.
1633
1634 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
1635
1636         * config/rs6000/altivec.h: Fix typos.
1637
1638 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
1639
1640         * config/arm/netbsd.h: Correct a comment.
1641
1642 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
1643
1644         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
1645         building void typed builtins.
1646
1647         * config/rs6000/altivec.h (vec_ld*): Fix typos.
1648         (vec_step): Implement for C++.
1649
1650 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1651
1652         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
1653
1654 2002-02-04  Richard Henderson  <rth@redhat.com>
1655
1656         * combine.c (nonzero_bits): Re-introduce special case for
1657         sp/fp/ap wrt REGNO_POINTER_ALIGN.
1658
1659 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
1660
1661         * doc/extend.texi: Warn about unsupported usage of altivec
1662         builtins.
1663
1664         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
1665         (altivec_predicate_*): New.
1666
1667         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
1668         Add C++ version of vec_*() functions.
1669
1670         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
1671         (bdesc_2arg): Remove altivec predicates.
1672         (altivec_expand_builtin): Handle predicates.
1673         (altivec_init_builtins): Handle predicates.
1674         (altivec_expand_predicate_builtin): New.
1675
1676 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1677
1678         * pa.c (DO_FRAME_NOTES): Move forward.
1679         (store_reg): Revise handling of frame notes.
1680         (load_reg): Likewise.
1681         (set_reg_plus_d): Likewise.
1682         (hppa_expand_prologue): Likewise.
1683         (hppa_expand_epilogue): Likewise.
1684
1685 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1686
1687         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
1688
1689 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
1690
1691         PR c/4475, c++/3780:
1692         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
1693         * c-common.h (SWITCH_TYPE): Define.
1694         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
1695         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
1696         Rename spareness variable to sparseness.
1697         (expand_end_case_type): Renamed from expand_end_case, use orig_type
1698         if non-NULL instead of TREE_TYPE (orig_index).
1699         * tree.h (expand_end_case_type): Renamed from expand_end_case.
1700         (expand_end_case): Define using expand_end_case_type.
1701         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
1702         to expand_end_case_type.
1703         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
1704
1705 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1706
1707         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
1708         (BIGGEST_ALIGNMENT): Change to 128.
1709
1710 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1711
1712         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
1713
1714 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1715
1716         * pa.md (call_internal_reg_64bit): Remove unused variable.
1717
1718 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
1719
1720         * config/arm/arm.h (machine_function): Add uses_anonymous_args
1721         field.
1722         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
1723         * config/arm/arm.c (current_function_anonymous_args): Delete,
1724         replace uses with cfun->machine->uses_anonymous_args.
1725         (arm_reorg): Do not reset uses_anonymous_args.
1726
1727         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
1728         any geenral register.
1729
1730 2001-02-04  Bernd Schmidt  <bernds@redhat.com>
1731
1732         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
1733         the entry block.
1734
1735 2002-02-04  Richard Henderson  <rth@redhat.com>
1736
1737         * combine.c (force_to_mode): Remove STACK_BIAS code.
1738         (nonzero_bits): Likewise.  Replace sp/fp special case with
1739         REGNO_POINTER_ALIGN.
1740
1741         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
1742         (HARD_FRAME_POINTER_REGNUM): New.
1743         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
1744         (FIXED_REGS, CALL_USED_REGS): Update.
1745         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
1746         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
1747         (HARD_REGNO_NREGS): Update for SFP.
1748         (STACK_POINTER_OFFSET): Include bias here ...
1749         (FIRST_PARM_OFFSET): ... not here.
1750         (STACK_BIAS): Remove.
1751         (INIT_EXPANDERS): New.
1752         (STARTING_FRAME_OFFSET): Do not include bias.
1753         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
1754         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
1755         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
1756         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
1757         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
1758         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
1759         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
1760         (MUST_SAVE_REGISTER): Likewise.
1761         (sparc_flat_function_prologue): Likewise.
1762         (sparc_flat_function_epilogue): Likewise.
1763         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
1764         (sparc_init_modes): SFP is GENERAL_REGS.
1765         (sparc_builtin_saveregs): SFP does not have bias applied.
1766
1767 2002-02-04  Richard Henderson  <rth@redhat.com>
1768
1769         * config/alpha/alpha.c (current_function_is_thunk): Don't check
1770         current_function_is_thunk.
1771         (alpha_sa_mask): Distinguish between current_function_is_thunk
1772         called from ASM_OUTPUT_MI_THUNK and not.
1773         (alpha_does_function_need_gp): Thunks always need gp.
1774         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
1775         (alpha_output_mi_thunk_osf): New.
1776         * config/alpha/alpha-protos.h: Update.
1777         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
1778
1779 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
1780
1781         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
1782         function types, not when they're taken away.
1783
1784 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
1785
1786         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
1787         CODE_LABEL and jump table when replacing a table jump with a
1788         simple jump.
1789
1790 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
1791
1792         * config/s390/s390-protos.h (legitimize_la_operand,
1793         s390_secondary_input_reload_class, s390_plus_operand,
1794         s390_expand_plus_operand): Add prototypes.
1795
1796         config/s390/s390.c (s390_secondary_input_reload_class,
1797         s390_plus_operand, s390_expand_plus_operand): New functions.
1798
1799         (struct s390_address): New member 'pointer'.
1800         (s390_decompose_address): Compute it.
1801         (legitimate_la_operand_p): Use it.
1802         (legitimize_la_operand): New function.
1803         (movti, movdi, movdf splitters): Call it.
1804
1805         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
1806         (PREDICATE_CODES): Add s390_plus_operand.
1807
1808         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
1809         (la_ccclobber): Allow GENERAL_REGS as output operand.
1810
1811         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
1812         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
1813         (*la_64, *la_31, reload_indi, reload_insi): ... these.
1814
1815 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
1816
1817         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
1818         register names for regular asm () construct.
1819
1820 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
1821
1822         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
1823         registers.
1824
1825 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
1826
1827         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
1828         pat for recog.
1829
1830 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
1831
1832         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
1833         constant pool to be identical by string address and index.
1834
1835 2002-02-04  Anthony Green  <green@redhat.com>
1836
1837         * output.h (SECTION_OVERRIDE): Define.
1838         * varasm.c (named_section): Obey SECTION_OVERRIDE.
1839
1840 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
1841
1842         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
1843         by existing arm*-*-netbsd* (a.out) target.
1844         (ns32k-*-netbsdelf*): Likewise.
1845         (sparc-*-netbsdelf*): Likewise.
1846         (vax-*-netbsdelf*): Likewise.
1847
1848 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
1849
1850         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
1851         headers and libobjc headers.
1852
1853 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
1854
1855         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
1856         (_mingw.h): Remove duplicate include.
1857
1858 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
1859
1860         * config.gcc: Set cpu_type to m68k for 68010, as well.
1861         (m68010-*-netbsdelf*): New...
1862         (m68k*-*-netbsdelf*): ...targets.
1863         * config/m68k/netbsd-elf.h: New file.
1864
1865 2002-02-02  Kazu Hirata  <kazu@hxi.com>
1866
1867         * config/h8300/h8300.c (hand_list): Move inside function_arg.
1868
1869 2002-02-02  Kazu Hirata  <kazu@hxi.com>
1870
1871         * config/h8300/h8300.c (h8_push_ops): Move inside
1872         h8300_init_once.
1873         (h8_pop_ops): Likewise.
1874         (h8_move_ops): Likewise.
1875
1876 2002-02-02  Kazu Hirata  <kazu@hxi.com>
1877
1878         * config/h8300/h8300.c (os_task): Make it static.
1879         (monitor): Likewise.
1880         (pragma_saveall): Likewise.
1881
1882 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
1883
1884         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
1885         constant is a valid sign-extension for Pmode.
1886
1887 2002-02-02  Kazu Hirata  <kazu@hxi.com>
1888
1889         * config/h8300/h8300.c: Fix formatting.
1890
1891 2002-02-02  Kazu Hirata  <kazu@hxi.com>
1892
1893         * config/h8300/h8300.md: Fix formatting.
1894
1895 2002-02-02  Kazu Hirata  <kazu@hxi.com>
1896
1897         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
1898         predicates of operands[1].  Split the patterns for each
1899         processor variant.
1900
1901 2002-02-02  Kazu Hirata  <kazu@hxi.com>
1902
1903         * config/h8300/h8300.md (xor patterns): Tighten the predicates
1904         of operands[1] to register_operand.
1905
1906 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1907
1908         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
1909         * cpphash.c (_cpp_init_hashtable): Similarly.
1910         * cppinit.c (cpp_create_reader): Default the signed_char flag.
1911         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
1912         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
1913         (cpp_handle_option): Handle the new options.
1914         * cpplex.c (cpp_interpret_charconst): Use new flag.
1915         * cpplib.h (struct cpp_options): New member signed_char.
1916         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
1917         (cpp_options): Handle -fsigned-char and -funsigned-char.
1918         (static_specs): Remove signed_char_spec.
1919         (do_spec1): Don't handle %c.
1920         * system.h: Poison SIGNED_CHAR_SPEC.
1921         * tradcif.y (yylex): Use flag_signed_char.
1922         * tradcpp.h (flag_signed_char): New.
1923         * tradcpp.c (flag_signed_char): New.
1924         (main): Handle new command-line options.
1925         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
1926 config:
1927         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
1928         * avr/avr.h: Remove old comments.
1929         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
1930         (CC1_SPEC): Pass -fsigned-char if -mic*.
1931         (SIGNED_CHAR_SPEC): Remove.
1932 doc:
1933         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
1934
1935 2002-02-01  Eric Christopher  <echristo@redhat.com>
1936
1937         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
1938         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
1939         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
1940         (ASM_OUTPUT_REG_POP): Ditto.
1941
1942 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1943
1944         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
1945         patch.
1946
1947 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
1948
1949         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
1950
1951 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
1952
1953         PR c/5304:
1954         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
1955         unconditionally.
1956
1957 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
1958
1959         * cfganal.c: Include tm_p.h.
1960         (keep_with_call_p): Fix the test that determines if a register holds
1961         the return value of a call.
1962
1963 2002-02-01  DJ Delorie  <dj@redhat.com>
1964
1965         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
1966         we are given conflicting registers, switch to the other one we
1967         had allocated for us.
1968         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
1969         as TImode so we know when the "other" register is available.
1970
1971 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
1972
1973         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
1974         sparc/sparc_bi.h.
1975
1976 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
1977
1978         * cfganal.c (keep_with_call_p): New function.
1979         (flow_call_edges_add): Prevent splitting a block between a call and
1980         a single-set instruction that should be kept in the same block.
1981
1982 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1983
1984         * doc/install.texi (avr): Update outdated URL.
1985
1986 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
1987
1988         * config/stormy16/stormy16.md (pushqi): New.
1989         (popqi): New.
1990         (pushhi): New.
1991         (pophi): New.
1992         (movhi): Remove stack operands.
1993         (movqi): Likewise.
1994         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
1995         nonimmediate_nonstack_operand.
1996         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
1997         New.
1998         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
1999         New.
2000
2001 2002-01-31  Jason Merrill  <jason@redhat.com>
2002
2003         * Makefile.in (c-parse.c): Handle .output file.
2004         * objc/Make-lang.in (objc-parse.c): Likewise.
2005
2006 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
2007
2008         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
2009         the -me[lb] option is given.  Don't output the default flag
2010         twice.
2011
2012 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
2013
2014         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
2015         the primary source file; this has not been done yet.
2016         * c-decl.c (c_expand_body): Reset input_filename from
2017         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
2018
2019 2002-01-31  Kazu Hirata  <kazu@hxi.com>
2020
2021         * rtlanal.c (subreg_regno_offset): Do not use
2022         SUBREG_REGNO_OFFSET.
2023         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
2024         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
2025
2026 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
2027
2028         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
2029         version rather than GNATS version in --version output.
2030
2031 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
2032
2033         * ifcvt.c (noce_process_if_block): Make a copy of the destination
2034         when copying back from a temporary.
2035
2036 2002-01-30  Richard Henderson  <rth@redhat.com>
2037
2038         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
2039         and new_dest are the same.
2040
2041 2002-01-30  Richard Henderson  <rth@redhat.com>
2042
2043         PR opt/5076
2044         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
2045         * rtl.c (note_insn_name): Update.
2046         * emit-rtl.c (remove_unnecessary_notes): Kill it.
2047         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
2048         to perform loop rotation.
2049         (expand_exit_loop_top_cond): New.
2050         * tree.h (expand_exit_loop_top_cond): Declare it.
2051         * c-semantics.c (genrtl_while_stmt): Use it.
2052         (genrtl_for_stmt): Likewise.
2053
2054 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
2055
2056         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
2057         arguments to 64-bit boundaries on 64-bit ABIs.
2058
2059 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
2060
2061         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
2062
2063 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
2064
2065         * c-decl.c (grokdeclarator): Handle type being a typedef for an
2066         invalid type.
2067
2068 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
2069
2070         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
2071         * config/sparc/sparc_bi.h: Remove file.
2072         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
2073
2074 2002-01-30  Richard Henderson  <rth@redhat.com>
2075
2076         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
2077
2078 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
2079
2080         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
2081
2082 2002-01-30  Jason Merrill  <jason@redhat.com>
2083
2084         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
2085         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
2086         (reg_save): Use DW_CFA_offset_extended_sf instead.
2087
2088         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
2089
2090 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
2091
2092         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
2093         in cselib_lookup.
2094
2095 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
2096
2097         * rs6000.md ("*call_value_local32"): Remove constraints.
2098         ("*call_value_local64"): Same.
2099         ("*call_value_indirect_nonlocal_aix32"): Same.
2100         ("*call_value_nonlocal_aix32"): Same.
2101         ("*call_value_indirect_nonlocal_aix64"): Same.
2102         ("*call_value_nonlocal_aix64"): Same.
2103         ("*call_value_nonlocal_sysv"): Same.
2104
2105 2002-01-29  Richard Henderson  <rth@redhat.com>
2106
2107         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
2108
2109 2002-01-29  Richard Henderson  <rth@redhat.com>
2110
2111         * expr.c (force_operand): Ignore flag_pic for detecting pic
2112         address loads.
2113         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
2114         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
2115         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
2116         instead of open-coded loop.
2117         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
2118         be fixed when in use.
2119
2120 2002-01-29  Richard Henderson  <rth@redhat.com>
2121
2122         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
2123         * sched-rgn.c (propagate_deps): Update them.
2124         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
2125         clobbers list when either gets too long.
2126
2127 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
2128
2129         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
2130         and INDEX_REGS the same as GENERAL_REGS.
2131         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2132
2133 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2134
2135         * tree.c (build_nonstandard_integer_type): Correct prototype.
2136
2137 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
2138
2139         * config/s390/s390.md (movstrsico, movstrdix_64,
2140         movstrsix_31): Remove, replace by ...
2141         (movstrdi_short, movstrsi_short, movstrdi_long,
2142         movstrsi_long): ... these.  New.
2143         (movstrdi, movstrsi): Adapt.
2144
2145         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
2146         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
2147         Remove unnecessary CC clobber.
2148         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
2149         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
2150
2151         (divmoddi4): Don't partially initialize TImode register.
2152
2153 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
2154
2155         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
2156
2157 2002-01-29  Richard Henderson  <rth@redhat.com>
2158
2159         * flow.c (print_rtl_and_abort): Remove.
2160         (print_rtl_and_abort_fcn): Remove.
2161         (verify_local_live_at_start): Use dump_bb instead.
2162         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
2163         (verify_wide_reg_1): Return 2 on mode test failure.
2164
2165 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2166
2167         PR c/3325, c/3326, c/2511, c/3347
2168         * c-decl.c (enum_decl_context): Remove BITFIELD.
2169         (grokdeclarator): Take bitfield width as an input.
2170         Ensure bitfields are given the correct type.  Perform
2171         bitfield width validation with build_bitfield_integer_type
2172         rather than waiting for finish_struct.
2173         (grok_typename, grok_typename_in_parm_context, start_decl,
2174         push_parmdecl, grokfield, start_function): Update calls to
2175         grokdeclarator.
2176         (build_bitfield_integer_type): New function.
2177         (finish_struct): Move bitfield validation to grokdeclarator
2178         and build_bitfield_integer_type.
2179         * tree.c (build_nonstandard_integer_type): New function.
2180         * tree.h (build_nonstandard_integer_type): New prototype.
2181 objc:
2182         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
2183
2184 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
2185
2186         PR other/1502:
2187         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
2188         don't ignore unrecognized -W* options.
2189         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
2190         * cpplib.h (cpp_handle_option): Adjust prototype.
2191         * c-decl.c (c_decode_options): Pass 0 as last argument to
2192         cpp_handle_option.
2193
2194         PR c/2896:
2195         * gcc.c (cpp_unique_options): Split from cpp_options.
2196         (cpp_options): Source cpp_unique_options.
2197         (default_compilers): Use cpp_unique_options instead of cpp_options
2198         when used together with cc1_options.
2199         (static_specs): Add cpp_unique_options.
2200         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
2201         when used together with cc1_options.
2202
2203 2002-01-29  Kazu Hirata  <kazu@hxi.com>
2204
2205         * config/h8300/h8300-protos.h: Update the prototype of
2206         output_a_shift.
2207         * config/h8300/h8300.c (output_a_shift): Remove an unused
2208         argument 'insn'.  Remove redundant code.
2209         * config/h8300/h8300.md: Adust to the new prototype of
2210         output_a_shift.
2211
2212 2002-01-29  Kazu Hirata  <kazu@hxi.com>
2213
2214         * config/h8300/h8300-protos.h: Update the prototypes of
2215         emit_a_rotate and expand_a_rotate.
2216         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
2217         first argument to 'enum rtx_code'.
2218         (expand_a_rotate): Likewise.
2219
2220 2002-01-28  Kazu Hirata  <kazu@hxi.com>
2221
2222         * config/h8300/h8300-protos.h: Update the prototype of
2223         output_simode_bld.
2224         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
2225         'log2'.
2226         * config/h8300/h8300.md: Adjust to the new prototype.
2227
2228 2002-01-28  Kazu Hirata  <kazu@hxi.com>
2229
2230         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
2231         redundant code.
2232
2233 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2234
2235         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
2236         is a fixed register before returning pic_offset_table_rtx.
2237         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
2238         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
2239
2240 2002-01-28  Jason Merrill  <jason@redhat.com>
2241
2242         * dwarf2.h: Sync with src version.
2243
2244 2002-01-28  Paul Koning  <pkoning@equallogic.com>
2245
2246         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
2247         BT_FN_VOID_PTR_VAR.
2248         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
2249         * doc/extend.texi (__builtin_prefetch): Update documentation:
2250         first argument is now const void ptr.
2251
2252 2002-01-28  Kazu Hirata  <kazu@hxi.com>
2253
2254         * config/h8300/h8300-protos.h: Remove an unused prototype.
2255
2256 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
2257
2258         * toplev.c (lang_independent_init): Round up identifier size.
2259
2260 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
2261
2262         * config.gcc: Revert previous change.
2263
2264 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
2265
2266         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
2267
2268 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
2269
2270         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
2271         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
2272         other non-elf netbsd config frags.
2273         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
2274         collect2 will does that.
2275         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
2276         shared-lib frobbing will work.
2277
2278 2002-01-28  Kazu Hirata  <kazu@hxi.com>
2279
2280         * config/h8300/h8300.h: Fix formatting.
2281         * config/h8300/h8300.md: Likewise.
2282
2283 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
2284
2285         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
2286         the old, removed AAA_standards fix.
2287         * fixinc/fixincl.x: Rebuilt.
2288
2289 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
2290
2291         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
2292         atexit call in crtbegin, hooked in after call to frame_dummy;
2293         register EH before registering __fini__start.
2294
2295 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
2296
2297         * config/rs6000/altivec.h: Remove spurious semicolons.
2298
2299 2002-01-27  Kazu Hirata  <kazu@hxi.com>
2300
2301         * config/h8300/h8300.md: Replace dead bit extraction patterns
2302         with ones that work.
2303
2304 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2305
2306         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
2307         if not STRICT_ALIGNMENT.
2308         * rtl.h (MEM_ALIGN): Likewise.
2309
2310 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2311
2312         * doc/invoke.texi (-fdump-translation-unit): Revert this
2313         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2314
2315 2002-01-27  Kazu Hirata  <kazu@hxi.com>
2316
2317         * config/h8300/h8300.md (define_constants): New.
2318         (anonymous patterns) Use defined constants appropriately.
2319
2320 2002-01-27  Kazu Hirata  <kazu@hxi.com>
2321
2322         * config/h8300/h8300.c (function_arg): Remove redundant code.
2323
2324 2002-01-26  Richard Henderson  <rth@redhat.com>
2325
2326         * sched-deps.c (reg_pending_uses_head): New.
2327         (reg_pending_barrier): Rename from reg_pending_sets_all.
2328         (find_insn_list): Don't mark inline.
2329         (find_insn_mem_list): Remove.
2330         (add_dependence_list, add_dependence_list_and_free): New.
2331         (flush_pending_lists): Replace only_write param with separate
2332         for_read and for_write parameters.  Update all callers.  Use
2333         add_dependence_list_and_free.
2334         (sched_analyze_1): Do not add reg dependencies here; just set
2335         the pending bits.  Use add_dependence_list.
2336         (sched_analyze_2): Likewise.
2337         (sched_analyze_insn): Replace schedule_barrier_found with
2338         reg_pending_barrier.  Add all dependencies for pending reg
2339         uses, sets, and clobbers.
2340         (sched_analyze): Don't add reg dependencies for calls, just
2341         set pending bits.  Use regs_invalidated_by_call.  Treat
2342         sched_before_next_call as a normal list, not a fake insn.
2343         (init_deps): No funny init for sched_before_next_call.
2344         (free_deps): Free pending mems lists.  Don't zero reg_last.
2345         (init_deps_global): Init reg_pending_uses.
2346         (finish_deps_global): Free it.
2347         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
2348         (find_insn_mem_list): Remove.
2349         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
2350         (propagate_deps): Use them.  Zero temp mem lists.
2351
2352 2002-01-26  Richard Henderson  <rth@redhat.com>
2353
2354         * Makefile.in (CRTSTUFF_CFLAGS): New.
2355         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
2356         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
2357         crtstuff.c instead of alpha assembly version.
2358         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
2359         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
2360         not FORCE_{INIT,FINI}_SECTION_ALIGN.
2361         (__do_global_dtors_aux): Mark used.
2362         (frame_dummy, __do_global_ctors_aux): Mark used.
2363         (fini_dummy, init_dummy): Remove.
2364
2365         * config/alpha/crtbegin.asm: Remove file.
2366         * config/alpha/crtend.asm: Remove file.
2367         * config/alpha/t-crtbe: Remove file.
2368         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
2369         (LINK_EH_SPEC): New.
2370
2371         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
2372         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
2373         calling constructors.
2374         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
2375
2376         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
2377         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
2378         CRT_END_INIT_DUMMY hack.
2379         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
2380         FORCE_{INIT,FINI}_SECTION_ALIGN.
2381
2382         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
2383         FORCE_{INIT,FINI}_SECTION_ALIGN.
2384
2385         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
2386         invocation sequence.
2387         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
2388
2389         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
2390         (FORCE_CODE_SECTION_ALIGN): New.
2391
2392 2002-01-26  Richard Henderson  <rth@redhat.com>
2393
2394         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
2395
2396 2002-01-26  Richard Henderson  <rth@redhat.com>
2397
2398         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
2399         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
2400
2401 2002-01-26  Kazu Hirata  <kazu@hxi.com>
2402
2403         * config/h8300/h8300.md: Remove bit extraction patterns that
2404         cannot be triggered.
2405         Restrict each bit extraction pattern to a variant on which the
2406         pattern is tested.
2407
2408 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
2409
2410         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
2411
2412 2002-01-26  Kazu Hirata  <kazu@hxi.com>
2413
2414         * config/h8300/h8300.md: Remove bit test patterns that cannot
2415         be triggered.
2416         Restrict each bit test pattern to a variant on which the
2417         pattern is tested.
2418
2419 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2420
2421         * builtins.c (expand_builtin_strncat): Remove redundant check for
2422         INTEGER_CST.
2423
2424 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
2425
2426         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
2427         default setting.
2428         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
2429         existing setting.
2430
2431 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
2432
2433         * dbxout.c (dbxout_init): Use assemble_name rather than just
2434         stripping off the first character.
2435         (dbxout_source_file): Likewise.
2436
2437 2002-01-25  DJ Delorie  <dj@redhat.com>
2438
2439         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
2440         using rtx_equal_p, not by comparing pointers.
2441
2442 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
2443
2444         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
2445         for PIC_OFFSET_TABLE_REGNUM.
2446         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
2447
2448 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
2449
2450         * config.gcc (x86_64-*-freebsd*): New target.
2451         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
2452         value.
2453         (i[34567]86-*-freebsd*): Don't include svr4.h.
2454         * config/i386/freebsd64.h: New file.
2455
2456 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
2457
2458         * config/alpha/x-vms (version): Make static.
2459
2460         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
2461         in previous checkin.
2462
2463         * Makefile.in (install-headers-cp): New target.
2464         * config.gcc (alpha-dec-*vms*): Install headers with
2465         install-headers-cp
2466
2467 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
2468
2469         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
2470         avoid it's copies.
2471
2472 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2473
2474         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
2475         of compare_tree_int.
2476         (expand_builtin_strncat): Likewise.
2477         * c-decl.c (finish_struct): Use tree_low_cst.
2478         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
2479         * tree.c (compare_tree_int): Likewise.
2480
2481 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
2482
2483         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
2484         adjustments even if they are implemented by more than two insns.
2485
2486 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
2487
2488         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
2489         * df.h (struct ref): Kill B.
2490         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
2491
2492         * basic-block.h (PROP_EQUAL_NOTES): New flag.
2493         * flow.c (propagate_one_insn): Use it.
2494         (mark_used_regs): Handle NIL.
2495
2496 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
2497
2498         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
2499         to help folding.
2500
2501 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
2502
2503         * rs6000.md (prefetch): Make address V4SI mode so that the address
2504         is restricted to legitimate form for instruction.
2505
2506 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
2507
2508         * doc/install.texi (xtensa-*-elf): New target.
2509         (xtensa-*-linux*): New target.
2510         * doc/contrib.texi: Add myself.
2511
2512 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
2513
2514         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
2515         purpose register to hold an SImode (or smaller) value.
2516
2517 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
2518
2519         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
2520         registry only.
2521         * crtstuff.c: Likewise.
2522
2523 2002-01-25  Kazu Hirata  <kazu@hxi.com>
2524
2525         * config/h8300/h8300.md (negation patterns): Tighten
2526         predicates to register_operand.
2527
2528 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
2529
2530         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
2531         mode, not Pmode.
2532
2533         * builtins.c (expand_builtin_prefetch): Same.
2534
2535 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
2536
2537         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
2538         modes.
2539
2540 2002-01-24  Kazu Hirata  <kazu@hxi.com>
2541
2542         * config/h8300/h8300.c (print_operand): Remove support for
2543         operand character 'A'.
2544         * config/h8300/h8300.md (three anonymous patterns): Replace
2545         operand character 'A' with either 'T' or 'S'.
2546
2547 2002-01-24  Kazu Hirata  <kazu@hxi.com>
2548
2549         * config/h8300/h8300.c (print_operand): Remove support for
2550         operand character 'U'.
2551
2552 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
2553
2554         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
2555
2556 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
2557
2558         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
2559         values to be assigned to the stack pointer.
2560
2561 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
2562
2563         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
2564         to const_double needs to be done right for big-endian systems.
2565
2566 2002-01-24  Jason Merrill  <jason@redhat.com>
2567
2568         PR c++/2432
2569         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
2570         to can_throw_internal.
2571
2572 2002-01-23  Richard Henderson  <rth@redhat.com>
2573
2574         * fold-const.c (fold): Change UINT_MAX test to check vs precision
2575         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
2576
2577 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
2578
2579         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
2580         (symGOT2reg): Use them, then set as GOT value as unchanging.
2581         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
2582         as a temporary, if possible.
2583         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
2584         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
2585
2586 2002-01-23  Kazu Hirata  <kazu@hxi.com>
2587
2588         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
2589         accept to accept 0x80 as operands[2].
2590
2591 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
2592
2593         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
2594
2595 2002-01-23  Richard Henderson  <rth@redhat.com>
2596
2597         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
2598
2599 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
2600
2601         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
2602         (parmlist_or_identifiers_1): Verify that only a parmlist follows
2603         an attribute.
2604
2605 2002-01-23  Richard Henderson  <rth@redhat.com>
2606
2607         * expr.c (move_by_pieces_1): Extend size before negation.
2608
2609         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
2610         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
2611         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
2612         * config/m68k/t-m68kelf: Likewise.
2613
2614 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
2615
2616         * config/xtensa/elf.h: New file.
2617         * config/xtensa/lib1funcs.asm: New file.
2618         * config/xtensa/lib2funcs.S: New file.
2619         * config/xtensa/linux.h: New file.
2620         * config/xtensa/t-xtensa: New file.
2621         * config/xtensa/xtensa-config.h: New file.
2622         * config/xtensa/xtensa-protos.h: New file.
2623         * config/xtensa/xtensa.c: New file.
2624         * config/xtensa/xtensa.h: New file.
2625         * config/xtensa/xtensa.md: New file.
2626         * config.gcc (xtensa-*-elf*): New target.
2627         (xtensa-*-linux*): New target.
2628         * cse.c (canon_hash): Compare rtx pointers instead of register
2629         numbers.  This is required for the Xtensa port.
2630         * integrate.c (copy_insn_list): Handle case where the static
2631         chain is in memory and the memory address has to be copied to
2632         a register.
2633         * doc/invoke.texi (Option Summary): Add Xtensa options.
2634         (Xtensa Options): New node.
2635         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
2636
2637 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
2638
2639         * diagnostic.c (internal_error): Do ICE suppression only
2640         when ENABLE_CHECKING is not defined.
2641
2642         * c-typeck.c (require_complete_type): Return error_mark_node
2643         if type is error_mark_node.
2644
2645 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
2646
2647         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
2648         -Os and issue a warning.
2649
2650 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
2651
2652         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
2653         current (lack of) need for host configuration by hand.
2654
2655         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
2656         references.  Documentation of some target macros moved from
2657         hostconfig.texi to tm.texi.
2658
2659 2002-01-23  Will Cohen  <wcohen@redhat.com>
2660
2661         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
2662         defined.
2663
2664 2002-01-23  Kazu Hirata  <kazu@hxi.com>
2665
2666         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
2667         operand[3].
2668
2669 2002-01-23  Jason Merrill  <jason@redhat.com>
2670
2671         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
2672
2673         * function.c (assign_parms): Don't put args of inline functions
2674         into registers when not optimizing.
2675
2676 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
2677
2678         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
2679         (prologue_use): New pattern.
2680         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
2681         preference to gen_rtx_USE.
2682         (thumb_expand_prologue): Use gen_prologue_use in preference to
2683         gen_rtx_USE.
2684         (thumb_expand_epilogue): Use gen_prologue_use in preference to
2685         gen_rtx_USE.
2686
2687 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
2688
2689         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
2690
2691 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
2692
2693         PR c/3504
2694         * doc/extend.texi: Correct documentation of __alignof__.
2695
2696 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
2697
2698         * params.h: Rename arguments of DEFPARAM so that it will be
2699         recognized as a translation keyword.
2700
2701 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
2702
2703         * extend.texi: Document altivec functions.
2704         Fix N-bit adjectives in X86 builtin documentation.
2705
2706 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
2707
2708         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
2709         auto_inc_dec values.
2710
2711 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
2712
2713         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
2714         after backslash.
2715         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
2716
2717 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
2718
2719         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
2720
2721 2002-01-22  Richard Henderson  <rth@redhat.com>
2722
2723         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
2724         copy_insn not copy_rtx.
2725
2726 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
2727
2728         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
2729         "nonzero" as that might add "1" bits.  Ensure "constop" is
2730         properly sign extened.
2731         (force_to_mode): Tweak for sign extended constop.
2732
2733 2002-01-22  Richard Henderson  <rth@redhat.com>
2734
2735         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
2736         for_each_rtx instead of assuming we're already looking at the MEM.
2737         (split_small_symbolic_mem_operand): Likewise.
2738         * config/alpha/alpha.h (PREDICATE_CODES): Update.
2739         * config/alpha/alpha.md (small symbolic memory splitters): Update.
2740
2741 2002-01-22  Richard Henderson  <rth@redhat.com>
2742
2743         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
2744         sequence number for the literal.
2745         (divmoddi_internal_er): Likewise.
2746
2747 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2748
2749         PR java/4972
2750         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
2751         in LIBICONV variable.
2752         * configure: Regenerated.
2753
2754 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
2755
2756         * dependence.c (build_def_use): Remove array_idx.
2757
2758         * dwarfout.c (last_filename): Remove.
2759         (output_compile_unit_die): Remove last_filename.
2760
2761 2002-01-22  Roger Sayle  <roger@eyesopen.com>
2762             Richard Henderson  <rth@redhat.com>
2763
2764         PR opt/3640
2765         * fold-const.c (fold): Optimize unsigned comparisons against
2766         UINT_MAX (and similar unsigned constants).
2767
2768 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
2769
2770         * Makefile.in (loop.o): Depend on OPTABS_H.
2771         * loop.c (emit_prefetch_instructions): Check the prefetch operand
2772         against the predicate.
2773
2774         PR target/5379
2775         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
2776         for the address operand.
2777
2778 2002-01-22  Richard Henderson  <rth@redhat.com>
2779
2780         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
2781
2782 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2783
2784         PR other/5450
2785         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
2786         preprocessor flags.
2787
2788 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
2789
2790         * config.gcc (x86_64-*-netbsd*): New target.
2791         * config/i386/netbsd64.h: New file.
2792
2793 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
2794
2795         * regrename.c (kill_value): Fix typo.
2796
2797 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
2798
2799         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
2800
2801         * config/rs6000/rs6000.h: Same.
2802
2803         * function.c (instantiate_virtual_regs): Remove
2804         STARTING_FRAME_PHASE.
2805         (assign_stack_local_1): Same.
2806         Calculate frame phase.
2807
2808 2002-01-22  Nick Clifton  <nickc@redhat.com>
2809
2810         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
2811         variable declaration to outer scope in order to simplify
2812         future extensions.
2813         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
2814         arm_hard_regno_mode_ok.
2815         * config/arm/arm-protos.h: Add a prototype for
2816         arm_hard_regno_mode_ok.
2817         * config/arm/arm.c (soft_df_operand): Remove now redundant
2818         check for DImode values using IP_REGNUM.
2819         (nonimmediate_soft_df_operand): Remove now redundant check for
2820         DImode values using IP_REGNUM.
2821         (arm_hard_regno_mode_ok): New function. New check: make sure
2822         that DImode values are not stored in IP_REGNUM.
2823
2824         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
2825         note with a USE.
2826         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
2827
2828 2002-01-22  Jason Merrill  <jason@redhat.com>
2829
2830         * c-semantics.c (genrtl_compound_stmt): Only check nesting
2831         consistency if this COMPOUND_STMT is scoped.
2832
2833 2002-01-22  Kazu Hirata  <kazu@hxi.com>
2834
2835         * predict.c: Fix formatting.
2836         * print-tree.c: Likewise.
2837         * protoize.c: Likewise.
2838         * real.h: Likewise.
2839         * rtl.h: Likewise.
2840         * sbitmap.h: Likewise.
2841         * scan.c: Likewise.
2842         * sched-deps.c: Likewise.
2843         * sched-vis.c: Likewise.
2844         * sdbout.c: Likewise.
2845         * sibcall.c: Likewise.
2846         * ssa.c: Likewise.
2847         * ssa-ccp.c: Likewise.
2848         * ssa-dce.c: Likewise.
2849         * stmt.c: Likewise.
2850         * stor-layout.c: Likewise.
2851         * system.h: Likewise.
2852
2853 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2854
2855         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
2856         if fits in bounds of base type.
2857
2858         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
2859         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
2860         (add_bound_info, default): If can't find a context, make a
2861         SAVE_EXPR.
2862         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
2863
2864 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
2865
2866         * c-typeck.c (parser_build_binary_op): If result from
2867         build_binary_op is ERROR_MARK just return error_mark_node without
2868         further processing.
2869
2870 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
2871
2872         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
2873         Split a.out-specific bits into...
2874         * config/netbsd-aout.h: ...this.
2875         * config/netbsd-elf.h: New file.
2876         * config/alpha/netbsd-elf.h: Remove.
2877         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
2878         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
2879         (STARTFILE_SPEC): Remove redundant definition.
2880         (ENDFILE_SPEC): Likewise.
2881         (LINK_SPEC): Likewise.
2882         (CPP_SPEC): Likewise.
2883         (ASM_SPEC): Likewise.
2884         (LIB_SPEC): Likewise.
2885         (SWITCH_TAKES_ARG): Likewise.
2886         (TARGET_MEM_FUNCTIONS): Likewise.
2887         (CPP_PREDEFINES): Redefine.
2888         (ASM_FINAL_SPEC): Remove redefinition.
2889         (ASM_COMMENT_START): Redefine.
2890         (FUNCTION_PROFILER): Define.
2891         (TARGET_VERSION): Redefine.
2892         Comment and formatting cleanup.
2893         * config/i386/netbsd.h: Include <netbsd-aout.h>.
2894         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
2895         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
2896         big- or little-endian.
2897         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
2898         * config.gcc (*-*-netbsd*): Add definitions common to all
2899         NetBSD configs.
2900         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
2901         gnu_ld definitions.  Add netbsd-elf.h to and remove
2902         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
2903         tmake_file, and don't lose previous tmake_file contents.
2904         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
2905         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
2906         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
2907         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
2908         (mipsel-*-netbsd*): Rename this to...
2909         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
2910         mips/little.h to tm_file for mips*el-*.
2911         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
2912         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
2913         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
2914
2915 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2916
2917         * pa-protos.h (reg_before_reload_operand): New function prototype.
2918         * pa.c (reg_before_reload_operand): New function implementation.
2919         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
2920         contraints to "*m".
2921
2922 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2923
2924         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
2925
2926 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2927
2928         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
2929         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
2930         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
2931         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
2932         (ENDFILE_SPEC): Undefine.
2933         (STARTFILE_SPEC): Redefine for PA.
2934
2935 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2936
2937         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
2938
2939 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
2940
2941         * config.gcc: Add entries to supported PowerPC --with-cpu
2942         types.
2943
2944 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
2945
2946         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
2947         true for 64-bit mode only SSE registers in 32-bit mode.
2948
2949 2002-01-21  Kazu Hirata  <kazu@hxi.com>
2950
2951         * unwind-dw2.c: Fix formatting.
2952         * unwind-dw2-fde.c: Likewise.
2953         * unwind-dw2-fde.h: Likewise.
2954         * unwind-pe.h: Likewise.
2955         * varasm.c: Likewise.
2956         * varray.h: Likewise.
2957
2958 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
2959
2960         Remove workaround for register stack overwrite bug in mmix.
2961         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
2962         support for TARGET_REG_STACK_FILL_BUG.
2963         * config/mmix/mmix.h: Remove member has_call_without_parameters.
2964         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
2965         Delete.
2966         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
2967         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
2968         -mno-reg-stack-fill-bug-workaround.
2969         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
2970         machine member has_call_without_parameters.
2971         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
2972         -mreg-stack-fill-bug-workaround and
2973         -mno-reg-stack-fill-bug-workaround.
2974         (MMIX Options): Ditto.
2975
2976 2002-01-21  Kazu Hirata  <kazu@hxi.com>
2977
2978         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
2979         as appropriate.
2980         Remove redundant code.
2981
2982 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
2983
2984         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
2985         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
2986         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
2987         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
2988         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
2989         out target macro definitions and non-target-specific comments
2990         mostly taken from old versions of the manual.
2991
2992 2002-01-20  Kazu Hirata  <kazu@hxi.com>
2993
2994         * config/h8300/h8300.h: Fix comment formatting.
2995         * config/ia64/aix.h: Likewise.
2996         * config/ia64/ia64-protos.h: Likewise.
2997         * config/ia64/ia64.c: Likewise.
2998         * config/ia64/ia64.h: Likewise.
2999         * config/ia64/ia64intrin.h: Likewise.
3000         * config/ia64/linux.h: Likewise.
3001         * config/ia64/unwind-aix.c: Likewise.
3002         * config/ia64/unwind-ia64.c: Likewise.
3003
3004 2002-01-20  Kazu Hirata  <kazu@hxi.com>
3005
3006         * config/h8300/h8300.c: Revise comments about shift code.
3007
3008 2002-01-20  Kazu Hirata  <kazu@hxi.com>
3009
3010         * config/h8300/h8300.c (function_arg): Update a comment.
3011
3012 2002-01-20  Kazu Hirata  <kazu@hxi.com>
3013
3014         * config/h8300/h8300.md: Update the comments at the beginning
3015         of the file.
3016
3017 2002-01-20  Kazu Hirata  <kazu@hxi.com>
3018
3019         * config/i370/i370.c: Fix comment formatting.
3020         * config/i370/i370.h: Likewise.
3021         * config/i370/i370.md: Likewise.
3022         * config/i370/linux.h: Likewise.
3023
3024 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3025
3026         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
3027
3028         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
3029         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
3030         in incomplete case.
3031
3032 2002-01-20  Graham Stott  <grahams@redhat.com>
3033
3034         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
3035
3036 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3037
3038         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
3039
3040 2002-01-19  Tom Rix  <trix@redhat.com>
3041
3042         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
3043
3044 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
3045
3046         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
3047
3048         * function.c (assign_stack_local_1): Adjust x_frame_offset with
3049         STARTING_FRAME_PHASE.
3050         (STARTING_FRAME_PHASE): New.
3051         (instantiate_virtual_regs): Check saneness of
3052         STARTING_FRAME_PHASE.
3053
3054         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
3055
3056 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
3057
3058         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
3059
3060 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3061
3062         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
3063         be used for bootstrapping GCC 3.0.
3064
3065 2002-01-18  Kazu Hirata  <kazu@hxi.com>
3066
3067         * config/h8300/h8300.md: Fix an insn length.
3068
3069 2002-01-18  Kazu Hirata  <kazu@hxi.com>
3070
3071         * bitmap.h: Fix comment formatting.
3072         * combine.c: Likewise.
3073         * cppfiles.c: Likewise.
3074         * c-pragma.h: Likewise.
3075         * c-typeck.c: Likewise.
3076         * df.c: Likewise.
3077         * dwarf2out.c: Likewise.
3078         * function.c: Likewise.
3079         * gcc.c: Likewise.
3080         * genattrtab.c: Likewise.
3081         * gthr-win32.h: Likewise.
3082         * haifa-sched.c: Likewise.
3083         * predict.c: Likewise.
3084         * rtlanal.c: Likewise.
3085         * rtl.h: Likewise.
3086         * unwind-dw2-fde.h: Likewise.
3087         * unwind-pe.h: Likewise.
3088         * vmsdbgout.c: Likewise.
3089
3090 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3091
3092         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
3093         if type_required and passed decl.
3094
3095 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
3096
3097         * config.gcc (cpu_type): Include altivec.h in powerpc
3098         extra_headers.
3099         Same for darwin.
3100
3101         * config/rs6000/altivec.h: New.
3102
3103 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
3104
3105         * doc/install.texi (*-ibm-aix*): Update assembler and exception
3106         handling information.
3107         * doc/trouble.texi (Interoperation): Add libstdc++ information
3108         for AIX.
3109         (Misunderstandings): Add template instantiation and static template
3110         member information for AIX.
3111
3112 2002-01-17  Jason Merrill  <jason@redhat.com>
3113
3114         * dbxout.c (dbxout_type): Support const and volatile.
3115
3116         * except.c (add_partial_entry): Remove backwards compatibility code.
3117         (end_protect_partials): Likewise.
3118
3119 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
3120
3121         * config/ia64/ia64.md (prologue_use): New.
3122         * config/ia64/ia64.c (ia64_expand_prologue): Use
3123         gen_prologue_use instead of gen_rtx_USE.
3124         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
3125         as CODE_FOR_pred_rel_mutex.
3126         (ia64_sched_reorder2): Likewise.
3127
3128 2002-01-16  Eric Christopher  <echristo@redhat.com>
3129
3130         * config/mips/r3900.h: Reformat.
3131         (SUBTARGET_CPP_SIZE_SPEC): Remove.
3132         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
3133         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
3134         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
3135         * config/mips/t-elf: Remove mips3 multilib.
3136
3137 2002-01-16  H.J. Lu <hjl@gnu.org>
3138
3139         * config/mips/linux.h: Include "mips/abi64.h".
3140
3141 2002-01-16  H.J. Lu <hjl@gnu.org>
3142
3143         * config/mips/t-linux: New.
3144
3145         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
3146
3147         * config/mips/linux.h: Don't include "gofast.h".
3148         (INIT_SUBTARGET_OPTABS): Removed.
3149
3150 2002-01-16  Kazu Hirata  <kazu@hxi.com>
3151
3152         * config/h8300/h8300-protos.h: Replace emit_a_shift with
3153         output_a_shift.
3154         * config/h8300/h8300.c: Likewise.
3155         * config/h8300/h8300.md: Likewise.
3156
3157 2002-01-16  Kazu Hirata  <kazu@hxi.com>
3158
3159         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
3160         spaces after an opcode name.
3161         (pushqi1_h8300hs): Likewise.
3162         (pushhi1_h8300hs): Likewise.
3163
3164 2002-01-16  Kazu Hirata  <kazu@hxi.com>
3165
3166         * doc/extend.texi: Replace "option" with "attribute"
3167         appropriately.
3168
3169 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
3170
3171         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
3172         (and:DI () (const_int -8)).
3173         (split_small_symbolic_mem_operand): Split
3174         (mem (and:DI () (const_int -8)).
3175
3176 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
3177
3178         PR target/5309:
3179         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
3180         same way as TYPE_IMUL.
3181         (ultrasparc_sched_reorder): Likewise.
3182         * config/sparc/sparc.md (type): Add comment to update
3183         ultrasparc_sched_reorder when making changes.
3184
3185 2002-01-16  Kazu Hirata  <kazu@hxi.com>
3186
3187         * doc/invoke.texi: Change the dump file name of block
3188         reordering pass from 28.bbro to 29.bbro.
3189         Mention -dk option.
3190
3191 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
3192
3193         * i386.md (minsf splitter): Fix pasto.
3194
3195 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
3196
3197         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
3198         to frame pointer initialisation instruction.
3199         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
3200         initialisation instruction.
3201         (soft_df_operand): Do not accept the IP register.
3202         (nonimmediate_soft_df_operand): Do not accept the IP register.
3203
3204 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
3205
3206         PR target/5357:
3207         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
3208         MASK_V8 being both set.
3209
3210 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
3211
3212         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
3213         insn for GOT register; add REG_MAYBE_DEAD notes instead.
3214         config/s390/s390.md (call, call_value): Add GOT register to
3215         CALL_INSN_FUNCTION_USAGE where needed.
3216         (call_exp, call_value_exp): New.
3217
3218 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
3219
3220         * config/arm/arm.c: General formatting tidy up.
3221
3222 2002-01-16  Graham Stott  <grahams@redhat.com>
3223
3224         * calls.c (try_to_integrate): Use "(size_t)" intermediate
3225         cast and when casting an integer literal to "rtx" pointer.
3226         (expand_call): Likewise.
3227         * flow.c (try_pre_increment): Likewise.
3228         (find_use_as_address): Likewise.
3229         * integrate.c (expand_iline_function): Likewise.
3230         * regmove.c (try_auto_increment): Likewise.
3231
3232 2002-01-16  Graham Stott  <grahams@redhat.com>
3233
3234         * sched-rgn.c (passed): Use sbitmap_free.
3235         (header): Likewise.
3236         (inner): Likewise.
3237         (in_queue): Likewise.
3238         (in_stack): Likewise.
3239
3240 2002-01-15  Eric Christopher  <echristo@redhat.com>
3241
3242         * flow.c (propagate_one_insn): Change to use fatal_insn.
3243
3244 2002-01-15  Kazu Hirata  <kazu@hxi.com>
3245
3246         * expmed.c (extract_fixed_bit_field): Remove unused code.
3247         * system.h: Poison SLOW_ZERO_EXTEND.
3248         * doc/tm.texi: Remove.
3249         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
3250         * config/arm/arm.h: Likewise.
3251         * config/avr/avr.h: Likewise.
3252         * config/clipper/clipper.h: Likewise.
3253         * config/convex/convex.h: Likewise.
3254         * config/d30v/d30v.h: Likewise.
3255         * config/dsp16xx/dsp16xx.h: Likewise.
3256         * config/elxsi/elxsi.h: Likewise.
3257         * config/fr30/fr30.h: Likewise.
3258         * config/h8300/h8300.h: Likewise.
3259         * config/i370/i370.h: Likewise.
3260         * config/i386/i386.h: Likewise.
3261         * config/m68k/m68k.h: Likewise.
3262         * config/mips/mips.h: Likewise.
3263         * config/ns32k/ns32k.h: Likewise.
3264         * config/pdp11/pdp11.h: Likewise.
3265         * config/pj/pj.h: Likewise.
3266         * config/s390/s390.h: Likewise.
3267         * config/sh/sh.h: Likewise.
3268         * config/stormy16/stormy16.h: Likewise.
3269         * config/v850/v850.h: Likewise.
3270         * config/vax/vax.h: Likewise.
3271         * config/we32k/we32k.h: Likewise.
3272
3273 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
3274
3275         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
3276         (altivec_lvsl): Change constraint to b.
3277         (altivec_lvsr): Same.
3278         (altivec_lvebx): Same.
3279         (altivec_lvehx): Same.
3280         (altivec_lvewx): Same.
3281         (altivec_lvxl): Same.
3282         (altivec_lvx): Same.
3283         (altivec_stvx): Add parallel.
3284         (altivec_stvxl): Same.
3285         (altivec_stvehx): Same.
3286         (altivec_stvebx): Same.
3287         (altivec_stvebx): Same.
3288
3289 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
3290
3291         * config.gcc: Change altivec.h to altivec-defs.h.
3292
3293         * config/rs6000/altivec.h: Delete.
3294
3295         * config/rs6000/altivec-defs.h: Add.
3296
3297 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3298
3299         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
3300         and UMOD modes.
3301
3302         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
3303         less than or equal to eight bytes.
3304
3305         * vax.md (andsi3): Remove constraints and change SET destination
3306         operand type to nonimmediate_operand.
3307         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
3308         when it is a CONST_INT.
3309
3310 2002-01-15  Jason Merrill  <jason@redhat.com>
3311
3312         * c-common.def (FILE_STMT): New code.
3313         * c-common.c (statement_code_p): It's a statement.
3314         * c-common.h (stmt_tree_s): Add x_last_filename.
3315         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
3316         (last_expr_filename): New macro.
3317         * c-semantics.c (begin_stmt_tree): Initialize it.
3318         (add_stmt): If the filename changed, also insert a
3319         FILE_STMT.
3320         (expand_stmt): Handle seeing one.
3321
3322 2002-01-15  Eric Christopher  <echristo@redhat.com>
3323
3324         * flow.c (propagate_one_insn): Add error message and print out
3325         insn for debugging.
3326
3327 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
3328
3329         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
3330         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
3331         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
3332         TRAMPOLINE_ALIGNMENT.
3333         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
3334         to be in bits.
3335         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
3336         PCC_BITFIELD_TYPE_MATTERS.
3337         * config/interix.h (STDC_VALUE): Remove.  Use
3338         STDC_0_IN_SYSTEM_HEADERS.
3339         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
3340         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
3341         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
3342
3343 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3344
3345         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
3346         not work on this platform currently.
3347
3348 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
3349
3350         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
3351         readonly_warning in _().
3352
3353 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
3354
3355         * gcc.c (delete_if_ordinary): Backout previous change.
3356
3357 2002-01-15  Kazu Hirata  <kazu@hxi.com>
3358
3359         * config/h8300/h8300.c (print_operand): Remove support for
3360         unused operand characters.
3361
3362         * read-rtl.c: Fix formatting.
3363         * real.c: Likewise.
3364         * recog.c: Likewise.
3365         * regclass.c: Likewise.
3366         * regmove.c: Likewise.
3367         * reg-stack.c: Likewise.
3368         * reload1.c: Likewise.
3369         * rtlanal.c: Likewise.
3370
3371 2002-01-15  Kazu Hirata  <kazu@hxi.com>
3372
3373         * config/i386/i386.c: Fix formatting.
3374
3375 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
3376
3377         * c-typeck.c (process_init_element): Don't save_expr
3378         COMPOUND_LITERAL_EXPR if just its initializer will be used.
3379
3380 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
3381
3382         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
3383         emit optional traceback table if optimize_size or TARGET_ELF.
3384         * config/rs6000/rs6000.md (prefetch): New.
3385
3386 2002-01-15  Andreas Jaeger  <aj@suse.de>
3387
3388         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
3389
3390 2002-01-15  Kazu Hirata  <kazu@hxi.com>
3391
3392         * mips-tfile.c: Fix formatting.
3393
3394 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
3395
3396         * unroll.c (final_reg_note_copy): Fix previous commit.
3397
3398 2002-01-14  Kazu Hirata  <kazu@hxi.com>
3399
3400         * config/h8300/h8300-protos.h: Remove the prototype for
3401         eq_operator.
3402         * config/h8300/h8300.c (eq_operator): Remove.
3403
3404 2002-01-14  Richard Henderson  <rth@redhat.com>
3405
3406         * config/i386/i386.md (prefetch): Tidy.
3407         (prefetch_3dnow): Fix locality operand.
3408
3409 2002-01-14  Richard Henderson  <rth@redhat.com>
3410
3411         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
3412         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
3413
3414 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
3415
3416         * reload1.c (reload_combine): Pass reg_sum replacement through
3417         copy_rtx in loop performing multiple changes.
3418
3419 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
3420
3421         * except.c (remove_unreachable_regions): New.
3422         (free_eh_status): Clear exception_handler_labels.
3423         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
3424         (find_exception_handler_labels): Don't add the same label more than
3425         once.
3426         (remove_exception_handler_label): Don't die if
3427         find_exception_handler_labels hasn't been called for the current
3428         function yet.
3429
3430 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
3431
3432         * toplev.c (rest_of_compilation): Rebuild jump labels after
3433         gcse.
3434
3435 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
3436
3437         * doc/extend.texi: Move documentation of X86 built-in functions
3438         here.
3439         * doc/invoke.texi: From here.
3440         * doc/sourcebuild.texi: Document location of documentation for
3441         machine built-in functions.
3442
3443 2002-01-13  Christopher Faylor  <cgf@redhat.com>
3444
3445         * cppfiles.c (TEST_THRESHOLD): New macro.
3446         (SHOULD_MMAP): Ditto.
3447         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
3448         be used.
3449
3450 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
3451
3452         * unroll.c (final_reg_note_copy): Properly handle
3453         REG_LABEL
3454         (unroll_loops): Fix LOOP_CONDITION heuristics.
3455
3456 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
3457
3458         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
3459         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
3460
3461 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
3462
3463         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
3464         threaded loop.
3465
3466 2002-01-14  Tom Rix  <trix@redhat.com>
3467
3468         * config/rs6000/rs6000.md: Fix typo with sradi.
3469
3470 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
3471
3472         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
3473         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
3474         (clrstrdi, clrstrsi): Adapt callers.
3475
3476         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
3477
3478         (movti splitter): Never use register 0 as base register.
3479
3480 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
3481
3482         * combine.c (simplify_shift_const): Always generate new rtx
3483         for shift expression instead of reusing given expression.
3484
3485 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3486
3487         * config/alpha/alpha.c (alpha_expand_mov): Don't call
3488         alpha_legitimize_address unless mode is Pmode.
3489
3490 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
3491
3492         * doc/md.texi (Modifiers): Document the '*' constraint for the
3493         user.
3494
3495         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
3496         * doc/extend.texi (Function Attributes): 'interrupt' is valid
3497         for xstormy16 too.
3498
3499 2002-01-13  Richard Henderson  <rth@redhat.com>
3500
3501         * reload.c (find_reloads): Use a hard reg destination as reload reg
3502         for an input reload of the source.
3503
3504 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3505
3506         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
3507         more generic.
3508
3509 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
3510
3511         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
3512         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
3513
3514         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
3515
3516 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3517
3518         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
3519
3520 2002-01-12  Tom Rix  <trix@redhat.com>
3521
3522         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
3523         TARGET_POWERPC64.
3524
3525 2002-01-12  Richard Henderson  <rth@redhat.com>
3526
3527         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
3528
3529         * doc/invoke.texi: Update Alpha options.
3530
3531         * doc/invoke.texi: Update i386 built-in function lists.
3532
3533 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
3534
3535         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
3536         referencing outside.
3537
3538 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3539
3540         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
3541         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
3542         offsets, and change line folding.
3543         * optabs.c (expand_binop): Remove warnings.
3544         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
3545
3546 2002-01-12  Graham Stott <grahams@redhat.com>
3547
3548         * attribs.c (handle_deprecated_attribute): constify WHAT.
3549         * diagnostic.c (warn_deprecated_use): Add braces, fixes
3550         dangling else warning and constify WHAT.
3551         * except.h (struct function, struct inline_remap): Move
3552         struct tag forward defs before all prototypes.
3553         (duplicate_eh_regions): Whitespace.
3554
3555 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
3556
3557         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
3558         MODE_BASE_REG_CLASS.
3559         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
3560
3561 2002-01-12  Richard Henderson  <rth@redhat.com>
3562
3563         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
3564         (ix86_expand_vector_move): New.
3565         (bdesc_2arg): Remove andps, andnps, orps, xorps.
3566         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
3567         Remove old prefetch builtins.  Special case the logicals removed above.
3568         (ix86_expand_builtin): Likewise.
3569         (safe_vector_operand): Use V4SFmode, not TImode.
3570         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
3571         (ix86_expand_timode_binop_builtin): New.
3572         * config/i386/i386-protos.h: Update.
3573         * config/i386/i386.h (enum ix86_builtins): Update.
3574         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
3575         Use ix86_expand_vector_move in vector move expanders.
3576         (movti_internal, movti_rex64): Add xorps alternative.
3577         (sse_clrv4sf): Rename and adjust from sse_clrti.
3578         (prefetch): Don't work so hard.
3579         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
3580         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
3581         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
3582
3583 2002-01-11  Richard Henderson  <rth@redhat.com>
3584
3585         * config/i386/mmintrin.h: New file.
3586         * config/i386/xmmintrin.h: New file.
3587         * config.gcc (i?86-*-*): Add extra_headers.
3588         * simplify-rtx.c (simplify_unary_operation): Handle saturating
3589         truncation codes.
3590         (simplify_binary_operation): Handle saturating arithmetic codes.
3591         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
3592         not the lowpart subreg.
3593         (ix86_expand_builtin): Return a TImode dummy register instead of 0
3594         on error.
3595         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
3596
3597 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3598
3599         * conflict.c (conflict_graph_compute): Free regsets when finished.
3600         * ssa.c (compute_coalesced_reg_partition): Likewise.
3601
3602 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3603
3604         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
3605         every where we allocate a register.
3606
3607 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3608
3609         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
3610         * lcm.c (compute_earliest, compute_farthest): Likewise.
3611
3612 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
3613
3614         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
3615
3616 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
3617
3618         * doc/rtl.texi (Insns): Fix 2 typos.
3619
3620 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
3621
3622         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
3623         options.  Use @table @gcctabopt for MMIX options.  Add index
3624         entries for MMIX options.  Start new paragraph with first
3625         heading of the machine-dependent options.
3626
3627 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3628
3629         PR other/5299
3630         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
3631         * combine.c (force_to_mode): Same.
3632         * reload1.c (clear_reload_reg_in_use): Same.
3633
3634 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
3635
3636         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
3637         and 'subtargets'.
3638
3639 2002-01-11  Andreas Jaeger  <aj@suse.de>,
3640             Brad Lucier <lucier@math.purdue.edu>
3641
3642         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
3643         mcpu.
3644
3645 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
3646
3647         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
3648         Protect with IN_LIBGCC.
3649         (LINK_EH_SPEC): Add required trailing space.
3650
3651 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
3652
3653         * c-tree.h: Move function declarations so that they are listed
3654         under the filename which contains them.
3655         (check_identifier, finish_decl_top_level,
3656         lookup_name_current_level_global, shadow_record_fields): Remove.
3657
3658 2002-01-11  Andreas Jaeger  <aj@suse.de>
3659
3660         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
3661         march.
3662
3663 2002-01-10  Richard Henderson  <rth@redhat.com>
3664
3665         * config/alpha/alpha.c (print_operand): Add 'J'.
3666         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
3667         new operand with the sequence number for the lituse.  When splitting
3668         the insns, use gen_movdi_er_high_g and generate a sequence number.
3669         (gen_movdi_er_high_g): Print the sequence number if non-zero.
3670
3671 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
3672
3673         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
3674         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
3675         stvxl.
3676         (altivec_expand_builtin): Same.
3677         (altivec_expand_stv_builtin): New.
3678
3679         * config/rs6000/rs6000.h (rs6000_builtins): Same.
3680
3681         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
3682         ("altivec_lvehx"): New.
3683         ("altivec_lvewx"): New.
3684         ("altivec_lvxl"): New.
3685         ("altivec_lvx"): New.
3686         ("altivec_stvx"): New.
3687         ("altivec_stvebx"): New.
3688         ("altivec_stvehx"): New.
3689         ("altivec_stvewx"): New.
3690         ("altivec_stvxl"): New.
3691
3692 2002-01-10  Richard Henderson  <rth@redhat.com>
3693
3694         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
3695         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
3696         care not to delete instructions twice.
3697
3698 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
3699
3700         * toplev.c: Don't declare environ (it's not used anywhere).
3701         * configure.in: Don't check for declaration of environ.
3702         * config/i386/xm-mingw32.h: Don't #define environ.
3703         * config.in, configure: Regenerate.
3704
3705 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
3706
3707         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
3708         * configure: Regenerate.
3709
3710         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
3711         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
3712         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
3713         alpha/xm-vms.h.
3714         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
3715         LIMITS_H_TEST here, not in m68k/x-next.
3716         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
3717         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
3718
3719         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
3720         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
3721         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
3722
3723         * config/i386/x-djgpp: Renamed i386/t-djgpp.
3724         * config/m88k/x-dolph: Renamed m88k/t-dolph.
3725         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
3726         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
3727         replacement of quadlib.asm with quadlib.c.
3728
3729         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
3730         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
3731         config/rs6000/xm-beos.h: Delete file.
3732
3733         * config.gcc: Update to match above changes.
3734
3735 2002-01-10  Kazu Hirata  <kazu@hxi.com>
3736
3737         * config/h8300/h8300.h: Fix comment typos.
3738         * config/h8300/h8300.md: Likewise.
3739         * config/h8300/lib1funcs.asm: Likewise.
3740
3741 2002-01-10  Dale Johannesen  <dalej@apple.com>
3742
3743         PR optimization/5269
3744         * unroll.c (precondition_loop_p): Make *increment be the correct
3745         sign when n_iterations known, to avoid confusing caller.
3746
3747 2002-01-10  Kazu Hirata  <kazu@hxi.com>
3748
3749         * doc/extend.texi (deprecated): Fix a typo.
3750
3751 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
3752
3753         * basic-block.h (update_br_prob_note): Declare.
3754         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
3755         (try_forward_edges): Care negative frequencies and update note.
3756         (outgoing_edges_match): Tweek conditional merging heuristics.
3757         (try_crossjump_to_edge): use update_br_prob_note.
3758         * cfglayout.c (fixup_reorder_chain): Likewise.
3759         * cfrtl.c (update_br_prob_note): New.
3760         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
3761
3762         * i386.c (ix86_decompose_address): Return -1 if address contains
3763         shift.
3764         (legitimate_address_p): Require ix86_decompose_address to return 1.
3765
3766         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
3767         (cprop_insn): Likewise.
3768
3769 2002-01-10  Kazu Hirata  <kazu@hxi.com>
3770
3771         * toplev.c: Fix formatting.
3772         * tree.c: Likewise.
3773         * tree-dump.c: Likewise.
3774         * unroll.c: Likewise.
3775         * unwind-dw2.c: Likewise.
3776         * unwind-dw2-fde.c: Likewise.
3777         * unwind-dw2-fde-glibc.c: Likewise.
3778         * unwind-sjlj.c: Likewise.
3779
3780 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
3781
3782         * doc/invoke.texi: Document PDP-11 options.
3783
3784 2002-01-10  Kazu Hirata  <kazu@hxi.com>
3785
3786         * config/h8300/h8300.h: Fix formatting.
3787
3788 2002-01-10  Ira Ruben   <ira@apple.com>
3789
3790         Add __attribute__ ((deprecated)).
3791         * extend.texi: Document __attribute__ ((deprecated)).
3792         * invoke.texi: Document -Wno-deprecated-declarations.
3793         * testsuite/g++.dg/other/deprecated.C: New C++ test.
3794         * testsuite/gcc.dg/deprecated.c: New C test.
3795         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
3796         (c_common_attribute_table): Add "deprecated" entry.
3797         (handle_deprecated_attribute): New function.
3798         * c-decl.c (deprecated_states): New enum.
3799         deprecated_state: State of "deprecated" handling.
3800         (start_decl): Set deprecated_state based on attributes.
3801         (grokdeclarator): Test for deprecated uses, propagate attribute.
3802         * c-typeck.c (build_component_ref): Test for deprecated fields.
3803         (build_external_ref): Test for deprecated primaries.
3804         * diagnostic.c (warn_deprecated_use) New function to issue
3805         warnings about __attribute__ ((depricated)) references.
3806         * flags.h (warn_deprecated_decl): Extern declared for
3807         -W[no-]deprecated-declarations option.
3808         * print-tree.c (print_node): Show deprecated flag status.
3809         * toplev.c (warn_deprecated_decl): Defined.
3810         (W_options): Added "deprecated-declaration".
3811         * toplev.h (warn_deprecated_use): Extern declared.
3812         * tree.h (struct tree_common): Define deprecated_flag.
3813         (TREE_DEPRECATED): New macro to access flag.
3814         * cp/call.c (build_call): Test for deprecated calls.
3815         * cp/class.c (add_implicitly_declared_members): Set global
3816         flag to tell grokdeclarator to not issue deprecated warnings.
3817         * cp/cp-tree.h: Add extern for adding_implicit_members.
3818         * cp/decl.c (deprecated_states): New enum.
3819         (start_decl): Set deprecated_state based on attributes.
3820         (grokdeclarator): Test for deprecated uses, propagate attribute.
3821         * cp/lex.c (do_identifier): Test for deprecated primaries.
3822         * cp/typeck.c (build_component_ref): Test for deprecated fields.
3823
3824 2002-01-10  Ira Ruben   <ira@apple.com>
3825
3826         Fix to assign attributes to inline member functions.
3827         * cp/decl.c (start_method): Handle attrlist.
3828
3829 2002-01-10  Kazu Hirata  <kazu@hxi.com>
3830
3831         * combine.c (expand_field_assignment): Use subreg_lsb().
3832
3833 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
3834
3835         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
3836         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
3837         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
3838         Recurse for any operand of AND as long as constant is non-zero.
3839
3840 2002-01-10  Kazu Hirata  <kazu@hxi.com>
3841
3842         * config/h8300/h8300.md: Remove constraints from expanders.
3843
3844 2002-01-10  Kazu Hirata  <kazu@hxi.com>
3845
3846         * varasm.c: Fix formatting.
3847         * varray.c: Likewise.
3848         * vmsdbgout.c: Likewise.
3849         * xcoffout.c: Likewise.
3850
3851 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
3852
3853         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
3854         update edge probabilities to match.
3855
3856 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
3857
3858         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
3859         dependencies.
3860         * doc/languages.texi, doc/sourcebuild.texi: New files.
3861         * doc/configfiles.texi: Make a subsubsection.  Update.
3862         * doc/configterms.texi: Add @node.  Remove warning that this isn't
3863         instructions for building GCC.
3864         * doc/makefile.texi: Make a subsection.
3865         * doc/gccint.texi: Update.
3866
3867 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
3868
3869         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
3870
3871 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
3872
3873         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
3874
3875 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
3876
3877         * optabs.c (expand_fix): Look for wider integer modes first.
3878
3879         * i386.md (mov?f): Avoid the fake const double trick for medium
3880         memory model.
3881         (min?f*/max?f*): Prohibit memory operands for i387 variant.
3882         (fop_df_4): Disable for SSE compilation.
3883
3884 2002-01-10  Graham Stott  <grahams@redhat.com>
3885
3886         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
3887         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
3888
3889 2002-01-10  Richard Henderson  <rth@redhat.com>
3890
3891         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
3892
3893 2002-01-10  Richard Henderson  <rth@redhat.com>
3894
3895         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
3896         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
3897
3898 2002-01-10  Kazu Hirata  <kazu@hxi.com>
3899
3900         * combine.c (can_combine_p): Fix a comment typo.
3901
3902 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
3903
3904         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
3905         empty list correctly.  Change loop index $t to $f for
3906         consistency with rest of Makefile.
3907
3908 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
3909
3910         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
3911         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
3912
3913         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
3914         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
3915         (altivec_init_builtins): Same.
3916         (altivec_expand_unop_builtin): Return NULL_RTX on error.
3917         (altivec_expand_binop_builtin): Same.
3918         (altivec_expand_ternop_builtin): Same.
3919         (bdesc_dst): New.
3920
3921         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
3922         ("altivec_vctuxs"): Fix typo.
3923         ("altivec_vnmsubfp"): Same.
3924         ("altivec_dssall"): New.
3925         ("altivec_mfvscr"): New.
3926         ("altivec_dss"): New.
3927         ("altivec_lvsl"): New.
3928         ("altivec_lvsr"): New.
3929         ("altivec_dstt"): New.
3930         ("altivec_dstst"): New.
3931         ("altivec_dststt"): New.
3932         ("altivec_dst"): New.
3933
3934         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
3935         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
3936
3937 2002-01-09  Richard Henderson  <rth@redhat.com>
3938
3939         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
3940
3941 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
3942
3943         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
3944         function.
3945         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
3946         prototype.
3947         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
3948
3949 2002-01-09  Kazu Hirata  <kazu@hxi.com>
3950
3951         * read-rtl.c: Fix formatting.
3952         * real.c: Likewise.
3953         * regclass.c: Likewise.
3954         * regrename.c: Likewise.
3955         * reg-stack.c: Likewise.
3956         * reload1.c: Likewise.
3957         * reload.c: Likewise.
3958         * rtl.c: Likewise.
3959
3960 2002-01-09  Kazu Hirata  <kazu@hxi.com>
3961
3962         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
3963         to extract items in the expr_list chain.
3964
3965 2002-01-09  Richard Henderson  <rth@redhat.com>
3966
3967         * config/vax/vax.c (vax_rtx_cost): Never abort.
3968
3969         * config/vax/vax.h (REAL_ARITHMETIC): Define.
3970
3971 2002-01-09  Jan Hubicka  <jh@suse.cz>
3972
3973         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
3974
3975 2002-01-09  Richard Henderson  <rth@redhat.com>
3976
3977         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
3978         Unify code from various alternatives.
3979
3980 2002-01-09  Richard Henderson  <rth@redhat.com>
3981
3982         * regrename.c (copy_value): Ignore the copy if the source register
3983         is present in the value chain with a narrower mode.
3984
3985 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
3986
3987         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
3988         for the c4x target. Also improve layout.
3989
3990 2002-01-09  Richard Henderson  <rth@redhat.com>
3991
3992         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
3993         * config/m32r/m32r.md (and ior xor splitters): Swap operands
3994         to match insn patterns.
3995
3996 2002-01-09  Richard Henderson  <rth@redhat.com>
3997
3998         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
3999         (copyprop_hardreg_forward_1): Likewise.
4000
4001 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4002
4003         * pa.md (decrement_and_branch_until_zero): Change predicate for
4004         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
4005
4006 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
4007
4008         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
4009         gets undefined. For Darwin.
4010
4011 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4012
4013         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
4014
4015 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4016
4017         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
4018
4019 2002-01-08  Richard Henderson  <rth@redhat.com>
4020
4021         * regrename.c (copy_value): Ignore overlapping copies.
4022
4023 2002-01-08  Richard Henderson  <rth@redhat.com>
4024
4025         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
4026         as needed to avoid shared structure.
4027
4028 2002-01-08  Kazu Hirata  <kazu@hxi.com>
4029
4030         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
4031         H8/300H and H8/S.
4032
4033 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4034
4035         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
4036         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
4037         documentation of obsolete macros.
4038         * system.h: Poison these macros.
4039         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
4040         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
4041         config/c4x/c4x.h, config/clipper/clipper.h,
4042         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
4043         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
4044         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
4045         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
4046         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
4047         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
4048         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
4049         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
4050         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
4051         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
4052         config/sparc/sparc.h, config/stormy16/stormy16.h,
4053         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
4054         definitions and commented out definitions of obsolete macros.
4055         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
4056         of MAX_INT_TYPE_SIZE.
4057
4058 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
4059
4060         * config/s390/s390.c (s390_preferred_reload_class): Never
4061         return ADDR_REGS if it isn't a subset of the given class.
4062         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
4063         FP_REGS, but all superclasses as well.
4064
4065         * config/s390/s390.c (s390_function_profiler): Fix thinko.
4066
4067         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
4068         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
4069         must not be a const_int.
4070
4071 2002-01-08  Richard Henderson  <rth@redhat.com>
4072
4073         * Makefile.in (toplev.o): Depend on options.h.
4074         (gcc.o): Depend on specs.h.
4075
4076 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
4077
4078         * expr.c (store_expr): Convert VOIDmode constants back to target's
4079         mode.
4080
4081 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4082
4083         * doc/invoke.texi: Markup gcc as @command.  Refer to
4084         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
4085         of http://gcc.gnu.org/thanks.html.
4086
4087 2002-01-08  Dale Johannesen  <dalej@apple.com>
4088
4089         * config/rs6000/rs6000.md: Add missing int register
4090         target case to movdf_low.
4091
4092 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
4093
4094         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
4095         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
4096         (cppinit.o): Depend on except.h.
4097         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
4098         s-specs): New rules.
4099
4100         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
4101         Don't create specs.h/options.h/gencheck.h here.  Remove
4102         unnecessary variable settings from last argument of AC_OUTPUT.
4103         * config.in, configure: Regenerate.
4104         * intl.c: Hardcode package name as "gcc".
4105
4106         * cppinit.c: Include except.h.
4107         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
4108         appropriate.
4109         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
4110         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
4111         (!)USING_SJLJ_EXCEPTIONS.
4112         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
4113
4114 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4115
4116         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
4117         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
4118         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
4119         documentation of obsolete macros.
4120         * system.h: Poison these macros.
4121         * config/d30v/d30v.h, config/ns32k/encore.h,
4122         config/stormy16/stormy16.h: Remove definitions and commented out
4123         definitions of obsolete macros.
4124
4125 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
4126
4127         * objc/objc-act.c (handle_class_ref): Mark the declaration of
4128         %sobjc_class_ref_%s as used - to prevent unwanted compiler
4129         warnings.
4130
4131 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
4132
4133         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
4134         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
4135         to insn adjusting stack/frame pointer.
4136         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
4137         accept operands that cause the insn to be non-splittable.
4138
4139 2002-01-08  Graham Stott  <grahams@redhat.com>
4140
4141         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
4142         (C_TYPE_FIELDS_VOLATILE): Likewise.
4143         (C_TYPE_BEING_DEFINED): Likewise.
4144         (C_IS_RESERVED_WORD): Likewise.
4145         (C_TYPE_VARIABLE_SIZE): Likewise.
4146         (C_DECL_VARIABLE_SIZE): Likewise.
4147         (C_MISSING_PROTOTYPE_WARNED): Likewise.
4148         (C_SET_EXP_ORIGINAL_CODE): Likewise.
4149         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
4150         parenthesis.
4151         (C_DECL_ANTICIPATED): Likewise.
4152         (c_build_type_variant): Add parenthesis.
4153
4154 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4155
4156         * gcc.c (option_map): Remove --version.
4157         (process_command): Handle -fversion following the GNU Coding
4158         Standards.  Partially addresses PR other/704.
4159
4160 2002-01-08  Graham Stott  <grahams@redhat.com>
4161
4162         * combine.c (combine_instructions): Fix typo.
4163
4164 2002-01-08  Graham Stott  <grahams@redhat.com>
4165
4166         * debug.h: Use "tree" and "rtx" throughout.
4167
4168         * debug.c: Likewise.
4169
4170 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
4171
4172         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
4173         constant pool, use the pool's version of the symbol instead.
4174
4175 2002-01-07  Richard Henderson  <rth@redhat.com>
4176
4177         * regrename.c (find_oldest_value_reg): Ignore the value chain if
4178         the original register was copied in a mode with a fewer number of
4179         hard registers than the desired mode.
4180         (copyprop_hardreg_forward_1): Likewise.
4181         (debug_value_data): Fix loop test.
4182         * toplev.c (parse_options_and_default_flags): Reenable
4183         -fcprop-registers at -O1.
4184
4185 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
4186
4187         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
4188         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
4189
4190         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
4191         predicates.
4192
4193         * config/rs6000/rs6000.md: Add altivec predicate patterns.
4194
4195 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4196
4197         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
4198         (pa_output_function_prologue): Output local label at the beginning of
4199         the prologue when profiling.
4200         (hppa_profile_hook): Use the local label rather than the function label.
4201         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
4202
4203 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
4204
4205         * config/rs6000/rs6000.c (print_operand): Remove extra space.
4206         (altivec_expand_unop_builtin): Fix thinko.
4207         (altivec_expand_binop_builtin): Same.
4208         (altivec_expand_ternop_builtin): Same.
4209         (altivec_expand_builtin): Same.
4210
4211 2002-01-07  Richard Henderson  <rth@redhat.com>
4212
4213         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
4214
4215 2002-01-07  Jason Merrill  <jason@redhat.com>
4216
4217         * unwind-dw2.c (execute_cfa_program): Use < again.
4218
4219 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
4220
4221         * predict.c (combine_predictions_for_insn): Avoid division by zero.
4222
4223 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
4224
4225         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
4226         Don't allow -1 - x -> ~x simplifications in the first pass.
4227
4228 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
4229
4230         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
4231         arguments.
4232         (altivec_expand_binop_builtin): Same.
4233         (altivec_expand_unop_builtin): Same.
4234         (print_operand): Fix typo.
4235         (bdesc_1arg): Add vupk* variants.
4236
4237         * rs6000.h (rs6000_builtins): Add vupk* enums.
4238
4239         * rs6000.md: Add altivec_vupk* variants.
4240
4241 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4242
4243         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
4244         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
4245         and last update dates.
4246
4247 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
4248
4249         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
4250
4251 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4252
4253         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
4254         * config/avr/avr.h (CPP_SPEC): Likewise.
4255         (LINK_SPEC): Likewise.
4256         (CRT_BINUTILS_SPECS): Likewise.
4257         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
4258         * doc/invoke.texi (AVR Options): Document them.
4259
4260 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
4261
4262         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
4263         LABEL_NUSES.
4264
4265 2002-01-07  Graham Stott  <grahams@redhat.com>
4266
4267         * config/i386/i386.h: Update copyright date.
4268         (HALF_PIC_PTR): Add parenthesis.
4269         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
4270         (CONSTANT_ALIGNMENT): Add parenthesis.
4271         (DATA_ALIGNMENT): Likewise.
4272         (LOCAL_ALIGNMENT): Likewise.
4273         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
4274         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
4275         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
4276         (HARD_REGNO_NREGS): Add paranethesis.
4277         (VALID_SSE_REG_MODE): Whitespace.
4278         (VALID_MMX_REG_MODE): Whitespace.
4279         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
4280         (ix86_hard_regno_mode_ok): Add parenthesis.
4281         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
4282         (RETURN_IN_MEMORY): Whitespace.
4283         (N_REG_CLASSES): Add parenthesis.
4284         (INTEGER_CLASS_P): Add parenthesis and wrap.
4285         (FLOAT_CLASS_P): Likewise.
4286         (SSE_CLASS_P): Likewise.
4287         (MMX_CLASS_P): Likewise.
4288         (MAYBE_INTEGER_CLASS_P): Likewise.
4289         (MAYBE_FLOAT_CLASS_P): Likewise.
4290         (MAYBE_SSE_CLASS_P): Likewise.
4291         (MAYBE_MMX_CLASS_P): Likewise.
4292         (Q_CLASS_P): Likewise.
4293         (GENERAL_REGNO_P): Uppercase macro parameter.
4294         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
4295         (FP_REGNO_P): Likewise.
4296         (ANY_FP_REGNO_P): Uppercase macro parameter.
4297         (SSE_REGNO_P): Likewise.
4298         (SSE_REGNO): Likewise.
4299         (SSE_REG_P): Likewise.
4300         (SSE_FLOAT_MODE_P): Likewise.
4301         (MMX_REGNO_P): Likewise.
4302         (MMX_REG_P):Likewise.
4303         (STACK_REG_P): Likewise.
4304         (NON_STACK_REG_P): Likewise.
4305         (STACK_TOP_P): Likewise.
4306         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
4307         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
4308         (SECONDARY_MEMORY_NEEDED): Likewise.
4309         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
4310         (MD_ASM_CLOBBERS): Whitespace and wrap.
4311         (MUST_PASS_IN_STACK): Whitespace and wrap.
4312         (RETURN_POPS_ARGS): Add parenthesis.
4313         (INIT_CUMULATIVE_ARGS): Likewise.
4314         (FUNCTION_ARG): Likewise.
4315         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
4316         (SETUP_INCOMING_VARARGS): Likewise.
4317         (BUILD_VA_LIST_TYPE):  Add parenthesis.
4318         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
4319         parenthsis.
4320         (EXPAND_BUILTIN_VA_ARG): Likewise.
4321         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
4322         (INITIALIZE_TRAMPOLINE): Add parenthesis.
4323         (INITIAL_ELIMINATION_OFFSET): Likewise.
4324         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
4325         (REGNO_OK_FOR_BASE_P): Likewise.
4326         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
4327         (REGNO_OK_FOR_DIREG_P): Likewise.
4328         (REG_OK_FOR_INDEX_P): Whitespace.
4329         (REG_OK_FOR_BASE_P): Whitespace.
4330         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
4331         parenthesis.
4332         (FIND_BASE_TERM): Fix typo.
4333         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
4334         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
4335         (SYMBOLIC_CONST; Whitespace.
4336         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
4337         (ENCODE_SECTION_INFO): Whitespace.
4338         (FINALIZE_PIC): Remove do { ... } while (0).
4339         (PROMOTE_MODE): Wrap in do { ... } while (0).
4340         (CONST_COSTS): Whitespace.
4341         (RTX_COSTS): Add paramethesis, whitespace and wrap.
4342         (REGISTER_MOVE_COST): Add parenthesis.
4343         (MEMORY_MOVE_COST): Likewise.
4344         (EXTRA_CC_MODES): Whitespace.
4345         (SELECT_CC_MODE): Add parenthesis and whitespace.
4346         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
4347         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
4348         (ASM_OUTPUT_LABEL): Add paramethesis.
4349         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
4350         (ASM_OUTPUT_REG_POP): Likewise.
4351         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
4352         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4353
4354         * config/i386/i386.c: Update copyright.
4355         (CHECK_STACK_LIMIT): Add parenthesis.
4356         (AT_BP): Uppercase macro parameter.
4357         (x86_64_int_parameter_registers): Constify.
4358         (x86_64_int_return_registers): Likewise.
4359         (ix86_compare_op0): Use rtx.
4360         (construct_container): Constify INTREG parameter.
4361         (function_arg): Use rtx.
4362
4363         * diagnostic.h: Update copyright date.
4364         (output_buffer_state): Add parenthesis.
4365         (output_buffer_format_args): Likewise.
4366
4367         * combine.c (combine_instructions): Replace XEXP (links, 0)
4368         with link.
4369
4370 2002-01-06  H.J. Lu <hjl@gnu.org>
4371
4372         * cfgcleanup.c (thread_jump): Fix 2 typos.
4373
4374 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
4375
4376         * config.gcc: Add support for --enable-altivec.
4377
4378 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4379
4380         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
4381
4382 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
4383
4384         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
4385         __objc_class_name_*.
4386
4387 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4388
4389         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
4390
4391 2002-01-06  Richard Henderson  <rth@redhat.com>
4392
4393         * reorg.c (emit_delay_sequence): Remove death notes, not merely
4394         nop them out.  Increment label reference count for REG_LABEL.
4395         (fill_slots_from_thread): Frob label reference count around
4396         delete_related_insns.
4397
4398 2002-01-05  Richard Henderson  <rth@redhat.com>
4399
4400         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
4401         jump threading.
4402
4403 2002-01-05  Richard Henderson  <rth@redhat.com>
4404
4405         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
4406         * integrate.c (output_inline_function): Likewise.
4407         * toplev.c (rest_of_compilation): Do it here instead.  Move call
4408         to remove_unnecessary_notes after emitting abstract instance.
4409         Force an emitted nested function to have its parent emited as well.
4410         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
4411         for null.
4412         (rtl_for_decl_location): Do not look at reload data structures
4413         before reload has run.
4414
4415 2002-01-05  Kazu Hirata  <kazu@hxi.com>
4416
4417         * cse.c: Fix formatting.
4418         * dwarf2asm.c: Likewise.
4419         * dwarf2out.c: Likewise.
4420         * explow.c: Likewise.
4421         * expmed.c: Likewise.
4422         * function.c: Likewise.
4423         * gcov.c: Likewise.
4424         * gencheck.c: Likewise.
4425         * genrecog.c: Likewise.
4426         * ggc-common.c: Likewise.
4427         * ggc-page.c: Likewise.
4428         * global.c: Likewise.
4429
4430 2002-01-05  Kazu Hirata  <kazu@hxi.com>
4431
4432         * combine.c: Fix formatting.
4433
4434 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
4435
4436         PR middle-end/1557
4437         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
4438
4439 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
4440
4441         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
4442         as 1 for __powerpc64__ as well.
4443
4444         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
4445
4446         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
4447         return it.
4448
4449 2002-01-05  Daniel Berlin  <dan@dberlin.org>
4450
4451         * lcm.c: Revert change, due to performance regression it causes on
4452         SPEC because it's slightly more conservative (sigh, I hate
4453         edge-based LCM).
4454
4455 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
4456
4457         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
4458
4459 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
4460
4461         * doc/cppinternals.texi: Update.
4462
4463 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
4464
4465         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
4466         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
4467         negatives.
4468         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
4469         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
4470         kludge for pre-october-14th mmix versions to handle new-found bug
4471         with PUSHJ/PUSHGO and the register stack.
4472         * config/mmix/mmix.h (struct machine_function): Rename member
4473         has_call_value_without_parameters to has_call_without_parameters.
4474         All referers changed.
4475         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
4476         TARGET_MASK_BRANCH_PREDICT): New macros.
4477         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
4478         -mno-reg-stack-fill-bug-workaround.
4479         * config/mmix/mmix.md ("call"): Set struct machine member
4480         has_call_without_parameters.
4481
4482 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
4483
4484         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
4485
4486 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
4487
4488         * cfgcleanup.c: Include tm_p.h
4489         (mark_effect): Fix handling of hard register; fix handling of SET
4490
4491 2002-01-04  Kazu Hirata  <kazu@hxi.com>
4492
4493         * config/h8300/h8300.md (anonymous patterns): Check that
4494         operands are registers before using REGNO on them.
4495
4496 2002-01-03  Roland McGrath  <roland@frob.com>
4497
4498         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
4499
4500 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
4501
4502         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
4503         * c-common.h (genrtl_expr_stmt_value): Likewise.
4504         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
4505         (expand_expr_stmt_value): Add maybe_last argument.
4506         Don't warn about statement with no effect if it is the last statement
4507         in expression statement.
4508         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
4509         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
4510         expand_expr_stmt_value.
4511         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
4512         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
4513         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
4514         as maybe_last to expand_expr_stmt_value.
4515
4516 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
4517
4518         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
4519         be passed in, do not build it.
4520         (c_begin_if_stmt): New function.
4521         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
4522         * c-common.h (c_expand_start_cond): Update prototype.
4523         (c_begin_if_stmt): Prototype new function.
4524         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
4525         * c-parse.in (if_prefix): Use c_begin_if_stmt,
4526         c_begin_while_stmt and c_finish_while_stmt_cond.
4527
4528 2002-01-04  William Cohen  <wcohen@redhat.com>
4529
4530         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
4531         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
4532         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
4533         * config/pa/som.h (ASM_FILE_START): Likewise.
4534
4535 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
4536
4537         * lcm.c: Include df.h.
4538         Add available_transfer_function prototype.
4539         (compute_available): Rework to use iterative dataflow framework.
4540         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
4541         with bb_info in df.h
4542         (available_transfer_function): New function.
4543
4544         * Makefile.in (lcm.o): add df.h to dependencies.
4545
4546 2002-01-04  Richard Henderson  <rth@redhat.com>
4547
4548         * config/alpha/alpha.c (some_operand): Accept HIGH.
4549         (input_operand): Likewise; accept simple references to globals.
4550         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
4551         (alpha_const_double_ok_for_letter_p): Likewise.
4552         (alpha_extra_constraint): Likewise.
4553         (alpha_preferred_reload_class): Likewise.  Do not force
4554         symbolic constants to memory.
4555         (alpha_legitimate_address_p): Accept simple references
4556         to small_symbolic_operand.
4557         (alpha_legitimize_address): New arg scratch.  Be prepared to be
4558         called when no_new_pseudos.  Emit simple symbolic references.
4559         Split integers into low, high, and rest.
4560         (alpha_expand_mov): Use alpha_legitimize_address.
4561         (some_small_symbolic_mem_operand): New.
4562         (split_small_symbolic_mem_operand): New.
4563         * config/alpha/alpha-protos.h: Update.
4564         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
4565         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
4566         (EXTRA_CONSTRAINT): Likewise.
4567         (PREFERRED_RELOAD_CLASS): Likewise.
4568         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
4569         (PREDICATE_CODES): Update.
4570         * config/alpha/alpha.md: New post-reload splitters to convert
4571         simplfied symbolic operands to the form that references $29.
4572         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
4573         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
4574
4575 2002-01-03  Richard Henderson  <rth@redhat.com>
4576
4577         * local-alloc.c (function_invariant_p): Update commentary.
4578
4579 2002-01-04  H.J. Lu <hjl@gnu.org>
4580
4581         * toplev.c (rest_of_compilation): Fix a typo when calling
4582         cleanup_cfg.
4583
4584 2002-01-03  Kazu Hirata  <kazu@hxi.com>
4585
4586         * c-common.c: Fix formatting.
4587         * diagnostic.c: Likewise.
4588         * doloop.c: Likewise.
4589         * dwarf2out.c: Likewise.
4590
4591 2002-01-03  Kazu Hirata  <kazu@hxi.com>
4592
4593         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
4594         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
4595
4596 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
4597
4598         * cpperror.c: Update comments and copyright.
4599         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
4600         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
4601
4602 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4603
4604         * collect2.c (main): Use strcmp when testing for "-shared".
4605
4606 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
4607
4608         * cppmacro.c: Don't include intl.h.  Update comments.
4609         (new_number_token): Allocate enough buffer for 64-bit unsigned
4610         integers; update prototype.
4611         * cppmain.c: Update comments.
4612
4613 2002-01-03  William Cohen  <wcohen@redhat.com>
4614
4615         * function.h (struct function): Add profile.
4616         (current_function_profile): New.
4617         doc/extend.texi: Update documentation.
4618         * final.c (final_start_function): Use current_function_profile
4619         instead of profile_flag.
4620         (profile_after_prologue): Likewise.
4621         * function.c (expand_function_start): Likewise.
4622         (expand_function_start): Likewise.
4623         * config/alpha/alpha.c (direct_call_operand):
4624         (alpha_does_function_need_gp): Likewise.
4625         (alpha_expand_prologue): Likewise.
4626         * config/arm/arm.c (arm_expand_prologue): Likewise.
4627         thumb_expand_prologue: Likewise.
4628         * config/d30v/d30v.c (d30v_stack_info): Likewise.
4629         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
4630         (fr30_expand_prologue): Likewise.
4631         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
4632         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
4633         * config/i386/i386.h (FINALIZE_PIC): Likewise.
4634         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
4635         * config/i960/i960.c (i960_output_function_prologue): Likewise.
4636         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
4637         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
4638         (m32r_expand_prologue): Likewise.
4639         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
4640         (m88k_expand_prologue): Likewise.
4641         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
4642         * config/mips/mips.c (compute_frame_size): Likewise.
4643         (mips_expand_prologue): Likewise.
4644         (mips_can_use_return_insn): Likewise.
4645         * config/pa/elf.h (ASM_FILE_START): Likewise.
4646         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
4647         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
4648         * config/pa/som.h (ASM_FILE_START): Likewise.
4649         * config/romp/romp.c (romp_using_r14): Likewise.
4650         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
4651         (rs6000_stack_info): Likewise.
4652         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4653         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
4654         * config/v850/v850.c (compute_register_save_size): Likewise.
4655
4656 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
4657
4658         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
4659         gen_lowpart_common fails, use gen_lowpart_SUBREG.
4660
4661 2002-01-03  Turly O'Connor  <turly@apple.com>
4662
4663         * darwin.c (machopic_output_possible_stub_label): Don't generate
4664         stub routines for pseudo-stubs which we've just defined.
4665
4666 2002-01-03  Kazu Hirata  <kazu@hxi.com>
4667
4668         * builtins.c: Fix formatting.
4669         * c-typeck.c: Likewise.
4670         * combine.c: Likewise.
4671         * expr.c: Likewise.
4672         * loop.c: Likewise.
4673
4674 2002-01-03  Andreas Schwab  <schwab@suse.de>
4675
4676         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
4677         and return true if _cpp_push_next_buffer pushed a new include
4678         file.
4679         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
4680         _cpp_pop_file_buffer did not push a new file.
4681         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
4682
4683 2002-01-02  Eric Christopher  <echristo@redhat.com>
4684
4685         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
4686         FIND_REG_INC_NOTE call. Update copyright.
4687         * loop.c (canonicalize_condition): Ditto.
4688         * reorg.c (delete_scheduled_jump): Ditto.
4689
4690 2002-01-03  Kazu Hirata  <kazu@hxi.com>
4691
4692         * gcse.c: Fix formatting.
4693
4694 2002-01-03  Graham Stott  <grahams@redhat.com>
4695
4696         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
4697         forward defs for struct tags rtx_def, union_tree, rtvec_def
4698         also output corresponding typedefs for rtx, tree, and rtvec.
4699
4700         * system.h: Move forward defs for struct tags rtx_def, union_tree,
4701         rtvec_def along with corresponding typedefs for rtx, tree, and
4702         rtvec to config.h, hconfig.h, tconfig.h.
4703
4704 2002-01-03  Graham Stott  <grahams@redhat.com>
4705
4706         * tree.h: Update copyright date.
4707         (IS_EXPR_CODE_CLASS): Add parenthesis.
4708         (TREE_SET_CODE): Add whitespace.
4709         (TREE_CHECK): Add parenthesis.
4710         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
4711         (CST_OR_CONSTRUCTOR_CHECK):
4712         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
4713         (TREE_SYMBOL_REFERENCED): Whitespace.
4714         (INT_CST_LT): Likewise.
4715         (INT_CST_LT_UNSIGNED): Likewise.
4716         (tree_real_cst): Unwrap comment.
4717         (tree_string): Likewise.
4718         (tree_complex): Likewise.
4719         (IDENTIFIER_POINTER): correct cast.
4720         (SAVE_EXPR_CONTEXT): Whitespace.
4721         (EXPR_WFL_FILENAME_NODE): Likewise.
4722         (EXPR_WFL_FILENAME): Remove parenthesis.
4723         (DECL_ORIGIN): Add parenthesis.
4724         (DECL_FROM_INLINE): Use NULL_TREE.
4725         (build_int_2): Whitespace.
4726         (build_type_variant): Add parenthesis.
4727
4728         * gcc/jcf-parse.c: Update copyright date.
4729         (yyparse): Constify resource_filename.
4730
4731 2002-01-03  Graham Stott  <grahams@redhat.com>
4732
4733         * rtl.h: Update copyright date.
4734         (RTL_CHECK1): Wrap long line.
4735         (RTL_CHECK2): Likewise.
4736         (RTL_CHECKC1): Wrap long line and whitespace.
4737         (RTL_CHECKC2): Likewise.
4738         (XWINT): Whitespace.
4739         (XINT): Likewise.
4740         (XSTR): Likewise.
4741         (XEXP): Likewise.
4742         (XVEC): Likewise.
4743         (XMODE): Likewise.
4744         (XBITMAP): Likewise.
4745         (XTREE): Likewise.
4746         (XBBDEF): Likewise.
4747         (XTMPL): Likewise.
4748         (X0WINT): Likewise.
4749         (X0INT):Likewise.
4750         (X0UINT): Likewise.
4751         (X0STR): Likewise.
4752         (X0EXP): Likewise.
4753         (X0VEC): Likewise.
4754         (X0MODE): Likewise.
4755         (X0BITMAP): Likewise.
4756         (X0TREE): Likewise.
4757         (X0BBDEF): Likewise.
4758         (X0ADVFLAGS): Likewise.
4759         (X0CSELIB): Likewise.
4760         (X0MEMATTR): Likewise.
4761         (XCWINT): Likewise.
4762         (XCINT): Likewise.
4763         (XCUINT): Likewise.
4764         (XCSTR): Likewise.
4765         (XCEXP): Likewise.
4766         (XCVEC): Likewise.
4767         (XCMODE): Likewise.
4768         (XCBITMAP): Likewise.
4769         (XCTREE): Likewise.
4770         (XCBBDEF): Likewise.
4771         (XCADVFLAGS): Likewise.
4772         (XCCSELIB): Likewise.
4773         (XC2EXP): Likewise.
4774         (INSN_UID): Likewise.
4775         (PREV_INSN): Likewise.
4776         (PATTERN): Likewise.
4777         (INSN_CODE): Likewise.
4778         (PUT_REG_NOTE_KIND): Likewise.
4779         (CODE_LABEL_NUMBER): Likewise.
4780         (NOTE_SOURCE_FILE): Likewise.
4781         (NOTE_BLOCK): Likewise.
4782         (NOTE_EH_HANDLER): Likewise.
4783         (NOTE_RANGE_INFO): Likewise.
4784         (NOTE_LIVE_INFO): Likewise.
4785         (NOTE_BASIC_BLOCK): Likewise.
4786         (NOTE_EXPECTED_VALUE): Likewise.
4787         (NOTE_LINE_NUMBER): Likewise.
4788         (LABEL_NAME): Likewise.
4789         (LABEL_NUSES): Likewise.
4790         (LABEL_ALTERNATE_NAME): Likewise.
4791         (ADDRESSOF_DECL): Likewise.
4792         (JUMP_LABEL): Likewise.
4793         (LABEL_NEXTREF): Likewise.
4794         (REGNO): Likewise.
4795         (ORIGINAL_REGNO: Likewise.
4796         (HARD_REGISTER_NUM_P): Add parenthesis.
4797         (SUBREG_REG): Whitespace.
4798         (SUBREG_BYTE): Likewise.
4799         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
4800         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
4801         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
4802         (ASM_OPERANDS_INPUT_VEC): Likewise.
4803         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
4804         (ASM_OPERANDS_INPUT): Likewise.
4805         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
4806         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
4807         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
4808         (ASM_OPERANDS_INPUT_MODE): Likewise.
4809         (ASM_OPERANDS_SOURCE_FILE): Likewise.
4810         (ASM_OPERANDS_SOURCE_LINE): Likewise.
4811         (MEM_SET_IN_STRUCT_P): Minor reformat.
4812         (TRAP_CONDITION): Whitespace.
4813         (TRAP_CODE): Likewise.
4814         (COND_EXEC_TEST): Likewise.
4815         (COND_EXEC_CODE): Likewise.
4816         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
4817         (PHI_NODE_P): Add parenthesis.
4818         (plus_constant): Whitespace and add parenthesis.
4819
4820 2002-01-03  Kazu Hirata  <kazu@hxi.com>
4821
4822         * config/avr/avr.c: Fix comment typos.
4823         * config/c4x/c4x.md: Likewise.
4824         * config/dsp16xx/dsp16xx.h: Likewise.
4825         * config/dsp16xx/dsp16xx.md: Likewise.
4826         * config/i386/i386.md: Likewise.
4827         * config/ia64/ia64.c: Likewise.
4828         * config/m32r/m32r.h: Likewise.
4829         * config/m68hc11/m68hc11.md: Likewise.
4830         * config/mmix/mmix.c: Likewise.
4831         * config/mn10200/mn10200.c: Likewise.
4832         * config/romp/romp.c: Likewise.
4833         * config/sh/sh.c: Likewise.
4834         * config/stormy16/stormy16.c: Likewise.
4835         * config/stormy16/stormy16.h: Likewise.
4836         * config/stormy16/stormy16.md: Likewise.
4837
4838 2002-01-03  Graham Stott  <grahams@redhat.com>
4839
4840         * loop.h: Update copyright date.
4841         (LOOP_MOVABLES): Fix typo.
4842         (LOOP_REGS): Likewise.
4843         (LOOP_IVS): Likewise.
4844
4845 2002-01-03  Graham Stott  <grahams@redhat.com>
4846
4847         * cppinit.c: Update copyright date.
4848         Don't include output.h
4849         * Makefile.in: Update copyright date.
4850         Update dependency.
4851
4852 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4853
4854         PR c/5226
4855         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
4856         (-pthread) Add to RS/6000 options.
4857
4858 2002-01-02  Kazu Hirata  <kazu@hxi.com>
4859
4860         * except.c: Fix comment typos.
4861         * loop.c: Likewise.
4862         * varasm.c: Likewise.
4863         * doc/tm.texi: Fix a typo.
4864
4865 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
4866
4867         * c-typeck.c (output_init_element): Allow initializing static storage
4868         duration objects with compound literals.
4869
4870 2002-01-02  Richard Henderson  <rth@redhat.com>
4871
4872         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
4873         after abusing it.
4874
4875 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4876
4877         * gcc.c (default_compilers): Const-ify.
4878         * mips-tdump.c (stab_names): Likewise.
4879         * mips-tfile.c (map_coff_types, map_coff_storage,
4880         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
4881         pseudo_ops_t, pseudo_ops): Likewise.
4882         * protoize.c (default_include): Likewise
4883
4884         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
4885         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
4886         Add array size in declaration.
4887         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
4888         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
4889         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
4890         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
4891         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
4892         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
4893         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
4894         emtens, make_nan): Const-ify.
4895         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
4896         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
4897
4898 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4899
4900         * config.gcc (ia64-*-*): Set extra_headers.
4901         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
4902         * config/alpha/t-osf: Remove.
4903         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
4904
4905 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
4906
4907         * config/rs6000/t-aix43: Revert previous change.
4908
4909 2002-01-02  Jason Merrill  <jason@redhat.com>
4910
4911         * c-decl.c (c_expand_body): Call outlining_inline_function when
4912         emitting an inline function out of line.
4913
4914 2002-01-02  Richard Henderson  <rth@redhat.com>
4915
4916         * dwarf2out.c (limbo_die_node): Add created_for member.
4917         (new_die): New argument created_for.  Update all callers.
4918         (mark_limbo_die_list): New.
4919         (dwarf2out_init): Register limbo_die_list as a root.
4920         (dwarf2out_finish): Force insert limbo dies into their function
4921         context.
4922
4923 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
4924
4925         PR c++/5089
4926         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
4927
4928 2002-01-02  Kazu Hirata  <kazu@hxi.com>
4929
4930         * config/h8300/fixunssfsi.c: Update copyright.
4931         Fix comment typos.
4932         Fix formatting.
4933         * config/h8300/h8300.c: Update copyright.
4934         Eliminate warnings.
4935
4936 2002-01-02  Kazu Hirata  <kazu@hxi.com>
4937
4938         * config/romp/romp.c: Fix comment formatting.
4939         * config/romp/romp.h: Likewise.
4940         * config/romp/romp.md: Likewise.
4941         * config/s390/s390.c: Likewise.
4942         * config/stormy16/stormy16.c: Likewise.
4943         * config/stormy16/stormy16.h: Likewise.
4944
4945 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
4946
4947         * c-common.h (genrtl_expr_stmt_value): Declare.
4948         * c-semantics.c (genrtl_goto_stmt): Redirect to...
4949         (genrtl_goto_stmt_value): ... this new function.  Pass new
4950         argument down to expand_expr_stmt_value, taking
4951         TREE_ADDRESSABLE into account.
4952         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
4953         STMT_EXPR as addressable, i.e., one whose result we want.
4954         * expr.c (expand_expr): Don't save expression statement value
4955         of labeled_blocks or loop_exprs.
4956         * stmt.c (expand_expr_stmt): Redirect to...
4957         (expand_expr_stmt_value): ... this new function.  Use new
4958         argument to tell whether to save expression value.
4959         (expand_end_stmt_expr): Reset last_expr_type and
4960         last_expr_value if we don't have either.
4961         * tree-inline.c (declare_return_variable): Mark its use
4962         statement as addressable.
4963         * tree.h: Document new use of TREE_ADDRESSABLE.
4964         (expand_expr_stmt_value): Declare.
4965
4966 2002-01-01  Tom Rix  <trix@redhat.com>
4967
4968         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
4969         rs6000_emit_allocate_stack.
4970
4971 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
4972
4973         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
4974         ${srcdir}/ginclude/ to every entry in extra_headers.
4975         * configure: Regenerate.
4976         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
4977         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
4978         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
4979         * ginclude/proto.h: Rename to config/convex/proto.h.
4980
4981 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4982
4983         * attribs.c (handle_vector_size_attribute): Use host_integerp
4984         and tree_int_cst; remove warnings.
4985         * caller-save.c (insert_restore): Add cast to get rid of warning.
4986         (insert_save): Likewise.
4987         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
4988         * regmove.c (find_matches): Add temporary var to kill a warning.
4989
4990 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
4991
4992         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
4993         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
4994         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
4995         (vms-dwarf2eh.o): Add Makefile rule.
4996         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
4997         * config/alpha/vms-dwarf2eh.asm: New file.
4998
4999         * gcc.c (delete_if_ordinary): Delete all versions.
5000
5001 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
5002
5003         * config/mmix/mmix.md: Update FIXME to not mention
5004         define_constants.
5005         (MMIX_rJ_REGNUM): New define_constants constant.
5006         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
5007         "*movdicc_real"): Adjust contraints formatting.
5008         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
5009         for branch prediction.
5010         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
5011         output template.
5012         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
5013         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
5014         number.  Delete related FIXMEs.
5015         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
5016         from number to MMIX_rJ_REGNUM.
5017         (TARGET_MASK_BRANCH_PREDICT): New.
5018         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
5019         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
5020         value.  Add -mbranch-predict and -mno-branch-predict.
5021         (TARGET_VERSION): Drop date.
5022         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
5023         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
5024         for finding out global symbols.
5025         (mmix_asm_output_labelref): Revert condition for global symbol.
5026         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
5027         (mmix_print_operand_punct_valid_p): A '+' is valid.
5028
5029 See ChangeLog.6 for earlier changes.