This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PPC -mlongcall, take two


        * config/rs6000/rs6000.c (rs6000_default_long_calls,
        rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
        (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
        (rs6000_override_options): Handle -m(no-)longcall.
        (init_cumulative_args, output_mi_thunk): Check for both
        longcall and shortcall attributes on the function.
        (rs6000_attribute_table): Add "shortcall".
        (rs6000_handle_longcall_attribute): Update comment.
        (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
        altivec_expand_ternop_builtin): Add default clauses to switches
        to silence warnings.

        * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
        rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
        (TARGET_OPTIONS): Add longcall and no-longcall.

        * config/rs6000/rs6000.md (call_nonlocal_sysv,
        call_value_nonlocal_sysv): Split by alternatives.  One pair
        accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
        the call cookie.  The other pair accepts only LR/CTR and has
        no restriction.

        * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
        Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
        tmake_file.
        * config/rs6000/rs6000-c.c: New file.
        * config/rs6000/t-rs6000-c-rule: New file.
        * config/rs6000/rs6000-protos.c: Add multiple-include guard.
        Prototype rs6000_pragma_longcall.

        * doc/extend.texi: Document shortcall attribute.
        * doc/invoke.texi: Document -mlongcall, -mno-longcall.

The basic concept is okay now.

	Why do you need to create the new rs6000-c.c file instead of using
rs6000.c? 


	Also,

#define BAD(msgid)

	Please use RS6000_BAD or some other distinct name.  We previously
have run into name collisions with system headers for macros named "BAD".

Thanks, David


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]