Jim Wilson [Tue, 25 Apr 1995 23:36:38 +0000 (16:36 -0700)]
(struct move_by_pieces): Add to_struct and from_struct fields.
(move_by_pieces): Set to_struct and from_struct fields.
(move_by_pieces_1): Set MEM_IN_STRUCT_P of to1 and from1.
(expand_builtin, case BUILT_IN_MEMCPY): New variable type.
Set MEM_IN_STRUCT_P of src_mem and dest_mem.
Richard Kenner [Tue, 25 Apr 1995 23:09:01 +0000 (19:09 -0400)]
(expand_builtin_apply_args): If STACK_REGS is defined...
(expand_builtin_apply_args): If STACK_REGS is defined, generate USE
insns before the function body, thus showing which registers are
filled with parameters.
Reverse order of saving registers, more compact code for i387.
(expand_builtin_apply): Likewise.
(FP_mode_reg): Trimmed to a smaller size, less overhead.
(FP_MODE_REG): New macro over which FP_mode_reg will be accessed.
(mark_regs_pat, straighten_stack): New functions.
(reg_to_stack): Amend initialisation of FP_mode_reg.
Mark FP registers mentioned in USE insns before NOTE_INSN_FUNCTION_BEG.
(get_true_reg): Eliminate FP subreg accesses in favour of the actual FP
register in use.
(record_reg_life_pat): Make it work on SUBREGs as well. Make use of the new
mark_regs_pat function. Handle USE insns if called unnested.
(record_reg_life): Don't check for QImode again, we know that it is there.
Process CALL_INSNs like all other insns, they might `use' some FP argument
registers if register passing.
(stack_result_p): Changed in stack_result and returning an rtx.
(stack_reg_life_analysis): Take a new stackentry state argument.
Use stack_result and the rtx to mark using mark_regs_pat. This ensures that
types that need multiple FP registers are handled correctly
Delete the no_live_regs shortcut to save space.
Use stackentry state to determine filled registers.
(replace_reg): Accept COMPLEX_FLOAT as well.
(move_for_stack_reg): Optimise away some pointer dereferencing.
(subst_stack_regs): Make sure the stack is in the right order and of the right
size for register passing.
(goto_block_pat): Make sure the stack is in the right order to return possible
multi-register values from the function.
(convert_regs): Fix comment about CALL_INSN, it's no longer valid.
Make sure the stack is of the right size and in the right order to return
possible multi-register values from the function.
Richard Kenner [Tue, 25 Apr 1995 22:52:18 +0000 (18:52 -0400)]
(valid_machine_attribute): Use new function attribute_in_list...
(valid_machine_attribute): Use new function attribute_in_list, makes
sure type_attribute_variants are reused even when attributes have
parameters.
Assign any new type to TREE_TYPE (decl).
(attribute_in_list): New function.
(attribute_list_contained): Use it.
Richard Kenner [Tue, 25 Apr 1995 21:47:34 +0000 (17:47 -0400)]
Removed __NetBSD__ from conditional.
Declare strerror if HAVE_STRERROR is defined; otherwise declare
sys_errlist and sys_nerr.
(my_strerror): New function.
(errno): Don't define if already defined as a macro.
Richard Kenner [Fri, 21 Apr 1995 12:03:23 +0000 (08:03 -0400)]
([lr]rotate_double): Replace; old versions were bogus.
(fold, shift and rotate): Don't call tree_int_cst_sgn on non-integer.
(fold, case LROTATE_EXPR): If constant count, convert to RROTATE_EXPR.
(fold, case RROTATE_EXPR): Sometimes commute logical op with rotate.
Delete pair of counteracting shifts.
TARGET_FASTCODE, TARGET_CLEN3, TARGET_CLEN0, TARGET_OPTIONS): Delete.
(TARGET_SWITCHES): Delete -mclen3 and -mclen0 options.
(TARGET_DEFAULT): Is zero.
(OVERRIDE_OPTIONS): Delete code to set max_count_si and max_count_hi.
(SPECIAL_REG): New macro.
(HARD_REGNO_MODE_OK): Allow any mode in any general register.
(GO_IF_LEGITIMATE_ADDRESS): Delete constant + reg address case.
(MOVE_RATIO): Define to 2 when TARGET_SMALLCODE.
(max_si, max_hi, max_count_si, max_count_hi): Delete.
Jim Wilson [Fri, 21 Apr 1995 01:18:26 +0000 (18:18 -0700)]
Delete spurious constraints from all define_expands.
(rotlsi3_1): Set T reg instead of clobbering it.
(ashrsi3): Use expand_ashiftrt instead of gen_shifty_op.
(movsi_i, movhi_i, movsf_i): Add conditions to reject patterns
needing a reload.
(movdi-2, movdf_k): Correct conditions to reject patterns needing
a reload.
([inverse_]branch_{true,false}): Pass operands to output_branch.
(jump): Delete unnecessary braces.
(call, call_value): Don't use expand_acall. Force operand0 into
a register.
Per Bothner [Mon, 17 Apr 1995 23:43:46 +0000 (16:43 -0700)]
cpplib.c: Rename make_definition to cpp_define.
* cpplib.c: Rename make_definition to cpp_define.
* cpplib.c (special_symbol): For T_SPECLINE, calculate __LINE__
in enclosing file buffer, not current buffer (if macro expanding).
(cpp_get_token): Fix thinko (in code for chopping unneeded space).
Roland McGrath [Fri, 14 Apr 1995 23:31:05 +0000 (23:31 +0000)]
(ASM_OUTPUT_SECTION_NAME): Make the section read-only executable "ax" if DECL is a FUNCTION_DECL...
(ASM_OUTPUT_SECTION_NAME): Make the section read-only executable "ax"
if DECL is a FUNCTION_DECL; read-only "a" (previously the case always)
if DECL is TREE_READONLY; otherwise writable "aw".