OSDN Git Service

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