10771 Commits

Author SHA1 Message Date
Per Bothner
a74abd2e16 * sys-types.h: Add dummy definition for ssize_t.
From-SVN: r10884
1995-12-27 13:16:22 -08:00
Richard Kenner
dd682f144b (extbh): Remove; no such insn.
From-SVN: r10883
1995-12-27 16:05:56 -05:00
Richard Kenner
2206e9044e (extend{qihi,qisi,hisi}2): Allow unaligned memory as arg 1 and pass to extend_{q,h}idi2.
(extend{qihi,qisi,hisi}2): Allow unaligned memory as arg 1 and pass to
extend_{q,h}idi2.
(unaligned_extend{q,h}idi): New patterns.
(extend{q,h}idi2): If unaligned memory, call above new patterns.
(ext{q,l,w}h recognizer): Update to proper RTL.
(ext define_split): Comment out for now; wrong and maybe useless.
(unaligned_{load,store}hi): Do similarly to QImode.
(movhi, reload_{in,out}hi): Call unaligned case differently.

From-SVN: r10882
1995-12-27 15:29:50 -05:00
Richard Kenner
442b16859c ({CONSTANT,DATA}_ALIGNMENT): Align to at least BITS_PER_WORD.
(PREDICATE_CODES): Add reg_or_unaligned_mem_operand.

From-SVN: r10881
1995-12-27 15:29:15 -05:00
Richard Kenner
adb18b686c ({non,}aligned_memory_operand): Test REGNO_POINTER_ALIGN.
(reg_or_unaligned_mem_operand): New function.
(get_unaligned_address): Add new arg, EXTRA_OFFSET.

From-SVN: r10880
1995-12-27 15:28:55 -05:00
Richard Kenner
0e75bea2be (integrate.o): Includes regs.h.
From-SVN: r10879
1995-12-27 15:28:30 -05:00
Richard Kenner
8b4904a3ac (unroll_loop): Set regno_pointer_{flag,align} in remap table.
From-SVN: r10878
1995-12-27 15:28:09 -05:00
Richard Kenner
12307ca27b Include regs.h.
(initialize_for_inline): Pass additional args to gen_inline_header.
(save_for_inline_copying): Make new regno_reg_rtx, regno_pointer_flag,
and regno_pointer_align arrays.
(expand_inline_function): Set alignment of reg for parm if passed by
hidden pointer.
Set regno_pointer_{flag,align} into remap table.
(copy_rtx_and_substitute): Set alignment of pointers into stack frame.
Copy pointer flag and alignment to regs that are copies of
pointer registers from the original regs.
(output_inline_function): Don't call restore_reg_data.
Restore reg_rtx_no, regno_{reg_rtx,pointer_flag,pointer_align}.

From-SVN: r10877
1995-12-27 15:27:39 -05:00
Richard Kenner
3051365e56 (struct inline_remap): New fields regno_pointer_flag and
regno_pointer_align.

From-SVN: r10876
1995-12-27 15:26:58 -05:00
Richard Kenner
50874c8d00 (INLINE_HEADER): Add three new fields.
From-SVN: r10875
1995-12-27 15:26:28 -05:00
Richard Kenner
ee5fb731d7 (INLINE_REGNO_{RTX,POINTER_FLAG,POINTER_ALIGN}): New macros.
(gen_inline_header): Add three new parms.

From-SVN: r10874
1995-12-27 15:26:07 -05:00
Richard Kenner
8c87f107ff (find_best_addr): Make sure folded address better before using.
From-SVN: r10873
1995-12-27 15:25:35 -05:00
Richard Kenner
8e1e2862ad (emit_unop_insn): Don't do -fforce-mem for SIGN_EXTEND.
From-SVN: r10872
1995-12-27 15:25:01 -05:00
Richard Kenner
d902f80a15 (expand_decl): Set alignment of register for pointer variable.
From-SVN: r10871
1995-12-27 15:24:29 -05:00
Richard Kenner
91102d5aed (set_nonzero_bits_and_sign_copies): Handle reg even if only set once and in one basic block.
(set_nonzero_bits_and_sign_copies): Handle reg even
if only set once and in one basic block.
(nonzero_bits, case REG): Use REGNO_POINTER_ALIGN instead of
explicit alignment of registers pointing into frame.

From-SVN: r10870
1995-12-27 15:23:44 -05:00
Richard Kenner
dc6d66b319 (expand_expr, case VAR_DECL): Set REGNO_POINTER_ALIGN when copying address into memory.
(expand_expr, case VAR_DECL): Set REGNO_POINTER_ALIGN
when copying address into memory.
(expand_expr, case COMPONENT_REF, case ADDR_EXPR): Set alignment
of register when result or result's address.
(expand_expr, case CONVERT_EXPR): Don't handle -fforce-mem here.

From-SVN: r10869
1995-12-27 15:23:01 -05:00
Richard Kenner
6c6166bdcb (assign_parms): Set REGNO_POINTER_ALIGN for parms that are pointers.
From-SVN: r10868
1995-12-27 15:22:26 -05:00
Richard Kenner
f30d95d264 (struct function): New field regno_pointer_align.
From-SVN: r10867
1995-12-27 15:22:03 -05:00
Richard Kenner
40f954f62b (reg_rtx_no, regno_pointer_{flag_length,align): New decls.
(REGNO_POINTER_ALIGN): New macro.

From-SVN: r10866
1995-12-27 15:21:34 -05:00
Richard Kenner
86fe05e0be (regno_pointer_align): New variable.
(gen_reg_rtx): Extend regno_pointer_align table.
Allocate tables in saveable obstack.
(mark_reg_pointer): New arg, ALIGN.
(gen_inline_header): New args for reg info.
(set_new_first_and_last_insn): Set cur_insn_uid.
({save,restore}_emit_status): Save and restore regno_pointer_align.
(restore_reg_data{,_1}): Deleted.
(init_emit): Allocate register tables in saveable obstack.
Set REGNO_POINTER_ALIGN for regs pointing into frame.

From-SVN: r10865
1995-12-27 15:21:02 -05:00
Michael Meissner
ebedb4dd49 Reorganize common mode; optimize SI*SI->DI on common/powerpc; Do not build power2/601 libraries
From-SVN: r10864
1995-12-27 17:35:39 +00:00
Richard Kenner
a377ff85d0 (fold_convert): When converting a NaN to another type, change the type
of the node before returning it.

From-SVN: r10863
1995-12-26 21:52:06 -05:00
Richard Kenner
36c336d189 (mark_addressable): Fix error in last change.
From-SVN: r10862
1995-12-25 17:11:54 -05:00
Jeff Law
3ba1236fc8 pa.c (output_function_epilogue): Use assemble_integer rather than calling ASM_OUTPUT_INT directly.
* pa.c (output_function_epilogue): Use assemble_integer rather
        than calling ASM_OUTPUT_INT directly.
        * pa.h (ASM_OUTPUT_INT): Use plabels for everything in the
        exception table section.

        * pa.c (print_operand): Don't call fprintf to output a register
        name.  Use fputs instead.

From-SVN: r10861
1995-12-24 22:46:32 -07:00
Jeff Law
435b1237b1 pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Strip any name encoding on the section name.
* pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Strip any name encoding
        on the section name.

From-SVN: r10860
1995-12-24 20:22:10 -07:00
Richard Kenner
67369e2a11 (movdf): Don't copy a word at a time; nearly always loses.
From-SVN: r10859
1995-12-24 18:44:10 -05:00
Richard Kenner
1598f4da78 (mark_addressable, case COMPONENT_REF): Give error if taking address
of a bit field.

From-SVN: r10858
1995-12-24 18:15:12 -05:00
Richard Kenner
64d60f91a6 (finish_struct): Set DECL_C_BIT_FIELD when set DECL_BIT_FIELD.
From-SVN: r10857
1995-12-24 18:14:33 -05:00
Richard Kenner
e8970a8c2f (DECL_C_BIT_FIELD): New macro.
From-SVN: r10856
1995-12-24 18:14:00 -05:00
Richard Kenner
3620d72014 Define HAVE_POPEN.
From-SVN: r10855
1995-12-24 17:45:58 -05:00
Richard Kenner
b69649e48d (output_function_epilogue): Use FUNCTION_BLOCK_PROFILER_EXIT.
From-SVN: r10854
1995-12-24 17:45:30 -05:00
Richard Kenner
68f654ec44 (function_epilogue): Use FUNCTION_BLOCK_PROFILER_EXIT.
From-SVN: r10853
1995-12-24 17:44:54 -05:00
Richard Kenner
6e75390084 (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER):
Extension for -ax option (profile_block_flag == 2).
(MACHINE_STATE_SAVE,MACHINE_STATE_RESTORE): New macros.
(FUNCTION_BLOCK_PROFILER_EXIT): New macro.

From-SVN: r10852
1995-12-24 17:43:46 -05:00
Richard Kenner
88c956eb52 (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Extension for -ax option (profile_block_flag == 2).
(FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Extension for -ax
option (profile_block_flag == 2).
(MACHINE_STATE_SAVE,MACHINE_STATE_RESTORE): New macros.
(FUNCTION_BLOCK_PROFILER_EXIT): New macro.

From-SVN: r10851
1995-12-24 17:43:00 -05:00
Richard Kenner
90b4a76470 (struct bb): Add flags field.
(HAVE_POPEN): Test new define.
(struct __bb, struct bb_{edge,func}): New structs.
(__bb_init_{prg,file},__bb_{init,exit}_trace_func,__bb_trace_ret,
(__bb_trace_func{,_ret},gopen,gclose): New functions.

From-SVN: r10850
1995-12-24 17:42:24 -05:00
Richard Kenner
47431dff3c (end_final): Extended header increased to 11 words.
(profile_after_prologue): FUNCTION_BLOCK_PROFILER uses count_basic_blocks
instead profile_label_no.

From-SVN: r10849
1995-12-24 17:41:43 -05:00
Richard Kenner
ec6c615d64 (main): Add -ax option.
From-SVN: r10848
1995-12-24 17:41:11 -05:00
Richard Kenner
47288231ca (struct compilers): Add -ax option.
From-SVN: r10847
1995-12-24 17:40:40 -05:00
Richard Kenner
5d7bb90c0f (unused_prefix_warning): Include machine_suffix if require_machine_suffix.
(warn_B, warn_std, warn_std_ptr): New variables.
(process_commands): Use them and NULL_PTR as WARN arg to add_prefix.

From-SVN: r10846
1995-12-24 08:43:10 -05:00
Richard Kenner
f2cf3e1ed9 (process_command): Give error for -c with -o and multiple compilations.
(handle_braces): Rename variable "pipe" to "pipe_p".

From-SVN: r10845
1995-12-24 08:08:29 -05:00
Richard Kenner
340af9ef2d Update comments to clarify typing rules.
From-SVN: r10844
1995-12-24 07:35:16 -05:00
Richard Kenner
0ae4004537 (clrstrsi): New pattern and associate anonymous pattern.
From-SVN: r10843
1995-12-24 06:38:01 -05:00
Richard Kenner
9de0820010 (struct clear_by_pieces): New structure.
(clear_by_pieces{,_1}, {is,mostly}_zeros_p): New functions.
(clrstr_optab): New optab.
(clear_storage): Rework to try to use clear_by_pieces, then
new clrstr insn, then library call.
(store_constructor): Track if target is already cleared.
Clear target first if CONSTRUCTOR is mostly zeros.
Don't write zeros if target has been cleared.
Add new arg to clear_storage call.
(expand_expr, case CONSTRUCTOR): Don't put static constructor
in memory if mostly zero.

From-SVN: r10842
1995-12-24 06:37:15 -05:00
Richard Kenner
45169d1213 (init_optabs): Initialize clrstr_optab.
From-SVN: r10841
1995-12-24 06:36:32 -05:00
Richard Kenner
fd18db659c (optabs): Add "clrstr%a%".
From-SVN: r10840
1995-12-24 06:36:10 -05:00
Richard Kenner
f316d71e4f (CONSTRUCTTOR_TARGET_CLEARED_P): New macro.
From-SVN: r10839
1995-12-24 06:35:29 -05:00
Richard Kenner
1207956403 (clrstr_optab): New declaration.
(clear_storage): New parm, ALIGN.

From-SVN: r10838
1995-12-24 06:35:03 -05:00
Jeff Law
bad883f8a1 pa.c (output_move_double): Correctly identify and handle overlapping moves.
* pa.c (output_move_double): Correctly identify and handle
        overlapping moves.
        * pa.md (movdi patterns): Eliminate earlyclobbers in mem<->gr
        cases.
        (movdf patterns): Likewise.

From-SVN: r10837
1995-12-23 10:25:00 -07:00
Richard Kenner
9151b3bf92 (store_constructor): Don't call change_address on REG.
(expand_expr, case CONSTRUCTOR): Likewise.

From-SVN: r10836
1995-12-22 17:55:49 -05:00
Richard Kenner
ff18b63b8d (expand_block_move): Preserve MEM flags in call to movstrsi_internal.
From-SVN: r10835
1995-12-22 17:45:39 -05:00