aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/ChangeLog
blob: 96637cda885efeff2ef79d93272fc900ddf46cc2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
2000-02-09  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.

	* aix.h (SETUP_FRAME_ADDRESSES): Define.
	* rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
	[TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
	[TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
	* rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
	rs6000_aix_emit_builtin_unwind_init.
	* rs6000.md (eh_epilogue) [TARGET_AIX]: Call 
	rs6000_emit_eh_toc_restore on AIX.
	(return_eh_si): Use r2.
	(return_eh_di): Use r2.

	* aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
	since we're breaking binary compatibility anyway.

2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>

	* config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
	constant_pool_expr_p): Declare them.
	(constant_pool_expr_p): Declare it.
	* config/rs6000/rs6000.c (toc_label_name): Define.
	(rs6000_override_options): Set toc_label_name.
	(input_operand): Allow any TOC_RELATIVE_EXPR_P.
	(get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
	uses_TOC): New functions.
	(print_operand): Delete old '*' case.
	(print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
	and strip off rtl for TOC before calling output_addr_const.
	(rs6000_emit_load_toc_table): Use toc_label_name.
	* config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
	the default.
	(LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
	(CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
	(LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
	(LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
	into explicit TOC_REGISTER offsets.
	(TOC_REGISTER): New macro.
	* config/rs6000/rs6000.md (movsi, movdi): Emit rtl under 
	TARGET_TOC to reference TOC_REGISTER.
	(load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
	* config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call  
	uses_TOC before emitting label references.

2000-02-05  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.md (stack_tie): Fix warning.

	* eabi-ctors.c: Use 'asm' names for the start/end variables,
	to handle -fleading-underscore.
	* sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
	(USER_LABEL_PREFIX): New macro.
	(ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
	(ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
	* t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
	call-linux can use the same multilibs.
	* t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
	and call-linux multilibs.  Do multilib with -fleading-underscore.
	(MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
	(MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
	to call-aix.

	* sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
	have MASK_SOFT_FLOAT set.
	(CPP_FLOAT_DEFAULT_SPEC): New macro.
	(SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
	CPP_FLOAT_DEFAULT_SPEC.

	* rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
	* rs6000.md: Whitespace change.
	* sysv4.h (LINK_TARGET_SPEC): Whitespace change.
	* sysv4le.h (LINK_TARGET_SPEC): Whitespace change.

2000-02-05  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.md (eh_epilogue): New expander.
	(eh_reg_restore): New expand/split/insn combination.
	(return_eh_si): New insn.
	(return_eh_di): New insn.

	* eabi-ci.asm: Put a label at the start of the .eh_frame section.
	* eabi-cn.asm: Put a zero at the end of the .eh_frame section.
	* eabi-ctors.c (__do_global_ctors): Register this object's
	frame.  Clean up.  Call atexit() after the constructors.
	(__do_global_dtors): Deregister this object's frame.  Clean up.
	Allow for recursive calls to exit().
	* rs6000.c (fixuplabelno): New variable.
	* sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
	TARGET_RELOCATABLE, it slows down exec() under linux.
	(ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.

	* aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
	(ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
	(ASM_OUTPUT_DWARF_DELTA2): New macro.
	(ASM_OUTPUT_DWARF_DELTA4): New macro.
	(ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
	(ASM_OUTPUT_DWARF_ADDR): New macro.
	(ASM_OUTPUT_DWARF_DATA4): New macro.
	(ASM_OUTPUT_DWARF_DATA2): New macro.
	(ASM_OUTPUT_DWARF_OFFSET4): New macro.
	(ASM_OUTPUT_DWARF_OFFSET): New macro.
	(UNALIGNED_INT_ASM_OP): New macro, fake definition.

2000-02-03  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.c (rs6000_sr_alias_set): New variable.
	(rs6000_override_options): Initialise rs6000_sr_alias_set.
	(rs6000_emit_stack_tie): New function.
	(rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
	in a way that dwarf2out can understand.
	(rs6000_frame_related): New function.
	(rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
	RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
	Use rs6000_emit_stack_tie when needed.
	(rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
	RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
	* rs6000.md (stack_tie): New insn.
	(return_internal_si): Allow return value to be in the count
	register.
	(return_internal_di): Likewise.

	* rs6000.c (output_mi_thunk): Remove unused variable `sp'.

2000-02-03  Geoff Keating  <geoffk@cygnus.com>

	* sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.

2000-01-31  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.

	* rs6000.md (stmw): Use the right POWER opcode.
	(lmw): Likewise.

2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* rs6000-protos.h: New file.

	* rs6000.c: Include tm_p.h.  Fix compile time warnings.
	
	* rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
	warnings.
	
	* sysv4.h: Likewise.

2000-01-28  Geoff Keating  <geoffk@cygnus.com>

	* ../../configure.in: Delete powerpcle-*-winnt*
	and powerpcle-*-pe|powerpcle-*-cygwin*.
	* ../../configure: Regenerated.
	* cygwin.h: Delete.
	* rs6000.h (OBJECT_WINDOWS_NT): Delete.
	(TARGET_WINDOWS_NT): Delete.
	(ABI_NT): Delete.
	(CALL_NT_DLLIMPORT): Delete.
	Delete NT-specific code.
	* rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
	* win-nt.h: Delete.
	* t-winnt: Delete.
	* nt-ci.asm: Delete.
	* nt-cn.asm: Delete.
	* ntstack.asm: Delete.

2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
	(ASM_FILE_START): Likewise.
	(ASM_DECLARE_FUNCTION_NAME): Likewise.
	(ASM_OUTPUT_LABELREF): Likewise.
	(ASM_OUTPUT_SKIP): Likewise.
	(ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	(ASM_GENERATE_INTERNAL_LABEL): Likewise.
	(ASM_OUTPUT_CASE_LABEL): Likewise.
	(ASM_OUTPUT_ALIGNED_COMMON): Likewise.
	(ASM_OUTPUT_ASCII): Likewise.

2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>

        * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
        reload_toc_labelno for non-prologue TOC reloads.  Also, don't
        increment rs6000_pic_labelno here.
        (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
        and increment rs6000_pic_labelno here.

2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>

	* rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
	rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
	allocation knows (reg) is dead before the insn.

2000-01-21  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.md (movsi_to_cr): Correct typo in output template.

2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>

	* rs6000.c (rs6000_pic_labelno): Always define.
	(rs6000_pic_func_labelno): Delete.
	(lmw_operation): Check for a zero base register,
	which doesn't mean what we want.
	(stmw_operation): New function.
	(print_operand): Define new 'l' modifier.
	(rs6000_stack_info): We must save all 64 bits of the registers
	if TARGET_POWERPC64.
	(rs6000_output_load_toc_table): Delete.
	(rs6000_emit_load_toc_table): New function.
	(rs6000_allocate_stack_space): Delete.
	(rs6000_emit_allocate_stack): New function.
	(rs6000_emit_prologue): New function.
	(output_prolog): Use rs6000_emit_prologue.
	(rs6000_emit_epilogue): Change a few variable names to be
	more accurate.  Restore all 64 bits of the registers if
	TARGET_POWERPC64.  Only restore the FP registers which were used
	if they are being saved/restored one-at-a-time.
	(output_mi_thunk): Delete inefficient code generation.
	(output_function_profiler): Don't use rs6000_output_load_toc_table.
	* rs6000.h: Declare rs6000_emit_load_toc_table,
	rs6000_allocate_stack_space, stmw_operation.  Don't declare
	rs6000_output_load_toc_table.
	* rs6000.md (elf_high): Allow register 0, but discourage it
	heavily.
	(elf_low): Support loading into register 0.
	(load_toc_aix_si): New pattern.
	(load_toc_aix_di): New pattern.
	(load_toc_v4_pic_si): New pattern.
	(load_toc_v4_pic_di): New pattern.
	(load_toc_v4_PIC_1): New pattern.
	(load_toc_v4_PIC_1b): New pattern.
	(load_toc_v4_PIC_2): New pattern.
	(builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
	(nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
	(prologue): New expander.
	(movesi_from_cr): New pattern.
	(stmw): New pattern.
	(save_fpregs_si): New pattern.
	(save_fpregs_di): New pattern.

2000-01-19  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
	(movdi): Likewise.
	(movhi): Likewise.
	(movqi): Likewise.

2000-01-19  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
	at present.
	(movsi_got_internal): Likewise.
	(movsi_got_internal+1): Likewise.
	(set_sp): 'unspec 7' does a SImode clobber.

2000-01-19  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.md (floatsidf2): Don't use the fpmem "register", just
	allocate a stack temporary.
	(floatsidf2_internal): Likewise.
	(floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
	with unspec.
	(floatunssidf2): Don't use the fpmem "register", just
	allocate a stack temporary.
	(floatunssidf2_internal): Likewise.
	(floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
	with unspec.
	(floatsidf2_loadaddr): Delete.
	(floatsidf2_store1): Delete.
	(floatsidf2_store2): Delete.
	(floatsidf2_load): Delete.
	(fix_truncdfsi2): Don't use the fpmem "register", just
	allocate a stack temporary.
	(fix_truncdfsi2_internal_si): Delete.
	(fix_truncdfsi2_internal_di): Delete.
	(fix_truncdfsi2_internal): New insn.
	(fix_truncdfsi2_internal+1): Don't use the fpmem "register".
	(fix_truncdfsi2_store): Delete.
	(fix_truncdfsi2_load): Delete.
	(fctiwz): Produce gen_fctiwz.

2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>

	* eabi.h (INVOKE__main): Define.
	* rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
	specially.
	(rs6000_emit_prologue): Likewise.
	* rs6000.h (struct rs6000_stack): Don't keep track of whether
	this is the main program.

2000-01-19  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.c (rs6000_va_arg): Delete some unused variables.

2000-01-19  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
	goes after the argument.

2000-01-12  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.md: Document 'unspec' values used.
	(epilogue): New expander.
	(movesi_to_cr_one): New expander.
	(movesi_to_cr and following): New pattern.
	(lmw): New pattern.
	(return_internal_si): New pattern.
	(return_internal_di): New pattern.
	(return_and_restore_fpregs_si): New pattern.
	(return_and_restore_fpregs_di): New pattern.
	* rs6000.h: Declare new functions.
	* rs6000.c (rs6000_stack_info): Use current_function_is_leaf
	rather than rs6000_calls_p.
	(rs6000_makes_calls): Delete.
	(lmw_operation): New function.
	(mtcrf_operation): New function.
	(rs6000_emit_epilogue): New function.
	(output_epilog): Call rs6000_emit_epilogue and final if
	!TARGET_SCHED_PROLOG, instead of writing text unconditionally.

2000-01-12  Geoff Keating  <geoffk@cygnus.com>

	* aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
	* aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
	* aix.h (SUBTARGET_SWITCHES): Document switches.
	* rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
	sched-prolog and sched-epilog the same.  Document all the
	switches.
	(TARGET_OPTIONS): No longer allow -mdebug-.

2000-01-12  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.h (ASM_FILE_END): Move to aix.h.
	(EXTRA_SECTIONS): Move to aix.h.
	(READONLY_DATA_SECTION): Move to aix.h.
	(EXTRA_SECTION_FUNCTIONS): Move to aix.h.
	(SELECT_SECTION): Move to aix.h.
	(JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
	(INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
	(LINK_REGISTER_REGNUM): New definition.
	(RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
	(SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
	AIX and SVR4.
	* sysv4.h: Delete the code between the inclusion of rs6000.h
	and svr4.h.
	(DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
	(FP_ARG_MAX_REG): Move generic definition to rs6000.h.
	(RS6000_REG_SAVE): Move generic definition to rs6000.h.
	(RS6000_SAVE_AREA): Move generic definition to rs6000.h.
	* rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
	(fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
	(fix_truncdfsi2_internal_di): New pattern.
	(fix_truncdfsi2_store): The second arg here is Pmode too.
	(fix_truncdfsi2_load): The second arg here is Pmode too.
	(tablejumpdi): Now that switch tables hold only SImode values,
	gcc needs to know how to add them to the pc which is DImode.
	* rs6000.c (rs6000_stack_info): Use symbolic name for 
	LINK_REGISTER_REGNUM.
	(output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
	(output_toc): Delete unused variables s1 and s2.
	(output_ascii): Use fputs not fprintf on a variable string.

2000-01-07  David Edelsohn  <edelsohn@gnu.org>

        * rs6000.c (processor_target_table): Add power3 as alias for 630.
        * aix43.h: Revert Aug 2 change.
        (HAS_INIT_SECTION): Define, not visible yet.
        (LD_INIT_SWITCH): Define, not visible yet.
        * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.

2000-01-04  Joel Sherrill (joel@OARcorp.com>

        * config/rs6000/rtems.h: Include config/rtems.h.

2000-01-04  David Edelsohn  <edelsohn@gnu.org>

        * rs6000.h (HANDLE_PRAGMA_PACK): Define.
        (SLOW_UNALIGNED_ACCESS): Define.
        (CASE_VECTOR_MODE): Always use 32-bit offsets.
        (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
        (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
        (toc_section): Likewise and .toc pseudo-op.
        (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
        64-bit mode.
        (TEXT_SECTION_ASM_OP): Likewise.
        (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
        32-bit offsets.

1999-12-17  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
	UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
	compiling libgcc2.
	
2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>

	* rs6000.h: Move more stuff from here...
	* aix.h: to here.
	* sysv4.h: Cleanup accordingly.
	* netware.h: Likewise

2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>

        * rs6000.h: Continue cleanup.
	* aix.h: Likewise.
	* lynx.h: Likewise.
	* netware.h: Likewise.
	* sol2.h: Likewise.
	* sysv4.h: Likewise.
	* win-nt.h: Likewise.

	* rs6000.h (TARGET_SWITCHES): Add descriptions.
	(TARGET_OPTIONS): Likewise.

	* sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
	(SUBTARGET_OPTIONS): Likewise.

	* rs6000.md: Fix compile time warnings.

2000-01-04  Geoff Keating  <geoffk@cygnus.com>

	vxworks patches from the Cygnus tree originally by
	Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
	<vmakarov@cygnus.com>.
	* sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
	(ENDFILE_SPEC): Likewise.
	(LIB_VXWORKS_SPEC): New macro.
	(STARTFILE_VXWORKS_SPEC): New macro.
	(ENDFILE_VXWORKS_SPEC): New macro.
	(LINK_START_VXWORKS_SPEC): New macro.
	(LINK_OS_VXWORKS_SPEC): New macro.
	(CPP_OS_VXWORKS_SPEC): New macro.
	(SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
	* vxppc.h: Rewrite to use proper configuration method.
	* vxppcle.h: New file.
	* ../../configure.in: Add powerpcle-wrs-vxworks*.
	* ../../configure: Rebuilt.

2000-01-04  Geoff Keating  <geoffk@cygnus.com>

	Lots of changes to rs6000.h, sysv4.h, aix.h,
	aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
	with the aim that rs6000.h is the first header
	included and the others override it.
	* aix.h: New file.

	* x-aix41-gld: Remove.  
	* x-aix43: Remove.
	* x-aix41: Remove target-specific switches, and don't specify
	-Wl,-bbigtoc as we don't need it any more.
	* ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
	Use t-aix43 for AIX 4.3 and above.
	* ../../configure: Regenerated.

	* rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
	options, that don't do anything yet.
	(MASK_SCHED_PROLOG): New macro.
	(MASK_SCHED_EPILOG): New macro.
	(TARGET_SCHED_PROLOG): New macro.
	(TARGET_SCHED_EPILOG): New macro.

2000-01-04  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.c: Correct comment, the `minimal' TOCs are actually
	one per translation unit, not one per function.
	(output_toc): Also do duplicate constant elimination
	for per-translation-unit TOCs.

	* rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
	a comment explaining _exactly_ when this pattern gets used.
	(builtin_setjmp_receiver): New pattern for better clarity.
	(init_v4_pic): Move it into a section dealing with TOC registers.

1999-12-30  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.c (toc_hash_table): New variable.
	(rs6000_hash_constant): New function.
	(toc_hash_function): New function.
	(toc_hash_eq): New function.
	(toc_hash_mark_entry): New function.
	(toc_hash_mark_table): New function.
	(output_toc): Don't output duplicate TOC entries in
	a single file.
	(rs6000_add_gc_roots): Add the hash table as a GC root.
	* t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
	where they clearly shouldn't be.  This may need to be fixed
	later when there is a GNU ar for AIX.
	* x-aix43: Don't define CLIB or AR_FOR_TARGET.
	Don't define BOOT_LDFLAGS as it is now not necessary.

1999-12-29  Geoff Keating  <geoffk@cygnus.com>

	* rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
	for va_list on AIX.  Use unsigned_char_type_node rather than
	constructing our own version on svr4.

1999-12-17  Geoff Keating  <geoffk@cygnus.com>

	* tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
	since patently it's not.

1999-12-08  Geoff Keating  <geoffk@cygnus.com>

	* config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
	define_expand/define_insn pair, and handle restore of the
	SVR4 -fpic register.

1999-12-17  Geoff Keating  <geoffk@cygnus.com>

	* New branch for PPC work.