• rearnsha's avatar
    Use new tail-calling mechanism on ARM. · 1c494086
    rearnsha authored
    * arm.md (sibcall, sibcall_value): New expands.
    (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
    (tailcalling peepholes): Delete.
    (push_multi): Simplify.
    * arm.c (lr_save_eliminated): Delete definition.
    (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
    (output_return_instruction): Remove checks on lr_save_eliminated.
    (output_arm_prologue): Remove old tail-calling code.
    (arm_output_epilogue): New parameter, really_return.  All callers
    changed.  Handle tail-calling epilogues.
    * arm.h (lr_save_eliminated): Delete declaration.
    (frame_pointer_needed): Delete declaration.
    * arm-protos.h (arm_output_epilogue): Adjust prototype.
    
    * arm.md (is_thumb): Examine symbol thumb_code, not expression
    TARGET_ARM.
    * arm.c (thumb_code): Define it.
    (arm_override_options): Set it.
    * arm.h (thumb_code): Declare it.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33731 138bc75d-0d04-0410-961f-82ee72b054a4
    1c494086
ChangeLog 975 KB