99a593103f
(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. From-SVN: r9459 |
||
---|---|---|
gcc |